Документация

Собрание всего, что поспособствует изучению OctoberCMS

Перевод(локализация)

Плагины могут иметь файлы перевода в подпапках папки lang в корневой папки плагина. Файлы перевода плагинов регистрируются автоматически. Строки с переводам появляются автоматически в интерфейсе меню, формах лэйблов и других элементах в бекэнде. Если Вы предоставили ключ перевода завместо реальной строки - система будет пытаться загрузить его с файла перевода(локализации). В других случаях, Вам необходмо будет загрузить строку перевода с API.

Папка перевода и структура файлов

Ниже приведен пример содержания папки плагина:

app
  plugins
    acme
      todo              <==== Папка плагина
        lang            <==== Папка перевода
          en            <==== Папка языка перевода
            lang.php    <==== Файл перевода
          fr
            lang.php

Файл lang.php может возвратить массив любой глубины, например:

<?php

return [
    'app' => [
        'name' => 'October CMS',
        'motto' => 'Getting back to basics',
    ]
}

Доступ к строкам локализации

Строки локализации могут быть згружены с помощью класса Lang. Ключ строки перевода может принять параметр, который состоит из имени плагина, имени файла локализации и даже пути к строке локализации внутри массива, возвращенного из файла. Следующих пример загружает строку app.name с файла plugins/acme/blog/lang/en/lang.php (язык здесь установлен с помощью параметра locale в конфигурационном файле app/config/app.php):

echo Lang::get('acme.blog::lang.app.name');

Переопределение локализационных строк

Пользователи системы могут запросто переопределить строки локализации плагина без изменения файлов плагина. Сделать это можно путем добавления локализационных файлов в директорию app/lang. Для примера, двайте переопределим строки файла lang.php из папки плагина acme/blog создав файл в следующей папке:

app/
  lang/
    acme/
      blog/
        en/
          lang.php

Файл может содержать только строку, которую нам требуется переопределить, поэтому нет необходимости полностью заменять весь файл. Пример:

<?php

return [
    'app' => [
        'name' => 'October CMS!'
    ]
}