我最近安装了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!
的所有内容。
答案 0 :(得分:2)
您是否尝试过终端中的rake tmp:cache:clear
和rake i18n:js:export
?如果没有,请试试。当我遇到这个问题时,似乎能为我解决问题。
答案 1 :(得分:0)
这是一个普通的Rails问题,不仅仅是i18n-js,你可以看到这个,如果你抬头:是或否:来自控制台:
> I18n.t(:yes)
=> "translation missing: en.yes"
有一个article talking about this。 TL; DR,这些是保留字,意思是真假,你可以在你的YAML中重新定义这些:
"yes": "Yes"