Rietveld Code Review Tool
Help | Bug tracker | Discussion group | Source code

Unified Diff: cms/converters.py

Issue 29317015: Issue 2625 - [cms] Crowdin synchronisation script (Closed)
Patch Set: Created June 15, 2015, 2:12 p.m.
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: cms/converters.py
diff --git a/cms/converters.py b/cms/converters.py
index 8f602f3f36149a3b70ac17f6054197a84756b056..b90fadacd89ed532d8727bf4757a1abbcccfe914 100644
--- a/cms/converters.py
+++ b/cms/converters.py
@@ -125,7 +125,7 @@ class Converter:
params[name.strip()] = value.strip()
params[key] = "".join(lines)
- def localize_string(self, name, default, localedata, escapes):
+ def localize_string(self, name, default, comment, localedata, escapes):
kzar 2015/06/15 14:24:28 We previously threw away string comments, now we n
def escape(s):
return re.sub(r".",
lambda match: escapes.get(match.group(0), match.group(0)),
@@ -147,6 +147,17 @@ class Converter:
self.missing_translations += 1
self.total_translations += 1
+ # Keep a record of the default translations
+ if locale == self._params["defaultlocale"]:
Wladimir Palant 2015/06/29 19:05:38 This case is already checked above (getting transl
kzar 2015/07/02 12:33:12 Done.
+ localedata[name] = result
+ # Append a note about fixed strings to the string comment for translators
kzar 2015/06/15 14:24:28 Without this translators would have way to know wh
+ if fixed_strings:
+ comment = comment + " " if comment else ""
+ self._params["localecomments"][name] = comment + (
+ "[" + ", ".join(["%d: %s" % (i, s) for i, s in
Wladimir Palant 2015/06/29 19:05:38 ", ".join("{%d}: %s" (i, s) for i, s in ...) In o
kzar 2015/07/02 12:33:13 Done.
+ enumerate(fixed_strings, 1)]) + "]"
+ )
Wladimir Palant 2015/06/29 19:05:37 And what about comments for strings without fixed
kzar 2015/07/02 12:33:13 Whoops, good point. Done.
+
# Insert fixed strings
for i, fixed_string in enumerate(fixed_strings, 1):
result = result.replace("{%d}" % i, fixed_string)
@@ -185,9 +196,8 @@ class Converter:
name, comment, default = match.groups()
default = to_html(default).strip()
- # Note: We currently ignore the comment, it is only relevant when
- # generating the master translation.
- return self.localize_string(name, default, self._params["localedata"], escapes)
+ # Note: The comment, it is only relevant when uploading translations
Wladimir Palant 2015/06/29 19:05:38 This is the wrong place for this comment, it is de
kzar 2015/07/02 12:33:13 Done.
+ return self.localize_string(name, default, comment, self._params["localedata"], escapes)
return re.sub(
r"{{\s*"
@@ -352,15 +362,14 @@ class TemplateConverter(Converter):
return result
def translate(self, default, name, comment=None):
- # Note: We currently ignore the comment, it is only relevant when
- # generating the master translation.
+ # Note: The comment, it is only relevant when uploading translations
Wladimir Palant 2015/06/29 19:05:38 Same here, this comment should be moved into funct
kzar 2015/07/02 12:33:13 Done.
localedata = self._params["localedata"]
- return jinja2.Markup(self.localize_string(name, default, localedata, html_escapes))
+ return jinja2.Markup(self.localize_string(name, default, comment, localedata, html_escapes))
def get_string(self, name, page):
- localedata = self._params["source"].read_locale(self._params["locale"], page)
- default = localedata[name]
- return jinja2.Markup(self.localize_string(name, default, localedata, html_escapes))
+ default = self._params["source"].read_locale(self._params["locale"], page)[name]
kzar 2015/06/15 14:24:28 This change is required so that strings included w
Wladimir Palant 2015/06/29 19:05:38 This change also happens to be wrong. Each page in
kzar 2015/07/02 12:33:13 Done.
+ localedata = self._params["localedata"]
+ return jinja2.Markup(self.localize_string(name, default, "", localedata, html_escapes))
def get_page_content(self, page, locale=None):
from cms.utils import get_page_params

Powered by Google App Engine
This is Rietveld