Je ne l'ai pas testé personnellement mais a priori, il n'y a que peu de travail à fournir en plus de celui que tu as déjà fait. En effet, le comportement du Behavior i18n dépend de la culture de l'utilisateur. Ainsi, si la culture est fr, le modèle donnera le champ en français par la méthode $myObject->getMyI18nField() ou le champ en anglais si la culture est en et que le champ a bien une traduction dans cette langue.
Reste seulement l'impact sur les formulaires mais c'est léger comme l'explique la documentation : <http://www.symfony-project.org/jobeet/1_2/Propel/fr/19#chapter_19_sub_admin _generator> -----Message d'origine----- De : [email protected] [mailto:[email protected]] De la part de coolmec33 Envoyé : mercredi 29 décembre 2010 10:04 À : Symfony-fr Objet : [symfony-fr] Re: Internationalisation merci Lélio, la méthode que tu m'a envoyé et celle que j'ai utilisé pour traduire dabord les textes statiques... Mais je travail avec symfony 1.2 et propel http://www.symfony-project.org/jobeet/1_2/Propel/fr/19 maintenant je suis sur le redéfinition de la base (schema.yml) et c'est la que j'ai peur. Bon je vais essayer comême.. je vous tiens au courant cordialement On 29 déc, 08:43, Lélio ML <[email protected]> wrote: > Dans Symfony, il est possible de traduire le contenu des tables grace > aux Behaviors. > L'internalisation est déjà prévue, autant ne pas réinventer la roue ;) > > http://www.symfony-project.org/jobeet/1_4/Doctrine/fr/19#chapter_19_s... > objets_de_doctrine > > -----Message d'origine----- > De : [email protected] [mailto:[email protected]] > De la part de Mohamed Ayoub Benjelloun Envoyé : mardi 28 décembre 2010 > 23:46 À : [email protected] Objet : Re: [symfony-fr] Re: > Internationalisation > > J'essaierai de te lister les méthodes possibles, après en fonction de > ton besoin et de tes contraintes tu en choisis celle qui te conviens > le plus > > - Méthode 1: [n bdd] (But: ne pas toucher à notre code) Je pense que > la seule manière possible de traduire le contenu dynamique de ton site > sans avoir à toucher ni à la base de données ni aux actions c'est > d'utiliser une autre base de données dont le schéma est identique à la > première, mais avec des données différentes (données de l'autre langue), il faudra déjà: > - trouver le moyen de passer outre le databases.yml, tu n'as qu'à > explorer le code de symfony le but c'est d'en avoir 1 par langue, et > de forcer symfony à choisir celui qui correspond à la langue en cours > lors de ces connexions à la base de données. > - Détecter les données communes aux deux bases et écrire un script qui > les copiera sur les copies de la base principale > - Écrire un cron qui permettra la mise à jour des copies en fonction > du besoin => Avantages: tu ne toucheras point à tes actions => Inconv: > données redondante, latence entre les maj, tu t'aventureras sur la > partie ORM de symfony attends toi à des obstacles, bug, incohérances... > > - Méthode2: [Moteur de traduction] (toucher peu à notre code en dépit > d'un manque de qualité du traduisible) Si tu juges que le moteur de > traduction de yahoo ou astalavista basé sur babelfish est assez > performant, tu pourra l'utiliser via la classe en pièce jointe il faut: > - réécrire la fonction "echo" en tant que helper pour qu'elle puisse > en fait afficher le résultat de la méthode translate() de notre classe > (http://blog.firehist.org/2010/02/21/symfony-creer-un-helper-personnal > ...) > - faire un ctrl+H sur tes modules (eclipse) et recherche les instances > de "echo" tu les changeras par le nom de ta méthode => Avantages: tu > ne toucheras que peu à ton code => Inconv: Babelfish est loin d'être > un traducteur assermenté, il en créera des vannes sur ton site, pourvu > que ça soit pas un site de pompe funèbre > > - Méthode3: [réutilisation des tables] (modifier le code, mais faire > du > clean) l'idée est d'insérer deux id supplémentaires à toutes tes > tables dont le contenu désire être traduit, un id pour définir la > langue, puis un id propre à chaque objet et qui sera le même pour 3 > lignes par exemple représentant la même information mais en 3 langues > différentes, ces deux dimensions permettront de situer n'importe quel article dans son contexte. > il faut: > - revoir la logique de toutes tes actions, > - sortir le bon article dans la langue adéquate, traiter le cas de la > non existence de la traduction ... > => Avantages: tu auras du code clean > => Inconv: il te faut assez de temps pour tous modifier > > - Méthode4: [tables de traduction] (modifier le code, mais faire du > clean) l'idée est un peu près la même que la 3 sauf que tu lieras > chaque table à contenu traduisible avec une autre contenant les > traductions, ceci est le cas général après en fonction des relations > entre tes tables tu peux rencontrer des complications (jointures, ...) > => Avantages: tu auras du code clean => Inconv: il te faut assez de > temps pour tous modifier > > Cordialement, > > Ayoub Mohamed BENJELLOUN > IED-CP / Smile Maroc > Smile – Open Source Solutionswww.smile.fr [email protected] > +212 661 96 44 01 > > -- > Vous recevez ce message, car vous êtes abonné au groupe Google Groupes > Symfony-fr. > Pour envoyer un message à ce groupe, adressez un e-mail à > [email protected]. > Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse > [email protected]. > Pour plus d'options, consultez la page de ce groupe :http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr -- Vous recevez ce message, car vous êtes abonné au groupe Google Groupes Symfony-fr. Pour envoyer un message à ce groupe, adressez un e-mail à [email protected]. Pour vous désabonner de ce groupe, envoyez un e-mail à l'adresse [email protected]. Pour plus d'options, consultez la page de ce groupe : http://groups.google.com/group/symfony-fr?hl=fr
