diff --git a/app/controllers/application_controller.rb b/app/controllers/application_controller.rb index d880949..2ae5dcf 100644 --- a/app/controllers/application_controller.rb +++ b/app/controllers/application_controller.rb @@ -152,6 +152,15 @@ class ApplicationController < BaseController @page_title = 'page_titles.404.Locale_Not_Available' @main_title_vars = { vars: { language: view_context.language_name(locale) } } @main_title = 'error.locale_not_available.title' + + unless @alt_lang_urls.present? + @alt_lang_urls = {} + I18n.backend.enabled_locales.sort.each do |locale| + locale = locale.to_s + @alt_lang_urls[locale] = view_context.url_for_locale(locale) # don't show the current locale + end + end + render 'application/locale_not_available', status: 404 end diff --git a/app/views/application/locale_not_available.html.haml b/app/views/application/locale_not_available.html.haml index f9beb45..af09ea6 100644 --- a/app/views/application/locale_not_available.html.haml +++ b/app/views/application/locale_not_available.html.haml @@ -1,13 +1,13 @@ -= render :partial => 'application/header', :locals => {:image_file => 'runes.jpg'} += render partial: 'application/header', locals: {image_file: 'runes.jpg'} = row do - = columns(medium: 12) do - %p= _'error.locale_not_available.description', :p, @main_title_vars - %ul.locales - - @alt_lang_urls.each do |locale, url| - %li - - locale_translation = language_name(locale, true) - %a.button{href: url, lang: locale} - =_'translate.content.change_locale', "Read in #{locale_translation}", vars: {language: locale_translation}, locale: locale - %h2= _'error.locale_not_available.volunteer.title' - %p= _'error.locale_not_available.volunteer.description' - = render 'contact', cancel_btn: false, contact_reason: :website, locale: :en \ No newline at end of file + = columns(medium: 12) do + %p= _'error.locale_not_available.description', :p, @main_title_vars + %ul.locales + - (@alt_lang_urls || I18n.backend.enabled_locales.sort || [:en]).each do |locale, url| + %li + - locale_translation = language_name(locale, true) + %a.button{href: url, lang: locale} + =_'translate.content.change_locale', "Read in #{locale_translation}", vars: {language: locale_translation}, locale: locale + %h2= _'error.locale_not_available.volunteer.title' + %p= _'error.locale_not_available.volunteer.description' + = render 'contact', cancel_btn: false, contact_reason: :website, locale: :en