Есть ли локаль по умолчанию в расширениях доктрины?

Я реализовал переводимое расширение. Я использую сущность Category (расширение дерева) и сущность CategoryTranslation, как показано в документации. Все мои названия в категории Категория на французском языке. Я хотел бы перевести свой веб-сайт на английский, поэтому я добавляю переводы на местном языке. 'en'Например, вот так:

$cat = $em->getRepository('MyBundle:Category')->findOneByTitle('Nourriture');
$cat->addTranslation(new CategoryTranslation('en', 'title', 'Food'));
$em->persist($cat);
$em->flush();

Но когда я проверяю mywebsite.com/en, я нахожу название Nourriture, а не перевод на английский, а мой языковой стандарт по умолчанию в config.yml 'fr',

И когда я проверял mywebsite.com/fr, не было никакого перевода моего названия, которое кажется пустым. Так что я сделал то же самое, что и выше, но с 'fr' и "Nourriture" как перевод для 'fr' локали.

Затем я перепроверил mywebsite.com/fr, и он отлично работает, у меня есть название Nourriture.

Но это все еще не работает для en locale, я не могу получить английский перевод. Все происходит так, как будто названия в моей категории сущности на английском языке, поэтому не нужно искать 'en' переводы.

1 ответ

Решение

Если вы используете stof bundle, то локаль по умолчанию настраивается так:

# app/config/config.yml
stof_doctrine_extensions:
default_locale: en_US

В противном случае вы можете установить его непосредственно в слушателе. Также вы можете внимательно прочитать документацию.

Другие вопросы по тегам