comparison scripts/import_cldr.py @ 389:a11564c5c1f1 stable-0.9.x

Ported [424], [425], and [428] back to 0.9.x branch.
author cmlenz
date Mon, 14 Jul 2008 19:46:19 +0000
parents 0a0bc1639ea7
children c5bc0f6822a9 74de1a99a312
comparison
equal deleted inserted replaced
383:7e3d7532f3d4 389:a11564c5c1f1
135 filenames.remove('root.xml') 135 filenames.remove('root.xml')
136 filenames.sort(lambda a,b: len(a)-len(b)) 136 filenames.sort(lambda a,b: len(a)-len(b))
137 filenames.insert(0, 'root.xml') 137 filenames.insert(0, 'root.xml')
138 138
139 for filename in filenames: 139 for filename in filenames:
140 print>>sys.stderr, 'Processing input file %r' % filename
141 stem, ext = os.path.splitext(filename) 140 stem, ext = os.path.splitext(filename)
142 if ext != '.xml': 141 if ext != '.xml':
143 continue 142 continue
144 #if stem != 'root': 143
145 # break 144 print>>sys.stderr, 'Processing input file %r' % filename
146
147 tree = parse(os.path.join(srcdir, 'main', filename)) 145 tree = parse(os.path.join(srcdir, 'main', filename))
148 data = {} 146 data = {}
149 147
150 language = None 148 language = None
151 elem = tree.find('//identity/language') 149 elem = tree.find('//identity/language')
440 percent_formats[elem.attrib.get('type')] = numbers.parse_pattern(pattern) 438 percent_formats[elem.attrib.get('type')] = numbers.parse_pattern(pattern)
441 439
442 currency_names = data.setdefault('currency_names', {}) 440 currency_names = data.setdefault('currency_names', {})
443 currency_symbols = data.setdefault('currency_symbols', {}) 441 currency_symbols = data.setdefault('currency_symbols', {})
444 for elem in tree.findall('//currencies/currency'): 442 for elem in tree.findall('//currencies/currency'):
445 name = elem.findtext('displayName') 443 code = elem.attrib['type']
446 if name: 444 # TODO: support plural rules for currency name selection
447 currency_names[elem.attrib['type']] = unicode(name) 445 for name in elem.findall('displayName'):
448 symbol = elem.findtext('symbol') 446 if ('draft' in name.attrib or 'count' in name.attrib) \
449 if symbol: 447 and code in currency_names:
450 currency_symbols[elem.attrib['type']] = unicode(symbol) 448 continue
449 currency_names[code] = unicode(name.text)
450 # TODO: support choice patterns for currency symbol selection
451 symbol = elem.find('symbol')
452 if symbol is not None and 'draft' not in symbol.attrib \
453 and 'choice' not in symbol.attrib:
454 currency_symbols[code] = unicode(symbol.text)
451 455
452 outfile = open(os.path.join(destdir, 'localedata', stem + '.dat'), 'wb') 456 outfile = open(os.path.join(destdir, 'localedata', stem + '.dat'), 'wb')
453 try: 457 try:
454 pickle.dump(data, outfile, 2) 458 pickle.dump(data, outfile, 2)
455 finally: 459 finally:
Copyright (C) 2012-2017 Edgewall Software