Sha256: 5175ecfa1a46d2fdda4435a0cd5abecff9c11e0312694721db787a302ab2a22e
Contents?: true
Size: 1.72 KB
Versions: 15
Compression:
Stored size: 1.72 KB
Contents
# frozen_string_literal: true require "rails/generators" module RailsTemplate18f module Generators class I18nJsGenerator < ::Rails::Generators::Base include Base desc <<~DESC Description: Install and configure i18n-js gem to provide translations to JS code. By default, will only export translations with keys that match `*.js.*` DESC def install_gem_and_tasks return if gem_installed?("i18n-js") gem "i18n-js", "~> 3.9" bundle_install do run "yarn add i18n-js" generate "i18n:js:config" end end def configure_translation_yaml append_to_file "config/i18n-js.yml", <<~EOYAML # remove `only` to include all translations translations: - file: "app/assets/builds/translations.js" only: "*.js.*" EOYAML end def configure_asset_pipeline copy_file "lib/tasks/i18n.rake" environment "config.middleware.use I18n::JS::Middleware", env: :development insert_into_file "app/views/layouts/application.html.erb", indent(<<~EOHTML, 4), after: /<%= stylesheet_link_tag "application".*$\n/ <%= javascript_include_tag "i18n", "data-turbo-track": "reload" %> <%= javascript_include_tag "translations", "data-turbo-track": "reload" %> EOHTML append_to_file "app/assets/config/manifest.js", <<~EOJS //= link i18n.js //= link translations.js EOJS end def ignore_generated_file unless skip_git? append_to_file ".gitignore", <<~EOM # Generated by i18n-js /public/javascripts/i18n.js EOM end end end end end
Version data entries
15 entries across 15 versions & 1 rubygems