我刚刚切换到使用Webpacker gem的Rails 6(6.0.0.rc1)。我想在某些模块中使用i18n-js进行翻译。如何使用webpacker在我的应用程序中配置i18n?
答案 0 :(得分:1)
正确的方法是遵循本指南:
宝石文件
gem 'i18n-js'
bundle --binstubs
$ yarn add i18n-js
$ bin/rails webpacker:install:erb
app / javascript / i18n-js / index.js.erb
import I18n from "i18n-js"
I18n.translations = <%= I18n::JS.filtered_translations.to_json %>;
export default I18n
app / javascript / packs / application.js
import I18n from 'i18n-js/index.js.erb'
console.log(I18n.t('hello'))
来源: https://gist.github.com/bazzel/ecdff4718962e57c2d5569cf01d332fe
答案 1 :(得分:-1)
很抱歉,您的回答很晚,但是我已经解决了以下问题:-
yarn add i18n-js
此后,我在以下文件中进行了更改
## javascript/packs/application.js
require("@rails/ujs").start()
require("@rails/activestorage").start()
require("channels")
window.jQuery = window.$ = require('jquery')
var Turbolinks = require("turbolinks");
Turbolinks.start();
import I18n from 'i18n-js'
window.I18n = I18n
然后加载所有翻译:-
## application.html.erb
<script>
var language = "<%= I18n.locale %>";
I18n.translations = <%== I18n::JS.filtered_translations.to_json %>;
</script>
现在可以在js文件中使用翻译了:-
I18n.t('a.hello')