import locale # удалено в Python 3.13 locale.getdefaultlocale([envvars])
envvars - необязательный список переменных среды окружения.('lang_code', 'encoding').Удалено в версии Python 3.13. Вместо этого нужно использовать функции
locale.setlocale(),locale.getpreferredencoding(False)иlocale.getlocale().
Функция 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')
>>> 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 '