不加载具有自定义域的symfony转换资源

时间:2016-09-02 09:56:07

标签: symfony translation silex

我有点问题。 当我将自定义域添加到我的资源进行翻译时,它不会加载。

我的代码正常工作(没有自定义域名):

$app['translator'] = $app->share($app->extend('translator', function ($translator, $app) {
    $translator->addLoader('yaml', new Symfony\Component\Translation\Loader\YamlFileLoader());

    $translator->addResource('yaml', __DIR__ . '/../views/backend/translator/translations/back-office.en_GB.yml', 'en_GB');
    $translator->addResource('yaml', __DIR__ . '/../views/backend/translator/translations/back-office.fr_FR.yml', 'fr_FR');

    return $translator;
}));

我的代码我想做而不工作:

$app['translator'] = $app->share($app->extend('translator', function ($translator, $app) {
    $translator->addLoader('yaml', new Symfony\Component\Translation\Loader\YamlFileLoader());

    $translator->addResource('yaml', __DIR__ . '/../views/backend/translator/translations/back-office.en_GB.yml', 'en_GB', 'back-office');
    $translator->addResource('yaml', __DIR__ . '/../views/backend/translator/translations/back-office.fr_FR.yml', 'fr_FR', 'back-office');

    return $translator;
}));

默认域名是“邮件”,我该如何更改?

问候

编辑:

我刚注意到它没有加载其他资源文件。 如果我首先添加空文件资源然后我的翻译资源文件,翻译没有出现在我的twig文件上,它会打印变量。

$translator->addResource('yaml', __DIR__ . '/../views/backend/translator/translations/messages.en_GB.yml', 'en_GB');
    $translator->addResource('yaml', __DIR__ . '/../views/backend/translator/translations/messages.fr_FR.yml', 'fr_FR');
    $translator->addResource('yaml', __DIR__ . '/../views/backend/translator/translations/back-office.en_GB.yml', 'en_GB', 'back-office');
    $translator->addResource('yaml', __DIR__ . '/../views/backend/translator/translations/back-office.fr_FR.yml', 'fr_FR', 'back-office');

编辑2:

我明白了,我应该在twig文件中的每个变量上指定域,或者在每个twig文件上指定默认域:

{{'label.name'| trans({},'app')}} 要么 {%trans_default_domain“app”%}

当你拥有大量文件时,管理真的不容易......

1 个答案:

答案 0 :(得分:0)

我明白了,我应该在twig文件中的每个变量上指定域,或者在每个twig文件上指定默认域:

{{ 'label.name'|trans({}, 'app') }}

{% trans_default_domain "app" %}

当你拥有大量文件时,管理真的不容易......