Многоязычность определяется как использование разных языков на вашем сайте. Мы изучим различные процедуры, которые помогут вам использовать несколько языков на вашем сайте Grav.
Основы мультиязычности
В основном Grav нужен файл .md для представления любой страницы. При включении многоязычной поддержки он будет искать файл, такой как default.en.md или default.fr.md. ,
Конфигурация языка
Сначала вы должны настроить базовую языковую конфигурацию в файле user / config / system.yaml . файл.
Language: Supported: - en - Fr
Сделав это, вы включили многоязычную поддержку в Grav. В приведенном выше коде en означает английский язык, а fr означает французский. Это означает, что ваш сайт будет поддерживать эти два языка. Здесь языком по умолчанию является en (английский) . Если вы сначала напишите Fr (французский) , то это станет вашим языком по умолчанию.
Многоязычные страницы
Если ваш язык по умолчанию установлен как английский , то Grav будет искать файл default.en.md . Если этот файл не найден, то Grav ищет другой язык, который вы установили. Если оба языка не найдены, выполняется поиск файла default.md .
пример
файл default.en.md
--- title: Home --- # Grav is Running! ## You have installed **Grav** successfully
Приведенный выше код сгенерирует следующий вывод:
Для французского языка по умолчанию, файл default.fr.md будет —
--- titre: Accueil --- # Grav est en marche! ## Vous avez installé ** ** Grav succès
Приведенный выше код сгенерирует следующий вывод:
Активный язык через URL
Если вы хотите обновить URL-адрес своего веб-сайта с помощью языкового кода, выполните следующие действия.
пример
Если вы хотите, чтобы ваш сайт был на английском, введите в браузере следующую строку —
http://www.mysite.com/en
Если вы хотите, чтобы ваш сайт был на французском языке, введите в браузере следующую строку —
http://www.mysite.com/fr
Активный язык через браузер
Grav имеет возможность получить значение http_accept_language и сравнить его с существующим поддерживаемым языком. Если вы хотите, чтобы это работало, включите файл user / system.yaml в разделе языка как —
language : http_accept_language : true
Основанная на языке домашняя страница
Чтобы иметь домашнюю страницу на основе языка, вы должны включить следующий код в файле site.yaml —
home: aliases: en: /homepage fr: /page-d-accueil
Таким образом, Grav узнает, какой язык использовать из активных языков.
Следующий код заставит Grav перенаправить вас на ваш языковой маршрут по умолчанию. А опция include_route заставляет добавить код языка в ваш URL-адрес, например http://www.mysite.com/en/home
languages: home_redirect: include_lang: true include_route: false
Основанные на языке шаблоны веток
Если ваш файл default.en.md , то Grav будет искать файл ветки как default.html.twig . Когда вам нужен файл ветки для конкретного языка, вы должны загрузить его на корневой уровень языковой папки. Если ваша текущая тема находится в templates / default.html.twig, вы должны создать папку templates / en / и поместить в нее свою папку на английском языке как: templates / en / default.html.twig
Переключатель языка
Плагин переключения языка доступен в Grav Package Manager (GPM) .
Переводы через Twig
Используйте фильтр веток и функцию t () . Оба функционируют одинаково. Если у вас есть другой файл ветки, он позволяет вам переводить из массива.
Плагин и тематические языковые переводы
Предоставьте свои переводы в плагинах и темах, создав файл languages.yaml в корне вашей темы или плагина (/user/plugins/error/languages.yaml) и должны содержать все поддерживаемые языки.
Переопределение перевода
Если вы хотите переопределить перевод, вы должны поместить пару значений в языковой файл в вашей папке user / languages / .
продвинутый
Языковая обработка на основе среды
Можно направить пользователей на правильную версию вашего сайта по URL. Если URL вашего сайта http://english.yoursite.com , псевдоним вашего стандартного http://www.yoursite.com , вы можете создать конфигурацию как /user/english.yoursite.com/config/system. YAML. ,
languages: supported: - fr - en
Он использует инвертированный языковой порядок. В приведенном выше коде fr является языком по умолчанию. Если вы измените порядок, оставив en сверху и fr снизу, тогда en станет языком по умолчанию.
Язык Псевдоним Маршруты
Очень сложно переключаться между разными языковыми версиями одной и той же страницы, вы можете использовать метод Page.rawRoute () для вашего объекта страницы. Он получает один и тот же исходный маршрут для разных языковых переводов одной страницы. Поместите код языка впереди, чтобы получить правильный маршрут.
Если вы находитесь на странице на французском языке с пользовательским маршрутом —
/ma-page-francaise-personnalisee
Английская страница имеет собственный маршрут —
/my-custom-french-page
Вы получаете необработанную страницу французской страницы, и это может быть —
/blog/custom/my-page
Затем просто добавьте нужный язык, который будет вашим новым URL.
/en/blog/custom/my-page
Поддержка переводов
Grav предоставляет простой механизм для предоставления переводов в Twig через PHP для использования в темах и плагинах. Он включен по умолчанию и использует en language, если не определен конкретный язык. Чтобы включить или отключить, перейдите в файл system.yaml и внесите изменения.
languages: translations: true
Вы можете предоставить переводы разными способами и в разных местах. Первое место — папка system / languages. Файлы должны быть созданы в формате en.yaml , fr.yaml и т. Д. Каждый файл yaml должен состоять из массива или вложенных массивов пар ключей.
SITE_NAME: My Blog Site HEADER: MAIN_TEXT: Welcome to my new blog site SUB_TEXT: Check back daily for the latest news
Сессионный активный язык
Вы можете активировать сеансовое хранение активного языка. Чтобы включить, вы должны иметь сеанс: enable : true в system.yaml и включить настройку языка.
languages: session_store_active: true
Переключатель языка
Установите плагин переключения языка из GPM.
Настройка с использованием языковых доменов
Настройте обработку языка на основе среды для назначения языков по умолчанию. Добавьте эту опцию в ваш system.yaml; это должно быть установлено в true.
pages.redirect_default_route: true
Добавьте следующее в ваш файл .htaccess и выберите языковые слагы и доменные имена в соответствии с вашими требованиями.