Symfony2: как установить локаль по умолчанию и регистронезависимый перевод

Я только начинаю использовать symfony2 и сталкиваюсь с некоторыми трудностями, требующими помощи от таких экспертов, как вы, ребята.

Вопрос 1: Как установить языковой стандарт по умолчанию и резервный языковой стандарт, чтобы люди пытались найти что-то вроде www.example.com/home или www.example.com/fr/home (не поддерживается языковой стандарт), перенаправят на www.example.com / сп / дома?

Я много читал из документа symfony2 (http://symfony.com/doc/current/book/translation.html), а также поиск в Google, но я до сих пор не могу заставить его работать. Не только локаль по умолчанию не работает, резервная локаль также не работает. Например, когда пользователь пытается ввести www.example.com/fr/home, который не поддерживается моим приложением, он предполагает перенаправить пользователя на www.example.com/cn/home, но это не удается сделать.

Я также пытаюсь очистить кеш, но кажется, что он не работает.

Вопрос 2: Как сопоставить ключ перевода в случае нечувствительности к регистру?

Например, в моем файле перевода («message.cn.yml») содержится

Welcome: 欢迎

Так что в моем шаблоне ветки я использую {{‘желанный‘| trans}} это поможет мне преобразовать в 欢迎, но когда я использую {{‘добро пожаловать‘| trans}} это не будет конвертировать. Есть ли способы сделать его нечувствительным к регистру, поэтому мне не нужно специально добавлять ключ »добро пожаловать: 欢迎 «в файл message.cn.yml.

Ваша помощь и предложение очень ценится. Спасибо.

Ниже приведены файлы моего приложения для ознакомления:

Файл переводов:

введите описание изображения здесь

Файл параметров:

введите описание изображения здесь

Конфиг файл:

введите описание изображения здесь

Файл маршрутизации в конкретном пакете («Acme / DemoBundle»):

введите описание изображения здесь

Файл ветки:

введите описание изображения здесь

Вот результат, когда я ударил

  1. локальный / локаль / веб / app_dev.php /

введите описание изображения здесь

  1. локальный / локаль / веб / app_dev.php / ан

введите описание изображения здесь

  1. локальный / локаль / веб / app_dev.php / сп

введите описание изображения здесь

  1. локальный / локаль / веб / app_dev.php / фр

введите описание изображения здесь

4

Решение

Вы можете установить локаль для запроса:

 $this->container->get('request_stack')->getCurrentRequest()->setLocale($locale);

и вы можете установить локаль для запроса, используя прослушиватель запросов:
http://symfony.com/doc/current/cookbook/service_container/event_listener.html#request-events-checking-types

для второго вопроса вы можете добавить преобразование в нижний регистр:

   {{ 'WELCOME'|lower | translate}}

или вы можете создать свое собственное расширение ветки, которое выполняет перевод и другие вещи между ними:
http://symfony.com/doc/current/cookbook/templating/twig_extension.html

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]