OLD | NEW |
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 226 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
237 else: | 237 else: |
238 index = value.find("&") | 238 index = value.find("&") |
239 if index >= 0: | 239 if index >= 0: |
240 value = value[0:index] + value[index + 1:] | 240 value = value[0:index] + value[index + 1:] |
241 data[key] = {'message': value} | 241 data[key] = {'message': value} |
242 except Exception, e: | 242 except Exception, e: |
243 print 'Warning: error importing locale data from %s: %s' % (sourceFile,
e) | 243 print 'Warning: error importing locale data from %s: %s' % (sourceFile,
e) |
244 | 244 |
245 files[targetFile] = toJson(data) | 245 files[targetFile] = toJson(data) |
246 | 246 |
247 if params['type'] == 'opera': | |
248 # Opera has a slightly different locale mapping | |
249 operaMapping = { | |
250 'es': 'es_ES', | |
251 'es_419': None, | |
252 'pt': 'pt_PT', | |
253 } | |
254 for chromeLocale, operaLocale in operaMapping.iteritems(): | |
255 chromeFile = '_locales/%s/messages.json' % chromeLocale | |
256 operaFile = '_locales/%s/messages.json' % operaLocale if operaLocale != No
ne else None | |
257 if chromeFile in files: | |
258 if operaFile != None: | |
259 files[operaFile] = files[chromeFile] | |
260 del files[chromeFile] | |
261 | |
262 def truncate(text, length_limit): | 247 def truncate(text, length_limit): |
263 if len(text) <= length_limit: | 248 if len(text) <= length_limit: |
264 return text | 249 return text |
265 return text[:length_limit - 1].rstrip() + u"\u2026" | 250 return text[:length_limit - 1].rstrip() + u"\u2026" |
266 | 251 |
267 def fixTranslationsForCWS(files): | 252 def fixTranslationsForCWS(files): |
268 # Chrome Web Store requires messages used in manifest.json to be present in | 253 # Chrome Web Store requires messages used in manifest.json to be present in |
269 # all languages. It also enforces length limits for extension names and | 254 # all languages. It also enforces length limits for extension names and |
270 # descriptions. | 255 # descriptions. |
271 defaults = {} | 256 defaults = {} |
(...skipping 100 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
372 'lib/info.js' not in files): | 357 'lib/info.js' not in files): |
373 files['lib/info.js'] = createInfoModule(params) | 358 files['lib/info.js'] = createInfoModule(params) |
374 | 359 |
375 zipdata = files.zipToString() | 360 zipdata = files.zipToString() |
376 signature = None | 361 signature = None |
377 pubkey = None | 362 pubkey = None |
378 if keyFile != None: | 363 if keyFile != None: |
379 signature = signBinary(zipdata, keyFile) | 364 signature = signBinary(zipdata, keyFile) |
380 pubkey = getPublicKey(keyFile) | 365 pubkey = getPublicKey(keyFile) |
381 writePackage(outFile, pubkey, signature, zipdata) | 366 writePackage(outFile, pubkey, signature, zipdata) |
OLD | NEW |