Vladya

Ответы на вопросы и общая информация не в формате “вопрос-ответ”.


Общая информация.

  1. Что это за проект такой?

    • Translator3000 - автоматический переводчик игр (новелл), сделанных на движке Ren’Py, с лёгкой установкой и удобным интерфейсом.

    • Хотите почитать новеллу, а у неё нет перевода на Ваш язык?
      • Всё что Вам нужно - это скопировать файл Translator3000.rpa в папку с игрой.
        • Подробнее о установке здесь.
    • Более подробная информация о принципах работы и особенностях переводчика предоставлена в дальнейших разделах документации.
  2. Ссылки.

    1. Discord сообщество.

      • Тут можно найти ссылку на последнюю актуальную версию, пообщаться с другими пользователями переводчика и поискать ответ на свой вопрос в соответствующем канале.
    2. Boosty.

      • Тут можно поддержать проект и скачать последнюю актуальную версию переводчика.
  3. О версиях.

    • Существует две версии переводчика:

      1. Ознакомительная версия.

        • Скачать можно здесь.
        • Доступна для загрузки всем без исключения.
        • Версия с ограниченным функционалом, для ознакомления с переводчиком.
      2. Основная версия.

        • Подписаться и скачать можно на Boosty.

        • Распространяется по принципу подписной модели.

        • Версия с полным функционалом, периодическими обновлениями и исправлениями.

        • Важно:

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

    • Вот Вы подписались на Boosty, скачали Translator3000.rpa и не знаете что с ним делать. Сейчас объясню.
    1. Копируем файл в папку game в директории игры, для которой нужен перевод.
    2. Запускаем игру.
    3. В левом верхнем углу появится окно графического интерфейса переводчика.
    4. Наслаждаемся игрой.
  5. О режимах работы.

    • Переводчик может работать в трёх переключаемых режимах:

      1. Перевод в реальном времени.

        • Перевод происходит в момент когда игра передаёт строку на вывод.
        • Если строка имеется в базе данных переводов, кешированный перевод выводится сразу.
        • Если строки нет в базе данных переводов (ни разу не выводилась и не было прескана), произойдёт обращение к сервису перевода.
          • При обращении будет неизбежное “подвисание”, т.к. выполняется сетевой запрос.
      2. Перевод только из базы данных.

        • Похож на предыдущий режим, но с одним важным изменением:
          • Если строки нет в базе данных переводов, она не будет переводиться, а выведется оригинальный текст.
        • Режим очень полезен в новеллах-песочницах, где много постоянно обновляемых данных.
          • При активации режима, c выполненным пресканом, постоянный текст (диалоги и пр.) будет переведён, а динамические данные (дата, время в игре, что либо ещё) будут выведены в неизменном виде.
      3. Предварительное сканирование (т.н. прескан).

        • Предварительный перевод всех строк в игре и составление базы данных перевода, для нейтрализации “зависаний” в момент переключения строк.
        • При активации переводчик собирает все строки в игре, группирует и последовательно переводит.
        • Если в игре присутствуют динамические данные (имя игрока и пр.), их лучше ввести до запуска предварительного сканирования.
          • Для корректного перевода строк где используется подстановка динамических значений.
        • Если новелла большая, процесс может занять продолжительное время.
    • Наилучший (оптимальный для комфортного чтения) вариант использования следующий:

      1. Запустить новеллу.
      2. Дойти до места где игра запрашивает ввод имени/иных данных (если такое есть).
        • Если ввода данных нет, то просто запустить игру в любом месте.
      3. Ввести нужные данные (если требуется).
      4. Запустить переводчик в режиме предварительного сканирования соответствующим пунктом в графическом интерфейсе.
      5. Дождаться завершения.
        • В зависимости от размера новеллы, прескан может занять длительное время.
        • Если новелла очень большая, имеет смысл оставить игру переводиться и заняться чем либо иным до завершения перевода.
      6. Переключиться на режим перевода “только из базы данных”.
      7. Скрыть графический интерфейс переводчика и наслаждаться новеллой.
  6. О базе данных.

    • Любой текст, переведённый предварительным сканированием, либо в реальном времени, сохраняется в базу данных на устройстве пользователя.

    • Глобальная БД.

      • При первом запуске переводчика, создаётся общая (глобальная) база данных, которая хранит в себе переводы всех новелл, которые когда либо были переведены.
    • Локальная БД.

      • Помимо глобальной, для каждой новеллы создаётся своя (локальная) БД.
    • Импорт БД.

      • Если кто либо уже прошёл (либо перевёл пресканом) конкретную новеллу, он может поделиться своей БД (локальной, или глобальной).
      • Чтобы использовать перевод от другого человека, достаточно скопировать его базу данных в папку imported translations.
      • После запуска, игра импортирует перевод в локальную БД конкретной игры и глобальную БД.
      • После успешного импорта импортируемый файл удалится.
      • Важно:
        • Как было указано ранее, перевод составляется с подстановкой введённых данных, так что, если составитель базы ввёл иные данные, то строки, содержащие эти данные, потребуется перевести под новый ввод.
      • Готовые БД можно найти в Discord сообществе.
    • Форматы БД.

      • Несмотря на то, что форматы БД менялись в процессе развития переводчика, импорт старых форматов работает.
    • О бэкапах.

      • Если Ваша База Данных по какой либо причине повредилась, переводчик всегда создаёт рядом с файлами БД резервную копию предыдущей версии в формате .oldBackup.
      • Для того чтобы восстановить БД, удалите оригинальный файл БД и переименуйте файл резервной копии, удалив у него окончание .oldBackup.
        • В Вашей системе может быть отключено отображение расширений имён файлов. В этом случае, включите эту возможность, как это делается в Вашей операционной системе.
  7. О браузерной логике.

    • Некоторые сервисы используют для перевода действия в реальном браузере.
    • Для автоматизации используется связка selenium/chromedriver.

    • Для корректной работы в ОС должен быть установлен браузер Google Chrome.

      • Поддерживаются версии новее 70.
        • Лучше, конечно, использовать последнюю.
    • Так как данная логика полностью имитирует действия пользователя (открытие страницы, нажатие кнопок, ввод текста), перевод занимает ощутимое время. Рекомендуется использовать только с предварительным сканированием.

    • По умолчанию графическая часть браузера отключена.

  8. Где что лежит и какие файлы создаёт/использует переводчик.

    • Будут использоваться следующие условные обозначения:

      • %UserName%:
        • Имя текущего пользователя.
      • %userprofile%:
        • Путь до домашней папки пользователя. Может быть разный на разных системах.
          • По умолчанию в Windows:
            • С:\Users\%UserName%
          • По умолчанию в UNIX:
            • /home/%UserName%
          • По умолчанию в Mac:
            • /Users/%UserName%
      • %ServiceName%:
        • Название какого либо сервиса перевода.
      • %NovelDir%:
        • Директория игры.
          • Та в которой папки game, renpy и исполняемый файл запуска.
    • Пути будут писаться в формате Windows (с обратными слешами), при необходимости смените на прямые.

    • Приведён полный список рабочих путей. В зависимости от использования переводчика, некоторых из них может не быть.

    1. %userprofile%\vladya’s projects database:

      • Основная папка для хранения данных.
    2. %userprofile%\vladya’s projects database\selenium:

      • Основная папка модуля selenium, отвечающего за браузерную логику.
    3. %userprofile%\vladya’s projects database\selenium\chromedriver:

      • Папка с исполняемыми файлами cromedriver, отвечающего за автоматизацию действий в браузере.
      • Содержит папки с номерами версий браузера, которые содержат папки с номерами версий chromedriver, которые содержат исполняемый файл chromedriver.
    4. %userprofile%\vladya’s projects database\translator3000:

      • Основная папка переводчика.
    5. %userprofile%\vladya’s projects database\translator3000\%ServiceName%:

      • Папка с глобальной (для всех новелл) базой данных переводов конкретного сервиса.
      • Содержит папки с номерами версий базы данных, которые содержат файл базы данных translations (формат может быть различный).
    6. %userprofile%\vladya’s projects database\translator3000\Ren’Py MuitiGame Data.pickle:

      • Файл, хранящий данные переноса между играми и использованные шрифты.
    7. %NovelDir%\_translator3000_setting.json:

    8. %NovelDir%\local translations\%ServiceName%:

      • Папка с локальной (для конкретной новеллы) базой данных переводов конкретного сервиса.
      • Содержит папки с номерами версий базы данных, которые содержат файл базы данных translations (формат может быть различный).
      • Так же содержит папку imported translations для импорта готовых переводов.
    9. %NovelDir%\local translations\%ServiceName%\imported translations:

      • Папка для импорта готовых переводов.
      • Инструкция по импорту переводов описана выше.
    10. %NovelDir%\_translator3000Data:

      • Папка для рабочих файлов, для конкретной новеллы.
    11. %NovelDir%\_translator3000Data\debug:

      • Файлы для отладки работы переводчика.
    12. %NovelDir%\_translator3000Data\debug\lastLog.log:

      • Лог файл, описывающий действия переводчика.
      • Если включён параметр _debug_mode, в файл будет записываться полная информация, в противном случае только базовые данные и информация о ошибках.
    13. %NovelDir%\_translator3000Data\temp:

      • Временные файлы переводчика.
    14. %NovelDir%\_translator3000Data\temp\cacert.pem:

      • Файл сертификата для модуля requests.
      • Создаётся только в старых версиях Ren’Py.
    15. %NovelDir%\game\Translator3000.rpa:

      • Сам переводчик.
    16. %NovelDir%\game\translator3000_ingame_files:

      • Папка с файлами переводчика, используемыми в новелле.
    17. %NovelDir%\game\translator3000_ingame_files\multigame_fonts:

      • Папка куда будут копироваться шрифты из других новелл, при их выборе.
    18. %NovelDir%\game\translator3000_ingame_files\pc_fonts:

      • Папка куда будут копироваться шрифты при выборе их в графическом интерфейсе из файлов компьютера.
  9. О багах и ошибках.

    • Сообщения о ошибках принимаются только по последней актуальной версии.
    • Что делать при возникновении ошибок:

      1. Проверить что у Вас последняя версия переводчика.

      2. Вопроизвести ситуацию на другой новелле и убедиться, что ошибка повторяется.
      3. Если ошибка возникает во время предварительного сканирования, нажать в графическом интерфейсе “Бросить трейсбек”, для составления отчёта о ошибке.

      4. Подготовить следующие данные, необходимые разработчику для отладки:
        1. Лог файл:
        2. Информацию о настройках.
          • Режим работы переводчика, сервис и т.д.
        3. Файл traceback.txt лежащий в директории игры.
          • Если он имеется.
        4. Информацию о том, какие действия привели к ошибке.

        5. Если ошибка возникает с сервисом перевода с браузерной логикой, установить параметр “default” для пункта настройки “seleniumStartMode” и добавить в сообщение о ошибке информацию, повлияло ли это на работу.

        6. Любые дополнительные данные, которые сочтёте нужными в контексте данного вопроса.
      5. Ознакомиться с этим разделом документации и, если на Ваш вопрос ещё не отвечали, задать его в канале вопросов.
    • Описание некоторых ошибок:

      • Тип ошибки будет написан в трейсбеке, перед описанием ошибки, либо в конце, после текста перевода.
      1. ShadowBan:
        • Ошибка “теневого” бана. Может возникать у сервисов, которые распознали автоматизацию.
        • Возникает в случае долгого и последовательного перевода крайне больших новелл.

Вопрос - ответ.

  1. У меня “квадратики” вместо текста.

    • Смените шрифт на другой, поддерживающий нужный Вам язык.
  2. Игра <вставить имя игры> не переводится/не запускается/работает некорректно.

    • Как сделана та или иная игра зависит от разработчика. В зависимости от реализации, могут быть конфликты в отдельных играх. Смиритесь. Здесь я ничего не могу поделать. Совместимость со всеми играми во вселенной реализовать, к сожалению, не получится.
  3. Как вызвать графический интерфейс переводчика?

    • Комбинация (одновременное нажатие) клавиш Alt+~ (тильда).

      1. Почему такой странный выбор?

        • Из за вопроса совместимости. Я стараюсь делать переводчик наиболее универсальным, а такую комбинацию вряд ли где будут использовать.
        1. Можно поменять?

          • Может быть, когда нибудь… На данный момент, насколько я знаю, ни разу не было конфликтов комбинаций с играми, а значит выбор верный.
  4. Переводчик удаляет теги из оригинальной игры (курсив, жирный текст, цвет и прочее).

    • Есть такое. А ещё удаляет текстовые теги вида {w}/{nw} и подобные.
    • Сделано это потому что теги нельзя экранировать при обращении к сервису перевода.
      • На “{color=…}” сервис вполне может вернуть “{цвет=…}”, что, разумеется, приведёт к ошибке.
      • Можно, конечно, переводить частями (отрывок до тега, отрывок после него и т.д.), но в этом случае сильно пострадает качество самого перевода, т.к. слова переведутся без учёта всего контекста и будут не связаны между собой.
      • Я не вижу способа “безболезненно” сохранить теги, поэтому принял решение убрать их вообще.
  5. А как запустить переводчик на ОС Android?

    • Без понятия. Переводчик я пишу под ПК версию. Под телефоны никогда не прогал и не умею этого делать.
    • Насколько я слышал, вроде бы существуют какие-то порты от сторонних разработчиков, но они не имеют никакого отношения к проекту. Пользуйтесь ими только на свой страх и риск.
  6. Я не нашёл ответа на свой вопрос в этой документации.

    • Посмотрите канал вопросов в Discord сообществе переводчика. Скорее всего, там уже отвечали на подобный вопрос.

    • Если ответа нет, то задайте свой вопрос там.

      • Именно на канале вопросов.
        • Не в личных сообщениях автору переводчика.
        • Не в личных сообщениях модератору.
      • Задавая свой вопрос в личных сообщениях, Вы лишаете других возможности увидеть ответ, в случае возникновения у них подобных проблем и, помимо прочего, вынуждаете администратора/модератора несколько раз повторять одно и то же.
        • Что совершенно не весело.
        • Вот вообще ни разу.
        • Прям вообще.
      • Если Вы сообщаете о ошибке, не забудьте приложить данные, необходимые для устранения ошибки.
  7. Я всё ещё что-то не понял в этой документации. Можно, всё таки, написать Вам в личные сообщения/в мессенджер/на почту?

    • Нет.
  8. Но у меня…

    • Нет.
  9. Но…

    • Нет.