]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
cldr: Parse compact decimal formats that appear in CLDR 30
authorAarni Koskela <akx@iki.fi>
Mon, 21 Nov 2016 14:39:53 +0000 (16:39 +0200)
committerAarni Koskela <akx@iki.fi>
Wed, 17 Jan 2018 07:14:18 +0000 (09:14 +0200)
scripts/import_cldr.py

index 4f49491cad295001742dfe8dd4bb714fc0edd618..94fe85ea267d3640c90ef624d1068b01e4fe1912 100755 (executable)
@@ -717,7 +717,19 @@ def parse_decimal_formats(data, tree):
         for pattern_el in elem.findall('./decimalFormat/pattern'):
             pattern_type = pattern_el.attrib.get('type')
             pattern = numbers.parse_pattern(text_type(pattern_el.text))
-            if not pattern_type:
+            if pattern_type:
+                # This is a compact decimal format, see:
+                # http://www.unicode.org/reports/tr35/tr35-45/tr35-numbers.html#Compact_Number_Formats
+
+                # These are mapped into a `compact_decimal_formats` dictionary
+                # with the format {length: {count: {multiplier: pattern}}}.
+
+                # TODO: Add support for formatting them.
+                compact_decimal_formats = data.setdefault('compact_decimal_formats', {})
+                length_map = compact_decimal_formats.setdefault(length_type, {})
+                length_count_map = length_map.setdefault(pattern_el.attrib['count'], {})
+                length_count_map[pattern_type] = pattern
+            else:
                 # Regular decimal format.
                 decimal_formats[length_type] = pattern