带有自定义域的 symfony 翻译资源无法加载
symfony translation resources with custom domain doesn't load
我有个小问题。
当我将自定义域添加到我的资源进行翻译时,它没有加载。
我的代码有效(没有自定义域):
$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;
}));
默认域是 "messages",如何更改它?
问候
编辑:
我刚刚注意到它没有加载其他资源文件。
如果我先添加空文件资源然后添加我的翻译资源文件,翻译不会出现在我的树枝文件中,它会打印变量。
$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" %}
文件多了真的不好管理...
我明白了,我应该在 twig 文件中的每个变量上指定域,或者在每个 twig 文件上指定默认域:
{{ 'label.name'|trans({}, 'app') }}
或
{% trans_default_domain "app" %}
文件多了真的不好管理...
我有个小问题。 当我将自定义域添加到我的资源进行翻译时,它没有加载。
我的代码有效(没有自定义域):
$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;
}));
默认域是 "messages",如何更改它?
问候
编辑:
我刚刚注意到它没有加载其他资源文件。 如果我先添加空文件资源然后添加我的翻译资源文件,翻译不会出现在我的树枝文件中,它会打印变量。
$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" %}
文件多了真的不好管理...
我明白了,我应该在 twig 文件中的每个变量上指定域,或者在每个 twig 文件上指定默认域:
{{ 'label.name'|trans({}, 'app') }}
或
{% trans_default_domain "app" %}
文件多了真的不好管理...