用于测试的自动 gettext 翻译生成器(伪本地化)

Automatic gettext translation generator for testing (pseudolocalization)

我目前正在使网站支持国际化。将硬编码字符串标记为可翻译。

我想知道是否有任何自动化工具可以让我浏览站点并快速查看哪些字符串已标记,哪些仍未标记。我看到一些像 django-i18n-helper 这样的项目试图使用 HTML 设施来突出显示已翻译的字符串,但这在 JavaScript.

上效果不佳

所以我认为 FДЦЖ CУЯILLIC 或 ʇxǝʇ uʍop-ǝpısdn(或类似的东西)应该可以解决问题。易于在视觉上区分,仍然可读,但不依赖于 Unicode 支持之外的任何富文本格式。

问题是,我找不到任何现成的工具来处理 gettext .po/.pot 文件并输出此类翻译。不过,我认为这个想法很明显,所以肯定已经有一些东西了。

在我的例子中,我使用的是 Python/Django,但我想这个问题适用于任何使用 gettext 兼容库的东西。该工具唯一应该注意的是,翻译字符串中可能有 HTML 个片段。

msgfilter 程序可以让您 运行 通过您想要的任何程序进行翻译。它特别适用于 GNU sed.

例如,将您所有的翻译都变成大写(HTML 大多数情况下不区分大小写,所以这应该可行):

msgfilter -i django.po sed -e 's/\(.*\)/\U/'

您的应用程序中唯一包含小写字母的字符串将是硬编码字符串。

如果你真的想做仿西里尔文,你只需要编写一个程序或脚本来读取拉丁语并输出它,然后将该程序提供给 msgfilter 而不是 sed。

如果您的发行版有一个 talkfilters 包,它可能会提供一些程序,在这种特定情况下可能会有用。所有这些都应该作为 msgfilter 过滤器。 (我个人最喜欢的是 chef。bork bork bork!)

我自己还没有尝试过,但发现 podebug tool from Translate Toolkit. Based on documentation (flipped and unicode rewrite options),这看起来正是我想要的工具。