JeuWeb - Crée ton jeu par navigateur
I18n - Version imprimable

+- JeuWeb - Crée ton jeu par navigateur (https://jeuweb.org)
+-- Forum : Discussions, Aide, Ressources... (https://jeuweb.org/forumdisplay.php?fid=38)
+--- Forum : Programmation, infrastructure (https://jeuweb.org/forumdisplay.php?fid=51)
+--- Sujet : I18n (/showthread.php?tid=5101)

Pages : 1 2


I18n - Thib4s - 20-08-2010

Bonjour à tous,

Voila je me heurte à un probleme. Il y a peu j'ai décidé d'utiliser I18n pour mon app RoR.
Cependant je n'arrive pas a translater des contenu du genre de :
fr:
controller:
message: "Si vous n'avez pas encore de compte, vous pouvez vous rendre sur #{link_to 'cette page', account_users_new_path} pour en créer un."

PS: j'utilise HAML


RE: I18n - Sephi-Chan - 20-08-2010

Tu n'as pas le droit d'utiliser de helpers dans le les traductions, il me semble.
Comment invoques-tu cette traduction ?


Sephi-Chan


RE: I18n - Thib4s - 20-08-2010

Ben de la manière bête :
Code PHP :
<?php 
t
"controller.message"

Je suis désolé si sa fait naab mais les docs sur I18n de rails elles sont cachéees sur la toile ondirait Sad


RE: I18n - Sephi-Chan - 20-08-2010

Oui mais tu utilises ça dans un contrôleur (pour un flash message, par exemple) ou dans la vue ?
Le guide sur le module i18n est assez complet mais c'est vrai qu'il y a un vide là dessus. Du moins, je ne m'étais jamais posé la question.

Et si dans ta clé tu mets :


fr:
controller:
message: "Bla bla {{link}} bla bla"

Et que dans la vue tu fais :


%p= t('controller.message', :link => link_to('bla', root_url))


Si c'était dans un contrôleur, tu peux faire :


flash[:notice] = t('controller.message', :link => @template.link_to('bla', root_url))
redirect_to(root_url)


Je me renseignerai sur l'utilisation de helpers au sein des traductions.

En attendant d'en savoir plus, sache que tu peux faire des vues localisées (en gros une vue nommée index.fr.html.haml (en mettant une locale derrière le nom de la vue, ce qui implique d'avoir une version de chaque page pour chaque langue) : c'est très bien pour les emails et les pages statiques (par contre c'est à éviter pour la majorité des autres cas !).


Sephi-Chan


RE: I18n - Thib4s - 20-08-2010

La méthode marche mais Bon niveau lisibilité sa devient le bordel surtout pour le fichier du "locales/fr"
Je pense que je vais passer par une page pour chaque langue, niveau lisibilité et maintenance du code c'est beaucoup mieux.
Je vais quand même poster une demande sur StackOver histoire de mourir moins bête ;P

Bon le problème presse pas non plus a mort c'est juste que dans l'optique du futur c'est toujours mieux d'avoir la possibilité de traduire l'application tout a portée de main plutôt que de passer des heures a mettre en place le système.


RE: I18n - Sephi-Chan - 20-08-2010

Oui, pour les pages où tu as beaucoup de texte, une version localisée globale est plus intéressante, car la traduction phrase par phrase a ses limites car il peut être difficile de résumer un paragraphe en un nom de clé.

Le système de clés est très bien pour des choses courtes : le libellé d'un lien, un titre, un message d'erreur, etc.

A toi de choisir la solution qui te convient selon les quantités de texte que tu manipules. Wink


Sephi-Can


RE: I18n - Thib4s - 20-08-2010

Ouaip clairement ^^
Ecoute je vois si j'ai des réponses, si c'est le cas je te fais suivre ;P


RE: I18n - Sephi-Chan - 20-08-2010

Tu peux même link le topic ici. Big Grin

Même si c'est totalement hors sujet, puisque tu utilises Haml, je te conseille de tester Sass (http://sass-lang.com/) avec la syntaxe SCSS. Ça risque de bien changer ta façon d'utiliser CSS (et te guider dans la manière de structurer ton HTML, d'attribuer les class et id, etc. Tu pourrais aimer. Big Grin


Sephi-Chan


RE: I18n - Thib4s - 20-08-2010

J'utilise déjà Sass ;P
C'est une ptite merveille ce couple utilisé avec Rails Big Grin


RE: I18n - Thib4s - 20-08-2010

Je suis ptet Hors Sujet Sephi mais on ne pourait pas créer une partie Rails dans le Fofo parce que la manière de coder et de penser son code est quand même nettement différent.
De plus il y a beaucoup de chose qui sont super utile et qui facilite la vie mais qu'on ne peut pas utiliser "facilement" en PHP (Haml&SASS).
De plus je pense que sa motiverais les gens à apprendre un peu plus sur rails comme sa .
Idée en passant hein ;P