我需要使用ngx-core中的TranslateService.instant并传递参数进行字符串插值。
到目前为止,我已经完成了:
MY_STRING: "Welcome {{user}}"
在我的组件中,我执行以下操作:
translateService.instant(MY_STRING, {user: 'Nick'})
我从中得到的是:
Welcome {{user}}
参数用户没有插值。我做错了什么?
我需要使用ngx-core中的TranslateService.instant并传递参数进行字符串插值。
到目前为止,我已经完成了:
MY_STRING: "Welcome {{user}}"
translateService.instant(MY_STRING, {user: 'Nick'})
我从中得到的是:
Welcome {{user}}
要使用instant
方法,您必须确保已加载翻译,并且安全地使用它,否则它将失败。那可能是关键点。
解释很简单,您有三种加载翻译的方式:
您确定翻译文件已经加载并且不需要更新:translate.instant('key')
您不确定是否正在加载,并且不需要更新(返回一个可订阅的Observable):translate.get('key')
您希望在用户更改语言时进行更新:
translate.stream('key')
我认为您可以使用get选项,因为它是已知错误最少的选项:
let userName = 'Nick'
translateService.get('MY_STRING', { user: this.userName }).subscribe((text:string) => {console.log(text});
"MY_STRING"
设置我的键。然后使用translateService.instant('MY_STRING', {user: 'Nick'})
进行翻译。 - ZetaPR