]> git.ipfire.org Git - thirdparty/babel.git/commitdiff
Import and expose more measurement unit related information
authorAarni Koskela <akx@iki.fi>
Wed, 30 Mar 2016 16:15:59 +0000 (19:15 +0300)
committerAarni Koskela <akx@iki.fi>
Tue, 5 Apr 2016 21:27:34 +0000 (00:27 +0300)
babel/core.py
scripts/import_cldr.py

index dae7572a381c36527ef45d2879a4bd5ab72565c0..4e00ebfb5ad5c456d6c380bdf33428e16ad9e800 100644 (file)
@@ -919,6 +919,20 @@ class Locale(object):
         """
         return ''.join(word[0] for word in self.character_order.split('-'))
 
+    @property
+    def unit_display_names(self):
+        """Display names for units of measurement.
+
+        .. seealso::
+
+           You may want to use :py:func:`babel.units.get_unit_name` instead.
+
+        .. note:: The format of the value returned may change between
+                  Babel versions.
+
+        """
+        return self._data['unit_display_names']
+
 
 def default_locale(category=None, aliases=LOCALE_ALIASES):
     """Returns the system default locale for a given category, based on
index 58a1a012465bc920c822a3e5fb0aec5adf41ab2d..f684de34385dc07a1f17401888a7f74fc37cb76d 100755 (executable)
@@ -757,6 +757,9 @@ def parse_currency_names(data, tree):
 
 def parse_unit_patterns(data, tree):
     unit_patterns = data.setdefault('unit_patterns', {})
+    compound_patterns = data.setdefault('compound_unit_patterns', {})
+    unit_display_names = data.setdefault('unit_display_names', {})
+
     for elem in tree.findall('.//units/unitLength'):
         unit_length_type = elem.attrib['type']
         for unit in elem.findall('unit'):
@@ -765,6 +768,20 @@ def parse_unit_patterns(data, tree):
             for pattern in unit.findall('unitPattern'):
                 unit_and_length_patterns[pattern.attrib['count']] = _text(pattern)
 
+            per_unit_pat = unit.find('perUnitPattern')
+            if per_unit_pat is not None:
+                unit_and_length_patterns['per'] = _text(per_unit_pat)
+
+            display_name = unit.find('displayName')
+            if display_name is not None:
+                unit_display_names.setdefault(unit_type, {})[unit_length_type] = _text(display_name)
+
+        for unit in elem.findall('compoundUnit'):
+            unit_type = unit.attrib['type']
+            compound_patterns.setdefault(unit_type, {})[unit_length_type] = (
+                _text(unit.find('compoundUnitPattern'))
+            )
+
 
 def parse_date_fields(data, tree):
     date_fields = data.setdefault('date_fields', {})