尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Ghostty 多语言翻译实操手册

Ghostty 多语言翻译实操手册 Ghostty 多语言翻译实操手册【免费下载链接】ghostty Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.项目地址: https://gitcode.com/GitHub_Trending/gh/ghostty界面仍是英文翻译链路断在哪一环克隆 Ghostty 仓库并执行zig build run后你看到窗口里的菜单、右键上下文菜单和对话框全部是英文切换到中文系统重启也一样。打开po/目录查看通常是两种情况你所在语言根本没有.po文件或者文件存在但里面有大量msgstr 空条目。本文走通翻译贡献的完整链路编辑现有条目、初始化新语言文件、本地验证加载效果、准备提交 PR。不覆盖.pot模板提取属于开发者侧工作流程见po/README_CONTRIBUTORS.md。macOS 的本地化尚未实现所有验证请在 Linux/GTK 平台完成。安装 gettext 并验证前置依赖zig驱动全部构建命令用zig version验证。gettextGNU 国际化工具集提供msginit、msgfmt等命令用gettext -V验证。平台安装方式备注Debian/Ubuntusudo apt install gettextmacOSbrew install gettextkeg-only可能需手动加入 PATHWindowsscoop install gettext或winget install gettext文档明确不推荐 GnuWin32 包成功标志是gettext -V输出形如gettext (GNU gettext-runtime) 0.21.1的版本信息。若缺少 GTK 构建环境按HACKING.md的说明补齐。从编辑 .po 到本地验证的完整流程编辑 .po 条目并用 msgfmt 校验格式先选取一个语言文件例如po/zh_CN.po为空的msgstr填写译文同时更新文件头部的PO-Revision-Date与Last-Translator元数据。完成后用 msgfmtPO 格式校验器验证$ msgfmt --check po/zh_CN.po成功标志无输出、无报错。报语法错误时输出中的行号直接指向出错的条目。用 msginit 从模板生成新语言文件语言文件不存在时从模板生成sr替换为你的 locale 名$ msginit -i po/com.mitchellh.ghostty.pot -l sr -o po/sr.pomsginit会提示填写邮箱按提示输入即可。成功标志生成po/sr.po首个条目为元数据段其余条目包含模板里全部msgid。在 i18n_locales.zig 与 CODEOWNERS 注册新 locale再编辑两个文件让构建系统识别新语言。在src/os/i18n_locales.zig的 locales 数组中加入 locale 名对顺序不确定时放在列表末尾pub const locales [_][:0]const u8{ // ...现有条目... sr, // ← 替换为实际语言 };然后在CODEOWNERS的# Localization区块追加一行团队名始终包含语言码与地区码/po/zh_CN.po ghostty-org/zh_CN /po/sr.po ghostty-org/sr_RS # ← 替换为实际团队成功标志zig build通过且无与语言相关的报错新语言 PR 在至少两名维护者认领前不会被合并请在 PR 描述中说明。zig build run 指定 language 本地验证先构建再通过命令行参数或LANGUAGE环境变量指定语言运行$ zig build run -- --languagesr $ LANGUAGEsr ./zig-out/bin/ghostty成功标志菜单、对话框中出现你填写的新字符串。在 KDE Plasma 等桌面环境上默认的服务端装饰会隐藏标题栏大量字符串追加--window-decorationclient才能看到完整集合。机制速览.pot、.po 与 .mo 的分工所有可翻译字符串被提取到po/com.mitchellh.ghostty.pot该文件不手改CI 会在每个 PR 上检查其是否同步。构建时每个.po编译为二进制.mo运行时经 libintlGNU C 国际化运行库加载。src/os/i18n_locales.zig的 locales 数组是构建与运行时共用的语言白名单其顺序决定缺少地区码时的回退匹配。高频坑与排错macOS 上翻译始终不生效→ macOS 本地化尚未实现 → 改用 Linux/GTK 验证这属于平台缺口而非配置问题。KDE Plasma 上只翻译了少量字符串→ 服务端装饰替代标题栏隐藏了头部菜单 →zig build run -- --window-decorationclient。diff 里混入 X-Generator 版本噪音→ 翻译工具会自动写入并更新该字段 → 提交前删掉.po元数据中的X-Generator行。省略号被译成三个句点→ 英文源串使用省略号字符…而非...→ 直接从msgid中复制…。--language参数疑似无效→zig build run之后程序参数必须跟在--之后 →zig build run -- --languagesr。延伸入口完成首个翻译 PR 之后还可以做这三件事加入对应语言的本地化团队成为CODEOWNERS中的维护者职责与退出方式见po/README_TRANSLATORS.md的 Localization teams 一节。上游新增字符串后你会收到模板同步的 PR同步机制描述在po/README_CONTRIBUTORS.md。PR 标题建议使用i18n: update sr translations这类格式合并后会出现在版本说明中。po/下的翻译文件是所有 locale 贡献的唯一入口模板与译文保持同步这条链路就能持续运转。【免费下载链接】ghostty Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.项目地址: https://gitcode.com/GitHub_Trending/gh/ghostty创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表