Rails 4 I18n-js gem没有获取区域设置文件的更改

时间:2015-03-14 13:24:11

标签: ruby-on-rails ruby rails-i18n

我最近安装了i18n-js gem以启用javascript中的翻译,但我对locale文件所做的任何更改都没有流向我的javascript。

资产/ Javascript角/ application.js中

//= require i18n
//= require i18n/translations
//= require_tree .

配置/区域设置/ en.yml

en:
  confirmation: "Confirmation"
  yes: "Yes"
  no: "Cancel"

的Gemfile

# Internationalization in javascript
gem 'i18n-js', '~> 2.1.2'

资产/ Javascript角/ config.coffee

$ ->
  alert I18n.t('yes')
  dataConfirmModal.setDefaults
      title: I18n.t("confirmation");
      commit: I18n.t("yes");
      cancel: I18n.t("no");

是/否翻译不会流过,但确认者会这样做。当locales文件发生变化时,我已经尝试了从重新启动服务器到运行I18n.backend.reload!的所有内容。

2 个答案:

答案 0 :(得分:2)

您是否尝试过终端中的rake tmp:cache:clearrake i18n:js:export?如果没有,请试试。当我遇到这个问题时,似乎能为我解决问题。

答案 1 :(得分:0)

这是一个普通的Rails问题,不仅仅是i18n-js,你可以看到这个,如果你抬头:是或否:来自控制台:

> I18n.t(:yes)
=> "translation missing: en.yes"

有一个article talking about this。 TL; DR,这些是保留字,意思是真假,你可以在你的YAML中重新定义这些:

"yes": "Yes"