Свой язык из панели
В поставке семь языков: английский, русский, украинский, норвежский, польский, шведский, литовский. Любой другой язык (французский, немецкий, испанский, турецкий, вьетнамский, арабский…) добавляется из панели, без кода и без установки модулей: Языки (меню «Сайт», право settings.manage).
Три шага
- Завести язык. Код из 2–3 строчных латинских букв (
fr,de,pt-br), название по-английски и на самом языке, направление письма и правило множественного числа. Код потом не меняется: он стоит в адресах и записях. Занятые поставкой коды и служебные слова отвергаются. - Скачать образец и перевести. Файл
nex1on-<код>.jsonсодержит все ключи интерфейса (ядро и включённые модули) с английским текстом:
{
"_meta": { "format": 1, "language": "fr", "base": "en", "keys": 5800 },
"strings": { "admin.save": "Save", "news::post.title": "Title" }
}Переводите только значения. Две вещи сохраняйте: {подстановки} ({name}, {count}) и число форм множественного числа у текстов с числом (например, «{count} file|{count} files»: сколько форм у правила языка, столько вариантов через «|»).
- Загрузить, проверить, включить. Файл проверяется строка за строкой. Принятое сохраняется, а загрузка дополняет прежнюю: можно переводить по частям. Если чего-то не хватает, кнопка «Скачать только недостающее» даёт файл с пропущенными ключами.
Что проверяется (защита)
| Проверка | Что отклоняется |
|---|---|
| ключ | неизвестный ключ пропускается и не считается |
| значение | не текст; управляющие знаки; длиннее 4000 знаков |
| подстановки | потеряна, лишняя или переименована {подстановка} |
| разметка | теги — дословно как в образце вместе с атрибутами (href, class, style…): переводится только текст между тегами; javascript:; обработчики событий (onclick=) |
| формы числа | у текста с {count} число форм не равно числу форм языка |
| размер файла | больше 3 МБ; ключей кратно больше, чем в образце |
Отклонённые строки перечисляются с причиной (первые 100), в файл перевода они не попадают и показываются по-английски. Пустое значение — «не переведено».
Полнота и включение
Страница языка показывает долю переведённого. Полный перевод (100 %) включается сразу. От 90 % — по явной галочке: недостающее показывается по-английски. Меньше 90 % — не включается. Включённый язык появляется в выборе языка сайта и в языке панели у каждого человека; «Скрыть на сайте» убирает его у посетителей, панель при этом продолжает на нём говорить. Новые модули и обновления добавляют ключи — полнота снижается, а недостающее снова можно скачать отдельным файлом.
Где лежат переводы и что с обновлением
Переводы лежат в storage/languages/<код>/core.json и <модуль>.json, реестр языков — в настройке languages.custom. Обновление движка эти файлы не трогает, поставка (locales/*.json) остаётся как есть. Удаление языка сперва требует его выключить и переносит файлы в storage/languages/_trash/ рядом, а не стирает; записи, написанные на этом языке, сохраняют свой текст. Свои правки отдельных слов делаются, как и раньше, в «Тексты интерфейса».
Обновлено 16.10.2026
Пока никто не высказался. Будьте первым.