angular-translate:翻译动态值 [英] angular-translate: Translate dynamic value

查看:380
本文介绍了angular-translate:翻译动态值的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我们正在使用 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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆