angular-translate: 翻译动态值
angular-translate: Translate dynamic value
我们正在使用 angular-translate 来翻译我们的应用程序。
使用动态数值的常规翻译没有问题,比如
'LIVES_LEFT': 'You have {{ lives }} left.'
像
一样使用
<p>{{ 'LIVES_LEFT' | translate:player }}</p>
当动态值是一个本身需要翻译的字符串时,问题就来了,比如
'YOU_HAVE_A_CHILD': 'You have a {{ gender }} that is {{ age }} years old.'
像
一样使用
<p>{{ 'YOU_HAVE_A_CHILD' | translate:child }}</p>
在这种情况下,gender
应该最终解析为 'boy',如果选择的语言是英语,则 'girl',例如 'Junge',或 [=53] =],如果选择的语言是德语。我该怎么做?
编辑:
按照下面 Partha Sarathi Ghosh 的建议,我尝试了
<p>{{ 'YOU_HAVE_A_CHILD' | translate:(child | translate) }}</p>
但是我从中得到一个语法错误:
Error: [$parse:syntax] Syntax Error: Token 'Object' is unexpected, expecting []] at column 9 of the expression [[object Object]] starting at [Object]].
然而,
{
'YOU_HAVE_A_CHILD': 'You have a {{ gender | translate }} that is {{ age }} years old.',
'GENDER_BOY': 'boy',
'GENDER_GIRL': 'girl'
}
像
一样使用
<p>{{ 'YOU_HAVE_A_CHILD' | translate:vm.childTranslationData() }}</p>
控制器代码如下:
function childTranslationData() {
return {
gender: vm.child.gender === 'boy' ? 'GENDER_BOY' : 'GENDER_GIRL',
age: vm.child.age
};
}
效果很好!非常感谢!
试试这个。它可能会解决您的问题。
{{ 'YOU_HAVE_A_CHILD' | translate:(child | translate) }}
或者你可以试试这个
'YOU_HAVE_A_CHILD': 'You have a {{ gender | translate }} that is {{ age }} years old.'
如果没有解决,那么先从你的控制器翻译child
我们正在使用 angular-translate 来翻译我们的应用程序。
使用动态数值的常规翻译没有问题,比如
'LIVES_LEFT': 'You have {{ lives }} left.'
像
一样使用<p>{{ 'LIVES_LEFT' | translate:player }}</p>
当动态值是一个本身需要翻译的字符串时,问题就来了,比如
'YOU_HAVE_A_CHILD': 'You have a {{ gender }} that is {{ age }} years old.'
像
一样使用<p>{{ 'YOU_HAVE_A_CHILD' | translate:child }}</p>
在这种情况下,gender
应该最终解析为 'boy',如果选择的语言是英语,则 'girl',例如 'Junge',或 [=53] =],如果选择的语言是德语。我该怎么做?
编辑:
按照下面 Partha Sarathi Ghosh 的建议,我尝试了
<p>{{ 'YOU_HAVE_A_CHILD' | translate:(child | translate) }}</p>
但是我从中得到一个语法错误:
Error: [$parse:syntax] Syntax Error: Token 'Object' is unexpected, expecting []] at column 9 of the expression [[object Object]] starting at [Object]].
然而,
{
'YOU_HAVE_A_CHILD': 'You have a {{ gender | translate }} that is {{ age }} years old.',
'GENDER_BOY': 'boy',
'GENDER_GIRL': 'girl'
}
像
一样使用<p>{{ 'YOU_HAVE_A_CHILD' | translate:vm.childTranslationData() }}</p>
控制器代码如下:
function childTranslationData() {
return {
gender: vm.child.gender === 'boy' ? 'GENDER_BOY' : 'GENDER_GIRL',
age: vm.child.age
};
}
效果很好!非常感谢!
试试这个。它可能会解决您的问题。
{{ 'YOU_HAVE_A_CHILD' | translate:(child | translate) }}
或者你可以试试这个
'YOU_HAVE_A_CHILD': 'You have a {{ gender | translate }} that is {{ age }} years old.'
如果没有解决,那么先从你的控制器翻译child