4

我正在使用 Symfony 2.3 RC1 设置 FOSUserBundle dev-master,但翻译效果不佳。它默认带有模板中的 trans_default_domain

在登录模板中。它没有 trans_default_domain

{% trans_default_domain "FOSUserBundle" %}
<label class="control-label" for="username">{{ 'security.login.username'|trans }}</label>

但是使用 trans({}, 'FOSUserBundle') 它可以工作

<label class="control-label" for="username">{{ 'security.login.username'|trans({}, 'FOSUserBundle') }}</label>

trans_default_domain 有什么问题?需要任何额外的配置吗?

4

4 回答 4

11

尝试启用 symfony 翻译组件。默认情况下,它被注释掉:

# app/config/config.yml
framework:
    translator: { fallback: en }

http://symfony.com/doc/current/book/translation.html#configuration

于 2014-04-12T08:13:15.387 回答
2

我有类似的问题,通过设置 default_locale 解决了它。

http://symfony.com/doc/2.7/translation/locale.html

于 2016-08-10T11:35:59.680 回答
0

我没有多少运气trans_default_domain。相反,我translation_domain直接通过表单选项传递值:

class MyLoginType extends AbstractType
{
    ...

    public function setDefaultOptions(OptionsResolverInterface $resolver)
    {
        $resolver->setDefaults(array(
            'translation_domain'  => 'FOSUserBundle'
        ));
    }
}
于 2013-12-18T20:21:13.377 回答
0

我不确定,但也许这会有所帮助:

在下:config.yml_services

services:
    twig.extension.intl: 
        class: Twig_Extensions_Extension_Intl 
        tags: 
                - { name: twig.extension }
于 2013-09-13T09:28:43.500 回答