2017-09-11 61 views
5

在我的應用程序中,我的許多翻譯字符串需要在其中包含用戶名。 例如:Hello {{user_name}}! (用戶名稱必須翻譯字符串的一部分,因爲該名稱的字符串中的位置依賴於語言))角度翻譯提供者 - 有沒有辦法替代一般變量?

來設置屬性的方式是{{"TRANSLATE_ID" | translate:{user_name:myUserName}}}

由於{{user_name}}出現在超過100個翻譯字符串中,我不想多次發送user_name參數。我想有一種方法來設置這個參數只有一個。

我無法替換配置中的{{user_name}}字符串,因爲user_name是異步設置的(從服務器獲取),並且在translateProvider設置字符串時不可用。

感謝

回答

0

AngularTranslate讓您翻譯從HTML本身或控制器內通過一個承諾標籤。我相信優雅的方式來做你想做的是在你的控制器中創建一個方法/函數,以你想要的方式處理翻譯,然後在你的html中調用這個方法/函數來傳遞用戶名作爲參數。

在您的JSON翻譯文件中以「USERNAME」爲例,如「Hello,USERNAME!」,在您的控制器中使用AngularTranslate創建的方法中進行翻譯,然後進行字符串替換,更改單詞USERNAME爲方法參數(真正的用戶名),並使用此字符串作爲方法的返回值,這將在您的HTML中調用。

希望這會有所幫助。

相關問題