Précédent   Forum des professionnels en informatique > PHP > Outils > Zend > Zend Framework
Zend Framework Forum d'entraide sur la programmation PHP avec Zend Framework. Avant de poster -> FAQ ZF, Cours ZF
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 14/03/2011, 21h56   #1
Membre du Club
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 50
Points : 50
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 :-)
misterakm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 22h01   #2
Modérateur
 
Inscription : septembre 2010
Messages : 7 102
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 102
Points : 8 465
Points : 8 465
rien ne t'empêche d'utiliser le Google Translate avec Zend\Gdata
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 22h55   #3
Membre du Club
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 50
Points : 50
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.
misterakm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 22h56   #4
Modérateur
 
Inscription : septembre 2010
Messages : 7 102
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 102
Points : 8 465
Points : 8 465
donc quel est le probleme ???
un Zend_Translate suffis, a toi de joué avec le format de traduction que tu veux après
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 23h17   #5
Membre du Club
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 50
Points : 50
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 :
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
misterakm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 23h30   #6
Modérateur
 
Inscription : septembre 2010
Messages : 7 102
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 102
Points : 8 465
Points : 8 465
et ton titre en français il est stocker/editer ou ?
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/03/2011, 23h39   #7
Membre confirmé
 
Avatar de FERDIKAM
 
Ferdinand AMOI
Inscription : janvier 2005
Messages : 108
Détails du profil
Informations personnelles :
Nom : Ferdinand AMOI

Informations forums :
Inscription : janvier 2005
Messages : 108
Points : 264
Points : 264
Envoyer un message via MSN à FERDIKAM Envoyer un message via Yahoo à FERDIKAM Envoyer un message via Skype™ à FERDIKAM
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
FERDIKAM est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 00h02   #8
Membre du Club
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 50
Points : 50
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).
misterakm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 00h06   #9
Modérateur
 
Inscription : septembre 2010
Messages : 7 102
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 102
Points : 8 465
Points : 8 465
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
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 07h29   #10
Membre du Club
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 50
Points : 50
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é.
misterakm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 10h32   #11
Modérateur
 
Inscription : septembre 2010
Messages : 7 102
Détails du profil
Informations forums :
Inscription : septembre 2010
Messages : 7 102
Points : 8 465
Points : 8 465
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
__________________
http://blog.stealth35.com/
stealth35 est actuellement connecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/03/2011, 21h36   #12
Membre du Club
 
Inscription : janvier 2011
Messages : 27
Détails du profil
Informations personnelles :
Localisation : Belgique

Informations forums :
Inscription : janvier 2011
Messages : 27
Points : 50
Points : 50
Je ne sais pas si on parle de la même chose.

Ce que je recherche, c'est ça :

Code :
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).
misterakm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h10.


 
 
 
 
Partenaires

Hébergement Web