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

Delta Between Two Patch Sets: packagerChrome.py

Issue 5307739131609088: Issue 1709 - Allow importing Chrome-style locales in Chrome extensions (Closed)
Left Patch Set: Simplified mapping calculation Created Dec. 17, 2014, 1:20 p.m.
Right Patch Set: Removed code duplication Created Dec. 17, 2014, 2:58 p.m.
Left:
Right:
Use n/p to move between diff chunks; N/P to move between comments.
Jump to:
Left: Side by side diff | Download
Right: Side by side diff | Download
« no previous file with change/comment | « no previous file | no next file » | no next file with change/comment »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
LEFTRIGHT
1 # coding: utf-8 1 # coding: utf-8
2 2
3 # This Source Code Form is subject to the terms of the Mozilla Public 3 # This Source Code Form is subject to the terms of the Mozilla Public
4 # License, v. 2.0. If a copy of the MPL was not distributed with this 4 # License, v. 2.0. If a copy of the MPL was not distributed with this
5 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 5 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
6 6
7 import sys 7 import sys
8 import os 8 import os
9 import re 9 import re
10 import json 10 import json
(...skipping 149 matching lines...) Expand 10 before | Expand all | Expand 10 after
160 160
161 def toJson(data): 161 def toJson(data):
162 return json.dumps( 162 return json.dumps(
163 data, ensure_ascii=False, sort_keys=True, 163 data, ensure_ascii=False, sort_keys=True,
164 indent=2, separators=(',', ': ') 164 indent=2, separators=(',', ': ')
165 ).encode('utf-8') + '\n' 165 ).encode('utf-8') + '\n'
166 166
167 def importGeckoLocales(params, files): 167 def importGeckoLocales(params, files):
168 import localeTools 168 import localeTools
169 169
170 # FIXME: localeTools doesn't use real Chrome locales, it uses dash as
171 # separator instead.
172 convert_locale_code = lambda code: code.replace('-', '_')
173
170 # We need to map Chrome locales to Gecko locales. Start by mapping Chrome 174 # We need to map Chrome locales to Gecko locales. Start by mapping Chrome
171 # locales to themselves, merely with the minus sign as separator. 175 # locales to themselves, merely with the dash as separator.
172 locale_mapping = {l.replace('-', '_'): l for l in localeTools.chromeLocales} 176 locale_mapping = {convert_locale_code(l): l for l in localeTools.chromeLocales }
173 177
174 # Convert values to Crowdin locales first (use Chrome => Crowdin mapping). 178 # Convert values to Crowdin locales first (use Chrome => Crowdin mapping).
175 for chrome_locale, crowdin_locale in localeTools.langMappingChrome.iteritems() : 179 for chrome_locale, crowdin_locale in localeTools.langMappingChrome.iteritems() :
176 locale_mapping[chrome_locale.replace('-', '_')] = crowdin_locale 180 locale_mapping[convert_locale_code(chrome_locale)] = crowdin_locale
Sebastian Noack 2014/12/17 14:11:46 I'd rather not duplicate the logic replacing the d
Wladimir Palant 2014/12/17 14:59:33 Done.
177 181
178 # Now convert values to Gecko locales (use Gecko => Crowdin mapping). 182 # Now convert values to Gecko locales (use Gecko => Crowdin mapping).
179 reverse_mapping = {v: k for k, v in locale_mapping.iteritems()} 183 reverse_mapping = {v: k for k, v in locale_mapping.iteritems()}
180 for gecko_locale, crowdin_locale in localeTools.langMappingGecko.iteritems(): 184 for gecko_locale, crowdin_locale in localeTools.langMappingGecko.iteritems():
181 if crowdin_locale in reverse_mapping: 185 if crowdin_locale in reverse_mapping:
182 locale_mapping[reverse_mapping[crowdin_locale]] = gecko_locale 186 locale_mapping[reverse_mapping[crowdin_locale]] = gecko_locale
183 187
184 for target, source in locale_mapping.iteritems(): 188 for target, source in locale_mapping.iteritems():
185 targetFile = '_locales/%s/messages.json' % target 189 targetFile = '_locales/%s/messages.json' % target
186 if not targetFile in files: 190 if not targetFile in files:
(...skipping 181 matching lines...) Expand 10 before | Expand all | Expand 10 after
368 'lib/info.js' not in files): 372 'lib/info.js' not in files):
369 files['lib/info.js'] = createInfoModule(params) 373 files['lib/info.js'] = createInfoModule(params)
370 374
371 zipdata = files.zipToString() 375 zipdata = files.zipToString()
372 signature = None 376 signature = None
373 pubkey = None 377 pubkey = None
374 if keyFile != None: 378 if keyFile != None:
375 signature = signBinary(zipdata, keyFile) 379 signature = signBinary(zipdata, keyFile)
376 pubkey = getPublicKey(keyFile) 380 pubkey = getPublicKey(keyFile)
377 writePackage(outFile, pubkey, signature, zipdata) 381 writePackage(outFile, pubkey, signature, zipdata)
LEFTRIGHT
« no previous file | no next file » | Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Toggle Comments ('s')

Powered by Google App Engine
This is Rietveld