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.如何添加翻译或修复现有翻译

  1. 从相应的文件夹中获取 Po 文件:
    https://github.com/prusa3d/PrusaSlicer/tree/master/resources/localization
  2. 在 PoEdit 中以“编辑翻译”打开此文件
  3. 将你的更正应用于翻译
  4. 将更改后的 PrusaSlicer.Po 和 PrusaSlicer.Mo(在 PoEdit 中保存 PrusaSlicer.Po 后将自动创建)推送到原始文件夹中。

场景 2.如何添加新的语言支持

  1. 在此处获取文件 PrusaSlicer.pot:
    https://github.com/prusa3d/PrusaSlicer/tree/master/resources/localization
  2. 在 PoEdit 中打开它以“创建新翻译”
  3. 选择翻译语言(例如法语)。
  4. 因此,你将拥有 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 为例)

  1. 为方便起见,请使用此宏 L(s) 创建文件列表。我们有
    https://github.com/prusa3d/PrusaSlicer/tree/master/resources/localization/list.txt.

  2. 使用 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 等)

  3. 如上所述,为你的项目创建 Po 和 Mo 文件。

  4. 要将旧 Po 文件与创建的新 POT 文件中的字符串合并,请使用命令:

        msgmerge -N -o new.po old.po new.pot
    

    当找不到精确匹配时,使用选项 -N 不使用模糊匹配。

  5. 要将旧 Po-FILE 与新 Po-FILE 中的字符串连接起来,请使用命令:

        msgcat -o new.po old.po
    
  6. 使用以下命令创建英语翻译目录:

        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 ”。

  • 如果短语末尾没有点,就不要添加它。如果是这样,那么别忘了:)

  • 在应用中坚持使用相同的术语是有用的(尤其是基本术语,如“灯丝”和类似术语)。保持一致。否则会让用户感到困惑。


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部