在Linux上,我们可以使用locale -a
查看可用的语言环境列表。
$ locale -a
C
C.UTF-8
en_US.utf8
POSIX
是否可以在 windows 的python控制台上执行相同的操作?
当您尝试执行locale.setlocale(locale.LC_ALL, '???')
并且根本不知道区域设置值的名称时,这可能很方便。
答案 0 :(得分:25)
>>> import locale
>>> locale.locale_alias
答案 1 :(得分:8)
您可以在MSDN上查找可用的区域设置名称。
您必须从"语言字符串"中传递长版本。在MSDN列表中作为setlocale
的值。 en_EN
中的locale_alias
等默认L10N短代码一般不起作用。
我已将其中的一部分提取为字典:
LANGUAGES = {
'bg_BG': 'Bulgarian',
'cs_CZ': 'Czech',
'da_DK': 'Danish',
'de_DE': 'German',
'el_GR': 'Greek',
'en_US': 'English',
'es_ES': 'Spanish',
'et_EE': 'Estonian',
'fi_FI': 'Finnish',
'fr_FR': 'French',
'hr_HR': 'Croatian',
'hu_HU': 'Hungarian',
'it_IT': 'Italian',
'lt_LT': 'Lithuanian',
'lv_LV': 'Latvian',
'nl_NL': 'Dutch',
'no_NO': 'Norwegian',
'pl_PL': 'Polish',
'pt_PT': 'Portuguese',
'ro_RO': 'Romanian',
'ru_RU': 'Russian',
'sk_SK': 'Slovak',
'sl_SI': 'Slovenian',
'sv_SE': 'Swedish',
'tr_TR': 'Turkish',
'zh_CN': 'Chinese',
}
答案 2 :(得分:3)
我在python中找到的最丰富的语言环境支持是babel。
请安装:
pip install babel
然后,
import babel
all_ids = babel.localedata.locale_identifiers()
还广泛支持常用术语翻译等。 babel正被用于各种其他包装中。
HTH, 亚历
答案 3 :(得分:1)
此代码段尝试使用locales软件包已知的所有语言环境,并保留不会崩溃的语言环境,即可用。 (在Windows 10上使用Python 3.7.3进行了测试)
import locale
available_locales = []
for l in locale.locale_alias:
try:
locale.setlocale(locale.LC_ALL, l)
available_locales.append(l)
except:
pass
答案 4 :(得分:0)
此代码段适用于在 repl.it(python 3.8.2)、Windows(3.9.1) 和 LSW(3.9.2) 上运行的我:
import locale
available_locales = []
for l in locale.locale_alias.items():
try:
locale.setlocale(locale.LC_ALL, l[1])
available_locales.append(l)
except:
pass