darktable 中文翻译缺失?3 步修复 GUI 本地化
darktable 中文翻译缺失3 步修复 GUI 本地化【免费下载链接】darktabledarktable is an open source photography workflow application and raw developer项目地址: https://gitcode.com/GitHub_Trending/da/darktable用 darktable 修片时你是否发现界面里中英文混杂darktable 的中文本地化集中在po/zh_CN.po一个文件里翻译缺失、译文生硬、占位符露馅都能按场景定位修复。读完本文你能自己改 po 条目、编译出新的.mo文件还会把改动提交回上游。背景速览darktable 用 gettext 做 GUI 本地化源码里的英文原文汇成msgid各语言译文放在po/目录核心文件就是po/zh_CN.po。构建时po/CMakeLists.txt 中的 CMake 规则会调用msgfmt把每个.po编译成二进制的darktable.mo安装到对应语言的LC_MESSAGES目录程序按系统语言加载。darktable 启动画面界面文字均可在 po/zh_CN.po 中维护分场景操作界面局部显示英文补齐缺失的中文翻译确认这个现象某个面板或菜单是英文而同一界面其他文字已是中文通常是该条目msgstr为空。执行grep -n -A1 msgid lighttable po/zh_CN.po定位条目把关键词换成你看到的英文。用编辑器打开po/zh_CN.po在空着的那行msgstr 后补上中文。执行msgfmt -v -c po/zh_CN.po -o po/zh_CN.mo重新编译。译文生硬或术语不一致润色已有 msgstr确认这个现象文字是中文但读着别扭或同一术语在不同面板里译法不一。搜到对应msgid查看#:开头的注释行确认源码位置如../src/gui/preferences.c。修改msgstr措辞%s、%d等占位符的数量与顺序必须和原文一致。重新执行 msgfmt 编译重启 darktable 对照检查。出现 %s 或数字错位核对占位符与复数形式确认这个现象按钮或提示里直接露出%s、%1$d或数量位置不对。找到对应条目核对译文占位符数量是否与原文相同。原文含复数msgid[0]/msgid[1]时中文按Plural-Forms: nplurals1只保留一种形式。执行msgfmt --check-format -o /dev/null po/zh_CN.po无警告即格式正确。整屏英文检查语言加载路径与重启确认这个现象整个 darktable 全英文而po/zh_CN.po里翻译齐全说明问题在加载环节而非翻译本身。确认系统语言为简体中文darktable 跟随系统语言加载对应翻译。包管理器或 AppImage 安装时译文随包分发改仓库 po 不生效。刚改过文件的话先彻底退出 darktable 再重新启动。验证与排错darktable 中文翻译不生效的原因改完先做两步验证执行cmake --build build --target locales自建场景确认编译无报错再用msgunfmt po/zh_CN.mo | head把二进制译文转回可读文本搜到刚改的词条即说明新.mo已包含改动最后启动 darktable 看对应面板。改了但没生效常见三个原因忘了编译darktable 只加载二进制.mo改完.po不跑msgfmt等于白改。目标版本不对已安装的 darktable 用的是安装目录里的译文与仓库po无关。没重启进程会缓存已加载的翻译必须完全退出再启动。macOS 安装界面安装包自带的中文本地化译文与仓库 po 目录相互独立给上游贡献修复执行git clone https://gitcode.com/GitHub_Trending/da/darktable基于默认分支新建分支。修改po/zh_CN.po对应条目保持占位符一致并用msgfmt -v -c确认无错误。推送分支并提交 PR正文写清修复了哪些条目及修改前后对照。中文界面的顺滑来自社区一次次小小的翻译提交。拿不准的条目去项目社区提问或参考 po 目录里其他语言的写法。【免费下载链接】darktabledarktable is an open source photography workflow application and raw developer项目地址: https://gitcode.com/GitHub_Trending/da/darktable创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考