感谢你对翻译 Bazaar 的兴趣!🏷️🗺️💜
一些基本规则:
- 你必须精通你所贡献的语言。
- 严禁使用 LLM 生成译文。如果你这样做,你将被项目作者禁止参与此项目。
- flathub.org 本身就有良好的中文支持,因此 Bazaar 里 Flathub 页面的翻译应当和 flathub.org 高度一致。 即使 flathub.org 中个别翻译可能并不恰当,也请直接采用 flathub.org 的原文。 例如 https://flathub.org/zh-Hans/apps/category/game/subcategories/ArcadeGame 里将 Arcade 翻译为“游乐中心”,虽然实际上是“街机”更合适,但我们依旧选择直接采用“游乐中心”作为翻译
Uninstall 为“卸载”而非“删除” 根据:
❯ flatpak uninstall --help
用法:
flatpak uninstall [选项…] [引用…] - 卸载应用程序或运行时
...Donate 为“捐助”而非“捐赠” 根据 flathub.org
Fork 本项目(以便稍后开启 PR)并克隆仓库。然后确保你的当前目录位于 Bazaar 项目的根目录:
# 将 '...' 替换为你拥有写入权限的 Bazaar Fork 的 URL
git clone ...
cd bazaar完成上述操作后,你可以运行 ./translators.sh 并按照屏幕上的提示进行操作。该脚本会显示当前 po/LINGUAS 的内容。如果一切正确,输入 Y 并按回车。随后脚本会要求你输入语言代码,请输入并回车。脚本现在将生成一个新的 po 文件或更新现有文件,以便所有新的待翻译字符串都可用。
现在,你可以使用文本编辑器或翻译编辑器(POEdit、GTranslator、Lokalize 等)打开 po 文件并开始翻译。完成后,提交你的更改并在 GitHub 上提交 Pull Request(PR)。
完成克隆后,使用 Meson 设置项目,并将 im_a_translator 标志设为 true:
meson setup build -Dim_a_translator=true接下来,进入构建目录:
cd build运行以下命令生成主 pot(Portable Object Template)文件:
meson compile bazaar-pot你可能会看到一堆警告 blp 扩展名未知的输出,可以安全忽略它。
最后,仍然在构建目录内,运行以下命令来更新和/或创建 po(Portable Object)文件:
meson compile bazaar-update-po现在,你可以使用文本编辑器或翻译编辑器(POEdit、GTranslator、Lokalize 等)打开 po 文件并开始翻译。
完成后,提交你的更改并在 GitHub 上提交 PR。请确保只提交与你的翻译相关的文件。
根据上述命令再次生成全新的 .pot 文件(如有必要)。
msgmerge --update --verbose po/zh_CN.po po/bazaar.pot请在 PR 中将上述更新步骤作为一个单独的提交(Commit),以便于代码审查。谢谢!
确保使用简体中文对应的语言代码"zh_CN"!
msgfmt po/zh_CN.po -o bazaar.mo复制 .mo 文件,使 Bazaar 能够识别它:
sudo cp bazaar.mo /var/lib/flatpak/runtime/io.github.kolunmi.Bazaar.Locale/x86_64/stable/active/files/zh/share/zh_CN/LC_MESSAGES/确保先结束 Bazaar 的后台进程,以便应用所需的更改/语言。
killall bazaar覆盖使用的语言并启动 Bazaar:
LANGUAGE=zh_CN flatpak run io.github.kolunmi.Bazaar自动和手动流程都可能生成标记为 fuzzy(模糊)的条目。这意味着对于这些条目,gettext 尝试从现有的翻译中推导结果。某些翻译软件(如 Lokalize)会利用此标记将字符串设为“未审核”,并在条目被标记为完成时移除标记。如果你使用文本编辑器处理 pot 文件,请务必手动删除你认为已完成条目的 fuzzy 标记,否则你的翻译将不会出现在 Bazaar 中。