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
