Bonsoir,
Merci pour les infos et ton code peu m’intéresser en effet.
++ krull
-----Message d’origine-----
De : [email protected]
[mailto:[email protected]] De la part de Tron J.
Envoyé : lundi 15 mai 2006 21:01
À : [email protected]
Objet : Re: [RailsFr] Localisation : best practice
Le Vendredi 12 Mai 2006 22:45, Krull a écrit :
Une idée pour faire ça simplement, un plugin peut être ?
J’ai été confronté au problème il n’y a pas si longtemps, j’ai opté pour une
modification du plugin de Thomas F. : Localization.
Le principe est assez simple, un fichier par langue avec des clefs
associées
aux traductions. Mes modification ajoute quelques méthodes qui me semblent
indispensable :
-
methode __() sur object qui permet de récupérer une traduction pour la
langue spécifiée (la méthode _() ne permettant que de récupérer la valeur
pour la langue courante, définit globalement)
-
modification des méthodes d’initialisation pour intercepté des noms bien
spécifiques pour les clefs pour les traductions des controlleurs et des
actions dans les routes, respectivement controller::xxxx et action::xxxx
-
Ajout pour les noms des controller et des actions de données membres à la
classe Localization pour accélérer les traitements.
-
Création d’un mixin pour les controller (la partie la plus périlleuse),
qui
ajoute des actions fictives aux controlleurs dans lesquels il est inclut
qui
ne font qu’appeller l’action “non traduite”. Ca peut paraitre étrange mais
ça
permet aux fonction link_to et consors de fonctionner correctement avec
la
suite.
- Dans le fichier routes.rb, pour chaque langues, j’ajoute une
route “traduite”, pour chaque controller. Ce qui me donne des chose de
ce
style :
Mappage des url avec traduction
Localization.l10s.keys.each { |lang|
map.connect __(‘controller::welcome’, lang) + ‘/:action/:id’,
:controller
=> ‘welcome’
map.connect __(‘controller::search’, lang)
- ‘/:action/:id’, :controller => ‘search’
map.connect __(‘controller::company’, lang) + ‘/:action/:id’,
:controller
=> ‘company’
}
Bref c’est pas encore l’idéal mais ça permet d’avoir des url traduites, et
du
contenu en plusieurs langues.
Si quelqu’un est intéressé par le code, je pourrais le mettre à disposition.
Jonathan
http://jonathan.tron.name
Railsfrance mailing list
[email protected]
http://lists.rubyonrails.fr/mailman/listinfo/railsfrance