#标签 #本地化 #语言 #定义 #脚本 #地区

language-tag

处理按照 BCP47 规范定义的语言标记(例如 'en-US', 'fr-FR', 'zh-cmn-Hans-CN')

1 个不稳定版本

使用旧的 Rust 2015

0.9.0 2018年2月23日

#263国际化 (i18n)


2 个包 中使用

MIT 许可证

30KB
670

此包可以处理按照 BCP47 标准定义的语言标记。

语言标记是描述文化的小字符串(包括语言、脚本、地区等)。例如:"en-US"(在美国使用的英语),"fr-FR"(在法国使用的法语),"zh-cmn-Hans-CN"(在中国使用的简体中文,普通话,简体脚本)。

要使用此包,请在您的 Cargo.toml 中添加相关依赖。

[dependencies]
language-tag = "0.9"

然后在您的包根目录中加载库

extern crate language_tag;

示例

此包支持按照标准定义的 LanguageTag,但您可能主要对 LangTag 感兴趣(名称来自标准)。

查询解析的语言标记

use language_tag::*;
use std::str::FromStr;

let langtag = LangTag::from_str("zh-cmn-Hans-CN").unwrap();

assert!(langtag.get_language().get_mainlang() == "zh");
assert!(langtag.get_script().unwrap().str() == "Hans");
assert!(langtag.get_region().unwrap().str() == "CN");

使用 LangTagBuilder

use language_tag::*;

let langtag = LangTagBuilder::new("zh")
                .language_extension("cmn")
                .script("Hans")
                .region("CN")
                .build().unwrap();

assert!(langtag.get_language().get_mainlang() == "zh");
assert!(langtag.get_script().unwrap().str() == "Hans");
assert!(langtag.get_region().unwrap().str() == "CN");

待办事项

  • 更好的错误报告。
  • 完成文档

无运行时依赖

~12KB