2017-09-11 32 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中调用。

希望这会有所帮助。

相关问题