From 84fb5c617fc602ebb6f714e9572dc8bdc138b288 Mon Sep 17 00:00:00 2001 From: Zachary Chai Date: Thu, 3 Nov 2016 17:22:33 -0400 Subject: [PATCH] configure i18n --- Gemfile | 2 ++ Gemfile.lock | 2 ++ app/controllers/application_controller.rb | 5 +++++ config/application.rb | 7 +++++++ 4 files changed, 16 insertions(+) diff --git a/Gemfile b/Gemfile index 88051b89..3d5b03a1 100644 --- a/Gemfile +++ b/Gemfile @@ -60,3 +60,5 @@ gem 'bootstrap-social-rails', '~> 4.12' gem 'font-awesome-rails' gem 'jquery-ui-rails' gem 'jquery-datatables-rails', '~> 3.4.0' + +gem 'http_accept_language' diff --git a/Gemfile.lock b/Gemfile.lock index e946530f..e133b2f5 100644 --- a/Gemfile.lock +++ b/Gemfile.lock @@ -70,6 +70,7 @@ GEM globalid (0.3.7) activesupport (>= 4.1.0) hashie (3.4.4) + http_accept_language (2.1.0) i18n (0.7.0) jbuilder (2.6.0) activesupport (>= 3.0.0, < 5.1) @@ -212,6 +213,7 @@ DEPENDENCIES coffee-rails (~> 4.2) dotenv-rails font-awesome-rails + http_accept_language jbuilder (~> 2.5) jquery-datatables-rails (~> 3.4.0) jquery-rails diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index 09aa0fe1..defaca0b 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -3,6 +3,11 @@ require 'digest/sha1' class ApplicationController < ActionController::Base protect_from_forgery with: :exception + before_action :set_locale + + def set_locale + I18n.locale = http_accept_language.language_region_compatible_from(I18n.available_locales) + end def current_user @current_user ||= User.find_by(id: session[:user_id]) diff --git a/config/application.rb b/config/application.rb index 46c4accf..165d5ee4 100644 --- a/config/application.rb +++ b/config/application.rb @@ -12,6 +12,13 @@ module Greenlight # Application configuration should go into files in config/initializers # -- all .rb files in that directory are automatically loaded. + # i18n + # ensure each language has a regional fallback + config.i18n.available_locales = %w(en en-US) + config.i18n.default_locale = 'en-US' + config.i18n.fallbacks = {'en' => 'en-US'} + + # BigBlueButton config.bigbluebutton_endpoint = ENV['BIGBLUEBUTTON_ENDPOINT'] config.bigbluebutton_secret = ENV['BIGBLUEBUTTON_SECRET'] end