angular-translate:翻译动态值 [英] angular-translate: Translate dynamic value
问题描述
我们正在使用 angular-translate 来翻译我们的应用.
We're using angular-translate to translate our app.
带有动态数字值的常规翻译没有问题,例如
Regular translations with dynamic number values are no problems, like
'LIVES_LEFT': 'You have {{ lives }} left.'
使用方式
<p>{{ 'LIVES_LEFT' | translate:player }}</p>
当动态值是一个本身需要翻译的字符串时,就会出现问题,例如
The problem comes when the dynamic value is a string that itself needs to be translated, like
'YOU_HAVE_A_CHILD': 'You have a {{ gender }} that is {{ age }} years old.'
使用方式
<p>{{ 'YOU_HAVE_A_CHILD' | translate:child }}</p>
在这种情况下,
gender
应该最终解析为男孩",或者如果选择的语言是英语,则解析为女孩",例如,如果选择的语言是德语,则解析为"Junge"或Mädchen".我该怎么办?
gender
in this case should end up resolving to 'boy', or 'girl' if the selected language is English, and for example 'Junge', or 'Mädchen', if the selected language is German. How do I do that?
正如我在下面的Partha Sarathi Ghosh所建议的那样
As suggested by Partha Sarathi Ghosh below I tried
<p>{{ 'YOU_HAVE_A_CHILD' | translate:(child | translate) }}</p>
但是我从中得到一个语法错误:
But I get a syntax error from that:
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
};
}
做得很棒!非常感谢!
推荐答案
尝试一下.它可以解决您的问题.
Try this. It may solve your problem.
{{ 'YOU_HAVE_A_CHILD' | translate:(child | translate) }}
或者您可以尝试
'YOU_HAVE_A_CHILD': 'You have a {{ gender | translate }} that is {{ age }} years old.'
如果不能解决,请先从您的控制器翻译孩子
If does not solve then translate child from your controller first
这篇关于angular-translate:翻译动态值的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!