Mercurial > babel > mirror
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: |