Index: packagerChrome.py |
=================================================================== |
--- a/packagerChrome.py |
+++ b/packagerChrome.py |
@@ -296,10 +296,7 @@ |
return text[:length_limit - 1].rstrip() + u'\u2026' |
-def fixTranslationsForCWS(files): |
- # Chrome Web Store requires messages used in manifest.json to be present in |
- # all languages. It also enforces length limits for extension names and |
- # descriptions. |
+def fixTranslationsForChrome(files): |
tlucas
2017/10/02 09:25:43
nit: when changing a function's name the new name
Sebastian Noack
2017/10/02 23:01:33
Done.
|
defaults = {} |
data = json.loads(files['_locales/%s/messages.json' % defaultLocale]) |
for match in re.finditer(r'__MSG_(\S+)__', files['manifest.json']): |
@@ -313,17 +310,29 @@ |
if match: |
limits[match.group(1)] = limit |
- for filename in files: |
- if not filename.startswith('_locales/') or not filename.endswith('/messages.json'): |
- continue |
+ for path in list(files): |
+ match = re.search(r'^_locales/(?:es_(AR|CL|(MX))|[^/]+)/(.*)', path) |
+ if match: |
Vasily Kuznetsov
2017/10/02 21:13:32
This loop with a regexp search and then `if match`
Sebastian Noack
2017/10/02 23:01:33
The reason why I didn't bail out, but went for the
|
+ isLatAm, isMexican, filename = match.groups() |
Vasily Kuznetsov
2017/10/02 21:13:32
While PEP8 is annoyingly non-specific with regards
Sebastian Noack
2017/10/02 23:01:33
Yeah, this should be lowercase with underscores. D
|
- data = json.loads(files[filename]) |
- for name, info in defaults.iteritems(): |
- data.setdefault(name, info) |
- for name, limit in limits.iteritems(): |
- if name in data: |
- data[name]['message'] = truncate(data[name]['message'], limit) |
- files[filename] = toJson(data) |
+ # The Chrome Web Store requires messages used in manifest.json to be |
tlucas
2017/10/02 09:25:43
nit: this line is 1 character too long
Sebastian Noack
2017/10/02 23:01:33
Done.
|
+ # present in all languages, and enforces length limits on extension |
+ # name and description. |
+ if filename == 'messages.json': |
+ data = json.loads(files[path]) |
+ for name, info in defaults.iteritems(): |
+ data.setdefault(name, info) |
+ for name, limit in limits.iteritems(): |
+ info = data.get(name) |
+ if info: |
+ info['message'] = truncate(info['message'], limit) |
+ files[path] = toJson(data) |
+ |
+ # Chrome combines Latin American dialects of Spanish into es-419. |
+ if isLatAm: |
+ data = files.pop(path) |
+ if isMexican: |
+ files['_locales/es_419/' + filename] = data |
def signBinary(zipdata, keyFile): |
@@ -403,7 +412,7 @@ |
files['manifest.json'] = createManifest(params, files) |
if type == 'chrome': |
- fixTranslationsForCWS(files) |
+ fixTranslationsForChrome(files) |
if devenv: |
import buildtools |