Ale*_*ich 1 translation poedit pot
简而言之,我试图找到一种从新 POT 和现有 PO 文件创建新 PO 文件的方法 - 但我想排除 POT 文件中不存在的任何字符串(及其翻译)。
每次我们更改 cakePHP 站点上的措辞时,我们都会生成一个新的 POT 文件,其中包含站点中的所有可翻译字符串。但是,当我们将其与现有 PO 文件合并(使用 POEdit)时,合并过程仅将 POT 条目添加到 PO 文件中。它不会删除我们不再需要的翻译。我们的 PO 文件中有超过 12k 个不需要的翻译。这让我们的翻译很不高兴。她已经开始只查看网站,然后将翻译发送给我以手动添加,这让我非常不高兴。
我四处寻找可以进行这种破坏性合并的工具,但我还没有成功找到一个。在我开始写一篇之前……我错过了什么吗?
(抱歉,如果这属于不同的交易所,如果有人告诉我是哪一个,我会将这篇文章移至更好的交易所)。
您所描述的“破坏性”合并是 gettext 中的标准、正常合并操作,也是每个人都想要的 \xe2\x80\x94 您必须不遗余力地完成非破坏性版本,而我甚至不知道如何。
\n\n由此可以得出结论:(1)您必须执行一些上面未描述的奇怪步骤,或者(2)您的 POT 文件包含的内容比您想象的要多(例如,因为您附加到它而不是替换它) ,或 (3) 您或您使用的工具误解了生成的 PO 文件。
\n\n使用 GNU gettext 命令行工具进行合并:
\n\nmsgmerge -U your_old_translation.po latest_strings.pot\nRun Code Online (Sandbox Code Playgroud)\n\n使用 Poedit 合并(注意拼写):
\n\n请注意,默认情况下,过时的翻译会保留在 PO 文件中作为备份。在 Poedit 中,您可以清除它们(请参阅目录 \xe2\x86\x92 清除已删除的翻译)。然而,这些过时的条目以不同的方式存储在 PO 文件中,作为特殊格式的注释,并且在 Poedit 或任何符合的 PO 编辑工具中不可见或不可编辑。
\n\n如果我打赌,我会说 (3) 是最可能的原因(在这种情况下,使用更好的编辑器,比如,咳咳,Poedit),或者也许 (2)(应该很容易通过搜索 POT 来查看)对于现在未使用的字符串)。
\n\n但合并确实做了您期望它做的正确的事情。
\n