如何在python控制台中列出所有可用的Windows语言环境?

时间:2013-10-31 14:21:46

标签: python locale

在Linux上,我们可以使用locale -a查看可用的语言环境列表。

$ locale -a
C
C.UTF-8
en_US.utf8
POSIX 

是否可以在 windows 的python控制台上执行相同的操作?

当您尝试执行locale.setlocale(locale.LC_ALL, '???')并且根本不知道区域设置值的名称时,这可能很方便。

5 个答案:

答案 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