Актуальная версия: Языковой перевод MaxSite CMS
1. Файл перевода представляет собой обычный php-файл с массивом $lang в виде:
$lang['фраза1'] = 'перевод1'; $lang['фраза2'] = 'перевод2';
2. Перевод условно делится на следующие части:
Входящие в комплект MaxSite CMS:
- frontend - основной перевод, фразы подключаются всегда.
- backend - только для админ-панели.
- install - перевод инсталяции системы.
Сторонние разработки:
- mytemplate - перевод шаблона.
- __FILE__ - перевод из каталога плагина или шаблона
3. Имя php-файла перевода состоит из языка и, если необходимо, суффикса «-f», указывающего на перевод frontend.
Например немецкий язык указывается как de в mso_config.php
$MSO->language = 'de'; // deutsch
Языковые файлы будут следующими:
- common/language/de.php - перевод админ-панели
- common/language/de-f.php - основной перевод
- templates/ШАБЛОН/language/de.php - перевод шаблона
- plugins/ПЛАГИН/language/de.php - перевод плагина
4. В скриптах MaxSite CMS испольуется две языковые функции:
- t() - указывает, что фраза используется в админ-панели
- tf() - указывает, что фраза используется как frontend.
Обе функции идентичны и служат только для интерфейсного разделения фраз перевода с последующей целью обработки фраз в программе PoEdit.
Данный алгоритм позволяет отделить перевод для админ-панели от перевода frontend, расположенные в одном файле.
Функции принимают два параметра: переводимая фраза (обязательно) и ключ перевода:
- __FILE__ - /language/ текущего каталога скрипта.
- install - /common/language/install/
- mytemplate - /language/ текущего шаблона
Подключение перевода админ-панели происходит автоматически при наличии в первом сегменте адреса «admin».
5. Алгоритм работы перевода MaxSite CMS (на примере немецкого языка).
- Если указан язык, то при первом вызове функции t() или tf() происходит загрузка common/language/de-f.php.
- Если это админ-панель, то дополнительно загружается common/language/de.php
- Если указан __FILE__ то загружается языковой файл этого каталога/language/de.php
- Если указан mytemplate, то загружается перевод текущего шаблона/language/de.php
- Если указан install, то загружается common/language/install/de.php. Этот перевод используется только при инсталяции системы.
Все загрузки выполняются один раз и автоматом кэшируются в памяти.
6. Работа с PoEdit.
- Скопируем необходимые каталоги MaxSite CMS в отдельно.
- Запускаем PoEdit.
- Создать каталог.
- Название проекта
- Кодировка utf8
- Кодировка исходного кода utf8
- Пути к каталогу (полный). Путь к базе «.».
- Ключевые слова: все удалить, добавить t для админ-панели или tf - для frontend.
- Ок. Указать имя файла.
- Еще раз выбрать Сохранить.
= На выходе готовый po-файл.
7. Работа с php-кодировщиком po->lang (см. convert-po-to-lang.zip)
- Скопировать файл, например frontend.po в каталог скрипта.
- Убедиться, что в index.php указан этот файл для парсинга.
- Запустить скрипт через браузер.
= на выходе frontend.po.lang.php
Переименовываем его языковой файл, например de-f.php