Перейти к содержимому

Приложение 3: Перевод XOOPS на местный язык

XOOPS 2.7.0 поставляется только с файлами на английском языке. Переводы на другие языки поддерживаются сообществом и распространяются через GitHub и различные местные сайты поддержки XOOPS.

  • GitHub — переводы сообщества все чаще публикуются как отдельные репозитории под организацией XOOPS и в учетных записях отдельных участников. Ищите на GitHub xoops-language-<your-language> или просмотрите организацию XOOPS для текущих пакетов.
  • Местные сайты поддержки XOOPS — многие региональные сообщества XOOPS публикуют переводы на своих собственных сайтах. Посетите https://xoops.org и перейдите по ссылкам на местные сообщества.
  • Переводы модулей — переводы для отдельных модулей сообщества обычно находятся рядом с самим модулем в организации GitHub XoopsModules25x (число 25x в названии историческое; модули там поддерживаются как для XOOPS 2.5.x, так и для 2.7.x).

Если перевод на ваш язык уже существует, поместите языковые каталоги в вашу установку XOOPS (см. “Как установить перевод” ниже).

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

  • Ядроhtdocs/language/english/ — константы сайта, используемые каждой страницей (вход, общие ошибки, даты, шаблоны почты и т.д.).
  • Установщикhtdocs/install/language/english/ — строки, показываемые мастером установки. Переведите их перед запуском установщика, если вы хотите локализованный опыт установки.
  • Системный модульhtdocs/modules/system/language/english/ — по далеко самый большой набор; охватывает всю панель управления администратора.
  • Встроенные модули — каждый из htdocs/modules/pm/language/english/, htdocs/modules/profile/language/english/, htdocs/modules/protector/language/english/ и htdocs/modules/debugbar/language/english/.
  • Темы — несколько поставляемых тем имеют свои языковые файлы; проверьте htdocs/themes/<theme>/language/ если он существует.

Перевод “только ядро” — это минимальная полезная единица и соответствует первым двум пунктам выше.

  1. Скопируйте каталог english/ рядом с ним и переименуйте копию на ваш язык. Имя каталога должно быть названием языка на английском языке в нижнем регистре (spanish, german, french, japanese, arabic и т.д.).

    htdocs/language/english/ → htdocs/language/spanish/
  2. Откройте каждый файл .php в новом каталоге и переведите строковые значения внутри вызовов define(). Не изменяйте имена констант — они ссылаются на код PHP во всем ядре.

    // Before:
    define('_CM_COMDELETED', 'Comment(s) deleted.');
    define('_CM_COMDELETENG', 'Could not delete comment.');
    define('_CM_DELETESELECT', 'Delete all its child comments?');
    // After (Spanish):
    define('_CM_COMDELETED', 'Comentario(s) eliminado(s).');
    define('_CM_COMDELETENG', 'No se pudo eliminar el comentario.');
    define('_CM_DELETESELECT', '¿Eliminar también todos sus comentarios secundarios?');
  3. Сохраняйте каждый файл как UTF-8 без BOM. XOOPS 2.7.0 использует utf8mb4 от начала до конца (база данных, сеансы, вывод) и отклоняет файлы с меткой порядка байтов. В Notepad++ это вариант “UTF-8”, не “UTF-8-BOM”. В VS Code это значение по умолчанию; просто подтвердите кодировку в строке состояния.

  4. Обновите метаданные языка и кодировки в верхней части каждого файла, чтобы они соответствовали вашему языку:

    // _LANGCODE: es
    // _CHARSET : UTF-8
    // Translator: Your Name

    _LANGCODE должен быть ISO 639-1 кодом вашего языка. _CHARSET всегда UTF-8 в XOOPS 2.7.0 — больше нет варианта ISO-8859-1.

  5. Повторите процесс для установщика, системного модуля и любых встроенных модулей, которые вам нужны.

Если вы получили завершенный перевод как дерево каталогов:

  1. Скопируйте каждый каталог <language>/ в соответствующий родительский каталог language/english/ в вашей установке XOOPS. Например, скопируйте language/spanish/ в htdocs/language/, install/language/spanish/ в htdocs/install/language/ и так далее.
  2. Убедитесь, что право собственности на файлы и разрешения доступны веб-серверу.
  3. Либо выберите новый язык во время установки (мастер сканирует htdocs/language/ для доступных языков), либо на существующем сайте измените язык в Admin → System → Preferences → General Settings.

Пожалуйста, внесите ваш перевод обратно в сообщество.

  1. Создайте репозиторий GitHub (или разветвите существующий языковой репозиторий, если он существует для вашего языка).

  2. Используйте четкое имя, такое как xoops-language-<language-code> (например, xoops-language-es, xoops-language-pt-br).

  3. Отзеркаль структуру каталогов XOOPS внутри вашего репозитория, чтобы файлы совпадали с тем, где они будут скопированы:

    xoops-language-es/
    ├── language/spanish/(files).php
    ├── install/language/spanish/(files).php
    └── modules/system/language/spanish/(files).php
  4. Включите README.md, документирующий:

    • Имя языка и код ISO
    • Совместимость версии XOOPS (например, XOOPS 2.7.0+)
    • Переводчик и благодарности
    • Охватывает ли перевод только ядро или также встроенные модули
  5. Откройте pull request для соответствующего модуля/основного репозитория на GitHub или опубликуйте объявление на https://xoops.org, чтобы сообщество могло его найти.

Примечание

Если ваш язык требует изменений в ядре для форматирования дат или календаря, также включите эти изменения в пакет. Языки с текстом справа налево (арабский, иврит, персидский, урду) работают из коробки в XOOPS 2.7.0 — поддержка RTL была добавлена в этом выпуске и отдельные темы подхватывают это автоматически.