gpt4 book ai didi

python - 将语言代码与该语言为官方语言或常用语言的国家相匹配

转载 作者:太空狗 更新时间:2023-10-29 22:04:29 25 4
gpt4 key购买 nike

是否有任何 python 库可以获取官方或常用语言的特定语言代码的国家/地区列表?

例如,“fr”的语言代码与 29 个以法语为官方语言的国家以及 8 个常用法语的国家相关联。

最佳答案

尽管已接受答案,但据我所知,pycountry 下的 xml 文件均不包含将语言映射到国家/地区的方法。它包含语言列表及其 iso 代码,国家列表及其 iso 代码,以及其他有用的内容,但不是这些。

同样,Babel 包也很棒,但在研究了一段时间后,我找不到任何方法来列出特定国家/地区的所有 语言。你能做的最好的就是“最有可能”的语言:https://stackoverflow.com/a/22199367/202168

所以我不得不自己去拿...

import lxml.etree
import urllib.request

def get_territory_languages():
url = "https://raw.githubusercontent.com/unicode-org/cldr/master/common/supplemental/supplementalData.xml"
langxml = urllib.request.urlopen(url)
langtree = lxml.etree.XML(langxml.read())

territory_languages = {}
for t in langtree.find('territoryInfo').findall('territory'):
langs = {}
for l in t.findall('languagePopulation'):
langs[l.get('type')] = {
'percent': float(l.get('populationPercent')),
'official': bool(l.get('officialStatus'))
}
territory_languages[t.get('type')] = langs
return territory_languages

您可能希望将此结果存储在一个文件中,而不是每次需要时都通过网络调用。

此数据集也包含“非官方”语言,您可能不想包含这些语言,这里有更多示例代码:

TERRITORY_LANGUAGES = get_territory_languages()

def get_official_locale_ids(country_code):
country_code = country_code.upper()
langs = TERRITORY_LANGUAGES[country_code].items()
# most widely-spoken first:
langs.sort(key=lambda l: l[1]['percent'], reverse=True)
return [
'{lang}_{terr}'.format(lang=lang, terr=country_code)
for lang, spec in langs if spec['official']
]

get_official_locale_ids('es')
>>> ['es_ES', 'ca_ES', 'gl_ES', 'eu_ES', 'ast_ES']

关于python - 将语言代码与该语言为官方语言或常用语言的国家相匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2680619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com