文档中的NAMESPACE 指的是同一语言中的那个。
在你的 plunker 中,你有这个:
var translations = {
"en": {
"HELLO": "hello",
"ORANGE": "orange"
},
"fr": {
"HELLO": "salut",
"ORANGE": "@:en.ORANGE"
},
};
$translateProvider
.translations('en', translations['en'])
.translations('fr', translations['fr'])
当您设置.translations('fr', translations['fr']) 时,您将其作为法语的命名空间:
{
"HELLO": "salut",
"ORANGE": "@:en.ORANGE"
}
每当angular-translate 搜索en.ORANGE 时,它都会在上述对象中进行搜索。
使用其他语言翻译的功能尚未实现。看一下angular-translate的源码,有这么一段代码:
if (translation.substr(0, 2) === '@:') {
getFallbackTranslation(langKey, translation.substr(2), interpolateParams, Interpolator)
.then(deferred.resolve, deferred.reject);
} else {...}
只要你有@: 字符,它就不会改变langKey,这意味着它会在当前语言的翻译字典中搜索翻译。
目前您的 plunker 工作正常。我制作了一个fork,以表明它正在使用命名空间中的链接。看看GREETING 的价值来自哪里。