Salut,

Il y a peu être une meilleur manière de faire de nos jours mais dans un projet 
il y a quelques années ce que j'ai fais:


Crée un before_filter in application.rb avec une méthode qui fais la sélection 
de la langue en regardant la request.env['HTTP_ACCEPT_LANGUAGE'] et fessant une 
sélection en fonction. 

en PSEUDO CODE:

application_controller.rb

        before_filter :select_locale

        # ce que l'on a fais comme le site était assez gros  on a crée un map 
en yml. Ci dessous le concept en simplifier 
        # (on présentais des traductions en fonction de la langue et du pays 
avec des traductions différentes ex: espagnol d'Espagne ou espagnol du Mexique )
        def select_locale
                if request.env['HTTP_ACCEPT_LANGUAGE'][0..1] == 'es'
                        I18n.locale ='es'
                else
                        I18n.locale = 'en'
                end 

        end

Comme ça tu n'a pas besoins des URL /en ou /fr ou /es… si tu va sur un site en 
anglais tu exécutera les même contrôleur et méthodes seul les locales changes.

plus d'info:

http://guides.rubyonrails.org/i18n.html
http://railscasts.com/episodes/138-i18n

- Bruno


On Feb 19, 2013, at 9:01 PM, oto iashvili <[email protected]> wrote:

> salut,
> 
> j'ai un site en plusieurs langue, avec des url du type /:locale_id/...
> la langue par defaut est le francais. Afin d'eviter les pages en double, 
> j'aimerais que si je suis en francais, et que j'appelle root_path, ca me 
> renvoie "/" et si je suis en anglais, ca me renvoie "/en/"
> est-ce possible ? si oui, quelqu'un pourrait il m'expliquer comment faire ?
> 
> merci
> 
> -- 
> -- 
> Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
> Google Groups.
> Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
> [email protected]
> Pour résilier votre abonnement envoyez un e-mail à l'adresse 
> [email protected]
> --- 
> Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
> Railsfrance.
> Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le 
> concernant, envoyez un e-mail à l'adresse 
> [email protected].
> Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out 
> .
>  
>  

-- 
-- 
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de 
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse 
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse 
[email protected]
--- 
Vous recevez ce message, car vous êtes abonné au groupe Google Groupes 
Railsfrance.
Pour vous désabonner de ce groupe et ne plus recevoir d'e-mails le concernant, 
envoyez un e-mail à l'adresse [email protected].
Pour plus d'options, visitez le site https://groups.google.com/groups/opt_out .


Répondre à