如何在Rails 6中将i18n-js与webpacker一起使用?

时间:2019-12-04 17:08:35

标签: ruby-on-rails

我刚刚切换到使用Webpacker gem的Rails 6(6.0.0.rc1)。我想在某些模块中使用i18n-js进行翻译。如何使用webpacker在我的应用程序中配置i18n?

2 个答案:

答案 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')