【发布时间】:2012-06-15 00:18:24
【问题描述】:
为了本地化我的 javascript 中使用的字符串,我想扫描我所有的 js 文件以查找此类字符串。
我正在使用t() 函数来请求字符串翻译,如下所示:
t("Hello world");
或动态部分:
t("Hello @user", {"@user": "d_inevitable"});
我想检测对 t() 函数的所有调用,从而收集 php“构建”脚本中第一个参数中包含的字符串,但跳过以下内容:
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()的调用吗?
请不要建议独立的正则表达式,因为它们不可能完全解决我的问题。
提前谢谢你。
【问题讨论】:
标签: php javascript localization lexer codesniffer