N1 Nex1on

Your own language from the panel

Seven languages ship with the engine: English, Russian, Ukrainian, Norwegian, Polish, Swedish, Lithuanian. Any other language (French, German, Spanish, Turkish, Vietnamese, Arabic…) is added from the panel, with no code and without installing modules: Languages (the “Site” menu, the settings.manage right).

Three steps

  1. Add the language. A code of 2–3 lowercase Latin letters (fr, de, pt-br), the name in English and in the language itself, the writing direction and the plural rule. The code cannot be changed later: it appears in addresses and records. Codes taken by the package and reserved words are rejected.
  2. Download the sample and translate. The file nex1on-<code>.json contains all interface keys (the core and the enabled modules) with the English text:
{
  "_meta": { "format": 1, "language": "fr", "base": "en", "keys": 5800 },
  "strings": { "admin.save": "Save", "news::post.title": "Title" }
}

Translate the values only. Keep two things: the {placeholders} ({name}, {count}) and the number of plural forms in texts with a number (for example, “{count} file|{count} files”: as many forms as the language rule has, that many variants separated by “|”).

  1. Upload, check, turn on. The file is checked line by line. What is accepted is saved, and an upload adds to the previous one, so you can translate in parts. If something is missing, the “Download only what is missing” button gives you a file with the missing keys.

What is checked (protection)

CheckWhat is rejected
keyan unknown key is skipped and not counted
valuenot text; control characters; longer than 4000 characters
placeholdersa {placeholder} that is lost, extra or renamed
markuptags must match the sample word for word, attributes included (href, class, style…): only the text between tags is translated; javascript:; event handlers (onclick=)
plural formsfor a text with {count}, the number of forms differs from the number of forms of the language
file sizemore than 3 MB; many times more keys than in the sample

Rejected lines are listed with the reason (the first 100); they do not go into the translation file and are shown in English. An empty value means “not translated”.

Completeness and turning on

The language page shows the share translated. A full translation (100%) is turned on at once. From 90% — with an explicit checkbox: what is missing is shown in English. Below 90% it cannot be turned on. A language that is on appears in the site’s language picker and in the panel language of every person; “Hide on the site” removes it for visitors, while the panel keeps speaking it. New modules and updates add keys, so completeness drops, and what is missing can again be downloaded as a separate file.

Where translations live and what happens on update

Translations live in storage/languages/<code>/core.json and <module>.json; the language registry is in the languages.custom setting. An engine update does not touch these files, and the shipped files (locales/*.json) stay as they are. Deleting a language first requires turning it off and moves its files to storage/languages/_trash/ next to them instead of erasing them; records written in that language keep their text. Your own edits of individual words are still made in “Interface texts”.

Обновлено 16.10.2026

На этой странице
Поделиться: Telegram WhatsApp
Откладывать можно и без входа: закладки сохранятся в этом браузере, а после входа их можно перенести в учётную запись. Вход
Обсуждение

Комментарии

Обсуждение ещё не началось

Пока никто не высказался. Будьте первым.

Пожаловаться на запись