j'ai crée un fichier messages.xml dans i18n/fr
dont le contenu :
est ce que cela pourrait être suffisant?Code:
1
2
3
4
5 <trans-unit> <source>The date must be after</source> <target>La date doit être postérieure à</target> </trans-unit>
Version imprimable
j'ai crée un fichier messages.xml dans i18n/fr
dont le contenu :
est ce que cela pourrait être suffisant?Code:
1
2
3
4
5 <trans-unit> <source>The date must be after</source> <target>La date doit être postérieure à</target> </trans-unit>
L'exemple que j'avais donné plus haut ne constitue que le corps du fichier. Il manque les en-têtes.
Regarde symfony > lib > plugins > sfDoctrinePlugin > i18n, tu auras des exemples de fichiers de traduction.
J'ai ajouté le fichier messages.fr.xml :
dont la valeur du min est :Code:
1
2
3
4
5
6
7
8
9
10
11
12<?xml version="1.0" ?> <xliff version="1.0"> <file original="global" source-language="en" datatype="plaintext"> <body> <trans-unit> <source>The date must be after %min%</source> <target>La date doit être postérieure à %min%</target> </trans-unit> </body> </file> </xliff>
et j'ai même ajouté dans le monModèlForm :Code:
1
2
3
4
5 $this->setValidator('myDate', new sfValidatorDate( array( 'min' => '6 month ago', )));
ça ne marche toujours pas, alors dans le backend, tout est devenu en français automatiquement.Code:
1
2 $this->widgetSchema->getFormFormatter()->setTranslationCatalogue('messages');
Regarde la documentation Symfony concernant l'internationalisation.
De plus, ici tu lui demandes de charger le catalogue "messages" sauf que dans ton fichier messages.fr.xml tu n'indiques pas qu'il s'agit du catalogue "messages". Je crois qu'il faut remplacer original="global" par original="messages" (ou quelque chose du genre -- comme indiqué, il faut vérifier dans la documentation).
Je ne suis pas sur que le paramètre original soit pris en compte, j'ai tous mes fichier avec original="message" et ils sont fonctionnel.
Une chose pour la traduction. En général je travail en pseudo anglais dans les formulaire et je traduit pour l'anglais comme pour le français ou d'autres. L'avantage ? Il y a peu de chance que le pseudo anglais embarque une faute d'orthographe et, si on veut modifier le message d'origine, il suffit de modifier un fichier de traduction. Sans les pseudos mots, la modification du texte d'origine entrainerait la modification des <source> dans tous les fichiers de traduction. Accessoirement, si la traduction ne fonctionne plus, le pseudo nom est facilement compréhensible.
Par exemple, pour l'aide du champ nom de l'utilisateur, le pseudo serait : "X_user_name_help_X", et la traduction "Saisissez ici le nom de l'utilisateur" ou "Write here the user name".... Bon, dans l'idée.
Merci, ça fonctionne, j'ai repris le même code d'avant, au lieu de message j'ai laissé global, et ça marche bien.
Merci beaucoup pour votre aide