在我们的 JS 文件中,我们使用以下格式进行 Gettext 翻译:
var str1 = '!t[The text that should be translated]';
var str2 = '!t[Some more text]';
此 JS 文件将使用 PHP 进行解析,解析后的字符串将通过 Zend Framework Zend_Translate 进行翻译。生成的 JS 如下所示:
var str1 = 'The text that should be translated';
var str2 = 'Some more text';
为了提取要翻译的字符串和翻译我们使用 Poedit 的 PHP 文件,它工作得非常好。
有没有办法'!t[...]'
使用 Poedit 解析要翻译的字符串?
解决这个问题的是某种基于正则表达式的 Poedit 解析器。有没有这样的解析器?
作为替代方案,我们可以定义一个基于 xgettext 的源代码解析器,使用语言 PHP 作为参数(您必须这样做,因为 xgettext 不知道 .js 文件,它会将它们视为 C 文件)。然后我们在我们的 JS 文件中使用以下格式:
var str1 = '<?=_t("The text that should be translated")?>';
var str2 = '<?=_t("Some more text")?>';
不用说,为了能够用 Poedit 解析字符串而到处使用看起来像 php 的代码真的很不酷。