Angular translate provider - 有没有办法替换常规变量?

use*_*182 5 javascript angularjs angular-translate angular

在我的应用程序中,我的许多翻译字符串都需要在其中包含用户名.例如:( Hello {{user_name}}! 用户名必须是翻译字符串的一部分,因为字符串中名称的位置取决于语言))

设置属性的方法是 {{"TRANSLATE_ID" | translate:{user_name:myUserName}}}

由于{{user_name}}出现在100多个翻译字符串中,我不想user_name这么多次发送参数.我想要一个方法来设置这个参数只有一个.

我无法替换{{user_name}}配置中的字符串,因为user_name是异步设置的(从服务器获取),并且在translateProvider设置字符串时不可用.

谢谢

Fel*_*ues 0

AngularTranslate 允许您从 html 本身或通过 Promise 翻译控制器内部的标签。我相信做你想做的事的优雅方法是在你的控制器中创建一个方法/函数,以你想要的方式处理翻译,然后在你的html中调用这个方法/函数,传递用户名作为参数。

例如,将 JSON 翻译文件中的用户名寻址为“USERNAME”,例如“Hello, USERNAME!”,使用 AngularTranslate 在控制器中创建的方法中进行翻译,然后进行字符串替换,更改方法参数的 USERNAME (真实的用户名)并使用该字符串作为方法的返回值,该方法将在您的 html 中调用。

希望这可以帮助。