angular-translate在翻译文件中翻译

时间:2015-04-16 22:27:03

标签: angularjs angular-translate

是否可以将变量传递到翻译文件中,并将其翻译成翻译文件?

// translation.json

"country":{
    "CHINA":"中国",
    "US":"United States"
}

"text":"I live in $translate('country.{{country}}'), {{ someOtherVar }}.

2 个答案:

答案 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的文档。