FOSUserBundle:重置模板不替换 %email%

FOSUserBundle: resetting template not replacing %email%

点击Reset password按钮后显示的页面包含

An email has been sent to %email%.

check_email.html.twig 模板在 .../app/Resources/FOSUserBundle/view/Resetting 处被覆盖并包含

{% extends 'layout.html.twig' %}

{% trans_default_domain 'FOSUserBundle' %}

{% block fos_user_content %}
<p>
{{ 'resetting.check_email'|trans({'%tokenLifetime%': tokenLifetime})|nl2br }}
</p>
{% endblock %}

config.yml 包含

    framework:
        translator:      ~
    ...
    fos_user:
        db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel'
        firewall_name: main
        user_class: 'AppBundle\Entity\User'
        from_email:
            address:        admin@projectmana.org
            sender_name:    Application Support
        service:
            mailer: fos_user.mailer.twig_swift
        resetting:
            email:
                template: email/password_resetting.email.twig

FOSUserBundle.en.yml.../app/Resources/translations

就位

安装的 FOSUserBundle 是 dev-master 03ce036

页面无法翻译 %email% 键,因为您没有在 check_email 分支的内容中指定它。您的模板应包含如下内容:{{ 'resetting.check_email'|trans({'%email%': email}, 'FOSUserBundle') }}

最终的解决方案是要求 composer 中的 v2.0.0-beta1 and/or 摆脱对翻译器文件的覆盖。良好的缓存清除也有帮助。