From: Aarni Koskela Date: Wed, 30 Mar 2016 16:15:59 +0000 (+0300) Subject: Import and expose more measurement unit related information X-Git-Tag: 2.3.1~3^2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3bb3dbb797f22225813252b82da12b89b61d7d3e;p=thirdparty%2Fbabel.git Import and expose more measurement unit related information --- diff --git a/babel/core.py b/babel/core.py index dae7572a..4e00ebfb 100644 --- a/babel/core.py +++ b/babel/core.py @@ -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 diff --git a/scripts/import_cldr.py b/scripts/import_cldr.py index 58a1a012..f684de34 100755 --- a/scripts/import_cldr.py +++ b/scripts/import_cldr.py @@ -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', {})