Веб-сайт перевода Symfony и просмотр списка языков

Привет, я пришел в себя, потому что мне нужна небольшая помощь, Я хочу перевести свой сайт на 3 языка: en, fr, es Я перевел все в файле перевода, но проблема не в том, как отобразить выбор языка на веб-сайте, а также в том, как отобразить его в URL-адресе.

в моем balise html:

<html lang = "{{ app.request.locale }}">

и мой paramters.yaml:

parameters:
    locale: fr

в моем файле перевода есть 3 таких файла:

messages.fr.yml
messages.en.yml
messages.es.yml

Я хочу отображать такой URL

www.mydomaine.com/fr/accueil
www.mydomaine.com/en/home
www.mydomaine.com/es/acogida

А как показывать списки ссылок? В сторону языков?

Стоит ли изучать PHP в 2023-2024 годах?
Стоит ли изучать PHP в 2023-2024 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
1
0
863
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Что ж, следующее решение протестировано на symfony 3.4, может немного отличаться для версий symfony 4. *.

В вашем config.yml установите все языки, на которых сайт будет работать с опцией параметров, например:

parameters:
    locale: fr
    locales: [en, fr, es]

Снова в config.yml установите резервный языковой стандарт переводчика и пути к вашим переводам:

framework:
    translator:
        fallback: "%locale%"
        paths: ['%kernel.root_dir%/../src/AppBundle/Resources/translations']

Затем определите свои маршруты таким образом (пример определения yml):

home:
    path:     /{_locale}/home
    defaults: { _controller: AppBundle:Default:home }

Тогда все смогут получить доступ к вашей домашней странице с любой локалью, которую вы указали (отвечая на вопрос, как отображать язык в URL-адресе).

www.mydomaine.com/fr/home
www.mydomaine.com/en/home
www.mydomaine.com/es/home

Теперь, если вопрос также касается того, как получить переведенный контент на странице вашего веб-сайта - вы можете использовать разные форматы файлов для хранения переводов, я снова вернусь к .yml, например. Обычно переводы помещаются в такие файлы, как messages.en.yml (как и для других языков, создавайте те же файлы с другим языком, например, messages.fr.yml).

Затем предположим, что у вас есть ключ foo в ваших файлах переводов, например foo: bar, вы можете отобразить его значение в ветке с помощью фильтра trans: {{ 'foo'|trans({}, 'messages')} }}.

Более подробную информацию вы можете найти в официальная документация

Мне нужно разместить _locale во всех маршрутах, вот и все?

Crown Backend 22.09.2018 03:04

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