Локализация#
Все файлы переводов должны располагаться по следующему пути: /assets/<mod_id>/lang чтобы они были обнаружены и загружены игрой.
Создайте следующие файлы:
src
└── main
└── resources
└── assets
└── mcmodding
└── lang
└── en_US.lang
└── ru_RU.lang
Примечание
Наличие файла en_US.lang является обязательным - этот перевод является базовым. Игра использует его при отсутствии другого перевода или строки в переводе для выбранного языка.
Если переводить лень...
Если по каким-то причинам Вы не хотите делать перевод вашего мода на английский язык, используйте файл en_US.lang как единственный перевод, чтобы строки всегда были доступны вне зависимости от выбранного языка игры. В противном случае будут отображаться ключи строк вместо перевода.
Содержание файла:
itemGroup.mcmodding=McModding
item.ring.name=Кольцо
item.paint_can.name=Банка краски
item.cherry.name=Черешня
item.ruby_axe.name=Рубиновый топор
item.ruby_hoe.name=Рубиновая мотыга
item.ruby_pickaxe.name=Рубиновая кирка
item.ruby_spade.name=Рубиновая лопата
item.ruby_sword.name=Рубиновый меч
item.ruby_multi_tool.name=Рубиновый мультиинструмент
entity.mcmodding.goose.name=Гусь
tile.ruby.name=Рубиновый блок
Формат файла представляет из пары ключ=значение
, размещённые каждая на отдельной строке. Файл представляет собой обычный Java Properties file.
Важно
Строки из вашего файла загружаются в общую таблицу переводов, поэтому важно чтобы ключи строк были уникальны и не конфликтовали с другими модами и самой игрой. Хорошей практикой будет добавлять к каждому ключу префикс с нашим ModId
(например: mcmodding.some.key=Наш перевод
)
Вы можете добавлять свои значения в этот файл, чтобы обращаться к ним позже с помощью:
I18n#format
данный метод доступен только на клиенте, поэтому рекомендуется использовать только для локализации GUI.StatCollector#translateToLocal
иStatCollector#translateToLocalFormatted
будут работать везде. Второй вариант подходит, если нужно передать в строку аргументы дляString#format
.- Использовать
ChatComponentTranslation
принимающий в качестве строки ключ перевода. Этот вариант актуален при отправке сообщений в чат с сервера - клиент игрока сам переведёт сообщение на выбранный в настройках язык.
Совет
Если Вы работаете в Intellij Idea, рекомендуется установить плагин Minecraft Development. Он добавляет подсветку синтаксиста для *.lang
файлов, а также будет сообщать о расхождениях переводов по сравнению с базовым.