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

Unified Diff: packagerChrome.py

Issue 29562599: Issue 5751 - Removing legacy gecko support (Closed)
Patch Set: Rebase against current master ( 489:293593da6033 ) Created Oct. 10, 2017, 9:25 a.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
« build.py ('K') | « packager.py ('k') | packagerGecko.py » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: packagerChrome.py
diff --git a/packagerChrome.py b/packagerChrome.py
index 5e6f550d20ef4e1e75ce00764082d55d13595726..9228c6f498c222ef592779fd08183e0137762c21 100644
--- a/packagerChrome.py
+++ b/packagerChrome.py
@@ -191,75 +191,32 @@ def toJson(data):
).encode('utf-8') + '\n'
-def import_string_webext(data, key, source):
- """Import a single translation from the source dictionary into data"""
- data[key] = source
-
-
-def import_string_gecko(data, key, value):
- """Import Gecko-style locales into data.
-
- Only sets {'message': value} in the data-dictionary, after stripping
- undesired Gecko-style access keys.
- """
- match = re.search(r'^(.*?)\s*\(&.\)$', value)
- if match:
- value = match.group(1)
- else:
- index = value.find('&')
- if index >= 0:
- value = value[0:index] + value[index + 1:]
-
- data[key] = {'message': value}
-
-
def import_locales(params, files):
for item in params['metadata'].items('import_locales'):
filename, keys = item
for sourceFile in glob.glob(os.path.join(os.path.dirname(item.source),
*filename.split('/'))):
- parts = sourceFile.split(os.path.sep)
- locale = parts[-2].replace('-', '_')
+ locale = sourceFile.split(os.path.sep)[-2]
targetFile = os.path.join('_locales', locale, 'messages.json')
data = json.loads(files.get(targetFile, '{}').decode('utf-8'))
try:
- # The WebExtensions (.json) and Gecko format provide
- # translations differently and/or provide additional
- # information like e.g. "placeholders". We want to adhere to
- # that and preserve the addtional info.
- if sourceFile.endswith('.json'):
- with io.open(sourceFile, 'r', encoding='utf-8') as handle:
- sourceData = json.load(handle)
- import_string = import_string_webext
- else:
- import localeTools
- sourceData = localeTools.readFile(sourceFile)
- import_string = import_string_gecko
+ with io.open(sourceFile, 'r', encoding='utf-8') as handle:
+ sourceData = json.load(handle)
# Resolve wildcard imports
- if keys == '*' or keys == '=*':
+ if keys == '*':
importList = sourceData.keys()
importList = filter(lambda k: not k.startswith('_'), importList)
- if keys == '=*':
- importList = map(lambda k: '=' + k, importList)
keys = ' '.join(importList)
for stringID in keys.split():
- noMangling = False
- if stringID.startswith('='):
- stringID = stringID[1:]
- noMangling = True
-
if stringID in sourceData:
- if noMangling:
- key = re.sub(r'\W', '_', stringID)
- else:
- key = re.sub(r'\..*', '', parts[-1]) + '_' + re.sub(r'\W', '_', stringID)
- if key in data:
- print 'Warning: locale string %s defined multiple times' % key
-
- import_string(data, key, sourceData[stringID])
+ if stringID in data:
+ print ('Warning: locale string {} defined multiple'
+ ' times').format(stringID)
+
+ data[stringID] = sourceData[stringID]
except Exception as e:
print 'Warning: error importing locale data from %s: %s' % (sourceFile, e)
« build.py ('K') | « packager.py ('k') | packagerGecko.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld