7个版本
使用旧的Rust 2015
0.3.0 | 2019年8月22日 |
---|---|
0.2.3 | 2019年7月10日 |
0.2.2 | 2017年4月21日 |
0.2.1 | 2017年1月9日 |
0.1.1 | 2016年12月30日 |
#87 在 操作系统
90,977 每月下载量
在 70 个crate中使用(直接使用14个)
73KB
1K SLoC
locale_config
记住每个线程和进程的本地化配置,并通过检查系统中的用户首选项来初始化这些值。
安装
您可以通过将 locale_config
添加到您的 Cargo 依赖项来依赖此库
[dependencies]
locale_config = "*"
通常不推荐依赖 *
,但在此情况下,重要的是确保不兼容的版本要求不会导致最终二进制文件中包含多个版本,所以我建议在这里使用它,并保证我会保持良好的兼容性。只是请不要在此定义的类型中添加特质,以避免与未来方法的潜在冲突。
使用
通常您会通过本地化crate,如 locale
,间接使用此库。但是,如果您需要与标识符本身进行交互,或者您需要覆盖它,请使用
Locale::current()
在应用中的任何给定点找到您应该使用的值
Locale::set_current()
为当前线程覆盖它
Locale::set_global_default()
为新线程覆盖它
如果您需要访问初始值,您可以在以下位置找到它
Locale::user_default()
该值可能包含特定于各种本地化方面的语言标记,称为类别和回退。 Locale::tags_for
方法将为您选择相关的标记。对于翻译的首选语言,请使用
Locale::current().tags_for("messages")
对于格式化,使用以下类别:数字使用 "numeric"
,日期和时间使用 "time"
,金额使用 "monetary"
,排序使用 "collate"
。
请注意,该软件包本身不提供任何翻译、格式化或排序功能。格式化和排序将由 locale
软件包提供,翻译有多种实现。
请参阅完整文档,网址为 或 github。
支持的系统
-
Unix: 使用 POSIX 标准环境变量
LANG
、LC_*
和LANGUAGES
。这些变量在所有系统上都被识别,并且在大多数系统上具有优先级。 -
Windows: Vista 及更高版本
- 仅使用 Vista 和 Server 2008 可用的 API。
GetUserPreferredUILanguages
仅在桌面应用中可用,但不适用于商店应用。商店应用应具有等效的功能,但我还没有尝试从 Rust 访问它。- 在“区域和语言选项”中进行的对个别区域元素的自定义(如数字、日历、小数点和千位分隔符等)尚未检测到(尚不支持)。
- 尚未经过良好的测试。
-
OS X: 从
NSLocale
读取设置,可以被设置的 Unix 环境变量覆盖。 -
CGI: 如果检测到,将使用环境变量
HTTP_ACCEPT_LANGUAGE
。希望它足够具体,以便在检测到时始终可以使用。
变更日志
0.3.0
- 支持 OS X 的
NSLocale
。感谢 Sophie Tauchert (@999eagle)。
0.2.3
- 尝试在浏览器中的 emscripten 目标中获取区域设置。不幸的是,emscripten 目标在跨平台的同时似乎已损坏,因此它们尚未进行测试。
- 更新到 winapi 0.3。
- 更新到 regex 1.0。
0.2.2
- 更新依赖项:regex 0.2。
0.2.1
- 解析在 Windows 的“区域和语言”对话框中设置的某些覆盖项,例如:分组、小数点和列表分隔符、一周的第一天、12/24 小时制时间、度量系统、(小数)数字系统以及负货币值格式(是否使用括号格式)和日期格式(如果选择了 ISO-8601 变体)。
0.2.0
- 更改错误处理为正确的错误类型。
0.1.1
- 添加了基本的 Windows 支持。
0.1.0
- 初始版本,包含 Unix 和 CGI 支持。
依赖项
~2.2–3.5MB
~55K SLoC