2016-02-05 164 views
3

我們使用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應該結束瞭解析爲「男孩」或「女孩」,如果所選擇的語言是英語,例如「瓊格」或「Mädchen」,如果所選擇的語言爲德語。我怎麼做?

編輯:

至於建議由帕塔Sarathi戈什下面我試圖

<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 
    }; 
} 

工作太棒了!非常感謝!

回答

3

試試這個。它可以解決你的問題。

{{ 'YOU_HAVE_A_CHILD' | translate:(child | translate) }} 

或者你可以試試這個

'YOU_HAVE_A_CHILD': 'You have a {{ gender | translate }} that is {{ age }} years old.' 

如果不能解決然後從控制器首先

翻譯孩子