Сообщить об ошибке.

Функция getdefaultlocale() модуля locale в Python

Определить настройки локали по умолчанию

Синтаксис:

import locale

# устарело, будет удалено в Python 3.13
locale.getdefaultlocale([envvars])

Параметры:

Возвращаемое значение:

Описание:

Функция getdefaultlocale() модуля locale пытается определить настройки локали по умолчанию и возвращает их в виде кортежа формы ('lang_code', 'encoding').

Согласно POSIX, программа, которая не вызывает перед началом работы функцию locale.setlocale(LC_ALL, ''), запускается с использованием переносимой локали 'C'. Вызов locale.setlocale(LC_ALL, '') позволяет использовать локаль по умолчанию, определенную переменной LANG.

Для обеспечения совместимости с другими платформами опрашиваются не только переменная LANG, но и список переменных, заданных в качестве параметра envvars . Будет найден первый найденный для определения. По умолчанию envvars - путь поиска, используемый в gettext GNU; Значение envvars всегда должно содержать имя переменной "LANG". Путь поиска в GNU gettext содержит LC_ALL, LC_CTYPE, LANG и LANGUAGE в указанном порядке.

>>> import locale
>>> locale.getdefaultlocale(['LC_CTYPE', 'LANG'])
# ('ru_RU', 'UTF-8')

Устарело с Python 3.11 и будет удалено в версии Python 3.13. Вместо этого нужно использовать функции locale.setlocale(), locale.getpreferredencoding(False) и locale.getlocale().

Примеры использования:

>>> import locale
>>> import os
>>> for env_name in ['LC_ALL', 'LC_CTYPE', 'LANG', 'LANGUAGE']:
...     env_set = os.environ.get(env_name, '')
...     print(f'{env_name} = {env_set}')
...
# LC_ALL = 
# LC_CTYPE = 
# LANG = ru_RU.UTF-8
# LANGUAGE = 

>>> def_loc = locale.getdefaultlocale()
>>> locale.setlocale(locale.LC_ALL, def_loc)
# 'ru_RU.UTF-8'
>>> settings = locale.localeconv()
>>> settings['currency_symbol']
'₽'
>>> settings['int_curr_symbol']
'RUB '