gpt4 book ai didi

javascript - 基于 Poedit 正则表达式的解析器?

转载 作者:行者123 更新时间:2023-11-28 10:35:44 27 4
gpt4 key购买 nike

在我们的 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';

为了提取要翻译的字符串以及翻译我们的 PHP 文件,我们使用 Poedit,它的效果非常好。
有没有办法使用 Poedit 解析要从 '!t[...]' 翻译出来的字符串?

解决这个问题的是某种基于正则表达式的 Poedit 解析器。有这样的解析器吗?

作为替代方案,我们可以定义一个基于 xgettext 的源代码解析器,并使用 PHP 语言作为参数(您必须这样做,因为 xgettext 不了解 .js 文件,它会将它们视为 C 文件)。然后我们在 JS 文件中使用以下格式:

var str1 = '<?=_t("The text that should be translated")?>';
var str2 = '<?=_t("Some more text")?>';

不用说,为了能够用 Poedit 解析字符串而到处使用看起来像 php 的代码确实很不酷。

最佳答案

与您的字符串匹配的正则表达式

 $translated = preg_replace('/[\'"]\!t\[(.+)\][\'"]/e', 'translate_function('\\2')', $str);

我不知道\2 是否应该替换为\1 或\3,您的解决方案是 PCRE 正则表达式引擎提供的“e”修饰符。

关于javascript - 基于 Poedit 正则表达式的解析器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/922095/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com