2017-05-09 74 views
1

在我Symfony的3.2項目,我延長了一個名爲messages.en.yml文件具有以下內容FosUserBundle的:擴展FosUserBundle的翻譯:在擴展模板一些額外的信息沒有得到翻譯

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" 

請緊記的是, registration.confirmed.headerreset.password.header用於在模板從FOS用戶束延伸,如具有以下內容的request.html.twig

{% 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 %} 

問題是除了reset.password.header之外的所有東西都被翻譯出來,即使我把它放到了messages.yml中,它仍然不會翻譯我設置的額外消息。

回答

2
{% trans_default_domain 'FOSUserBundle' %} 

這意味着,翻譯器沒有查看域「消息」,而是「FOSUserBundle」。在/app/Resources/translations/FOSUserBundle.en.yml中添加翻譯應該可行。

+0

我可以放多個域嗎? –

+0

在一個模板中?說實話,我不確定,在翻譯文件夾中有什麼問題有FOSUserBundle.en.yml,messages.en.yml(,validators.en.yml,...)? – kero

0

由於@kero說,翻譯文件必須被命名爲FOSUserBundle.en.yml,而且必須有完整路徑:app/Resources/translations/FOSUserBundle.en.yml

還要確保你已經設置了正確的按鍵,不覆蓋任何現有的如。正如您在vendor/friendsofsymfony/Resources/translations/文件夾下的FOSUserBundle.xx.yml文件中所看到的那樣,無法設置密鑰change_password.submit.something並期望得到正確的翻譯。

+1

你確定這條路嗎?我有一個可以在'app/Resources/FOSUserBundle/views /'中重寫視圖的Symfony 2.8項目,但是重寫的翻譯是在'app/Resources/translations /'中。或者兩者都可以工作 – kero

+0

我不使用2.8我正在使用Symfony 3.2 –

+0

另外我測試和工作像一個魅力 –