RPG Maker MV/MZ Translator (net)





   На данный момент сделана экспериментальная бета версия.
   В этот раз для разработки я использовал версию .Net 4.8, поэтому программа точно работает даже под Windows 7 (лично проверено).
   Возможно, по той же причине, позже откачу до этой же версии и обычную версию переводчика.



   Для совместного перевода используется общая база данных (в моём случае MariaDB или MySQL). Взаимодействие между ней и пользователями ведётся посредством API, крутящемся на отдельном сервере.
   В данный момент рабочий вариант API интегрирован в код моего личного web-сервера на арендованном VDS с Linux (Debian 10, .Net 6.0).
   Для GitHub я вынес код отдельно, кому интересно можно ознакомиться с ним и документацией в Swagger по ссылке под скриншотом.



Примерный код Web API


История версий.

   8/11/2022 v. 1.0 Начальный вариант для бета-тестирования.

Заливка проектов в базу данных.

   Заливать, удалять и редактировать проекты могут только пользователи с правами администратора.

   В сетевой версии отсутствует функция сканирования игры. В базу данных заливаются данные из папок TranslateData/In и TranslateData/Out созданные обычной версией RPG Maker MV/MZ Translator.



   После запуска программы откроется окно с доступными для перевода проектами.
   Для заливки нового проекта нажмите кнопку Добавить.

   Окно добавления/изменения данных о проекте.



   После заполнения формы вам будет предложено указать исполняемый файл "(Game).exe" заливаемого на сервер проекта и вслед за этим начнётся заливка.

   После успешной заливки данных, проект появится в окне с доступными переводами.



Загрузка перевода.

   На время бета-тестирования загружать переводы могут пользователи с правом доступа user.
   В перспективе, для обычных пользователей, на базе API можно будет сделать загрузчики переводов без функций редактирования, позволяющие им получать обновления в режиме онлайн.

   После нажатия на кнопку Выбрать вы должны будете выбрать исполняемый файл ".exe" нужного вам проекта.
   Далее программа проверит соответствие между локальными данными игры на ПК и сетевыми данными на удалённом сервере.
   Проверяются сканы игры из папки TranslateData/In.
   Все прочие данные, полученные от RPG Maker MV/MZ Translator (папки TranslateData/Out и TranslateData/Backup), сетевым переводчиком не используются и могут быть удалены. В данном случае весь перевод хранится удалённо в базе данных на сервере.

   Обратите внимание, у всех участников совместного перевода, локально должна быть одна и та же версия переводимой игры!
   Малейшая разница в источнике данных не позволит вам загрузить проект.
   Так как данные из TranslateData/In всегда неизменны, то они используются для проверки при подключении.

   После успешной загрузки откроется непосредственно сам переводчик.



   Интерфейс переводчика полностью взят из обычной версии RPG Maker MV/MZ translator. И если вы уже привыкли с ним работать, то никаких проблем с адаптацией к сетевой версии у вас не должно возникнуть.
   Единственное различие заключается в добавлении окна лога взаимодействия с базой данных.
   В момент прихода сообщения в лог, перевод игры на каждой локальной машине обновляется.
   Так же перевод игры автоматически обновляется при каждом запуске переводчика, но в этом случае ничего на лог не приходит.
   "Время жизни лога" начинается при запуске программы и заканчивается при её закрытии. Глобальной истории не ведётся.

   Так как разработкой этого софта я занимаюсь в одиночку, то момент совместной работы недостаточно ещё проработан, а потому требует бета-тестирования с реальной командой переводчиков.

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



RSV2
08/11/2022