首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将语言代码与该语言为官方语言或常用语言的国家/地区匹配

将语言代码与该语言为官方语言或常用语言的国家/地区匹配
EN

Stack Overflow用户
提问于 2010-04-21 13:47:36
回答 5查看 6.5K关注 0票数 7

有没有python库可以获取特定语言代码的国家/地区列表,其中该代码是官方或常用语言?

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

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2010-04-21 14:02:13

pycountry (认真的)。您可以从Package Index获得它。

票数 -2
EN

Stack Overflow用户

发布于 2014-03-05 23:59:18

尽管有公认的答案,但据我所知,在pycountry底层的xml文件中没有一个包含将语言映射到国家的方法。它包含语言及其iso代码的列表,国家及其iso代码的列表,以及其他有用的东西,但不包括这些。

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

所以我得自己去拿。

代码语言:javascript
复制
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

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

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

代码语言:javascript
复制
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']
票数 18
EN

Stack Overflow用户

发布于 2010-06-06 07:38:01

去找巴别包。对于每个支持的语言环境,它都有一个pickle文件。要获取所有语言环境的列表,请参阅localedata模块中的list()函数。然后编写一些代码,将语言环境划分为(语言、国家等)等

票数 7
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2680619

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档