Rust本地化实现 —— fluent

Fluent是一种新的I18n实现规范。在Rust中有实现fluent-rs项目。本篇介绍以这种技术实现本地化。

文件结构:

message.ftl:

hello = 您好!世界!

Cargo.toml:

[package]
name = "fluentSample"
version = "0.1.0"
authors = ["许阳 <mksword@1126.com>"]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
fluent = "0.10.2"
fluent-resmgr = "0.0.3"
unic-langid = "0.8.0"

main.rs:

use fluent::{FluentBundle, FluentValue, FluentResource, FluentArgs};
use fluent_resmgr::resource_manager::ResourceManager;
use unic_langid::LanguageIdentifier;

fn main() {
    let mgr = ResourceManager::new("./resources/{locale}/{res_id}".into());
    let langid: LanguageIdentifier = "zh-CN".parse().expect("aa");
    let locales = vec![langid.into()];
    let resources = vec![ "message.ftl".into()];
    let bundle = mgr.get_bundle(locales, resources);
    let value = bundle.get_message("hello").unwrap();
    let pattern = value.value.expect("ddd");
    let mut errors = vec![];
    let msg = bundle.format_pattern(&pattern, None, &mut errors);
    println!("{}", msg);
}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值