跳转到主要内容

语言代码(bcp47)解析器和验证器。同时公开IANA语言代码数据库

项目描述

Build Status codecov

python-bcp47

bcp47语言代码的验证解析器

数据来自IANA http://www.iana.org/assignments/language-subtag-registry/language-subtag-registry

bcp47规范 https://tools.ietf.org/html/bcp47

阅读材料: https://www.w3.org/International/articles/language-tags/index.en

目前不支持extensionprivate-use标签类型

Python示例

您可以从bcp47对象的dict中读取languagesextlangsscriptsvariantsregionsgrandfatheredsredundants语言标签部分。

它们返回包含IANA数据库信息的OrderedDicts

>>> from bcp47 import bcp47

>>> list(bcp47["languages"].items())[:2]
[('aa', {'Subtag': 'aa', 'Description': ['Afar'], 'Added': '2005-10-16'}), ('ab', {'Subtag': 'ab', 'Description': ['Abkhazian'], 'Added': '2005-10-16', 'Suppress-Script': 'Cyrl'})]

>>>  list(bcp47["regions"].items())[:2]
[('AA', {'Subtag': 'AA', 'Description': ['Private use'], 'Added': '2005-10-16'}), ('AC', {'Subtag': 'AC', 'Description': ['Ascension Island'], 'Added': '2009-07-29'})]
`

您可以通过以下方式创建语言代码标签

>>> tag = bcp47(language="en", region="GB")
>>> tag
<bcp47.code.BCP47Code 'en-GB' />

>>> tag.language
'en'
>>> tag.region
'GB'
>>> str(tag)
'en-GB'

您也可以传递一个stringlistargs来创建标签

>>> bcp47("en-GB")
<bcp47.code.BCP47Code 'en-GB' />

>>> bcp47("en", "GB")
<bcp47.code.BCP47Code 'en-GB' />

使用无效或不认识的参数创建标签会引发BCP47Exception

>>> tag = bcp47(language="NOTALANGUAGE", region="GB")
Traceback (most recent call last):
...
BCP47Exception: Language 'NOTALANGUAGE' not recognized

>>> tag = bcp47("en-NOTAREGION")
Traceback (most recent call last):
...
BCP47Exception: Unrecognized tag part 'NOTAREGION'

项目详情


下载文件

下载适用于您平台的文件。如果您不确定选择哪个,请了解更多关于 安装软件包 的信息。

源分发

python-bcp47-0.0.4.tar.gz (103.0 kB 查看哈希值)

上传时间

构建分发

python_bcp47-0.0.4-py3-none-any.whl (107.1 kB 查看哈希值)

上传时间 Python 3