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

Delta Between Two Patch Sets: localeTools.py

Issue 29587910: Issue 104 - added checktranslations function
Left Patch Set: Proposed changes Created Nov. 6, 2017, 6:29 a.m.
Right Patch Set: Proposed changes Created Nov. 20, 2017, 12:38 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 | « build.py ('k') | 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 # This Source Code Form is subject to the terms of the Mozilla Public 1 # This Source Code Form is subject to the terms of the Mozilla Public
2 # License, v. 2.0. If a copy of the MPL was not distributed with this 2 # License, v. 2.0. If a copy of the MPL was not distributed with this
3 # file, You can obtain one at http://mozilla.org/MPL/2.0/. 3 # file, You can obtain one at http://mozilla.org/MPL/2.0/.
4 4
5 import re 5 import re
6 import os 6 import os
7 import sys 7 import sys
8 import codecs 8 import codecs
9 import json 9 import json
10 import urlparse 10 import urlparse
(...skipping 295 matching lines...) Expand 10 before | Expand all | Expand 10 after
306 base_path = localeConfig['base_path'] 306 base_path = localeConfig['base_path']
307 for locale in os.listdir(base_path): 307 for locale in os.listdir(base_path):
308 jsonpath = os.path.join(base_path, locale, 'messages.json') 308 jsonpath = os.path.join(base_path, locale, 'messages.json')
309 309
310 if not os.path.exists(jsonpath): 310 if not os.path.exists(jsonpath):
311 continue 311 continue
312 312
313 with codecs.open(jsonpath, 'rb', encoding='utf-8') as f: 313 with codecs.open(jsonpath, 'rb', encoding='utf-8') as f:
314 try: 314 try:
315 data = json.load(f) 315 data = json.load(f)
316 for key, value in data.iteritems():
317 variables = set()
318 max_length = value.get('maxLength')
319 length = len(value['message'])
320 if (max_length is not None and
321 length > max_length or length > 160):
322 print >>sys.stderr, (
323 '{} {} -> translation might be too long.'
324 'More then 160 chars or maxLength exceeded'
325 ).format(locale, key)
326
327 for match in re.finditer(r'\$(\S+?)\$', value['message']):
328 variables.add(match.group(1))
329 expected = set(value.get('placeholders', {}).iterkeys())
330 if variables != expected:
331 print >>sys.stderr, (
332 '{} {}: Variables used are {} '
333 'expected. Variables: {}'
334 ).format(locale, key, variables, expected)
316 except ValueError: 335 except ValueError:
317 print >>sys.stderr, locale + ', messages.json is not valid.' 336 print >>sys.stderr, locale + ', messages.json is not valid.'
318
319 for key, value in data.iteritems():
320 variables = set()
321 max_length = value.get('maxLength')
322 length = len(value['message'])
323 if max_length is not None and length > max_length or length > 160:
324 print >>sys.stderr, (
325 '{} {} -> translation might be too long. More then 160 '
326 'chars or maxLength exceeded').format(locale, key)
327
328 for match in re.finditer(r'\$(\S+?)\$', value['message']):
329 variables.add(match.group(1))
330 expected = set(value.get('placeholders', {}).iterkeys())
331 if variables != expected:
332 print >>sys.stderr, (
333 '{} {}: Variables used are {} '
334 'expected. Variables: {}'
335 ).format(locale, key, variables, expected)
tlucas 2017/11/06 15:48:12 py27 runtests: commands[2] | flake8 ./localeTools.
erick 2017/11/07 08:18:44 Done.
LEFTRIGHT
« build.py ('k') | 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