Языковой пакет

Материал из RuBeta Wiki
Дополнить
Вы можете помочь нашей вики, дополнив эту статью.
Причина: В статье указаны базовые данные по теме; при надобности дополнить примерами

Языковой пакет - это пользовательское расширение клиента, с помощью которого любой игрок может добавить в клиент свою локализацию (он же - язык), использовать её в игре, и поделиться им с другими игроками.

Структура пакета

Пакет может являться папкой или zip архивом с произвольным названием, внутри которого обязателен файл pack.lang, который содержит в себе информацию о языке, языковом коде, и авторе (авторах) пакета. Внутри пакета не желательны дополнительные папок и лишних файлов, которые не используются клиентом игры.
Пример структуры языкового пакета для папки с названием True localiztion pack:

True localiztion pack/
    blocks.lang
    interface.lang
    items.lang
    pack.lang
    splashes.txt

Пример структуры языкового пакета для zip архива с названием TrueLocaliztionPack.zip:

TrueLocaliztionPack.zip:/
    blocks.lang
    interface.lang
    items.lang
    pack.lang
    splashes.txt

Содержание пакета

В языковом пакете обязателен файл pack.lang, который содержит в себе информацию о языке, языковом коде, и авторе (авторах) пакета. Помимо него, существуют файлы blocks.lang, interface.lang, items.lang, и splashes.txt (название вариативно, указывается в pack.lang), которые могут отсутствовать в пакете при указанном наследовании другого языкового пакета.

Содержание файла pack.lang

Здесь указан пример содержания файла со значениями по умолчанию (в случае некорректно указанных ключей):

name.international=
name.localized=
name.code=
inherit=
authors=
splashes=
Описание параметров
Параметр Описание Пример
name.international интернациональное название языка и страны, пишется на английском языке Zorzegber [Zorzegland]
name.localized локализованное название языка и страны, пишется на языке пакета Zorzegber [Zorzegland]
name.code код языка zz_ZZ
inherit опционально; наследуемый пакет локализации, указывается его код. Максимальная вложенность до двух пакетов. Полезно в случае неполной локализации пакета en_US
authors опционально; автор или авторы пакета No author provided
splashes название файла со сплэшами splashes.txt

Описание файла interface.lang

В этом файле обычно присутствуют ключи локализации для интерфейса, но какого либо ограничения по иным ключам нет. Является первым файлом в очереди при загрузке пакета.
Первые 4 строки содержания файла для локализации en_US:

achievement.acquireIron.desc=Smelt an iron ingot
achievement.acquireIron=Acquire Hardware
achievement.bakeCake.desc=Wheat, sugar, milk and eggs!
achievement.bakeCake=The Lie

Описание файла blocks.lang

В этом файле обычно присутствуют ключи локализации для блоков, но какого либо ограничения по иным ключам нет. Является вторым файлом в очереди при загрузке пакета.
Первые 4 строки содержания файла для локализации en_US:

tile.andesite.name=Andesite
tile.andesitePolished.name=Polished Andesite
tile.andesitePolishedStairs.name=Polished Andesite Stairs
tile.andesitePolishedWall.name=Polished Andesite Wall

Описание файла items.lang

В этом файле обычно присутствуют ключи локализации для предметов, но какого либо ограничения по иным ключам нет. Является третьим файлом в очереди при загрузке пакета.
Первые 4 строки содержания файла для локализации en_US:

item.apple.name=Apple
item.appleGold.name=Golden Apple
item.appleTreeLeaves.name=Apple Tree Leaves
item.arrow.name=Arrow

Описание файла сплэшей (splashes.txt)

В этом файле присутствуют сплэши, отображаемые в главном меню игры. Каждый сплэш начинается с новой строки.
Первые 4 строки содержания файла для локализации en_US:

As seen on TV!
Awesome!
100% pure!
May contain nuts!

Местоположение языковых пакетов

Пакеты должны находиться в домашней папке клиента в папке languagepacks. Значение пути по умолчанию: C:\Users\Public\AppData\Roaming\rubeta\languagepacks

Примеры языковых пакетов

Пример языкового пакеты для русского языка, встроен в клиент: ru_RU.20240810.zip
Пример языкового пакеты для английского языка, встроен в клиент: en_US.20240810.zip
В случае оповещения браузера о ненадёжности загрузки игнорируйте это оповещение - файлы находятся на незащищённом сертификатом домене.

Существующие проблемы с языковыми пакетами

На текущий момент не читаются сплэши из наследуемого языкового пакета - при создании своего пакета создайте свой файл со сплэшами и укажите его название в pack.lang в параметре splashes