IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Zend Framework PHP Discussion :

Traduction objets (i18n et L10n)


Sujet :

Zend Framework PHP

  1. #1
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Par défaut Traduction objets (i18n et L10n)
    Bonjour !

    Voilà, pour l'interface utilisateur, traduire avec Zend_Translate et Zend_Locale est relativement aisé.

    Qu'en est-il pour la traduction de ce qui est contenu dans les objets ?

    Exemple : un article de blog contient un titre et un message. Cependant, si j'ai un site multi-langues, y'a-t-il un support dans le framework pour simplifier la tâche du développeur ou doit-il, comme je pense, établir lui même son modèle relationnel (tables et champs dans la base de données) pour tenir compte de ceci ?

    Bonus: utiliser Doctrine peut-il aider d'une façon ou d'une autre ?

    Merci :-)

  2. #2
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    rien ne t'empêche d'utiliser le Google Translate avec Zend\Gdata

  3. #3
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Par défaut
    stealth35, merci pour ta réponse mais, malheureusement, une application professionnelle ne peut pas se contenter d'une traduction de Google Translate. Il y aura une personne responsable de la traduction du contenu en plusieurs autres langues.

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    donc quel est le probleme ???
    un Zend_Translate suffis, a toi de joué avec le format de traduction que tu veux après

  5. #5
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Par défaut
    Donc tu me suggères de traduire chaque titre de chaque article d'un blog par exemple ? Comment faire si les titres changent sachant que les titres sont contenus dans une base de données ? Même question pour les messages des news, par exemple ? Supposons 5 langues.

    Quelle serait la marche à suivre avec Zend_Translate pour traduire les messages qui font une centaine de lignes (par exemple) ?

    Zend_Translate est utile pour traduire des chaines de caractères de l'interface web. Exemple "Bienvenue utilisateur".' '.$username;

    et alors il suffit de reprendre (gettext, XLIFF, array, ...) la chaine "Bienvenue utilisateur" et d'en donner l'équivalent dans les 4 autres langues.

    Or, moi ce que je cherche à savoir c'est si le framework apporte un support du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Message $m = ...; // message récupéré depuis la base de données
    $m->getTitle(); // renvoie le titre en français si le contexte (Zend_Locale) est en français

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    et ton titre en français il est stocker/editer ou ?

  7. #7
    Membre très actif
    Avatar de FERDIKAM
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2005
    Messages
    123
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : Transports

    Informations forums :
    Inscription : Janvier 2005
    Messages : 123
    Par défaut
    moi je me suis inspiré du tutoriel http://g-rossolini.developpez.com/tutoriels/php/exemple-abstraction/
    Donc pour répondre à ta question, c'est dans le modèle que tu gère la traduction des objets

  8. #8
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    et ton titre en français il est stocker/editer ou ?
    Dans la base de données, bien sûr.

    Citation Envoyé par FERDIKAM Voir le message
    moi je me suis inspiré du tutoriel http://g-rossolini.developpez.com/tutoriels/php/exemple-abstraction/
    Donc pour répondre à ta question, c'est dans le modèle que tu gère la traduction des objets
    C'est effectivement une façon de faire mais mon objectif est d'automatiser la création des tables annexes qui servent uniquement à la traduction (ou d'utiliser justement un système pré-existant, comme dans Symfony par exemple).

    En fait, ma question c'est de savoir si le Zend Framework assiste quelque part dans l'i18n des objets (et donc de la base de données puisque je parle d'objets persistants).

  9. #9
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    Citation Envoyé par misterakm Voir le message
    Dans la base de données, bien sûr.
    tu peux te faire un Zend_Translate_Adapter_Db

  10. #10
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Par défaut
    Citation Envoyé par stealth35 Voir le message
    tu peux te faire un Zend_Translate_Adapter_Db
    Des personnes ont essayé, exemple : http://framework.zend.com/issues/browse/ZF-3398 (regarde les commentaires de la team ZF, fort peu encourageants).

    En gros, il faut attendre que le framework sorte la "bonne version" de ce composant (ou se risquer à programmer soi-même quelque chose d'équivalent).

    Je marque ce post comme résolu: Zend Framework ne supporte pas actuellement cette fonctionnalité.

  11. #11
    Expert confirmé

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Par défaut
    C'est surtout que c'est pas très optimisé par rapport au outils qui existe déjà, regarde par exemple ce qui se fait sur les mirror de php.net (format docbook).

    Je te conseil plus de tourner vers un format XLIFF, qui est supporter par Zend Framework, Symfony, PHP Intl, et pour les autre langage via ICU, le tout construit avec le RBManager, si tu veux du professionnel c'est vers cette outils qu'il faut te tourner

  12. #12
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    27
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Janvier 2011
    Messages : 27
    Par défaut
    Je ne sais pas si on parle de la même chose.

    Ce que je recherche, c'est ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    $product = ProductPeer::retrieveByPk(1);
    $product->setName('Nom du produit'); // By default, the culture is the current user culture
    $product->save();
     
    echo $product->getName();
     => 'Nom du produit'
     
    $product->setName('Product name', 'en'); // change the value for the 'en' culture
    $product->save();
     
    echo $product->getName('en');
     => 'Product name'
    Source : http://www.symfony-project.org/book/...-I18n-and-L10n, "Listing 13-8 - Dealing with i18n Objects"

    Tu vois ? C'est l'objet qui est internationalisé dans la base de données (voir : "Listing 13-7 - Sample Schema for i18n Data, Short Version, in config/schema.yml"). (cela n'a rien avoir avec le format XLIFF, CSV ou TMX).

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [1.x] PostUpdate et PreUpdate sur objet i18n
    Par Fused dans le forum Symfony
    Réponses: 12
    Dernier message: 30/05/2011, 10h19
  2. Order By sur objet i18n
    Par Fused dans le forum ORM
    Réponses: 3
    Dernier message: 13/01/2011, 11h27
  3. [1.x] Problème sur backend, éditer un objet i18n
    Par Fused dans le forum Symfony
    Réponses: 1
    Dernier message: 10/08/2010, 07h20
  4. [I18n] Traduction via des fichiers ou en base ?
    Par SekYo dans le forum Ruby on Rails
    Réponses: 8
    Dernier message: 27/04/2007, 11h22
  5. Réponses: 1
    Dernier message: 21/07/2006, 14h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo