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});