【发布时间】:2018-07-23 18:16:57
【问题描述】:
var dict = {
"configMigratedTo": {
"message": "Migrated configuration to configurator: $1"
}
}
var parametersForTranslation = {};
function __tr(src, params) {
parametersForTranslation[src] = params;
return buildMessage(src);
}
function buildMessage(src){
var message=dict[src] ? dict[src].message : src
console.log(message);
var messageArray = message.split("$");
var output = "";
messageArray.forEach(function(elem, index){
if(index === 0){
output += elem;
}else{
// get variable and index
var paramIndex = configMigratedTo.substring(0, 1);
var paramValue = parametersForTranslation[src][paramIndex-1];
output += paramValue;
output += configMigratedTo.substring(1);
}
});
return output;
}
__tr("configMigratedTo", [2]);
console.log(buildMessage("configMigratedTo"));
我想得到像 __tr("configMigratedTo", [2]); 这样的结果 那么它会给我
将配置迁移到配置器:2
我不知道我的代码哪里出错了
【问题讨论】:
-
__tr()是什么? -
@LouysPatriceBessette 这是一个函数,在上面定义,在代码中。
-
基本上就是根据key找到翻译...__tr就是翻译
-
哈。行。但是你弄乱了源头。您想访问
dict对象中的configMigratedTo。它应该类似于:dict.configMigratedTo.message以获取值Migrated configuration to configurator: $1... 现在我真的不知道 $1 是否会被视为变量...这取决于buildMessage()函数而且我可以不要这样说。 -
嗯,在你可以玩弄编程逻辑之前,你需要一个坚实的编程基础(在这种情况下是 JavaScript)的基本概念。从尝试访问尚未定义的变量看来,您应该关注后者。您了解缺少的变量
configMigratedTovar 和dict对象上的现有属性之间的区别吗?
标签: javascript jquery internationalization