PrusaSclicer 本地化和翻译指南
目录
- 本地化和翻译指南
- 场景 1.如何添加翻译或修复现有翻译
- 场景 2.如何添加新的语言支持
- 场景 3.在向 PrusaSlicer 实现功能时,如何添加新的文本资源
- 场景 4.如何使用 GnuGetText 本地化自己的应用程序(以 PrusaSlicer 为例)
- PrusaSlicer 翻译器的一般指南
文章翻译自官方说明文档 Localization_guide.md
本地化和翻译指南
本指南的目的是介绍如何为 PrusaSlicer 翻译做出贡献。我们使用 GnuGetText 从项目中提取字符串资源,使用 PoEdit 编辑翻译。
这些可以在这里下载:
- https://sourceforge.net/directory/os:windows/?q=gnu+gettext Gnugettext 包包含一组工具,用于从源代码中提取字符串并创建翻译目录。
- https://poedit.net PoEdit 为翻译人员提供了良好的界面。
安装 GnuGetText 后,建议将 gettext/bin 的路径添加到 PATH 变量中。
Gnugettext 的完整手册可以在这里看到:http://www.gnu.org/software/gettext/manual/gettext.html
场景 1.如何添加翻译或修复现有翻译
- 从相应的文件夹中获取 Po 文件:
https://github.com/prusa3d/PrusaSlicer/tree/master/resources/localization - 在 PoEdit 中以“编辑翻译”打开此文件
- 将你的更正应用于翻译
- 将更改后的 PrusaSlicer.Po 和 PrusaSlicer.Mo(在 PoEdit 中保存 PrusaSlicer.Po 后将自动创建)推送到原始文件夹中。
场景 2.如何添加新的语言支持
- 在此处获取文件 PrusaSlicer.pot:
https://github.com/prusa3d/PrusaSlicer/tree/master/resources/localization - 在 PoEdit 中打开它以“创建新翻译”
- 选择翻译语言(例如法语)。
- 因此,你将拥有 fr.Po-包含法语翻译的文件。
注意。翻译完成后,你需要:- 将文件重命名为 PrusaSlicer.Po
- 点击“保存文件”按钮。将立即创建 PrusaSlicer.Mo
- PrusaSlicer.Po 和 PrusaSlicer.Mo 都必须保存在这里:
https://github.com/prusa3d/PrusaSlicer/tree/master/resources/localization/fr (文件夹名称“FR ”表示“法语”-翻译语言)。
场景 3.在向 PrusaSlicer 实现功能时,如何添加新的文本资源
PrusaSlicer 中可用于翻译的每个字符串资源都需要使用 L()宏进行显式标记,如下所示:
auto msg = L("This message to be localized")
要获得翻译文本,请使用所需的宏/函数( _(s) 或 _CHB(s))之一。如果添加新的文件资源,请将其添加到包含宏 L() 的文件列表中
场景 4.如何使用 GnuGetText 本地化自己的应用程序(以 PrusaSlicer 为例)
-
为方便起见,请使用此宏
L(s)创建文件列表。我们有
https://github.com/prusa3d/PrusaSlicer/tree/master/resources/localization/list.txt. -
使用 gnugettext 命令创建模板文件(*.pot):
xgettext --keyword=L --add-comments=TRN --from-code=UTF-8 --debug -o PrusaSlicer.pot -f list.txt使用标志
--from-code=UTF-8指定源字符串采用 UTF-8 编码使用标志--debug正确提取格式化字符串(使用 %d、%s 等) -
如上所述,为你的项目创建 Po 和 Mo 文件。
-
要将旧 Po 文件与创建的新 POT 文件中的字符串合并,请使用命令:
msgmerge -N -o new.po old.po new.pot当找不到精确匹配时,使用选项
-N不使用模糊匹配。 -
要将旧 Po-FILE 与新 Po-FILE 中的字符串连接起来,请使用命令:
msgcat -o new.po old.po -
使用以下命令创建英语翻译目录:
msgen -o new.po old.po请注意,在此目录中,初始文本和翻译的字符串将完全相同。
当你有要翻译的目录时,在 POEDIT 中打开 POT 或 Po 文件并开始翻译。
PrusaSlicer 翻译器的一般指南
-
我们建议使用波埃迪应用程序进行翻译(如上所述)。它将帮助你消除大多数标点错误,并将显示带有“随机”翻译的字符串(如果使用了模糊参数)。
-
要检查翻译后的文本在 UI 元素上的外观,请测试它:)如果使用波埃迪,则只需保存文件。此时,将创建一个 Mo 文件。将其重命名为 PrusaSlicer.Mo,然后就可以运行 PrusaSlicer 了(见上文)。
-
如果你在 PrusaSlicer 中的某个地方看到编码错误(垃圾字符而不是 Unicode),请报告它。这可能不是你翻译的问题,而是软件的错误。
-
查看将在哪些 UI 元素上使用已翻译的短语。特别是如果它是一个按钮,决定翻译是非常重要的,而不是在括号中写替代翻译,因为这将大大增加按钮的宽度,这有时是非常不可取的:
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-OaeargRB-1687504867573)(images/long_text_on_button.png)]
-
如果你决定使用自动更正或任何批处理工具,则需要对输出进行非常仔细的校对。这是很容易让它做的改变,打破了事情的大时代。
-
**短语的任何格式部分必须保持不变。**例如,不应更改
%1%为%1 %、不应更改%%为%(表示百分号)等。这将导致应用程序崩溃。 -
请注意空格、换行符(\n)和标点符号。**不要添加额外的换行符。**这对于参数名称尤其重要。
-
参数说明不应包含测量单位。例如,“如果层打印时间少于 ~~n 秒 ~~,则启用 FAN ”
-
对于测量单位,请使用国际单位制。使用“s ”而不是“sec ”。
-
如果短语末尾没有点,就不要添加它。如果是这样,那么别忘了:)
-
在应用中坚持使用相同的术语是有用的(尤其是基本术语,如“灯丝”和类似术语)。保持一致。否则会让用户感到困惑。
本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!
