Есть ли локаль по умолчанию в расширениях доктрины?
Я реализовал переводимое расширение. Я использую сущность 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
В противном случае вы можете установить его непосредственно в слушателе. Также вы можете внимательно прочитать документацию.