Python 附魔语言描述
Python Enchant language descriptions
我正在使用 pyenchant 模块。我无法在他们的文档和其他任何地方找到 enchant.list_languages() 中列出的语言的描述。这个函数returns一个标签列表,我需要每个语言的人性化描述。
import enchant
enchant.list_languages()
['af', 'am', 'ar', 'bg', 'bn', 'br', 'ca', 'cs', 'cy', 'da', 'de', 'de_AT', 'de_CH', 'de_DE', 'el', 'en', 'en_CA', 'en_GB', 'en_US', 'eo', 'es', 'et', 'eu', 'fa', 'fo', 'fr', 'fr_CH', 'fr_FR', 'ga', 'gl', 'gu', 'he', 'hi', 'hr', 'hsb', 'hu', 'hy', 'id', 'is', 'it', 'kk', 'kn', 'ku', 'lt', 'lv', 'ml', 'mr', 'nb', 'nl', 'nn', 'no', 'nr', 'ns', 'or', 'pa', 'pl', 'pt_BR', 'pt_PT', 'ro', 'ru', 'sk', 'sk_SK', 'sl', 'st', 'sv', 'ta', 'te', 'tl', 'tl_PH', 'tn', 'ts', 'uk', 'uz', 'xh', 'zu']
如何将所有这些标签翻译成这些语言的人性化名称('English'、'Spanish'、'Italian' 等)? pyenchant 或其他库中是否有函数可以完成此操作?
非常感谢!!
您可以使用 pycountry:
要获取语言名称,您可以使用:
pycountry.languages.get(alpha_2=language)
其中 language
是一种热情的语言。
编辑
以下是打印 pyenchant 语言名称(和国家/地区)的方法:
import pycountry
enchant_codes = [
"af", "am", "ar", "bg", "bn", "br", "ca", "cs", "cy", "da",
"de", "de_AT", "de_CH", "de_DE", "el", "en", "en_CA", "en_GB", "en_US", "eo",
"es", "et", "eu", "fa", "fo", "fr", "fr_CH", "fr_FR", "ga", "gl", "gu",
"he", "hi", "hr", "hsb", "hu", "hy", "id", "is", "it", "kk",
"kn", "ku", "lt", "lv", "ml", "mr", "nb", "nl", "nn", "no", "nr",
"ns", "or", "pa", "pl", "pt_BR", "pt_PT", "ro", "ru", "sk", "sk_SK", "sl",
"st", "sv", "ta", "te", "tl", "tl_PH", "tn", "ts", "uk", "uz", "xh", "zu",
]
for code in enchant_codes:
lang_code, _, country_code = code.partition("_")
if len(lang_code) == 2:
language = pycountry.languages.get(alpha_2=lang_code)
elif len(lang_code) == 3:
language = pycountry.languages.get(alpha_3=lang_code)
else:
language = None
language_name = language.name if language else "(unknown language)"
country = pycountry.countries.get(alpha_2=country_code) if country_code else None
country_name = country.name if country else ""
print(code, "=>", language_name, "/", country_name)
我正在使用 pyenchant 模块。我无法在他们的文档和其他任何地方找到 enchant.list_languages() 中列出的语言的描述。这个函数returns一个标签列表,我需要每个语言的人性化描述。
import enchant
enchant.list_languages()
['af', 'am', 'ar', 'bg', 'bn', 'br', 'ca', 'cs', 'cy', 'da', 'de', 'de_AT', 'de_CH', 'de_DE', 'el', 'en', 'en_CA', 'en_GB', 'en_US', 'eo', 'es', 'et', 'eu', 'fa', 'fo', 'fr', 'fr_CH', 'fr_FR', 'ga', 'gl', 'gu', 'he', 'hi', 'hr', 'hsb', 'hu', 'hy', 'id', 'is', 'it', 'kk', 'kn', 'ku', 'lt', 'lv', 'ml', 'mr', 'nb', 'nl', 'nn', 'no', 'nr', 'ns', 'or', 'pa', 'pl', 'pt_BR', 'pt_PT', 'ro', 'ru', 'sk', 'sk_SK', 'sl', 'st', 'sv', 'ta', 'te', 'tl', 'tl_PH', 'tn', 'ts', 'uk', 'uz', 'xh', 'zu']
如何将所有这些标签翻译成这些语言的人性化名称('English'、'Spanish'、'Italian' 等)? pyenchant 或其他库中是否有函数可以完成此操作?
非常感谢!!
您可以使用 pycountry:
要获取语言名称,您可以使用:
pycountry.languages.get(alpha_2=language)
其中 language
是一种热情的语言。
编辑
以下是打印 pyenchant 语言名称(和国家/地区)的方法:
import pycountry
enchant_codes = [
"af", "am", "ar", "bg", "bn", "br", "ca", "cs", "cy", "da",
"de", "de_AT", "de_CH", "de_DE", "el", "en", "en_CA", "en_GB", "en_US", "eo",
"es", "et", "eu", "fa", "fo", "fr", "fr_CH", "fr_FR", "ga", "gl", "gu",
"he", "hi", "hr", "hsb", "hu", "hy", "id", "is", "it", "kk",
"kn", "ku", "lt", "lv", "ml", "mr", "nb", "nl", "nn", "no", "nr",
"ns", "or", "pa", "pl", "pt_BR", "pt_PT", "ro", "ru", "sk", "sk_SK", "sl",
"st", "sv", "ta", "te", "tl", "tl_PH", "tn", "ts", "uk", "uz", "xh", "zu",
]
for code in enchant_codes:
lang_code, _, country_code = code.partition("_")
if len(lang_code) == 2:
language = pycountry.languages.get(alpha_2=lang_code)
elif len(lang_code) == 3:
language = pycountry.languages.get(alpha_3=lang_code)
else:
language = None
language_name = language.name if language else "(unknown language)"
country = pycountry.countries.get(alpha_2=country_code) if country_code else None
country_name = country.name if country else ""
print(code, "=>", language_name, "/", country_name)