Современная, быстрая и удобная система управления сайтом

Языковой перевод MaxSite CMS

Центр помощиКомментарии: 0Просмотров: 13756

Актуальная версия: Языковой перевод 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