angular-translate 具有相同翻译的翻译对象
angular-translate translation object with some equal translations
我正在使用 angular-translate
制作多语言网络应用程序。一切正常,现在我已经构建了我的翻译,以便我有:
$translateProvider.translations("en", {
"LANGUAGE": {
"ENGLISH": "english",
"GERMAN": "german",
"ITALIAN": "italian",
"FRENCH": "french",
}
});
假设我想添加 BUTTONS.ENGLISH
与 LANGUAGE.ENGLISH
相同的定义。是否可以像 BUTTONS.ENGLISH = this.LANGUAGE.ENGLISH
?
这样的方式引用它
$translateProvider.translations("en", {
"LANGUAGE": {
"ENGLISH": "english",
"GERMAN": "german",
"ITALIAN": "italian",
"FRENCH": "french",
},
"BUTTONS": {
"ENGLISH": this["LANGUAGE"]["ENGLISH"] // ???
}
});
在 Javascript 中,您无法使用 this
访问对象字面量的其他属性(this
在字面量初始化期间具有与之前相同的值) .
由于 javascript 范围问题,您尝试执行的方法无法实现,但您始终可以在翻译中使用插值来调用另一个翻译,如下例所示。
"ENGLISH": "{{ 'LANGUAGE.ENGLISH' | translate }}"
这样你就可以保证你的键值对应另一个键值,这样可以更容易维护。
完整代码:
$translateProvider.translations("en", {
"LANGUAGE": {
"ENGLISH": "english",
"GERMAN": "german",
"ITALIAN": "italian",
"FRENCH": "french",
},
"BUTTONS": {
"ENGLISH": "{{ 'LANGUAGE.ENGLISH' | translate }}"
}
});
FURTHER NOTE ABOUT PERFORMANCE ISSUES: I think it won't cause any huge performance issues despite that it's more expensive than a plain string, but it would be the same cost that using variable replacement, but yet, more expensive than a plain string (I've tested and normally is 25% less expensive than interpolated strings), so avoid using it in large scale.
我正在使用 angular-translate
制作多语言网络应用程序。一切正常,现在我已经构建了我的翻译,以便我有:
$translateProvider.translations("en", {
"LANGUAGE": {
"ENGLISH": "english",
"GERMAN": "german",
"ITALIAN": "italian",
"FRENCH": "french",
}
});
假设我想添加 BUTTONS.ENGLISH
与 LANGUAGE.ENGLISH
相同的定义。是否可以像 BUTTONS.ENGLISH = this.LANGUAGE.ENGLISH
?
$translateProvider.translations("en", {
"LANGUAGE": {
"ENGLISH": "english",
"GERMAN": "german",
"ITALIAN": "italian",
"FRENCH": "french",
},
"BUTTONS": {
"ENGLISH": this["LANGUAGE"]["ENGLISH"] // ???
}
});
在 Javascript 中,您无法使用 this
访问对象字面量的其他属性(this
在字面量初始化期间具有与之前相同的值) .
由于 javascript 范围问题,您尝试执行的方法无法实现,但您始终可以在翻译中使用插值来调用另一个翻译,如下例所示。
"ENGLISH": "{{ 'LANGUAGE.ENGLISH' | translate }}"
这样你就可以保证你的键值对应另一个键值,这样可以更容易维护。
完整代码:
$translateProvider.translations("en", {
"LANGUAGE": {
"ENGLISH": "english",
"GERMAN": "german",
"ITALIAN": "italian",
"FRENCH": "french",
},
"BUTTONS": {
"ENGLISH": "{{ 'LANGUAGE.ENGLISH' | translate }}"
}
});
FURTHER NOTE ABOUT PERFORMANCE ISSUES: I think it won't cause any huge performance issues despite that it's more expensive than a plain string, but it would be the same cost that using variable replacement, but yet, more expensive than a plain string (I've tested and normally is 25% less expensive than interpolated strings), so avoid using it in large scale.