i18n Translate.instant 带参数
i18n Translate.instant with parameters
我需要使用 ngx-core 中的 TranslateService.instant 并传递参数来进行字符串插值。
到目前为止我已经完成了:
MY_STRING: "Welcome {{user}}"
在我的组件中我这样做:
translateService.instant(MY_STRING, {user: 'Nick'})
我从中得到的是:
Welcome {{user}}
不对参数用户进行插值。我做错了什么?
要使用instant
方法,您必须确保您的翻译已经加载并且可以安全使用,否则会失败。这可能就是重点。
解释很简单,你可以通过三种方式加载翻译:
您确定您的翻译文件已经加载并且没有加载
需要更新:translate.instant('key')
您不确定是否正在加载并且不需要更新(returns
可观察订阅):translate.get('key')
您希望在用户更改语言时进行更新:
translate.stream('key')
我认为您可能会使用 get 选项,因为它有一些鲜为人知的错误:
let userName = 'Nick'
translateService.get('MY_STRING', { user: this.userName }).subscribe((text:string) => {console.log(text});
我需要使用 ngx-core 中的 TranslateService.instant 并传递参数来进行字符串插值。
到目前为止我已经完成了:
MY_STRING: "Welcome {{user}}"
在我的组件中我这样做:
translateService.instant(MY_STRING, {user: 'Nick'})
我从中得到的是:
Welcome {{user}}
不对参数用户进行插值。我做错了什么?
要使用instant
方法,您必须确保您的翻译已经加载并且可以安全使用,否则会失败。这可能就是重点。
解释很简单,你可以通过三种方式加载翻译:
您确定您的翻译文件已经加载并且没有加载 需要更新:translate.instant('key')
您不确定是否正在加载并且不需要更新(returns 可观察订阅):translate.get('key')
您希望在用户更改语言时进行更新:
translate.stream('key')
我认为您可能会使用 get 选项,因为它有一些鲜为人知的错误:
let userName = 'Nick'
translateService.get('MY_STRING', { user: this.userName }).subscribe((text:string) => {console.log(text});