Symfony использует несколько файлов перевода для одного языка - PullRequest
0 голосов
/ 19 июня 2019

Мне было интересно, возможно ли в Symfony 3.5 использовать несколько файлов перевода для одного языка при использовании файлов yml.

В настоящее время у меня есть что-то вроде этого:

AppBundle/Resources/translations/messages.en.yml
AppBundle/Resources/translations/messages.de.yml

, который содержит все мои переводы на любом языке. Однако мне было интересно, можно ли это изменить на следующую структуру:

AppBundle/Resources/translations/en/products.yml
AppBundle/Resources/translations/en/invoices.yml

AppBundle/Resources/translations/de/products.yml
AppBundle/Resources/translations/de/invoices.yml

Я искал, но мне не удалось найти какое-то решение для этого. Я понял, что это работает для разделения моих маршрутов.

AppBundle/Resources/config/routing.yml

appbundle_routes:
  resource: '@AppBundle/Resources/config/routing'
  type: directory

Внутри этой папки я разбил все мои маршруты, как:

AppBundle/Resources/config/routing/products.yml
AppBundle/Resources/config/routing/users.yml
AppBundle/Resources/config/routing/invoices.yml

Мне было интересно, можно ли добиться того же с помощью переводов?

1 Ответ

1 голос
/ 19 июня 2019

Symfony Translator требует, чтобы файлы были названы в формате domain.locale.loader.Если у вас messages.en.yml:

  • messages - это имя домена по умолчанию, вы также можете указать, например.invoices
  • en - это языковой стандарт
  • yml указывает YAML будет использоваться загрузчик

Таким образом, предлагаемое вами использование невозможнодобиться со стандартным набором конфигов и функционалом.Однако вы можете разделить ваши переводы на разные доменные файлы.Таким образом, пути будут:

AppBundle/Resources/translations/products.en.yml
AppBundle/Resources/translations/invoices.en.yml

И когда вы используете переводчик, вы указываете домен, в котором нужно искать перевод:

$translator->trans('translated.key', [], 'invoices');

Или в Twig:

{{ 'translated.key'|trans({},'invoices') }}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...