localization - gettext 套件中的工具可以通过模糊匹配来统一源字符串?

标签 localization internationalization gettext

是否有任何方法可以利用 gettext 套件中的工具对一个 PO 文件中的源字符串进行模糊匹配之类的操作,以查找几乎相同的字符串?这似乎是一个有用的质量检查,可以改善来源。示例:

#: my_file
msgid "Sorry, something went wrong"
msgstr ""

#: some_other_file
msgid "Sorry, something went wrong."
msgstr ""

#: yet_another_file
msgid "Sorry, something is wrong"
msgstr ""

这些字符串实际上是相同的,并且可以更改源代码以在每个实例中使用相同的消息。这将减少本地化工作并使 UI 更加连贯。在我看来,msgmerge 中的模糊匹配算法应该已经非常适合识别这些实例。但我找不到明显的方法来做到这一点。

最佳答案

您不想在没有人工监督的情况下进行任何类型的折叠。 大多数翻译工具都具有该功能,但人类应该验证这种折叠。 由于上下文的原因,您甚至无法对完全相同的字符串执行此操作。

为什么:

  • 按钮(“命令”)的翻译通常与标签和标题(“描述”)不同
    示例:“Print”被翻译为法语“Imprimer”(按钮)或“Impression”(标题)
  • 性别、数字、大小写都会改变翻译。
    示例:将“New”按钮翻译成西类牙语可以得到“Nuovo”(阳性,单数),“Nuevos”(阳性,复数),“Nueva”(阴性,单数)“Nuevas”(阴性,复数) )
  • 同一个词如果有不同的含义,可以有不同的翻译。
    示例:如果“扫描”是关于扫描磁盘(是否有病毒)或扫描一张纸,则“扫描”会有不同的翻译。

因此,如果代价是较低的翻译质量,您不想“神奇地合并字符串”来节省几美分。

关于localization - gettext 套件中的工具可以通过模糊匹配来统一源字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21483854/

相关文章:

localization - 法语格式的 Talend 和数值

ios - Xcode 本地化设置中没有加号或减号按钮

python - Zope 中 Python 脚本的 i18n(受限 python)

java - 按顺序获取所有的JTextField

php - PHP 的语言本地化

java - 在 Spring MVC 应用程序属性文件中使用阿拉伯字符串

javascript - 如何使用 Globalizejs 验证 ICU 消息语法?

git - 版本控制下的 Gettext .po 文件

javascript - 如何使用poedit从js文件生成po文件

ios - 如何更改蓝牙弹出消息语言?