是否有任何方法可以利用 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/