Farmstead Mods
EN

Локализация

Какие языки поставляются и насколько полно переведены.

ЯзыкПереведеноВсего ключейПокрытие
de_de30333033
100%
en_us30333033
100%
es_es30333033
100%
fr_fr30333033
100%
nl_nl30333033
100%
pl_pl30333033
100%
pt_br30333033
100%
ru_ru30333033
100%
zh_cn30333033
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}».