Quelques soucis avec Globalite

Bonjour à tous,

Je suis nouveau sur Rails (je viens du monde java), et j’avoue que plus
j’en
découvre et plus ca me plait :slight_smile:

J’ai un petit problème à l’utilisation de Globalite :

Mon environnement :

  • Dev : Ubuntu / Feisty + WebRick
  • Test: Ubuntu / Feisty + Apache2 + Mongrel
    Je déploie avec capistrano

J’ai donc intégré le plugin Globalite et je me suis inspiré du
around_filter
de l’application sample du site officiel pour gérer le changement de
langue
:

class ApplicationController < ActionController::Base
around_filter :set_locale

private
def set_locale
if params[:user_locale]
Locale.code = params[:user_locale]
# Store the locale in the session
session[:locale] = params[:user_locale]
elsif session[:locale]
Locale.code = session[:locale]
else
Locale.code = “fr-FR”
end
# render the page
yield
# reset the locale to its default value
Locale.reset!
end

end

Ensuite j’appelle n’importe quel controleur avec ?user_locale=fr-FR ou
en-US
ou en-UK
J’ai 2 fichiers dans lang/ui : fr.yml et en.yml

Mon problème : sur mon environnement de dev pas de soucis, sur
l’environnement de test ca marche pour fr-FR mais il ne fait pas le lien
entre les 2 locales anglaises et mon fichier en.yml
Or j’aimerais pouvoir mettre tout ce qui est commun aux 2 locales dans
en.yml et tout ce qui est spécifique dans en-US.yml et en-UK.yml

De plus, plutôt que de mettre le “fr-FR” en langue par défaut (dans le
else), j’aimerais pouvoir mettre la langue choisie au niveau du
navigateur
… quelqu’un sait comment gérer ca ?

Merci.

Emmanuel

Emmanuel :

Bonjour à tous,

Je suis nouveau sur Rails (je viens du monde java), et j’avoue que plus j’en
découvre et plus ca me plait :slight_smile:

Bienvenue !

[…]

De plus, plutôt que de mettre le “fr-FR” en langue par défaut (dans le
else), j’aimerais pouvoir mettre la langue choisie au niveau du navigateur
… quelqu’un sait comment gérer ca ?

Il faut le déduire depuis request.env[‘HTTP_ACCEPT_LANGUAGE’]

(voir HTTP/1.1: Header Field Definitions )

Tu peux t’inspirer de la méthode ActionController::Base
#get_valid_lang_from_accept_header définie dans le plugin
GLoc dans gloc-rails.rb :

http://gloc.rubyforge.org/svn/trunk/lib/gloc-rails.rb

ou de ce patch-ci : http://dev.rubyonrails.org/ticket/6654

– Jean-François.


Ruby ( http://www.rubyfrance.org ) on Rails ( http://www.railsfrance.org
)

Jean-François, j’ai adapté la méthode et ca fonctionne très bien …
merci
:slight_smile:

J’ai remarqué un autre comportement étrange avec Globalite :
Quand je nomme mon fichier de traductions francaises fr.yml, Globalite
ne le
reconnait pas (il ne se trouve pas dans Globalite.ui_locales) alors que
en.yml est reconnu.
Je suis obligé de l’appeler fr-FR.yml
Quelqu’un sait pourquoi ?

Merci

Emmanuel

Le 27/08/07, Jean-François Trân [email protected] a écrit :