▶️ ЗАБЕРИ СВОИ 8 ПОДАРКОВ 🎁 ПРИ СОЗДАНИИ СВОЕГО МАЙНКРАФТ СЕРВЕРА
Моды/Server I18n API - локализация серверных модов
Server I18n API - локализация серверных модов

Server I18n API - локализация серверных модов

Server I18n API - серверная библиотека для Minecraft, которая даёт серверным модам полноценную локализацию: каждый игрок получает сообщения на языке своего клиента автоматически, без установки чего-либо на клиент.

Оцените первым
19.0K
4

Server I18n API - серверная библиотека для Майнкрафт, которая закрывает одну из самых назойливых проблем моддинга: перевод сообщений серверных модов. Если вы пишете моды, работающие только на стороне сервера, или держите сервер с международной аудиторией - этот API позволит каждому игроку видеть текст на языке его клиента.

Какую проблему решает мод

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

С серверными модами такая схема ломается. Когда мод шлёт сообщение в чат - приветствие при входе, описание кастомной команды, текст квеста или уведомление об ивенте - строка формируется прямо на сервере. И формируется одна на всех. В итоге русский, немец и бразилец на одном сервере видят одинаковый английский текст (или какой там язык выбрал разработчик мода). Знакомая боль всех международных проектов.

Server I18n API переносит систему переводов на сервер. Библиотека автоматически определяет язык клиента каждого игрока - клиент сам сообщает его при подключении, это стандартное поведение протокола Майнкрафта, так что никаких костылей с командами и ручным выбором языка не нужно.

Ключевой момент: на клиенте мод ставить не нужно вообще. Игроки заходят даже с полностью ванильного клиента и не подозревают, что на сервере крутится эта библиотека. Они просто получают сообщения на своём языке.

Как это выглядит на практике

Для игроков всё происходит прозрачно. Зашёл на сервер с русским клиентом - читаешь сообщения модов по-русски. Твой друг с английским клиентом видит тот же ивент по-английски. Ничего настраивать не надо ни игроку, ни админу - определение языка полностью автоматическое.

Но учтите важный нюанс: сам по себе Server I18n API ничего в игру не добавляет. Это инструмент для разработчиков, зависимость. Ставить его на сервер имеет смысл только вместе с модами, которые его используют. Если в требованиях какого-то серверного мода указан этот API - просто скачайте библиотеку и закиньте в папку mods на сервере рядом с ним, дальше всё сработает само. На модовом сервере у BungeeHost это делается так же, как с любым другим серверным модом.

Гайд для разработчиков

Схема интеграции минималистичная - автор явно делал библиотеку под принцип "подключил и работаешь".

Языковые файлы кладутся по пути data/<mod id>/lang/ - формат тот же, что у ванильных языковых файлов ресурспаков: обычные json вида en_us.json, ru_ru.json с парами "ключ": "текст". Если вы хоть раз делали переводы для модов или ресурспаков в Майнкрафт, ничего нового учить не придётся.

Весь API - это один класс ServerI18n с двумя основными методами.

Отправка переведённого сообщения конкретному игроку:

Text.literal(ServerI18n.translate(player,"translation key","arg1","arg2"))

Рассылка сообщения всем игрокам сервера - и каждый получит свою языковую версию:

ServerI18n.broadcast(server,"translation key","arg1","arg2")

Аргументы (arg1, arg2 и дальше по списку) подставляются в строку перевода - удобно для сообщений с никами игроков, координатами, счётом очков и прочими динамическими значениями. Метод broadcast особенно приятен: один вызов, а сервер сам разошлёт персонализированные версии текста. Ручками перебирать онлайн-игроков и их локали не нужно.

Судя по использованию класса Text из Yarn-маппингов, библиотека ориентирована на серверы с Fabric (и, скорее всего, Quilt) - это стандартная экосистема для server-side моддинга на Майнкрафт 1.20 и новее.

Совет из практики

При составлении языковых файлов делайте en_us.json обязательным и полным - он станет фолбэком для тех игроков, чей язык вы не перевели. И ещё: плейсхолдеры для аргументов должны совпадать во всех локалях, иначе часть игроков увидит битые строки вроде недоставленных значений. Это классическая ошибка при мультиязычной разработке, проверяйте каждый файл.

Кому нужен Server I18n API

  • Разработчикам серверных модов - must-have, если планируете публиковать мод для широкой аудитории, а не только для своего сервера.
  • Админам серверов - ставится как зависимость, если этого требует один из ваших модов.
  • Обычным игрокам - качать самостоятельно не нужно: на клиент библиотека не устанавливается в принципе.

Скачать Server I18n API стоит всем, кто собирает модовый сервер с иностранными игроками или разрабатывает server-side моды под Fabric. Одна маленькая библиотека - и ваш сервер заговорит с каждым игроком на его языке.

Партнёрский материал

Как поиграть с друзьями с модом Server I18n API - локализация серверных модов?

Мод Server I18n API - локализация серверных модов куда интереснее в компании: поднимите сервер Майнкрафт с уже установленным модом, позовите друзей и играйте по своим правилам. Хостинг Майнкрафт для мода Server I18n API - локализация серверных модов будет готов за пару минут - BungeeHost сделает всё за вас.

Часто задаваемые вопросы

Совместимость

Minecraft: Java Edition

26.2.x26.1.x1.21.x1.20.x1.19.x

Платформы

Поддерживаемые окружения

Сервер

Ссылки


Детали

Лицензия:
Опубликован:1 год назад
Обновлён:4 месяца назад
Главная