是否可以将变量传递到翻译文件中,并将其翻译成翻译文件?
// translation.json
"country":{
"CHINA":"中国",
"US":"United States"
}
"text":"I live in $translate('country.{{country}}'), {{ someOtherVar }}.
答案 0 :(得分:1)
我相信下面这个结构可以帮助你实现你想要的目标。
在英文翻译文件中
"country": {
"CHINA": "China",
"US": "United States",
...
},
"text":"I live in {{country}}, {{ someOtherVar }}."
在中文翻译文件中
"country": {
"CHINA": "中国",
"US": "美国",
...
},
"text":"我住在{{country}}, {{ someOtherVar }}."
在HTML中
<span translate="text" translate-values="{country: translated_country_name, someOtherVar: someothervar}"></span>
在控制器中
$scope.someothervar = // some value
var countrykey = //CHINA or US...
$translate('country.' + countrykey).then(function(trans){
$scope.translated_country_name = trans;
})
答案 1 :(得分:0)
您可以随时预处理翻译文件(例如$httpProvider.interceptors
)。
但是你可以从(可能)范围获得country
变量。
所以你应该写这样的东西:
var country = ...;
country = $translate(country);
$scope.translatedText = $translate('text', { country: country, someOtherVar: 'value' });
您的text
应该是:
"text":"I live in {{country}}, {{ someOtherVar }}."
此处您已获得dynamic translation的文档。