class documentation

class Locale: (source)

View In Hierarchy

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_display_name Return the display name of the locale using the given locale.
Method get_language_name Return the language of this locale in the given locale.
Method get_script_name Return the script name in the given locale.
Method get_territory_name Return the territory name in the given locale.
Class Variable display_name Undocumented
Class Variable language_name Undocumented
Class Variable script_name Undocumented
Class Variable territory_name Undocumented
Instance Variable language Undocumented
Instance Variable modifier Undocumented
Instance Variable script Undocumented
Instance Variable territory Undocumented
Instance Variable variant Undocumented
Property character_order The text direction for the language.
Property compact_currency_formats Locale patterns for compact currency number formatting.
Property compact_decimal_formats 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_formats Locale patterns for currency number formatting.
Property currency_symbols Mapping of currency codes to symbols.
Property date_formats Locale patterns for date formatting.
Property datetime_formats Locale patterns for datetime formatting.
Property datetime_skeletons Locale patterns for formatting parts of a datetime.
Property day_period_rules Day period rules for the locale. Used by `get_period_id`.
Property day_periods Locale display names for various day periods (not necessarily only AM/PM).
Property days Locale display names for weekdays.
Property decimal_formats Locale patterns for decimal number formatting.
Property english_name The english display name of the locale.
Property eras Locale display names for eras.
Property first_week_day The first day of a week, with 0 being Monday.
Property interval_formats Locale patterns for interval formatting.
Property languages Mapping of language codes to translated language names.
Property list_patterns Patterns for generating lists
Property measurement_systems Localized names for various measurement systems.
Property meta_zones Locale display names for meta time zones.
Property min_week_days 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 Symbols used in number formatting.
Property ordinal_form Plural rules for the locale.
Property percent_formats Locale patterns for percent number formatting.
Property periods Locale display names for day periods (AM/PM).
Property plural_form Plural rules for the locale.
Property quarters Locale display names for quarters.
Property scientific_formats 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_direction The text direction for the language in CSS short-hand form.
Property time_formats Locale patterns for time formatting.
Property time_zones Locale display names for time zones.
Property unit_display_names Display names for units of measurement.
Property variants Mapping of script codes to translated script names.
Property weekend_end The day the weekend ends, with 0 being Monday.
Property weekend_start The day the weekend starts, with 0 being Monday.
Property zone_formats Patterns related to the formatting of time zones.
Instance Variable __data Undocumented
Property _data Undocumented
@classmethod
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

@classmethod
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

@classmethod
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`

def __eq__(self, other: object) -> bool: (source)

Undocumented

def __hash__(self) -> int: (source)

Undocumented

def __init__(self, language: 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

def __ne__(self, other: object) -> bool: (source)

Undocumented

def __repr__(self) -> str: (source)

Undocumented

def __str__(self) -> str: (source)

Undocumented

def get_display_name(self, locale: (Locale|str)|None = None) -> str|None: (source)

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

def get_language_name(self, locale: (Locale|str)|None = None) -> str|None: (source)

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

def get_script_name(self, locale: (Locale|str)|None = None) -> str|None: (source)

Return the script name in the given locale.

def get_territory_name(self, locale: (Locale|str)|None = None) -> str|None: (source)

Return the territory name in the given locale.

display_name = (source)

Undocumented

language_name = (source)

Undocumented

script_name = (source)

Undocumented

territory_name = (source)

Undocumented

language = (source)

Undocumented

modifier = (source)

Undocumented

Undocumented

territory = (source)

Undocumented

Undocumented

@property
character_order: str = (source)

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'">

Day period rules for the locale. Used by `get_period_id`.

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 display names for weekdays. >>> Locale('de', 'DE').days['format']['wide'][3] u'Donnerstag'

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'

@property
first_week_day: int = (source)

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

@property
min_week_days: int = (source)

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

Locale display names for months. >>> Locale('de', 'DE').months['format']['wide'][10] u'Oktober'

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%'>

Locale display names for day periods (AM/PM). >>> Locale('en', 'US').periods['am'] u'AM'

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.

@property
text_direction: str = (source)

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'

@property
weekend_end: int = (source)

The day the weekend ends, with 0 being Monday. >>> Locale('de', 'DE').weekend_end 6

@property
weekend_start: int = (source)

The day the weekend starts, with 0 being Monday. >>> Locale('de', 'DE').weekend_start 5

Patterns related to the formatting of time zones. .. note:: The format of the value returned may change between Babel versions. >>> Locale('en', 'US').zone_formats['fallback'] u'%(1)s (%(0)s)' >>> Locale('pt', 'BR').zone_formats['region'] u'Hor\xe1rio %s' .. versionadded:: 0.9

Undocumented