Globalite problème de fall back

Bonjour à tous,

J’ai placé ma première appli’ rails en ligne mais j’ai un petit souci
avec globalite.

En local, le fall back fonctionne bien; si le navigateur est dans une
langue qui n’est pas utilisée sur le site (ici fr et nl), donc par ex.
si le navigateur est en anglais, en local le site s’ouvre par défaut en
nl correctement.

Mais en ligne ça ne fonctionne plus, je reçois des erreurs
“localization_missing”, apparemment globalite ne renvoie plus
automatiquement vers mon fichier langue nl.yml.

Quelqu’un aurait-il une idée pour m’aider?

Merci à tous,

Dans mon fichier environment.rb, j’ai ajouté ceci “Globalite.language =
:nl”

Mon fichier application.rb

class ApplicationController < ActionController::Base
helper :all # include all helpers, all the time

include AuthenticatedSystem

See ActionController::RequestForgeryProtection for details

Uncomment the :secret if you’re not using the cookie session store

protect_from_forgery # :secret => ‘5880ee74dae8cc2f2a3cc02e4976d601’

around_filter :set_locale
private

Set the locale from the parameters, the session, or the navigator

If none of these works, the Globalite default locale is set (en-*)

def set_locale
@current_path = request.env[‘PATH_INFO’]
@request_method = request.env[‘REQUEST_METHOD’]
if params[:user_locale]
logger.debug params[:user_locale]
Locale.code = params[:user_locale]
#get_matching_ui_locale(params[:user_locale][:code]) #||
session[:locale] || get_valid_lang_from_accept_header ||
Globalite.default_language
session[:locale] = Locale.code
elsif session[:locale]
Locale.code = session[:locale]
else
Locale.code = get_valid_lang_from_accept_header.local_case
end
logger.debug “[globalite] Locale set to #{Locale.code}”
yield
Locale.reset!
end

def get_sorted_langs_from_accept_header
accept_langs = (request.env[‘HTTP_ACCEPT_LANGUAGE’] ||
“en-us,en;q=0.5”).split(/,/) rescue nil
return nil unless accept_langs
wl = {}
accept_langs.each {|accept_lang|
if (accept_lang + ‘;q=1’) =~ /^(.+?);q=([^;]+)./
wl[($2.to_f rescue -1.0)]= $1
end
}
logger.debug “[globalite] client accepted locales: #{wl.sort{|a,b|
b[0] <=> a[0] }.map{|a| a[1] }.to_sentence}”
wl.sort{|a,b| b[0] <=> a[0] }.map{|a| a[1] }
end
def get_valid_lang_from_accept_header
get_sorted_langs_from_accept_header.detect{|l|
get_matching_ui_locale(l) }
end
def get_matching_ui_locale(locale)
lang = locale[0,2].downcase
if Globalite.ui_locales.values.include?(locale.local_case)
locale.local_case
end
Globalite.ui_locales.values.each do |value|
value.to_s =~ /#{lang}-
/ ? value : nil
end
end
end
class String
def local_case
if self[3,5]
“#{self[0,2]}-#{self[3,5].upcase}”.to_sym
else
“#{self[0,2]}-*”.to_sym
end
end
end

Hereunder where I defin the language in my controllers:
@homepages =
Homepage.find_all_by_language_id(Language.resolve(Locale.code.to_s[0,2]))

Thanks in advance for your help!