[Pkg-mozext-commits] [adblock-plus] 419/464: Make sure that translations used in manifest.json exist in all languages.
David Prévot
taffit at moszumanska.debian.org
Tue Jul 22 20:44:40 UTC 2014
This is an automated email from the git hooks/post-receive script.
taffit pushed a commit to branch master
in repository adblock-plus.
commit 59c79b1d81c66e86ceac4cac49ecddbf7332095c
Author: Sebastian Noack <sebastian at adblockplug.org>
Date: Thu Mar 13 16:57:20 2014 +0100
Make sure that translations used in manifest.json exist in all languages.
---
packagerChrome.py | 29 +++++++++++++++++++++++++++--
1 file changed, 27 insertions(+), 2 deletions(-)
diff --git a/packagerChrome.py b/packagerChrome.py
index c4b0ffc..320b5e6 100644
--- a/packagerChrome.py
+++ b/packagerChrome.py
@@ -160,6 +160,12 @@ def convertJS(params, files):
sourceFiles = map(lambda f: os.path.abspath(os.path.join(baseDir, f)), sourceFiles)
files[file] = doRewrite(sourceFiles, args)
+def toJson(data):
+ return json.dumps(
+ data, ensure_ascii=False, sort_keys=True,
+ indent=2, separators=(',', ': ')
+ ).encode('utf-8') + '\n'
+
def importGeckoLocales(params, files):
import localeTools
@@ -261,8 +267,7 @@ def importGeckoLocales(params, files):
except Exception, e:
print 'Warning: error importing locale data from %s: %s' % (sourceFile, e)
- files[targetFile] = json.dumps(data, ensure_ascii=False, sort_keys=True,
- indent=2, separators=(',', ': ')).encode('utf-8') + '\n'
+ files[targetFile] = toJson(data)
if params['type'] == 'opera':
# Opera has a slightly different locale mapping
@@ -279,6 +284,24 @@ def importGeckoLocales(params, files):
files[operaFile] = files[chromeFile]
del files[chromeFile]
+def fixMissingTranslations(files):
+ # Chrome requires messages used in manifest.json to be given in all languages
+ defaults = {}
+ data = json.loads(files['_locales/%s/messages.json' % defaultLocale])
+ for match in re.finditer(r'__MSG_(\S+)__', files['manifest.json']):
+ name = match.group(1)
+ defaults[name] = data[name]
+
+ for filename in files:
+ if not filename.startswith('_locales/') or not filename.endswith('/messages.json'):
+ continue
+
+ data = json.loads(files[filename])
+ for name, info in defaults.iteritems():
+ data.setdefault(name, info)
+
+ files[filename] = toJson(data)
+
def signBinary(zipdata, keyFile):
import M2Crypto
if not os.path.exists(keyFile):
@@ -343,6 +366,8 @@ def createBuild(baseDir, type='chrome', outFile=None, buildNum=None, releaseBuil
if metadata.has_section('import_locales'):
importGeckoLocales(params, files)
+ fixMissingTranslations(files)
+
if devenv:
files['devenvPoller__.js'] = createPoller(params)
--
Alioth's /usr/local/bin/git-commit-notice on /srv/git.debian.org/git/pkg-mozext/adblock-plus.git
More information about the Pkg-mozext-commits
mailing list