For the complete documentation index, see llms.txt. This page is also available as Markdown.

Перевод JohnCMS на другие языки

JohnCMS является мультиязычной CMS. К сожалению разработчики не знают всех языков, которые существуют на планете и для того чтобы система оставалась мультиязычной, необходимо чтобы люди, знающие другие языки, помогали с переводом. Мы постарались максимально упростить процесс перевода системы на другие языки.

Есть два способа поучаствовать в переводе:

  1. Через Crowdin — перевод прямо в браузере, не требует навыков программирования. Подходит большинству переводчиков.

  2. Через пулреквест на GitHub — редактирование .po-файлов в репозитории. Подходит тем, кто привык работать с git и программами вроде Poedit.

Переводы между Crowdin и репозиторием синхронизируют разработчики вручную, поэтому оба способа равнозначны — выбирайте удобный.

Способ 1: перевод через Crowdin

Чтобы поучаствовать в переводе нужно выполнить некоторые действия. Давайте рассмотрим их по порядку.

Переходим по ссылке translate.johncms.com

Вам необходимо авторизоваться на сайте. Если у вас уже есть учетная запись на crowdin.com или вы зарегистрированы в Facebook, Google, Twitter, Github или Gitlab, то можете нажать на кнопку Log in. Перед вами появится окно авторизации в котором вы можете ввести логин и пароль от учетной записи или войти через описанные выше сервисы. Если учетной записи нет, то нажимаете на Sign up и регистрируетесь.

страница авторизации

После авторизации вы можете приступать к переводу. Для этого в списке языков выберите тот язык, на который вы хотите перевести систему

список языков

Если нужного языка нет в списке, мы можем его добавить — см. раздел Добавление нового языка ниже.

После выбора языка перед вами появится эта страница:

список переводов

На этой странице отображен список переводов для модулей системы и процент фраз, которые уже переведены.

Выбираете модуль, который хотите перевести. Попадаете на страницу со списком фраз:

список фраз

В левой части отображается список фраз для перевода. В центре отображается сам перевод и информация о том, в каких файлах содержится фраза (context). Так же вы можете посмотреть как эта фраза переведена на другие языки, для этого разверните блок OTHER LANGUAGES. Так же есть уже автоматически переведенные варианты (TM and MT Suggestions), которые вы можете выбрать если там есть подходящий вариант. Если подходящего варианта в автоматических переводах нет, то нужно вписать перевод вручную в поле ввода и нажать Save (сохранить). После сохранения автоматически откроется следующая фраза для перевода в текущем модуле.

После завершения перевода модуля, вы можете выйти назад в список модулей. Для этого вверху слева нажимаете на меню и выбираете Quit Editor. После этого вы попадете обратно в список модулей и можете переводить другие модули аналогичным образом.

После того как Вы выполняете перевод, Ваши переводы проходят проверку разработчиками и загружаются в CMS, а потом с выходом обновлений становятся доступны всем.

Способ 2: перевод через пулреквест на GitHub

Если вам удобнее работать с файлами напрямую, вы можете переводить в репозитории и отправлять изменения пулреквестом.

Файлы переводов лежат в формате gettext .po:

  • system/locale/<язык>.po — системные фразы (ядро, общие шаблоны);

  • modules/<модуль>/locale/<язык>.po — фразы конкретного модуля (например, modules/forum/locale/de.po).

Порядок действий:

  1. Сделайте форк репозитория johncms/johncms и создайте ветку.

  2. Откройте нужный .po-файл в любом редакторе переводов — например, Poedit, Lokalize, Gtranslator или обычном текстовом редакторе. Специализированные программы удобнее: они показывают исходную фразу, перевод и формы множественного числа.

  3. Переведите фразы и сохраните файл.

  4. Отправьте пулреквест с изменёнными .po-файлами.

Важные моменты:

  • Редактируйте только .po-файлы. Файлы .lng.php генерируются из .po автоматически (командой composer translate), а .pot — шаблоны, которые создаются из исходного кода. Их править вручную не нужно: если в пулреквесте будут только .po, словари .lng.php пересоберут разработчики.

  • Не меняйте исходные фразы (msgid) — переводится только msgstr.

  • Сохраняйте плейсхолдеры (%s, %d) и HTML-теги из оригинала — без них система не сможет подставить значения.

  • После принятия пулреквеста разработчики загружают перевод в Crowdin вручную, так что конфликтов между способами не возникает.

Добавление нового языка

Если нужного языка ещё нет ни в Crowdin, ни в репозитории, свяжитесь с разработчиками любым удобным способом (например: info@johncms.com) и напишите название языка — мы его добавим.

Обращаем Ваше внимание, что для того, чтобы перевод был включен в дистрибутив, он должен охватывать как минимум 50% фраз.

Последнее обновление

Это было полезно?