Приложение 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/если он существует.
Перевод “только ядро” — это минимальная полезная единица и соответствует первым двум пунктам выше.
Как переводить
Заголовок раздела «Как переводить»-
Скопируйте каталог
english/рядом с ним и переименуйте копию на ваш язык. Имя каталога должно быть названием языка на английском языке в нижнем регистре (spanish,german,french,japanese,arabicи т.д.).htdocs/language/english/ → htdocs/language/spanish/ -
Откройте каждый файл
.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?'); -
Сохраняйте каждый файл как UTF-8 без BOM. XOOPS 2.7.0 использует
utf8mb4от начала до конца (база данных, сеансы, вывод) и отклоняет файлы с меткой порядка байтов. В Notepad++ это вариант “UTF-8”, не “UTF-8-BOM”. В VS Code это значение по умолчанию; просто подтвердите кодировку в строке состояния. -
Обновите метаданные языка и кодировки в верхней части каждого файла, чтобы они соответствовали вашему языку:
// _LANGCODE: es// _CHARSET : UTF-8// Translator: Your Name_LANGCODEдолжен быть ISO 639-1 кодом вашего языка._CHARSETвсегдаUTF-8в XOOPS 2.7.0 — больше нет варианта ISO-8859-1. -
Повторите процесс для установщика, системного модуля и любых встроенных модулей, которые вам нужны.
Как установить перевод
Заголовок раздела «Как установить перевод»Если вы получили завершенный перевод как дерево каталогов:
- Скопируйте каждый каталог
<language>/в соответствующий родительский каталогlanguage/english/в вашей установке XOOPS. Например, скопируйтеlanguage/spanish/вhtdocs/language/,install/language/spanish/вhtdocs/install/language/и так далее. - Убедитесь, что право собственности на файлы и разрешения доступны веб-серверу.
- Либо выберите новый язык во время установки (мастер сканирует
htdocs/language/для доступных языков), либо на существующем сайте измените язык в Admin → System → Preferences → General Settings.
Поделитесь вашим переводом обратно
Заголовок раздела «Поделитесь вашим переводом обратно»Пожалуйста, внесите ваш перевод обратно в сообщество.
-
Создайте репозиторий GitHub (или разветвите существующий языковой репозиторий, если он существует для вашего языка).
-
Используйте четкое имя, такое как
xoops-language-<language-code>(например,xoops-language-es,xoops-language-pt-br). -
Отзеркаль структуру каталогов XOOPS внутри вашего репозитория, чтобы файлы совпадали с тем, где они будут скопированы:
xoops-language-es/├── language/spanish/(files).php├── install/language/spanish/(files).php└── modules/system/language/spanish/(files).php -
Включите
README.md, документирующий:- Имя языка и код ISO
- Совместимость версии XOOPS (например,
XOOPS 2.7.0+) - Переводчик и благодарности
- Охватывает ли перевод только ядро или также встроенные модули
-
Откройте pull request для соответствующего модуля/основного репозитория на GitHub или опубликуйте объявление на https://xoops.org, чтобы сообщество могло его найти.
Примечание
Если ваш язык требует изменений в ядре для форматирования дат или календаря, также включите эти изменения в пакет. Языки с текстом справа налево (арабский, иврит, персидский, урду) работают из коробки в XOOPS 2.7.0 — поддержка RTL была добавлена в этом выпуске и отдельные темы подхватывают это автоматически.