Перейти к содержимому
Для публикации в этом разделе необходимо провести 1 боёв.
BattleFrame

[FAQ] Создание модификаций локализации

В этой теме 3 комментария

Рекомендуемые комментарии

3 968
[GA]
Разработчик, Коллекционер
2 828 публикаций
23 373 боя

[FAQ] Создание модификаций локализации
В данной теме мы рассмотрим как создаются модификации для замены текстовых строк, либо добавлением новых.


Модификации локализации может быть создана двумя способами:

  1. Созданием небольших *.mo файлов с их последующим размещением в папке "res_mods"
  2. Внесением изменений в один файл - "global.mo", содержащий в себе все текстовые данные, которые мы видим в клиенте.

Необходимый софт:

  • mk_global - программа для создания текстовых модов для Мира Кораблей.

 

Выполняем подготовку:

За подготовку можно считать распаковку родного файла "global.mo" игры для того чтобы мы могли его открыть и искать нужные нам строки

  1. Скачиваем программку mk_global по ссылке выше и распаковываем её в отдельную папку.
  2. Переходим в папку с игрой, далее "\bin\<номер_билда>\res\texts\ru\LC_MESSAGES" и копируем оттуда файл "global.mo" в папку с нашей программой "mk_global".
  3. Запускаем "mk_global.exe" и выбираем 1 пункт -  "Распаковать исходный файл локализации"
    image.png
  4. В папке с программой появится файл "global_dump.po". Его можно открыть текстовым редактором и использовать для поиска ID нужных вам строк для последующей замены.

 

  • Плюс 1

Рассказать о публикации


Ссылка на публикацию
3 968
[GA]
Разработчик, Коллекционер
2 828 публикаций
23 373 боя

    Создание мода при помощи *.mo патчей
    Суть заключается в том, что мы не пересобираем весь файл "global.mo", а создаём и используем только файлик с нужными нам строками.


    Особенности метода:

    • Мод не будет зависеть от версионных обновлений игры и как следствие не будет ломать локализацию.
    • Возможность включать патчи локализаций в другие модификации (например если мы хотим создать мод убирающий какой-либо текст, либо если мы хотим изменить какого-либо командира заменив ему иконку, озвучку и имя).
    • Возможность добавлять собственные строки локализаций для использования с другими модами.
    • Совместимость с другими текстовыми модификациями при условии что они не используют один IDS ключ.

     

    Создание модификации:

    1. Скачиваем программку mk_global и распаковываем его в отдельную папку.
    2. В распакованной папке находим папку "mods" и создаём в ней *.json файлик с именем нашего мода
    3. Внутрь созданного файлика помещаем необходимые нам строки и сохраняем (в архиве с программой есть файл с примером "example.json")
    4. Запускаем "mk_global.exe" и выбираем 3 пункт -  "Собрать файлы текстовых модификаций"
      image.png
    5. Дожидаемся пока программа не напишет об окончании процесса
      image.png
    6. Переходим в папку  "output" и находим *.mo файл нашего мода
    7. Перемещаем полученный файл в папку "\bin\<номер_билда>\res_mods\texts\ru\LC_MESSAGES\" и запускаем игру.
      (если такого пути у Вас нет, то создаём его)
    8. Модификация готова и работает!

     

    Структура json файла мода:

    Рассмотрим создание json мод на примере файла "example.json"

    {
      "IDS_START_BATTLE": "На абордаж!",
      "IDS_MYTEXT": "Пример добавления новой переменной",
      "IDS_PASA108": "Лексингтон",
      "IDS_PJSC610": "Китаками"
    }

    Строки добавляются по принципу "ключ": "значение"
    При запуске игра в первую очередь считывает свой родной файл локализации, после чего берётся за ваш. Если один из ключей в вашем файле совпадёт с одним из ключей в родном файле, то значение будет заменено на ваше.
    Если же в родном файле ключ найден не будет, то он будет просто добавлен, после чего может быть использован в любых других модификациях.

    Например, "IDS_START_BATTLE": "На абордаж!" изменит в порту текст кнопки "В Бой!" т.к ключ IDS_START_BATTLE есть в родном файле global.mo игры.

    А вот ключа "IDS_MYTEXT" в родном файле локализации игры нет, поэтому он будет добавлен как мод.

     

    • Плюс 2

    Рассказать о публикации


    Ссылка на публикацию
    3 968
    [GA]
    Разработчик, Коллекционер
    2 828 публикаций
    23 373 боя

    Сборка модифицированного файла "global.mo"
    Данный метод может понадобиться когда необходимо заменить определённые значения в большом количестве строк.
    Например, заменить слово "корабль" на "шхуна", либо перевести названия кораблей на русский (а ведь они встречаются ещё и в описаниях и в операциях и ещё много где), либо и вовсе перевести игру на латынь (почему бы и нет?)


    Особенности метода:

    • Сборка мода проще чем метод *.mo патчей т.к имеется функция поиска и замены строк,
      • Но, мод получится версионно-зависимый и требующий пересоборки после каждого обновлении игры.
    • Нет возможности добавлять собственные строки локализации.
    • Модификация не совместима с другими модификациями, созданными этим же методом.
    • *.mo патчи других модов будут в приоритете над вашим

    Создание модификации:

    1. Скачиваем небольшое приложение mk_global и распаковываем его в отдельную папку.
    2. Переходим в папку с игрой, далее "\bin\<номер_билда>\res\texts\ru\LC_MESSAGES" и копируем оттуда файл "global.mo" в папку с нашей программой "mk_global".
    3. Открываем файл "replace.json" и вносим необходимые нам изменения. (о структуре файла читайте ниже)
    4. Запускаем приложение "mk_global.exe", выбираем "Собрать модифицированный файл локализации" и дожидаемся окончания процесса.
      image.png
    5. По окончанию переходим в папку "output" и видим там обновлённый файл "global.mo", который и является нашей готовой модификацией.
    6. Перемещаем полученный файл в папку "\bin\<номер_билда>\res_mods\texts\ru\LC_MESSAGES\" и запускаем игру.
      (если такого пути у Вас нет, то создаём его)
    7. Модификация готова и работает!

    Структура replace.json:

    Скрытый текст

     

    Файл содержит 2 блока: replace и words

    • replace - блок для полной замены строки. Здесь мы указываем ID строки и текст на который заменить её значение. Строка будет полностью перезаписана.
    • words - блок поиска и замены вхождений. Здесь мы указываем что и на что мы меняем. Скрипт проходится по всему файлу локализации и заменяет все совпадения во всех строках.

    Пример:

    Ниже представлено содержимое файла "replace.json". При запуске приложения будут полностью перезаписаны строки IDS_APPLY_CHANGES_QUESTION и IDS_APPLY, а также во всех строках (включая описания, боевые задачи и т.п.) будут заменены слова Haida, Perth, Vampire и Friesland на Хайда, Перт, Вампир и Фрисланд соответственно.

      Показать содержимое

     

     

    • Плюс 2

    Рассказать о публикации


    Ссылка на публикацию
    Гость
    Эта тема закрыта для публикации новых ответов.

    ×