我正在使用 Gettext 和 Poedit 软件翻译 PHP 中的字符串。我也想在 JavaScript 中使用翻译后的字符串,但不要将代码内联到 HTML 文档中,而是放在外部文件中。内联在 HTML 文档中不会有问题,因为内联 JS 代码也会被渲染。一个例子:
var hello = <?=_("hello");?>
翻译器应该使用与 php 代码相同的翻译表(因为重复的字符串)。
所以我的想法是用 PHP “编译” JavaScript 文件。例如,在外部 JS 文件中是以下代码:
if (window.confirm("_translate('are_you_sure')")) {
location.href = this.href;
}
一个 php 脚本读取上面的代码并找到其中的所有字符串_translate()
。代码将替换_translate('are_you_sure')
为翻译后的字符串。_translate()
它可以工作,但永远不会翻译,因为即使我将 _translate 添加到源代码的键中,Poedit 软件也不会在其中找到字符串。所以没有要翻译的翻译字符串。
所以我的问题是如何告诉 Poedit 他应该_translate()
在 javascript 文件中读取字符串?