Only fetch client side translations for the current locale
authorTom Hughes <tom@compton.nu>
Thu, 16 Aug 2018 10:49:30 +0000 (11:49 +0100)
committerTom Hughes <tom@compton.nu>
Thu, 16 Aug 2018 11:22:36 +0000 (12:22 +0100)
.gitignore
.travis.yml
app/assets/javascripts/application.js
app/views/layouts/_head.html.erb
config/environments/development.rb
config/i18n-js.yml
config/initializers/assets.rb
config/jshint.yml

index 920ca11..1a2d35c 100644 (file)
@@ -1,5 +1,6 @@
 log
 config/piwik.yml
+app/assets/javascripts/i18n
 public/assets
 public/attachments
 public/export
index 48ddb4a..8ce7f5f 100644 (file)
@@ -24,6 +24,7 @@ before_script:
   - psql -U postgres -c "CREATE FUNCTION xid_to_int4(xid) RETURNS int4 AS '/tmp/libpgosm', 'xid_to_int4' LANGUAGE C STRICT" openstreetmap
   - cp config/travis.database.yml config/database.yml
   - bundle exec rake db:migrate
+  - bundle exec rake i18n:js:export
 script:
   - bundle exec rubocop -f fuubar
   - bundle exec rake jshint
index 4461c5a..654b016 100644 (file)
@@ -12,7 +12,7 @@
 //= require leaflet.map
 //= require leaflet.zoom
 //= require leaflet.locationfilter
-//= require i18n/translations
+//= require i18n
 //= require oauth
 //= require piwik
 //= require richtext
index 1d294dc..56c3051 100644 (file)
@@ -3,6 +3,7 @@
   <meta name="viewport" content="width=device-width, minimum-scale=1.0, maximum-scale=1.0"/>
   <!--[if lt IE 9]><%= javascript_include_tag "html5shiv" %><![endif]-->
   <%= javascript_include_tag "application" %>
+  <%= javascript_include_tag "i18n/" + I18n.locale.to_s %>
   <%= stylesheet_link_tag "screen-#{dir}", :media => "screen" %>
   <%= stylesheet_link_tag "print-#{dir}", :media => "print" %>
   <%= stylesheet_link_tag "leaflet-all", :media => "screen, print" %>
index 9065ed8..b7e60eb 100644 (file)
@@ -52,6 +52,9 @@ Rails.application.configure do
   # Suppress logger output for asset requests.
   config.assets.quiet = true
 
+  # Export translations automatically
+  config.middleware.use I18n::JS::Middleware
+
   # Raises error for missing translations
   # config.action_view.raise_on_missing_translations = true
 
index 1449545..0697bfe 100644 (file)
@@ -1,27 +1,8 @@
-# Split context in several files.
-# By default only one file with all translations is exported and
-# no configuration is required. Your settings for asset pipeline
-# are automatically recognized.
-#
-# If you want to split translations into several files or specify
-# locale contexts that will be exported, just use this file to do
-# so.
-#
-# If you're going to use the Rails 3.1 asset pipeline, change
-# the following configuration to something like this:
-#
-#   translations:
-#     - file: "app/assets/javascripts/i18n/translations.js"
-#
-# If you're running an old version, you can use something
-# like this:
-#
-#   translations:
-#     - file: "public/javascripts/translations.js"
-#       only: "*"
-#
+export_i18n_js: false
+
 translations:
-  - file: "app/assets/javascripts/i18n/translations.js"
+  - file: "app/assets/javascripts/i18n/%{locale}.js"
+    pretty_print: true
     only:
     - "*.date"
     - "*.time"
index 5f8a4de..7bd35da 100644 (file)
@@ -13,7 +13,7 @@ Rails.application.config.assets.paths << Rails.root.join("config")
 # application.js, application.css, and all non-JS/CSS in the app/assets
 # folder are already added.
 Rails.application.config.assets.precompile += %w[index.js browse.js welcome.js fixthemap.js]
-Rails.application.config.assets.precompile += %w[user.js login.js diary_entry.js messages.js edit/*.js]
+Rails.application.config.assets.precompile += %w[user.js login.js diary_entry.js messages.js edit/*.js i18n/*.js]
 Rails.application.config.assets.precompile += %w[screen-ltr.css print-ltr.css]
 Rails.application.config.assets.precompile += %w[screen-rtl.css print-rtl.css]
 Rails.application.config.assets.precompile += %w[leaflet-all.css leaflet.ie.css]
index 6599698..a7e2248 100644 (file)
@@ -1,6 +1,7 @@
 files:
   - "**/*.js"
 exclude_paths:
+  - "app/assets/javascripts/i18n"
   - "vendor/assets/javascripts"
 options:
   eqeqeq: true