【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");
相关推荐
techdashen1 小时前
Rust 项目管理动态 — 2026 年 3 月
前端·人工智能·rust
techdashen1 小时前
Rust 项目管理动态 — 2026 年 2 月
开发语言·后端·rust
阿正的梦工坊11 小时前
【Rust】02-变量、不可变性与基础类型
开发语言·后端·rust
阿正的梦工坊11 小时前
【Rust】08-集合类型、字符串与迭代器入门
开发语言·rust·c#
阿正的梦工坊14 小时前
【Rust】09-泛型、Trait 与生命周期基础
开发语言·rust·c#
阿正的梦工坊15 小时前
【Rust】07-错误处理:Option、Result 与 ? 运算符
开发语言·算法·rust
Jurio.16 小时前
开源 Codex Sticky:在终端 Codex CLI 长对话中始终固定底部输入框
linux·rust·github·开源软件·codex·codex cli
阿正的梦工坊18 小时前
【Rust】04-借用、引用与切片
java·数据库·rust
福大大架构师每日一题18 小时前
2026年6月TIOBE编程语言排行榜,Go语言排名第13,Rust语言排名12。关于Rust已进入平台期的报道似乎为时过早。
开发语言·golang·rust
咸甜适中19 小时前
rust语言学习笔记Trait(十六)Error(错误)
笔记·学习·rust