Ghost.JS мультиязычный блог


Используя слой конфигурации динамических маршрутов в Ghost, мы можем публиковать контент на различных языках, с уникальными URL-адресами, и SEO-ориентированнми семантическими шаблонами. Вы можете запускать каждый язык на своём префиксе URL, например, example.com для английского контента и example.com/es для испанского.

Включить поддержку многоязычного контента необходимо в вашем файле rout.yaml добавив необходимые параметры в коллекцию роутинга, а также создать необходимые шаблоны в вашей теме для каждой коллекции.

Настройка динамического роутинга

Начнём с настройки файла rout.yaml, чтобы подключить коллекции для каждого желаемого языка. На странице Labs в админ панели загрузите свой файл rout.yaml и откройте его в любом редакторе кода.

Этот файл разделен на три раздела, для активации мультиязычности мы будем использовать раздел «коллекции». Вот пример кода, который добавит поддержку Испанского контента:

routes:

collections:
  /:
    permalink: /{slug}/
    filter: 'tag:-es'
  /es/:
    permalink: /es/{slug}/
    filter: 'tag:es'

taxonomies:
  tag: /tag/{slug}/
  author: /author/{slug}/

Эта конфигурация позволит вам использовать теги и таксономию в ваших постах и страницах, которые содержат многоязычный контент.

Примечание: в текущей бета-версии Dynamic Routing необходимо указать инверсию фильтров, используя символ дефиса: "-".

Создание шаблонов для каждого языка

После создания коллекции с языками, вам нужно будет создать различные шаблоны для каждой коллекции и определить атрибуты html lang в этих шаблонах, например:

index.hbs 
<html lang="en"> 

es.hbs
<html lang="es">

Теперь обновите шаблон поста, что бы задать правильный темплейт для каждой языковой коллекции. Пример:

post.hbs

{{#post}}{{#has tag="de"}}<html lang="de">{{else}}<html lang="en">{{/has}}{{/post}}

Не забудьте загрузить ваш файл routes.yaml в админку Ghost JS и подключить новые шаблоны.