Локализация
Какие языки поставляются и насколько полно переведены.
| Язык | Переведено | Всего ключей | Покрытие |
|---|---|---|---|
de_de | 3033 | 3033 | 100% |
en_us | 3033 | 3033 | 100% |
es_es | 3033 | 3033 | 100% |
fr_fr | 3033 | 3033 | 100% |
nl_nl | 3033 | 3033 | 100% |
pl_pl | 3033 | 3033 | 100% |
pt_br | 3033 | 3033 | 100% |
ru_ru | 3033 | 3033 | 100% |
zh_cn | 3033 | 3033 | 100% |
Как мод выбирает язык
Язык сервера задаётся ключом localization.language в config.json (например ru_ru). Мод
загружает data/lang/<код>.json из джарника, накладывает поверх правки администратора из
config/neoessentials/languages/custom/<код>.json, а всё, чего в выбранном языке нет, берёт из
en_us. Поэтому неполный перевод не ломает вывод — просто часть строк остаётся английской.
Проценты в таблице выше — это доля ключей en_us, у которых есть перевод; она считается при
сборке сайта по тем же файлам, что уезжают в джарник.
Свои переводы
Чтобы поправить отдельные строки, не трогая файлы мода:
/language template ru_ru создать шаблон в languages/custom/
/language override set <ключ> <текст> переопределить одну строку на лету
/language override list посмотреть все переопределения
/language reload перечитать файлы языков
Файл в languages/custom/ — это наложение, а не замена: ключи, которых в нём нет, продолжают
браться из перевода в джарнике. Благодаря этому частичный или устаревший пользовательский файл
не может спрятать полноценный перевод, приехавший с обновлением мода.
Что нельзя менять в строках
Перевод обязан сохранять служебные фрагменты, иначе вывод в чате сломается:
| Фрагмент | Что это | Правило |
|---|---|---|
§a, §c, §l |
коды цвета и стиля Minecraft | сохранять все, в том же порядке и на том же месте |
{0}, {1} |
подстановка аргумента | сохранять все, с теми же номерами |
{player}, {server_name} |
именованные плейсхолдеры | не переводить |
<gradient:…>, <rainbow> |
теги форматирования | не переводить |
'' |
экранированная кавычка MessageFormat | оставлять удвоенной |
Одиночная кавычка ' в строке, где есть {0}, съест подстановку — это самая частая причина
«почему вместо имени игрока печатается {0}».