class Locale: (source)
Representation of a specific locale. >>> locale = Locale('en', 'US') >>> repr(locale) "Locale('en', territory='US')" >>> locale.display_name u'English (United States)' A `Locale` object can also be instantiated from a raw locale string: >>> locale = Locale.parse('en-US', sep='-') >>> repr(locale) "Locale('en', territory='US')" `Locale` objects provide access to a collection of locale data, such as territory and language names, number and date format patterns, and more: >>> locale.number_symbols['decimal'] u'.' If a locale is requested for which no locale data is available, an `UnknownLocaleError` is raised: >>> Locale.parse('en_XX') Traceback (most recent call last): ... UnknownLocaleError: unknown locale 'en_XX' For more information see :rfc:`3066`.
Class Method | default |
Return the system default locale for the specified category. |
Class Method | negotiate |
Find the best match between available and requested locale strings. |
Class Method | parse |
Create a `Locale` instance for the given locale identifier. |
Method | __eq__ |
Undocumented |
Method | __hash__ |
Undocumented |
Method | __init__ |
Initialize the locale object from the given identifier components. |
Method | __ne__ |
Undocumented |
Method | __repr__ |
Undocumented |
Method | __str__ |
Undocumented |
Method | get |
Return the display name of the locale using the given locale. |
Method | get |
Return the language of this locale in the given locale. |
Method | get |
Return the script name in the given locale. |
Method | get |
Return the territory name in the given locale. |
Class Variable | display |
Undocumented |
Class Variable | language |
Undocumented |
Class Variable | script |
Undocumented |
Class Variable | territory |
Undocumented |
Instance Variable | language |
Undocumented |
Instance Variable | modifier |
Undocumented |
Instance Variable | script |
Undocumented |
Instance Variable | territory |
Undocumented |
Instance Variable | variant |
Undocumented |
Property | character |
The text direction for the language. |
Property | compact |
Locale patterns for compact currency number formatting. |
Property | compact |
Locale patterns for compact decimal number formatting. |
Property | currencies |
Mapping of currency codes to translated currency names. This only returns the generic form of the currency name, not the count specific one. If an actual number is requested use the :func:`babel.numbers... |
Property | currency |
Locale patterns for currency number formatting. |
Property | currency |
Mapping of currency codes to symbols. |
Property | date |
Locale patterns for date formatting. |
Property | datetime |
Locale patterns for datetime formatting. |
Property | datetime |
Locale patterns for formatting parts of a datetime. |
Property | day |
Day period rules for the locale. Used by `get_period_id`. |
Property | day |
Locale display names for various day periods (not necessarily only AM/PM). |
Property | days |
Locale display names for weekdays. |
Property | decimal |
Locale patterns for decimal number formatting. |
Property | english |
The english display name of the locale. |
Property | eras |
Locale display names for eras. |
Property | first |
The first day of a week, with 0 being Monday. |
Property | interval |
Locale patterns for interval formatting. |
Property | languages |
Mapping of language codes to translated language names. |
Property | list |
Patterns for generating lists |
Property | measurement |
Localized names for various measurement systems. |
Property | meta |
Locale display names for meta time zones. |
Property | min |
The minimum number of days in a week so that the week is counted as the first week of a year or month. |
Property | months |
Locale display names for months. |
Property | number |
Symbols used in number formatting. |
Property | ordinal |
Plural rules for the locale. |
Property | percent |
Locale patterns for percent number formatting. |
Property | periods |
Locale display names for day periods (AM/PM). |
Property | plural |
Plural rules for the locale. |
Property | quarters |
Locale display names for quarters. |
Property | scientific |
Locale patterns for scientific number formatting. |
Property | scripts |
Mapping of script codes to translated script names. |
Property | territories |
Mapping of script codes to translated script names. |
Property | text |
The text direction for the language in CSS short-hand form. |
Property | time |
Locale patterns for time formatting. |
Property | time |
Locale display names for time zones. |
Property | unit |
Display names for units of measurement. |
Property | variants |
Mapping of script codes to translated script names. |
Property | weekend |
The day the weekend ends, with 0 being Monday. |
Property | weekend |
The day the weekend starts, with 0 being Monday. |
Property | zone |
Patterns related to the formatting of time zones. |
Instance Variable | __data |
Undocumented |
Property | _data |
Undocumented |
def default(cls, category:
str|None
= None, aliases: Mapping[ str, str]
= LOCALE_ALIASES) -> Locale
:
(source)
¶
Return the system default locale for the specified category. >>> for name in ['LANGUAGE', 'LC_ALL', 'LC_CTYPE', 'LC_MESSAGES']: ... os.environ[name] = '' >>> os.environ['LANG'] = 'fr_FR.UTF-8' >>> Locale.default('LC_MESSAGES') Locale('fr', territory='FR') The following fallbacks to the variable are always considered: - ``LANGUAGE`` - ``LC_ALL`` - ``LC_CTYPE`` - ``LANG`` :param category: one of the ``LC_XXX`` environment variable names :param aliases: a dictionary of aliases for locale identifiers
def negotiate(cls, preferred:
Iterable[ str]
, available: Iterable[ str]
, sep: str
= '_', aliases: Mapping[ str, str]
= LOCALE_ALIASES) -> Locale|None
:
(source)
¶
Find the best match between available and requested locale strings. >>> Locale.negotiate(['de_DE', 'en_US'], ['de_DE', 'de_AT']) Locale('de', territory='DE') >>> Locale.negotiate(['de_DE', 'en_US'], ['en', 'de']) Locale('de') >>> Locale.negotiate(['de_DE', 'de'], ['en_US']) You can specify the character used in the locale identifiers to separate the different components. This separator is applied to both lists. Also, case is ignored in the comparison: >>> Locale.negotiate(['de-DE', 'de'], ['en-us', 'de-de'], sep='-') Locale('de', territory='DE') :param preferred: the list of locale identifiers preferred by the user :param available: the list of locale identifiers available :param aliases: a dictionary of aliases for locale identifiers
def parse(cls, identifier:
(str|Locale)|None
, sep: str
= '_', resolve_likely_subtags: bool
= True) -> Locale
:
(source)
¶
Create a `Locale` instance for the given locale identifier. >>> l = Locale.parse('de-DE', sep='-') >>> l.display_name u'Deutsch (Deutschland)' If the `identifier` parameter is not a string, but actually a `Locale` object, that object is returned: >>> Locale.parse(l) Locale('de', territory='DE') This also can perform resolving of likely subtags which it does by default. This is for instance useful to figure out the most likely locale for a territory you can use ``'und'`` as the language tag: >>> Locale.parse('und_AT') Locale('de', territory='AT') Modifiers are optional, and always at the end, separated by "@": >>> Locale.parse('de_AT@euro') Locale('de', territory='AT', modifier='euro') :param identifier: the locale identifier string :param sep: optional component separator :param resolve_likely_subtags: if this is specified then a locale will have its likely subtag resolved if the locale otherwise does not exist. For instance ``zh_TW`` by itself is not a locale that exists but Babel can automatically expand it to the full form of ``zh_hant_TW``. Note that this expansion is only taking place if no locale exists otherwise. For instance there is a locale ``en`` that can exist by itself. :raise `ValueError`: if the string does not appear to be a valid locale identifier :raise `UnknownLocaleError`: if no locale data is available for the requested locale :raise `TypeError`: if the identifier is not a string or a `Locale`
str
, territory: str|None
= None, script: str|None
= None, variant: str|None
= None, modifier: str|None
= None):
(source)
¶
Initialize the locale object from the given identifier components. >>> locale = Locale('en', 'US') >>> locale.language 'en' >>> locale.territory 'US' :param language: the language code :param territory: the territory (country or region) code :param script: the script code :param variant: the variant code :param modifier: a modifier (following the '@' symbol, sometimes called '@variant') :raise `UnknownLocaleError`: if no locale data is available for the requested locale
Return the display name of the locale using the given locale. The display name will include the language, territory, script, and variant, if those are specified. >>> Locale('zh', 'CN', script='Hans').get_display_name('en') u'Chinese (Simplified, China)' Modifiers are currently passed through verbatim: >>> Locale('it', 'IT', modifier='euro').get_display_name('en') u'Italian (Italy, euro)' :param locale: the locale to use
Return the language of this locale in the given locale. >>> Locale('zh', 'CN', script='Hans').get_language_name('de') u'Chinesisch' .. versionadded:: 1.0 :param locale: the locale to use
The text direction for the language. >>> Locale('de', 'DE').character_order 'left-to-right' >>> Locale('ar', 'SA').character_order 'right-to-left'
Locale patterns for compact currency number formatting. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').compact_currency_formats["short"]["one"]["1000"] <NumberPattern u'¤0K'>
Locale patterns for compact decimal number formatting. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').compact_decimal_formats["short"]["one"]["1000"] <NumberPattern u'0K'>
Mapping of currency codes to translated currency names. This only returns the generic form of the currency name, not the count specific one. If an actual number is requested use the :func:`babel.numbers.get_currency_name` function. >>> Locale('en').currencies['COP'] u'Colombian Peso' >>> Locale('de', 'DE').currencies['COP'] u'Kolumbianischer Peso'
Locale patterns for currency number formatting. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').currency_formats['standard'] <NumberPattern u'\xa4#,##0.00'> >>> Locale('en', 'US').currency_formats['accounting'] <NumberPattern u'\xa4#,##0.00;(\xa4#,##0.00)'>
Mapping of currency codes to symbols. >>> Locale('en', 'US').currency_symbols['USD'] u'$' >>> Locale('es', 'CO').currency_symbols['USD'] u'US$'
Locale patterns for date formatting. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').date_formats['short'] <DateTimePattern u'M/d/yy'> >>> Locale('fr', 'FR').date_formats['long'] <DateTimePattern u'd MMMM y'>
Locale patterns for datetime formatting. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en').datetime_formats['full'] u'{1}, {0}' >>> Locale('th').datetime_formats['medium'] u'{1} {0}'
Locale patterns for formatting parts of a datetime. >>> Locale('en').datetime_skeletons['MEd'] <DateTimePattern u'E, M/d'> >>> Locale('fr').datetime_skeletons['MEd'] <DateTimePattern u'E dd/MM'> >>> Locale('fr').datetime_skeletons['H'] <DateTimePattern u"HH 'h'">
Locale display names for various day periods (not necessarily only AM/PM). These are not meant to be used without the relevant `day_period_rules`.
Locale patterns for decimal number formatting. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').decimal_formats[None] <NumberPattern u'#,##0.###'>
The english display name of the locale. >>> Locale('de').english_name u'German' >>> Locale('de', 'DE').english_name u'German (Germany)' :type: `unicode`
Locale display names for eras. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').eras['wide'][1] u'Anno Domini' >>> Locale('en', 'US').eras['abbreviated'][0] u'BC'
The first day of a week, with 0 being Monday. >>> Locale('de', 'DE').first_week_day 0 >>> Locale('en', 'US').first_week_day 6
Locale patterns for interval formatting. .. note:: The format of the value returned may change between Babel versions. How to format date intervals in Finnish when the day is the smallest changing component: >>> Locale('fi_FI').interval_formats['MEd']['d'] [u'E d. – ', u'E d.M.'] .. seealso:: The primary API to use this data is :py:func:`babel.dates.format_interval`. :rtype: dict[str, dict[str, list[str]]]
Mapping of language codes to translated language names. >>> Locale('de', 'DE').languages['ja'] u'Japanisch' See `ISO 639 <http://www.loc.gov/standards/iso639-2/>`_ for more information.
Patterns for generating lists .. note:: The format of the value returned may change between Babel versions. >>> Locale('en').list_patterns['standard']['start'] u'{0}, {1}' >>> Locale('en').list_patterns['standard']['end'] u'{0}, and {1}' >>> Locale('en_GB').list_patterns['standard']['end'] u'{0} and {1}'
Localized names for various measurement systems. >>> Locale('fr', 'FR').measurement_systems['US'] u'am\xe9ricain' >>> Locale('en', 'US').measurement_systems['US'] u'US'
Locale display names for meta time zones. Meta time zones are basically groups of different Olson time zones that have the same GMT offset and daylight savings time. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').meta_zones['Europe_Central']['long']['daylight'] u'Central European Summer Time' .. versionadded:: 0.9
The minimum number of days in a week so that the week is counted as the first week of a year or month. >>> Locale('de', 'DE').min_week_days 4
Symbols used in number formatting. .. note:: The format of the value returned may change between Babel versions. >>> Locale('fr', 'FR').number_symbols['decimal'] u','
Plural rules for the locale. >>> Locale('en').ordinal_form(1) 'one' >>> Locale('en').ordinal_form(2) 'two' >>> Locale('en').ordinal_form(3) 'few' >>> Locale('fr').ordinal_form(2) 'other' >>> Locale('ru').ordinal_form(100) 'other'
Locale patterns for percent number formatting. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').percent_formats[None] <NumberPattern u'#,##0%'>
Plural rules for the locale. >>> Locale('en').plural_form(1) 'one' >>> Locale('en').plural_form(0) 'other' >>> Locale('fr').plural_form(0) 'one' >>> Locale('ru').plural_form(100) 'many'
Locale display names for quarters. >>> Locale('de', 'DE').quarters['format']['wide'][1] u'1. Quartal'
Locale patterns for scientific number formatting. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').scientific_formats[None] <NumberPattern u'#E0'>
Mapping of script codes to translated script names. >>> Locale('en', 'US').scripts['Hira'] u'Hiragana' See `ISO 15924 <http://www.evertype.com/standards/iso15924/>`_ for more information.
Mapping of script codes to translated script names. >>> Locale('es', 'CO').territories['DE'] u'Alemania' See `ISO 3166 <http://www.iso.org/iso/en/prods-services/iso3166ma/>`_ for more information.
The text direction for the language in CSS short-hand form. >>> Locale('de', 'DE').text_direction 'ltr' >>> Locale('ar', 'SA').text_direction 'rtl'
Locale patterns for time formatting. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').time_formats['short'] <DateTimePattern u'h:mm a'> >>> Locale('fr', 'FR').time_formats['long'] <DateTimePattern u'HH:mm:ss z'>
Locale display names for time zones. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').time_zones['Europe/London']['long']['daylight'] u'British Summer Time' >>> Locale('en', 'US').time_zones['America/St_Johns']['city'] u'St. John’s'
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.
Mapping of script codes to translated script names. >>> Locale('de', 'DE').variants['1901'] u'Alte deutsche Rechtschreibung'