Учебники

Grav — Multi Language

Многоязычность определяется как использование разных языков на вашем сайте. Мы изучим различные процедуры, которые помогут вам использовать несколько языков на вашем сайте 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

Приведенный выше код сгенерирует следующий вывод:

Grav Multi Language

Для французского языка по умолчанию, файл default.fr.md будет —

---
titre: Accueil
---

# Grav est en marche!
## Vous avez installé ** ** Grav succès

Приведенный выше код сгенерирует следующий вывод:

Grav Multi Language

Активный язык через 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 и выберите языковые слагы и доменные имена в соответствии с вашими требованиями.