首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >【Rust GUI开发入门】编写一个本地音乐播放器(12. 国际化应用-多语言支持)

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

原创
作者头像
用户11855011
发布2025-09-30 23:55:39
发布2025-09-30 23:55:39
590
举报

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

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

i18n.png
i18n.png

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

就像这样:

at-tr.png
at-tr.png

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文件

poedit.png
poedit.png

翻译完成后,保存生成的.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");

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 使用@tr修饰.slint中的字面量
  • 2. 提取要翻译的字符串
  • 3. 使用Poedit翻译.pot文件
  • 4. 静态编译到可执行文件中
  • 5. 使用Rust API动态选择语言
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档