Polyglot.js is a tiny I18n helper library developped by airbnb for translating your JS files
Used 131 times
Usage
Define the i18n keys you would like to use with polyglot and enjoy i18n in your JS files like Stimulus controllers and so on.
Gather a hash of phrases in your backend, and output them in a <script> tag at the bottom of the view:
Gather a hash of phrases in your backend, and output them in a <script> tag at the bottom of the view:
<script>var polyglot = new Polyglot({phrases: #{raw phrases.to_json}});</script>OR define a helper
# app/helpers/application_helper.rb
def polyglot(phrases)
"<script>var polyglot = new Polyglot({phrases: #{raw phrases.to_json}});</script>".html_safe
endCall the helper at the bottom of the view and directly pass it the I18n keys you need in your JS files:
# app/views/**/*
= polyglot(I18n.t('javascript.greetings')THEN enjoy i18n in your JS files:
# app/javascript/**/*
polyglot.t("hello")official documentation: https://github.com/airbnb/polyglot.js/
Run this command in your Rails app directory in the terminal:
rails app:template LOCATION="https://railsbytes.com/script/zNPsEl"
Template Source
Review the code before running this template on your machine.
# install polyglot via yarn
run 'yarn add node-polyglot'
inject_into_file "app/javascript/packs/application.js" do <<~EOF
import Polyglot from "node-polyglot"
window.Polyglot = Polyglot
EOF
end
run "mkdir config/locales/javascript"
run "touch config/locales/javascript/en.yml"
inject_into_file "config/locales/javascript/en.yml" do <<~EOF
# Put your javascript i18n keys here
en:
javascript:
EOF
end
puts "Polyglot is here: Enjoy!, Profitez!, ¡Disfruta! 👅"