Я считаю, что эта структура ниже поможет вам достичь того, чего вы хотите.
В переводе файла английский
"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;
})
Не могли бы вы сообщить нам, почему ** не ** ** вы хотите перевести предложение «Я живу в ...» (это, очевидно, английский) даже для китайского пользователя? – yazaki
Китайский файл перевода будет находиться в китайском языке для части «Я живу ...». Проблема заключается в том, что название страны исходит из свойства объекта, которое находится на английском языке, то есть {страна: «КИТАЙ»}. При повторении этих объектов страны название страны должно быть переведено на выбранный язык пользователя. Поэтому я не хочу «КИТАЙ», и я не хочу ключа для каждой страны. – neridaj
Спасибо за ваше объяснение. Вы имеете в виду «Я живу в ...», которую всегда не нужно переводить, даже если выбранный вами язык является китайским? Если вы имеете в виду так, почему бы вам не написать часть «Я живу в ...» просто на вашем HTML вместо translation.json? – yazaki