如何使用 i18n 本地化 Stimulus JS 值?
How to localize Stimulus JS value using i18n?
我正在开发 rails 6 应用程序,我试图在该应用程序中将所有显示的字符串存储在语言环境文件中。我有一个名为 countdown_controller.js
:
的 Stimulus 控制器
import { Controller } from "@hotwired/stimulus";
export default class extends Controller {
static values = {
message: { type: String, default: "Deal closed!" }
}
}
en.yml
:
en:
deals:
status:
closed: "Deal closed!"
我想使用 I18n.t("deals.status.closed")
作为 countdown_controller.js
中 messageValue
的值,而不是直接写入字符串。我不知道该怎么做。
简单地将 countdown_controller.js
转换为 countdown_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') %>" }
}
}
P.S。我最初遇到错误,因为我将注释更改为使用以 #
开头的 ruby 语法,而不是以 //
.
开头的 JS 语法
我正在开发 rails 6 应用程序,我试图在该应用程序中将所有显示的字符串存储在语言环境文件中。我有一个名为 countdown_controller.js
:
import { Controller } from "@hotwired/stimulus";
export default class extends Controller {
static values = {
message: { type: String, default: "Deal closed!" }
}
}
en.yml
:
en:
deals:
status:
closed: "Deal closed!"
我想使用 I18n.t("deals.status.closed")
作为 countdown_controller.js
中 messageValue
的值,而不是直接写入字符串。我不知道该怎么做。
简单地将 countdown_controller.js
转换为 countdown_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') %>" }
}
}
P.S。我最初遇到错误,因为我将注释更改为使用以 #
开头的 ruby 语法,而不是以 //
.