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 .