2 个版本
0.1.1 | 2021 年 3 月 29 日 |
---|---|
0.1.0 | 2021 年 3 月 28 日 |
215 在 国际化 (i18n) 中
12KB
287 行(不包括注释)
Doki System Fluent
Doki 使用 fluent 进行本地化,
// in notedown
// config.language is current language
\locale::SOME_FILED("title", lang=config.language)
// in template
<locale::SOME_FILED default="title" lang=config.language/>
以下是一些辅助库
- fluent_fmt: 用于配置 fluent
ftl
文件的格式化器。 - fluent_missing: 比较并查找语言中缺失的字段。
Fluent 格式化器
Cli
使用 doki locale fmt
调用
Lib
use fluent_fmt::FluentFormatter;
use fluent_syntax::parser::parse;
#[test]
fn parsing() {
let mut ctx = FluentFormatter::default();
let ftl = r#"
### Resource Level Comment
### * Resource Level Comment2
### * Resource Level Comment3
# This is a message comment
time-elapsed = Time elapsed: {
NUMBER($duration, maximumFractionDigits: 0)
}s.
.placeholder = [email protected]
.aria-label = Login input value
.title = Type your login email
# Complex things are possible.
shared-photos =
{$userName} {$photoCount ->
[one] added a new photo
*[other] added {
$photoCount
} new photos
} to {
$userGender ->
[male] his stream
[female] her stream
*[other] their stream
}.
"#;
let out = parse(ftl).unwrap();
// println!("{:#?}", out);
println!("{}", ctx.pretty_print(out).unwrap())
}
Fluent 缺失
Cli
使用 doki locale mis
调用
Lib
依赖项
~0.4–1.5MB
~32K 行(约额外的代码行数)