6 个版本 (3 个重大更改)
0.4.0 | 2024年1月15日 |
---|---|
0.3.2 | 2023年4月12日 |
0.3.0 | 2020年2月20日 |
0.2.0 | 2019年12月6日 |
0.1.0 | 2019年11月7日 |
#202 在 模板引擎
23KB
386 行
handlebars-fluent
此 crate 提供了 Handlebars 的 Rust 实现¹,以及 Fluent 国际化框架的辅助函数。
¹ 有关 Handlebars 的 JavaScript 实现的 Fluent 辅助函数,请参阅 handlebars-helper-fluent。
lib.rs
:
Fluent 辅助函数 Handlebars。
此 crate 提供了一个可以加载 Fluent 字符串的 Handlebars 辅助函数。
使用 handlebars 配置 fluent 辅助函数
使用此辅助函数最简单的方法是使用 simple_loader!()
宏
use handlebars_fluent::*;
use handlebars::*;
use serde_json::*;
simple_loader!(create_loader, "./locales/", "en-US");
fn init(handlebars: &mut Handlebars) {
let loader = create_loader();
let helper = FluentHelper::new(loader);
handlebars.register_helper("fluent", Box::new(helper));
}
fn render_page(handlebars: &Handlebars) -> String {
let data = json!({"lang": "zh-CN"});
handlebars.render_template("{{fluent \"foo-bar\"}} baz", &data).unwrap()
}
您应该在某个地方有一个名为 locales/
的文件夹,其中包含一个以语言代码命名的文件夹,包含所有您的 FTL 文件。有关更多选项,请参阅 simple_loader!()
宏。
确保 handlebars::Context
在渲染时有一个顶级 "lang" 字段。
在模板中使用 fluent 辅助函数
提供的主要辅助函数是 {{fluent}}
辅助函数。如果您有以下 Fluent 文件
foo-bar = "foo bar"
placeholder = this has a placeholder { $variable }
您可以使用以下方法在模板中包含字符串
{{fluent "foo-bar"}} <!-- will render "foo bar" -->
{{fluent "placeholder" variable="baz"}} <!-- will render "this has a placeholder baz" -->
您还可以使用 {{fluentparam}}
辅助函数来指定 变量,特别是如果您需要它们多行显示,如下所示
{{#fluent "placeholder"}}
{{#fluentparam "variable"}}
first line
second line
{{/fluentparam}}
{{/fluent}}
可以指定多个 {{fluentparam}}
依赖项
~5.5MB
~106K SLoC