为了本地化我的 javascript 中使用的字符串,我想扫描我的所有 js 文件以查找此类字符串。
我正在使用一个t()
函数来请求字符串翻译,如下所示:
t("Hello world");
或动态部分:
t("Hello @user", {"@user": "d_inevitable"});
我想检测对t()
函数的所有调用,从而收集 php“build”脚本中第一个参数中包含的字符串,但跳过以下内容:
function foo(t) {
t("This is not the real t, do not localize this!");
}
function bar() {
var t = function(){}; //not the real t either...
}
function zoo() {
function t() {
//This also isn't the real t() function.
}
}
t("Translate this string, because this is the real t() in its global scope");
所以这里的简单规则是被调用的 t 函数必须在全局范围内,以便第一个参数有资格作为翻译字符串。
通常,不允许将动态运行时数据作为第一个参数。的第一个参数t()
必须始终是“常量”文字字符串。
我认为php codesniffer会帮助我做到这一点,但是我能找到的所有文档都是关于执行代码标准(或检测违反它的)。我需要对其 js 词法分析器的较低级别的访问。
我的问题是:
- php 代码嗅探器的 js 词法分析器能帮我解决我的问题吗?
- 如果是这样,我如何访问该词法分析器?
- 是否有任何其他 php 库可以帮助我找到对的调用
t()
?
请不要建议独立的正则表达式,因为它们不可能完全解决我的问题。
先感谢您。