扩展 FosUserBundle 的翻译:扩展模板上的一些额外消息没有得到翻译
Extending FosUserBundle's translations: some extra messages on extended templates does not get translated
在我的 Symfony 3.2 项目中,我在名为 messages.en.yml
的文件上扩展了 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.header
和 reset.password.header
用于 I 从 fos 用户包扩展的模板中,例如 [=15] =] 具有以下内容:
{% 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
它仍然不会翻译我设置的额外消息。
{% trans_default_domain 'FOSUserBundle' %}
这意味着,译者不是在 "messages" 域中查找,而是在 "FOSUserBundle" 域中查找。在 /app/Resources/translations/FOSUserBundle.en.yml 中添加翻译应该可行。
正如@kero 所说,翻译文件必须命名为 FOSUserBundle.en.yml
并且必须具有完整路径:app/Resources/translations/FOSUserBundle.en.yml
还要确保您设置了正确的密钥,并且不要覆盖任何现有的密钥,例如。正如您在 vendor/friendsofsymfony/Resources/translations/
文件夹下的 FOSUserBundle.xx.yml
文件中看到的那样,无法设置密钥 change_password.submit.something
并期望得到正确翻译。
在我的 Symfony 3.2 项目中,我在名为 messages.en.yml
的文件上扩展了 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.header
和 reset.password.header
用于 I 从 fos 用户包扩展的模板中,例如 [=15] =] 具有以下内容:
{% 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
它仍然不会翻译我设置的额外消息。
{% trans_default_domain 'FOSUserBundle' %}
这意味着,译者不是在 "messages" 域中查找,而是在 "FOSUserBundle" 域中查找。在 /app/Resources/translations/FOSUserBundle.en.yml 中添加翻译应该可行。
正如@kero 所说,翻译文件必须命名为 FOSUserBundle.en.yml
并且必须具有完整路径:app/Resources/translations/FOSUserBundle.en.yml
还要确保您设置了正确的密钥,并且不要覆盖任何现有的密钥,例如。正如您在 vendor/friendsofsymfony/Resources/translations/
文件夹下的 FOSUserBundle.xx.yml
文件中看到的那样,无法设置密钥 change_password.submit.something
并期望得到正确翻译。