【Rust GUI开发入门】编写一个本地音乐播放器(12. 国际化应用-多语言支持)

本系列教程对应的代码已开源在 Github zeedle

本篇文章介绍Slint UI如何为播放器页面添加多语言支持,让你的应用走向国际!Translations | Slint Docs

1. 使用@tr修饰.slint中的字面量

就像这样:

2. 提取要翻译的字符串

打开git bash,输入:

bash 复制代码
find ui -name \*.slint | xargs slint-tr-extractor -o zeedle.pot

此命令会找出ui文件夹下所有的.slint文件,并把这些文件路径作为参数全部传给slint-tr-extractor,后者会提取所有被@tr修饰的字面量到.pot中。

3. 使用Poedit翻译.pot文件

翻译完成后,保存生成的.po文件到lang/语言代码/LC_MESSAGES/zeedle.po

语言代码:

  • 中文简体:zh_CN
  • 西班牙语:es
  • 德语:de

......其余请自行查阅。

4. 静态编译到可执行文件中

build.rs中指定语言目录,跟上面对应,也就是lang

rust 复制代码
fn main() {
    let cfg = slint_build::CompilerConfiguration::new()
        .with_style("fluent".into())
        .with_bundled_translations("lang");
    slint_build::compile_with_config("ui/app.slint", cfg).expect("slint build failed");
}

5. 使用Rust API动态选择语言

可以在用户callback中调用此函数完成UI语言更改:

rust 复制代码
slint::select_bundled_translation(语言代码字面量)
	.expect("failed to set language");
相关推荐
红烧code16 小时前
【Rust GUI开发入门】编写一个本地音乐播放器(4. 绘制按钮组件)
rust·gui·svg·slint
朝阳58118 小时前
使用过程宏实现自动化新增功能
后端·rust
JordanHaidee19 小时前
【Rust GUI开发入门】编写一个本地音乐播放器(8. 从文件中提取歌曲元信息)
rust
清心91521 小时前
Windows系统Rust安装与配置,解决安装慢问题
rust
清心9151 天前
Windows系统Rust安装,自定义安装目录
rust
恒云客1 天前
Rust开发环境配置
开发语言·后端·rust
红烧code2 天前
【Rust GUI开发入门】编写一个本地音乐播放器(1. 主要技术选型&架构设计)
rust·gui·slint·rodio·lofty
JordanHaidee2 天前
【Rust GUI开发入门】编写一个本地音乐播放器(3. UI与后台线程通信)
rust
Source.Liu3 天前
【mdBook】1 安装
笔记·rust·markdown