在我的应用中,我的许多翻译字符串都需要在其中包含用户名。
例如:Hello {{user_name}}!
(用户名必须是翻译字符串的一部分,因为字符串中名称的位置取决于语言))
设置属性的方法是{{"TRANSLATE_ID" | translate:{user_name:myUserName}}}
由于{{user_name}}
出现在100多个翻译字符串中,因此我不想多次发送user_name
参数。我想有办法只设置一个参数。
我无法替换配置中的{{user_name}}
字符串,因为user_name是异步设置的(从服务器获取),并且在translateProvider
设置字符串时不可用。< / p>
由于
答案 0 :(得分:0)
AngularTranslate允许您通过承诺从html本身或控制器内部转换标签。我相信你想要的优雅方法是在你的控制器中创建一个方法/函数,以你想要的方式处理翻译,然后在你的html中调用这个方法/函数,将用户名作为参数传递。
将JSON翻译文件中的用户名称为“USERNAME”,例如“Hello,USERNAME!”,使用AngularTranslate在控制器中创建的方法中进行翻译,然后执行字符串替换,更改单词USERNAME for方法参数(真实用户名)并使用此字符串作为方法的返回值,将在您的html中调用。
希望这有帮助。