Факт: OctoberCMS позволяет создавать статичные поля и настройки для тем, не прибегая к созданию плагинов. Зачем это нужно? Например текст копирайта в подвале сайта, или контактные телефоны в шапке сайта. В целом - статичная информация, которая редко меняется, как это выглядит:
Появляется кнопка в настройке тем:
Список полей может быть любого типа
Подробнее о настройке читайте тут:
https://octobercms.com/docs/themes/development#customization
Но!:
В нашем примере нам нужно настроить мультиязычность, а плагин RainLab.Translate не поддерживает переводы полей тем, но сделать все довольно просто:
Сравните настройку полей без кастомизации:
fields:
site_name:
label: Название сайта
copyright:
label: Копирайт в footer
И с кастомизацией под мультиязычность:
tabs:
fields:
ru_site_name:
tab: RU
label: Название сайта
en_site_name:
tab: EN
label: Название сайта
ru_copyright:
tab: RU
label: Копирайт в footer
en_copyright:
tab: EN
label: Копирайт в footer
Интуитивно понятно, что мы создаем поля для каждого языка, используя в качестве наименования переменной имя с префиксом нужного языка из двух букв (пример префикса: ru_)
а также задаем названия табов (группируя поля по языкам). С этого момента на стороне админки у нас все прекрасно, можно задавать различные названия для разных языков:
Теперь о шаблонизации. Раньше нам нужно было выводить переменную (к примеру - копирайт) так:
{{ this.theme.copyright }}
Теперь (в случае мультиязычности - выводим так:
{{ attribute(this.theme, activeLocale ~ '_copyright') }}