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);
}

Rust本地化实现 —— fluent相关推荐

  1. 微软亚洲研究院 可视化_如何为亚洲市场本地化手机游戏

    微软亚洲研究院 可视化 With the Asian market rapidly growing, almost every ambitious IT product sooner or later ...

  2. rust python_用于Python程序员的Rust

    rust python Now that Rust 1.0 is out and quite stable, I thought it might be interesting to write an ...

  3. rust主播排行_「Rust日报」2019每周精选 • 第四期

    前言: 从2018年开始,我每天会花1个小时关注Rust社区动态,并且在Rust.CC论坛.tg channel.Steemit.GitHub.语雀订阅都开通了Rust日报,分享我每天的见闻,偶尔也夹 ...

  4. Rust: Native Windows GUI下载、安装、演示入门

    上 github 下载,网址为 https://github.com/gabdube/native-windows-gui. 上面有安装说明.按说明方法,老是提示权限不够.配置了 ssh 公钥证书,仍 ...

  5. [转]为什么你需要近距离接触Rust 1.0

    为什么你需要近距离接触Rust 1.0 经过几年的迭代改进,Rust编程语言日前发布1.0版本.作为一种现代系统语言,Rust从大量语言(如C/C++)中取其精髓,去其糟粕,同时具备底层控制.高性能和 ...

  6. 云原生爱好者周刊:好家伙,Rust 也成立云原生组织了

    云原生一周动态要闻: Fluentbit Operator 正式成为 Fluent 子项目 Kubernetes 1.22 发布 Rust Cloud Native 组织成立 CNCF 宣布 Graf ...

  7. 云原生爱好者周刊:Fluentbit Operator 正式成为 Fluent 子项目

    云原生一周动态要闻: Fluentbit Operator 正式成为 Fluent 子项目 Kubernetes 1.22 发布 Rust Cloud Native 组织成立 CNCF 宣布 Graf ...

  8. 【Rust 日报】2021-07-04 如何在面试中确定 Rust 程序员水平?

    如何在面试中确定 Rust 程序员水平? 对于这个问题,张汉东老师在 RustFriday 飞书群线上沙龙第十三期中进行了分享: 视频:RustFriday 飞书群线上沙龙 第十三期 | [讨论]如何 ...

  9. Rust和C / C ++的跨语言链接时间优化LTO

    Rust和C / C ++的跨语言链接时间优化LTO 链接时间优化(LTO)是LLVM实施整个程序优化的方法.跨语言LTO是Rust编译器中的一项新功能,使LLVM的链接时间优化可以在混合的C / C ...

  10. mfc 应用程序 语言进行本地化

    在软件国际化的今天,资源从代码中独立出来,使在不同语言操作系统下能运行不同语言版本的程序,是很有意义的事. MFC 7.0 及更高版本提供对附属 DLL 的增强支持,该功能有助于创建针对多种语言进行本 ...

最新文章

  1. Tomcat禁用SSLv3和RC4算法
  2. 18个设计精美的旅游及酒店网站案例
  3. Java 8:测试Lambda水
  4. 配置文件上传的Action
  5. Kali Linux 网络扫描秘籍 第四章 指纹识别(三)
  6. mysql 索引修复_mysql数据库索引损坏及修复经验分享
  7. 临时更换swap优先级
  8. ppct各代表什么_股票大盘分时图中白线和黄线各代表什么?/石嘴山 同花顺复盘...
  9. php 未定义偏移,错误php未定义的偏移:2-3-4等
  10. 软件项目管理的基本概念
  11. 微信小程序--瀑布流布局
  12. 1999.00 php,CBA20周年之1999-00赛季-前卫先合并后解散 八一5连冠
  13. oracle 将多列数据合并成一列显示
  14. 人工智能下的中秋祝福
  15. C++ Opencv中Mat的操作
  16. acdsee14.0许可密钥使用方法:
  17. JAVA用一维数组生成福彩双色球中奖号码
  18. 决策智能概念里的风起云涌
  19. mfc: 获取打印机列表
  20. 前端开发:组件之间的传值(父传子、子传父、兄弟组件之间传值)的使用

热门文章

  1. 配置JDK、Tomcat环境、DNK环境
  2. UART0串口编程系列之前奏篇
  3. POJ 1753 Flip Game (当蒟蒻忘记scanf要读回车时,他自闭了
  4. 你们让我推荐的营销管理书籍找到了!
  5. MIPI 系列之 DSI
  6. 工作环境的改善---提高工作效率和工作质量
  7. stc单片机呼吸灯c语言,用51单片机制作呼吸灯
  8. 完美解决Excel复制后粘贴空白的问题
  9. 计算机多媒体技术主要有什么特征,多媒体技术特征有哪些_多媒体技术的关键特性介绍...
  10. Android-图片压缩