如何使用 i18n 本地化 Stimulus JS 值?

far*_*rha 3 localization ruby-on-rails rails-i18n stimulusjs

我正在开发 Rails 6 应用程序,我试图将所有显示的字符串存储在语言环境文件中。我有一个名为的刺激控制器countdown_controller.js

import { Controller } from "@hotwired/stimulus";

export default class extends Controller {

  static values = {
    message: { type: String, default: "Deal closed!" }
  }
}
Run Code Online (Sandbox Code Playgroud)

en.yml:

en:
 deals:
   status:
     closed: "Deal closed!"
Run Code Online (Sandbox Code Playgroud)

我想用作inI18n.t("deals.status.closed")的值而不是直接写入字符串。我不知道该怎么做。messageValuecountdown_controller.js

far*_*rha 5

简单地转换countdown_controller.jscountdown_controller.js.erb对我有用。然后我使用插值来注入,I18n.t("deals.status.closed")如下所示:

import { Controller } from "@hotwired/stimulus";

export default class extends Controller {

  static values = {
    message: { type: String, default: "<%= I18n.t('deals.status.closed') %>" }
  }
}
Run Code Online (Sandbox Code Playgroud)

PS 我最初收到错误,因为我将注释更改为使用以 开头的 ruby​​ 语法,#而不是以 开头的 JS 语法//