言翻譯實(shí)操手冊(cè))
Ghostty 多語(yǔ)言翻譯實(shí)操手冊(cè)【免費(fèi)下載鏈接】ghostty Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/gh/ghostty界面仍是英文翻譯鏈路斷在哪一環(huán)克隆 Ghostty 倉(cāng)庫(kù)并執(zhí)行zig build run后你看到窗口里的菜單、右鍵上下文菜單和對(duì)話框全部是英文切換到中文系統(tǒng)重啟也一樣。打開po/目錄查看通常是兩種情況你所在語(yǔ)言根本沒有.po文件或者文件存在但里面有大量msgstr 空條目。本文走通翻譯貢獻(xiàn)的完整鏈路編輯現(xiàn)有條目、初始化新語(yǔ)言文件、本地驗(yàn)證加載效果、準(zhǔn)備提交 PR。不覆蓋.pot模板提取屬于開發(fā)者側(cè)工作流程見po/README_CONTRIBUTORS.md。macOS 的本地化尚未實(shí)現(xiàn)所有驗(yàn)證請(qǐng)?jiān)?Linux/GTK 平臺(tái)完成。安裝 gettext 并驗(yàn)證前置依賴zig驅(qū)動(dòng)全部構(gòu)建命令用zig version驗(yàn)證。gettextGNU 國(guó)際化工具集提供msginit、msgfmt等命令用gettext -V驗(yàn)證。平臺(tái)安裝方式備注Debian/Ubuntusudo apt install gettextmacOSbrew install gettextkeg-only可能需手動(dòng)加入 PATHWindowsscoop install gettext或winget install gettext文檔明確不推薦 GnuWin32 包成功標(biāo)志是gettext -V輸出形如gettext (GNU gettext-runtime) 0.21.1的版本信息。若缺少 GTK 構(gòu)建環(huán)境按HACKING.md的說(shuō)明補(bǔ)齊。從編輯 .po 到本地驗(yàn)證的完整流程編輯 .po 條目并用 msgfmt 校驗(yàn)格式先選取一個(gè)語(yǔ)言文件例如po/zh_CN.po為空的msgstr填寫譯文同時(shí)更新文件頭部的PO-Revision-Date與Last-Translator元數(shù)據(jù)。完成后用 msgfmtPO 格式校驗(yàn)器驗(yàn)證$ msgfmt --check po/zh_CN.po成功標(biāo)志無(wú)輸出、無(wú)報(bào)錯(cuò)。報(bào)語(yǔ)法錯(cuò)誤時(shí)輸出中的行號(hào)直接指向出錯(cuò)的條目。用 msginit 從模板生成新語(yǔ)言文件語(yǔ)言文件不存在時(shí)從模板生成sr替換為你的 locale 名$ msginit -i po/com.mitchellh.ghostty.pot -l sr -o po/sr.pomsginit會(huì)提示填寫郵箱按提示輸入即可。成功標(biāo)志生成po/sr.po首個(gè)條目為元數(shù)據(jù)段其余條目包含模板里全部msgid。在 i18n_locales.zig 與 CODEOWNERS 注冊(cè)新 locale再編輯兩個(gè)文件讓構(gòu)建系統(tǒng)識(shí)別新語(yǔ)言。在src/os/i18n_locales.zig的 locales 數(shù)組中加入 locale 名對(duì)順序不確定時(shí)放在列表末尾pub const locales [_][:0]const u8{ // ...現(xiàn)有條目... sr, // ← 替換為實(shí)際語(yǔ)言 };然后在CODEOWNERS的# Localization區(qū)塊追加一行團(tuán)隊(duì)名始終包含語(yǔ)言碼與地區(qū)碼/po/zh_CN.po ghostty-org/zh_CN /po/sr.po ghostty-org/sr_RS # ← 替換為實(shí)際團(tuán)隊(duì)成功標(biāo)志zig build通過(guò)且無(wú)與語(yǔ)言相關(guān)的報(bào)錯(cuò)新語(yǔ)言 PR 在至少兩名維護(hù)者認(rèn)領(lǐng)前不會(huì)被合并請(qǐng)?jiān)?PR 描述中說(shuō)明。zig build run 指定 language 本地驗(yàn)證先構(gòu)建再通過(guò)命令行參數(shù)或LANGUAGE環(huán)境變量指定語(yǔ)言運(yùn)行$ zig build run -- --languagesr $ LANGUAGEsr ./zig-out/bin/ghostty成功標(biāo)志菜單、對(duì)話框中出現(xiàn)你填寫的新字符串。在 KDE Plasma 等桌面環(huán)境上默認(rèn)的服務(wù)端裝飾會(huì)隱藏標(biāo)題欄大量字符串追加--window-decorationclient才能看到完整集合。機(jī)制速覽.pot、.po 與 .mo 的分工所有可翻譯字符串被提取到po/com.mitchellh.ghostty.pot該文件不手改CI 會(huì)在每個(gè) PR 上檢查其是否同步。構(gòu)建時(shí)每個(gè).po編譯為二進(jìn)制.mo運(yùn)行時(shí)經(jīng) libintlGNU C 國(guó)際化運(yùn)行庫(kù)加載。src/os/i18n_locales.zig的 locales 數(shù)組是構(gòu)建與運(yùn)行時(shí)共用的語(yǔ)言白名單其順序決定缺少地區(qū)碼時(shí)的回退匹配。高頻坑與排錯(cuò)macOS 上翻譯始終不生效→ macOS 本地化尚未實(shí)現(xiàn) → 改用 Linux/GTK 驗(yàn)證這屬于平臺(tái)缺口而非配置問題。KDE Plasma 上只翻譯了少量字符串→ 服務(wù)端裝飾替代標(biāo)題欄隱藏了頭部菜單 →zig build run -- --window-decorationclient。diff 里混入 X-Generator 版本噪音→ 翻譯工具會(huì)自動(dòng)寫入并更新該字段 → 提交前刪掉.po元數(shù)據(jù)中的X-Generator行。省略號(hào)被譯成三個(gè)句點(diǎn)→ 英文源串使用省略號(hào)字符…而非...→ 直接從msgid中復(fù)制…。--language參數(shù)疑似無(wú)效→zig build run之后程序參數(shù)必須跟在--之后 →zig build run -- --languagesr。延伸入口完成首個(gè)翻譯 PR 之后還可以做這三件事加入對(duì)應(yīng)語(yǔ)言的本地化團(tuán)隊(duì)成為CODEOWNERS中的維護(hù)者職責(zé)與退出方式見po/README_TRANSLATORS.md的 Localization teams 一節(jié)。上游新增字符串后你會(huì)收到模板同步的 PR同步機(jī)制描述在po/README_CONTRIBUTORS.md。PR 標(biāo)題建議使用i18n: update sr translations這類格式合并后會(huì)出現(xiàn)在版本說(shuō)明中。po/下的翻譯文件是所有 locale 貢獻(xiàn)的唯一入口模板與譯文保持同步這條鏈路就能持續(xù)運(yùn)轉(zhuǎn)。【免費(fèi)下載鏈接】ghostty Ghostty is a fast, feature-rich, and cross-platform terminal emulator that uses platform-native UI and GPU acceleration.項(xiàng)目地址: https://gitcode.com/GitHub_Trending/gh/ghostty創(chuàng)作聲明:本文部分內(nèi)容由AI輔助生成(AIGC),僅供參考