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

Symfony PHP Discussion :

probléme traduction errors du formulaire


Sujet :

Symfony PHP

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut probléme traduction errors du formulaire
    Bonjour, j'ai un probléme pour traduire un message d'erreur dans ma vue.

    j'ai mon champ input comme ceci dans ma vue

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
      <div>
    	{{ form_errors(form.name,form.name|trans()) }}
    	<span>{{ form_label(form.name, 'Nom :') }} </span>
    	{{ form_widget(form.name) }}
    	</div>
    	<br />
    pour l'instant j'ai ceci
    Your name must have at least 3 characters.
    les validation qui corresponde
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Ecommerce\AdminBundle\Entity\Contact:
        properties:
            name:
                - MinLength: { limit: 3, message: "Your name must have at least {{ limit }} character.|Your name must have at least {{ limit }} character." }
    le message dans mon fichier messages.fr.xlf
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    <?xml version="1.0"?>
    <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
        <file source-language="en" datatype="plaintext" original="file.ext">
            <body>
                <trans-unit id="1">
                    <source>Symfony2 is great</source>
                    <target>J'aime Symfony2</target>
                </trans-unit>
                 <trans-unit id="2">
                    <source>Your name must have at least 3 characters.</source>
                    <target>    <target>Le titre doit faire au moins 3 caractères</target></target>
                </trans-unit>
            </body>
        </file>
    </xliff>
    impossible de traduire les message pour
    j'ai le soucie suivant:
    An exception has been thrown during the rendering of a template ("Catchable Fatal Error: Object of class Symfony\Component\Form\FormView could not be converted to string in F:\projets\Symfony\vendor\symfony\symfony\src\Symfony\Component\Translation\Translator.php line 130") in EcommerceAdminBundle:Contact:contact.html.twig at line 19.
    Le titre doit faire au moins 3 caractères

    Une idée les amis

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2009
    Messages
    875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Septembre 2009
    Messages : 875
    Points : 1 313
    Points
    1 313
    Par défaut
    Je trouve ca moche d'utiliser des clés string pour de la traductions. Je vois pas comment une chaine de caractère peut avoir une unicité quelconque de traduction...

    je préfère

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Ecommerce\AdminBundle\Entity\Contact:
        properties:
            name:
                - MinLength: { limit: 3, message: "contact.name.minlenghtvalidator" }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <trans-unit id="2">
      <source>contact.name.minlenghtvalidator</source>
      <target> Le titre doit faire au moins 3 caractères/target>
    </trans-unit>

    Par ailleurs ton message d'erreur pointe sur ta mauvaise utilisation de
    {{ form_errors(form.name,form.name|trans()) }}. En plus on définit les messages d'erreurs dans validators.fr.ymlet non messages.

    Ça serait bien que tu te relises: ton code posté est dégueulasse (balises non fermé, pas d'indentation...).

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut re
    merci, mais puis je savoir d'ou vin le

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    <source>contact.name.minlenghtvalidator</source>

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    501
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 501
    Points : 102
    Points
    102
    Par défaut re
    Si je fais ce que tu dit, j'ai toujours aucune traduction
    Dans mon fichier validationyml j'ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    Ecommerce\AdminBundle\Entity\Contact:
        properties:
            name:
                - NotBlank:  { message: "contact.name.not_blank"}
    Puis je fais ma commande
    F:\projets\Symfony > php app / console translation:extract en
    - Bundle=EcommerceCatalogueBundle
    - Output-format=xlf

    De plus je suis obligé d'utilisé une commande de JmsTranlatorBundle comme ci-dessus car si je fais juste la commande
    F:\projets\Symfony > php app / console translation:update en
    EcommerceCatalogueBundle --force
    j'ai aucune traduction des validators

    Mon fichier validators.en.xlf
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      <trans-unit id="fd3b255cc78d11581e818514833387e2903d5c12" resname="contact.name.not_blank">
            <source>contact.name.not_blank</source>
            <target state="new">contact.name.not_blank</target>
          </trans-unit>
    Dans la doc de symfony il y bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Acme\BlogBundle\Entity\Author:
        properties:
            name:
                - NotBlank: { message: "author.name.not_blank" }
    Puis
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    <!-- validators.en.xliff -->
    <?xml version="1.0"?>
    <xliff version="1.2" xmlns="urn:oasis:names:tc:xliff:document:1.2">
        <file source-language="en" datatype="plaintext" original="file.ext">
            <body>
                <trans-unit id="1">
                    <source>author.name.not_blank</source>
                    <target>Please enter an author name.</target>
                </trans-unit>
            </body>
        </file>
    </xliff>
    Une idée la c'est bizare, utilise t'il une commande spéciale

    Merci de m'aider car la je censure

Discussions similaires

  1. [Joomla!] Problème traduction formulaires et données Community Builder avec Joomfish
    Par filiplarlibe dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 2
    Dernier message: 17/03/2011, 15h15
  2. Problème d'envoi par formulaire
    Par k o D dans le forum Langage
    Réponses: 3
    Dernier message: 29/12/2005, 18h31
  3. Problème heure dans un formulaire
    Par Faro dans le forum Access
    Réponses: 7
    Dernier message: 15/09/2005, 11h11
  4. [FASM=>NASM] Problème traduction avec MOD et $
    Par SteelBox dans le forum Assembleur
    Réponses: 4
    Dernier message: 30/05/2005, 14h16
  5. [HTML] Problème d'envoi de formulaire
    Par autumn319 dans le forum ASP
    Réponses: 26
    Dernier message: 03/09/2003, 10h06

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