ajout du selecteur de langue

This commit is contained in:
lydiasan 2021-05-12 16:30:35 +02:00
parent 61f49619ba
commit 42153d1d37
6 changed files with 32 additions and 4 deletions

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 66 KiB

View file

@ -18,7 +18,8 @@ class ApplicationController < ActionController::Base
before_action :set_active_storage_host
before_action :setup_javascript_settings
before_action :setup_tracking
before_action :set_locale
around_action :switch_locale
helper_method :multiple_devise_profile_connect?, :instructeur_signed_in?, :current_instructeur, :current_expert, :expert_signed_in?,
:administrateur_signed_in?, :current_administrateur, :current_account
@ -308,9 +309,15 @@ class ApplicationController < ActionController::Base
current_user&.email
end
def set_locale
if ENV.fetch('LOCALIZATION_ENABLED', 'false') == 'true'
I18n.locale = http_accept_language.compatible_language_from(I18n.available_locales)
end
def switch_locale(&action)
locale = nil
if cookies[:locale]
locale = cookies[:locale]
elsif ENV.fetch('LOCALIZATION_ENABLED', 'false') == 'true'
locale = http_accept_language.compatible_language_from(I18n.available_locales)
else
locale = I18n.default_locale
end
I18n.with_locale(locale, &action)
end
end

View file

@ -87,4 +87,9 @@ class RootController < ApplicationController
format.js { render js: helpers.remove_element('#outdated-browser-banner') }
end
end
def save_locale
cookies[:locale] = params[:locale]
redirect_to request.referer
end
end

View file

@ -81,3 +81,6 @@
- else
= render partial: 'shared/help/help_button'
%li
= render partial: 'layouts/locale_dropdown'

View file

@ -0,0 +1,11 @@
.dropdown.locale-dropdown
%button.button.dropdown-button.icon-only.header-menu-button{ title: "Translate", 'aria-expanded' => 'false', 'aria-controls' => 'locale_menu' }
.hidden Translate
= image_tag "icons/translate-icon.svg", alt: 'Translate', 'aria-hidden':'true'
%ul.header-menu.dropdown-content#mon_compte_menu
%li
= link_to save_locale_path(locale: :en), method: :post, class: "menu-item menu-link" do
EN - English
%li
= link_to save_locale_path(locale: :fr), method: :post, class: "menu-item menu-link" do
FR - français

View file

@ -151,6 +151,7 @@ Rails.application.routes.draw do
get "patron" => "root#patron"
get "suivi" => "root#suivi"
post "dismiss_outdated_browser" => "root#dismiss_outdated_browser"
post "save_locale" => "root#save_locale"
get "contact", to: "support#index"
post "contact", to: "support#create"