Intereting Posts
Сброс пароля в codeigniter Что замыкают замыкания PHP в операторах IF? получить текущий каталог symlink'd php script, а не фактический скрипт php Отправка json на php-сервер с помощью jquery ajax – json error Вставьте данные в базу данных MySql и покажите, будет ли вставка успешной или неудачной MySQL 5.7 & only_full_group_by Получение всех дат по понедельникам и вторникам на следующий год Получить URL-адрес изображения из API BigCommerce с помощью PHP PDFTK не работает для заполнения pdf-формы, созданной в жизненном цикле Как создать уникальные переменные URL, которые соответствуют записи db? Обновление версии Sagepay 2.22 до 3.00 – обновление PHP до шифрования AES PHP: какова продолжительность жизни сеанса по умолчанию PHP Script не работает в WordPress правильно Как я могу изменять параметры в выпадающих меню, если они генерируются динамически? php zend gdata помещает документ / файл в категорию / папку Google Docs

Symfony2 Использовать локаль по умолчанию в маршрутизации (один URL для одного языка)

В настоящее время я разрабатываю веб-сайт с Symfony2, и мне нужно его перевести. С инструментами, предоставляемыми Symfony2, это очень просто. Но я столкнулся с проблемой:

Я хотел бы иметь конкретный URL (с префиксом) для языка (т. Е. Одного URL-адреса, одного языка), но с языком по умолчанию. В частности:

Предположим, что языком по умолчанию является английский, поэтому

  • http://example.com/fr/hello отображение страницы на французском языке
  • http://example.com/it/hello отображение страницы на итальянском языке
  • http://example.com/en/hello перенаправить на http://example.com/hello (поскольку en является языком по умолчанию)
  • http://example.com/hello отображение, конечно, страницы на английском языке (язык по умолчанию)

Я наивно пытаюсь настроить мою маршрутизацию следующим образом:

 #routing.yml _welcome: pattern: /{_locale}/hello defaults: { _controller: AcmeDemoBundle:Welcome:hello, _locale: en} 

Но это не работает ( http://example.com/en/hello просто отображает страницу на английском и http://example.com/hello return 404 error).

Конечно, можно создавать два маршрута каждый раз, но это очень утомительно. Поэтому я ищу чистое решение.

Кстати, я заметил, что поведение, которое я искал с URL-адресом, было именно тем, что было принято официальной документацией Symfony2:

http://symfony.com/fr/doc/current/book/translation.html демонстрирует французскую тенденцию

http://symfony.com/it/doc/current/book/translation.html отображает итальянскую тенденцию

http://symfony.com/en/doc/current/book/translation.html перенаправить на http://symfony.com/doc/current/book/translation.html (который отображает страницу на английском языке)

    Установите JMSI18nBundle и примените стратегию prefix_except_default .

    Пакет позаботится о создании маршрутов для вас.

    конфигурация:

     jms_i18n_routing: default_locale: en locales: [de, en] strategy: prefix_except_default 

    Дополнительную информацию можно найти в документации на комплект поставки.