2017-05-09 1 views
1

Sur mon projet Symfony 3.2 J'ai étendu les FosUserBundle est sur un fichier nommé messages.en.yml qui a le contenu suivant:Extension des traductions de FosUserBundle: certains messages supplémentaires sur les modèles étendus ne sont pas traduits

security.login.username: "Username" 
security.login.password: "Password" 
security.login.remember_me: "Remember me" 
security.login.submit: "Login" 
registration.confirmed.header: "Registration Success" 
reset.password.header: "Reset your password" 

S'il vous plaît garder à noter que la registration.confirmed.header et reset.password.header sont utilisés dans le modèle que I étendre à partir de faisceau d'utilisateur fos comme le request.html.twig qui a le contenu suivant:

{% extends "@FOSUser/layout.html.twig" %} 

{% set body_css_classes="skin-blue layout-top-nav" %} 

{% trans_default_domain 'FOSUserBundle' %} 

{% block title %} Set a new Password {% endblock %} 

{% block fos_user_content %} 
<div class="content-wrapper" style="min-height:100%"> 
     <div class="container"> 
      <section class="content"> 
       <div class="box box-default"> 
        <div class="box-header"> 
         <h4 class="text-center">{{ 'reset.password.header'|trans }}</h4> 
        </div> 
        <form action="{{ path('fos_user_resetting_send_email') }}" method="POST" class="form-horizontal"> 
         <div class="box-body"> 
          <div class="form-group"> 
            <label for="username" class="col-sm-3 control-label">{{ 'resetting.request.username'|trans }}</label> 
            <div class="col-sm-9"> 
             <input type="text" id="username" class="form-control" name="username" required="required" /> 
            </div> 
          </div> 
          <div class="form-group"> 
          <div class="col-sm-offset-3 col-sm-9"> 
           <input type="submit" class="btn btn-primary" value="{{ 'resetting.request.submit'|trans }}" /> 
          </div> 
          </div> 
         </div> 
        </form> 
       </div> 
      </section> 
     </div> 
    </div> 
{% endblock fos_user_content %} 

{% block javascriptsFooter %} 
{% endblock %} 

Le problème est que tout est traduit sauf le reset.password.header que même si je le mets dans le messages.yml il ne traduit toujours pas les messages supplémentaires que j'ai définis.

Répondre

2
{% trans_default_domain 'FOSUserBundle' %} 

Cela signifie que le traducteur ne regarde pas dans le domaine « messages » mais « FOSUserBundle ». Ajouter les traductions dans /app/Resources/translations/FOSUserBundle.en.yml devrait fonctionner.

+0

Puis-je mettre plusieurs domaines? –

+0

Dans un modèle? Pour être honnête je ne suis pas sûr, quel est le problème ayant FOSUserBundle.en.yml, messages.en.yml (, validators.en.yml, ...) dans le dossier de traductions? – kero

0

Comme @kero dit le fichier de traduction doit être nommé FOSUserBundle.en.yml et doit avoir le chemin complet: app/Resources/translations/FOSUserBundle.en.yml

Vérifiez également que vous avez défini les touches correctes et ne remplacent pas un exemple existant. Comme vous pouvez le voir dans un fichier FOSUserBundle.xx.yml sous le dossier vendor/friendsofsymfony/Resources/translations/, il n'y a aucun moyen de définir une clé change_password.submit.something et s'attendre à être traduit correctement.

+1

Etes-vous sûr du chemin? J'ai un projet Symfony 2.8 fonctionnant où les vues redéfinies sont dans 'app/Resources/FOSUserBundle/views /' mais les traductions surchargées sont dans 'app/Resources/translations /'. Ou les deux pourraient fonctionner – kero

+0

Je n'utilise pas 2.8 J'utilise Symfony 3.2 –

+0

Aussi j'ai testé et travaillé comme un charme –