我已经为 javascript 文件的翻译创建了字符串提取器。我找到了用作起点的 jsgettext 项目(请参阅参考资料)。
它使用正则表达式来查找对__()
javascript 文件中的方法的调用。成功找到了简单的调用,但没有找到带有参数__('string', { a: 'b'})
的调用。
我尝试修改正则表达式以匹配带有参数的方法调用,但没有任何成功(我不是正则表达式专家)。
我的问题是:如何修改以下正则表达式以匹配这样的字符串?
// this is catched successfully
// var string = __("Please enter %number% more characters.");
// this is problematic
var string = __("Please enter %number% more characters.", { '%number%' : 2 });
正则表达式:
$keywords = join('|', array('__'));
preg_match_all('# (?:' . $keywords . ') \(\\ *" ( (?: (?>[^"\\\\]++) | \\\\\\\\ | (?<!\\\\)\\\\(?!\\\\) | \\\\" )* ) (?<!\\\\)"\\ *\) #ix', $content, $matches, PREG_SET_ORDER);
谢谢