Posted in

Как перевести шаблоны и плагины для Osclass

Osclass — это популярная система для создания классифайд-сайтов, и, как и WordPress, она поддерживает локализацию. Многие темы и плагины для Osclass изначально идут на английском, но их можно перевести на любой язык. В этой статье разберём, как правильно переводить шаблоны и плагины для Osclass.


1. Подготовка к переводу

Перед тем как начать, убедитесь, что тема или плагин поддерживают локализацию. Проверьте:

  • Наличие папки languages в структуре темы или плагина.

  • Использование функций перевода (__()_e()_m()_n() и др.) в коде.

  • Наличие .pot-файла (шаблона для перевода).

Если .pot-файла нет, его можно создать вручную или с помощью специальных инструментов.


2. Создание и редактирование файлов перевода

Osclass, как и WordPress, использует систему Gettext с файлами .po (текстовый формат) и .mo (бинарный, используется системой).

Способы перевода:

① Использование Poedit (наиболее удобный способ)

  1. Скачайте и установите Poedit.

  2. Откройте .pot-файл (или создайте новый через File → New from POT file).

  3. Введите перевод для каждой строки.

  4. Сохраните файл в формате .po и .mo с указанием языка (например, ru_RU.po для русского).

② Ручное создание .po/.mo файлов

Если .pot-файла нет, можно создать его вручную:

  1. Скопируйте все строки для перевода из кода (ищите __('текст')_e('текст') и т. д.).

  2. Создайте файл messages.po в структуре:

    • Для тем: oc-content/themes/ваша-тема/languages/ru_RU.po

    • Для плагинов: oc-content/plugins/ваш-плагин/languages/ru_RU.po

  3. Заполните его по стандарту Gettext (можно взять за основу любой .po-файл из Osclass).

  4. Скомпилируйте в .mo через Poedit или командой:

    msgfmt ru_RU.po -o ru_RU.mo

③ Использование консольных утилит (xgettext, msgfmt)

Для разработчиков:

  • Сбор строк из PHP-файлов:

    xgettext --from-code=UTF-8 -o messages.pot *.php
  • Компиляция .po в .mo:

    msgfmt ru_RU.po -o ru_RU.mo

3. Подключение перевода

Для тем

  1. Поместите .po и .mo файлы в:

    oc-content/themes/ваша-тема/languages/
  2. Убедитесь, что в functions.php темы есть загрузка перевода:

    osc_register_script('theme-script', ...); // если есть JS-локализация  

    (Osclass автоматически подхватывает перевод, если файлы лежат в правильной папке.)

Для плагинов

  1. Файлы перевода должны быть в:

    oc-content/plugins/ваш-плагин/languages/
  2. В коде плагина должна быть строка загрузки текстового домена (обычно это есть в стандартных плагинах).


4. Проверка перевода

  1. В админке Osclass (Настройки → Язык) выберите нужный язык.

  2. Если перевод не подгружается:

    • Проверьте правильность названия файлов (например, ru_RU.mo).

    • Убедитесь, что строки в .po-файле соответствуют оригиналу.


5. Дополнительные советы

  • Локализация JavaScript – если в теме/плагине есть JS-строки, их тоже нужно перевести через osc_add_script_translation().

  • Обновление перевода – если исходный код изменился, обновите .pot-файл и внесите правки в .po.

  • Стандартные языковые файлы – Osclass уже содержит базовые переводы в oc-content/languages/.


Заключение

Перевод тем и плагинов Osclass — не сложный процесс, если использовать Poedit или ручное редактирование .po-файлов. Главное — правильно разместить файлы и проверить их работу.

Если у вас есть вопросы — задавайте в комментариях!

Добавить комментарий