i18n 将变量附加到翻译字符串

L. *_*een 6 internationalization handlebars.js ember.js

我目前正在使用 i18n 来翻译字符串,并且正在寻找一种将变量附加到路径上的方法。

这个变量可能有大约 8 个不同的值,每个值都需要不同的转换。我的语言环境文件已经包含翻译,但我不知道如何将我的变量添加到翻译路径中。我认为变量插值在这里对我没有帮助。

content.state //variable
t ('.state') //locale path
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种方法将 content.state 变量添加到语言环境路径的末尾,以便它根据 content.state 进行转换。目前我唯一的解决方案是覆盖所有状态的大型 if/else。

已解决:我试图找到一种方法将变量添加到车把内的语言环境路径中,最终使用了 concat 助手。

{{ t (concat "state." content.state)}}
Run Code Online (Sandbox Code Playgroud)

Ron*_*pes 5

你可以这样做(示例):

I18n.t('helpers.links.add', variable: "Your Variable Value")
Run Code Online (Sandbox Code Playgroud)

然后,在您的翻译文件 (yml) 上:

helpers:
  links:
    add: "Add %{variable}"
Run Code Online (Sandbox Code Playgroud)

这样,在我的示例中,输出将是:添加您的变量值。

希望这可以帮助!