Ответы на вопросы и общая информация не в формате “вопрос-ответ”.
Translator3000 — автоматический переводчик игр (новелл), сделанных на движке Ren’Py, с лёгкой установкой и удобным интерфейсом.
- Всё что Вам нужно — это скопировать файл Translator3000.rpa в папку с игрой.
- Подробнее о установке здесь.
Ссылки.
Discord сообщество.
- Тут можно найти ссылку на последнюю актуальную версию, пообщаться с другими пользователями переводчика и поискать ответ на свой вопрос в соответствующем канале.
Boosty.
- Тут можно поддержать проект и скачать последнюю актуальную версию переводчика.
О версиях.
Существует две версии переводчика:
Ознакомительная версия.
- Скачать можно здесь.
- Доступна для загрузки всем без исключения.
- Версия с ограниченным функционалом, для ознакомления с переводчиком.
Основная версия.
Подписаться и скачать можно на Boosty.
Распространяется по принципу подписной модели.
Версия с полным функционалом, периодическими обновлениями и исправлениями.
Важно:
- Только последняя версия является поддерживаемой.
- Так же, баг репорты принимаются только по последней актуальной версии.
- т.к. над переводчиком постоянно ведётся работа, ошибка, возникшая в более ранних версиях, может уже отсутствовать в более поздних. .
С чего начать?
- Вот Вы подписались на Boosty, скачали Translator3000.rpa и не знаете что с ним делать. Сейчас объясню.
- Копируем файл в папку game в директории игры, для которой нужен перевод.
- Запускаем игру.
- В левом верхнем углу появится окно графического интерфейса переводчика.
- Настраиваем в нём нужные параметры.
- Так же настройку можно провести через настроечный файл.
- Подробнее на странице описания параметров.
О режимах работы.
Переводчик может работать в трёх переключаемых режимах:
Перевод в реальном времени.
- Перевод происходит в момент когда игра передаёт строку на вывод.
- Если строка имеется в базе данных переводов, кешированный перевод выводится сразу.
- Если строки нет в базе данных переводов (ни разу не выводилась и не было прескана), произойдёт обращение к сервису перевода.
- При обращении будет неизбежное “подвисание”, т.к. выполняется сетевой запрос.
Перевод только из базы данных.
- Похож на предыдущий режим, но с одним важным изменением:
- Если строки нет в базе данных переводов, она не будет переводиться, а выведется оригинальный текст.
- При активации режима, c выполненным пресканом, постоянный текст (диалоги и пр.) будет переведён, а динамические данные (дата, время в игре, что либо ещё) будут выведены в неизменном виде.
Предварительное сканирование (т.н. прескан).
- Предварительный перевод всех строк в игре и составление базы данных перевода, для нейтрализации “зависаний” в момент переключения строк.
- При активации переводчик собирает все строки в игре, группирует и последовательно переводит.
- Если в игре присутствуют динамические данные (имя игрока и пр.), их лучше ввести до запуска предварительного сканирования.
- Для корректного перевода строк где используется подстановка динамических значений.
Наилучший (оптимальный для комфортного чтения) вариант использования следующий:
- Запустить новеллу.
- Дойти до места где игра запрашивает ввод имени/иных данных (если такое есть).
- Если ввода данных нет, то просто запустить игру в любом месте.
- Ввести нужные данные (если требуется).
- Запустить переводчик в режиме предварительного сканирования соответствующим пунктом в графическом интерфейсе.
- Дождаться завершения.
- В зависимости от размера новеллы, прескан может занять длительное время.
- Если новелла очень большая, имеет смысл оставить игру переводиться и заняться чем либо иным до завершения перевода.
- Переключиться на режим перевода “только из базы данных”.
- Скрыть графический интерфейс переводчика и наслаждаться новеллой.
О базе данных.
Любой текст, переведённый предварительным сканированием, либо в реальном времени, сохраняется в базу данных на устройстве пользователя.
Глобальная БД.
- При первом запуске переводчика, создаётся общая (глобальная) база данных, которая хранит в себе переводы всех новелл, которые когда либо были переведены.
Локальная БД.
- Помимо глобальной, для каждой новеллы создаётся своя (локальная) БД.
Импорт БД.
- Если кто либо уже прошёл (либо перевёл пресканом) конкретную новеллу, он может поделиться своей БД (локальной, или глобальной).
- Чтобы использовать перевод от другого человека, достаточно скопировать его базу данных в папку imported translations.
- После запуска, игра импортирует перевод в локальную БД конкретной игры и глобальную БД.
- После успешного импорта импортируемый файл удалится.
- Важно:
- Как было указано ранее, перевод составляется с подстановкой введённых данных, так что, если составитель базы ввёл иные данные, то строки, содержащие эти данные, потребуется перевести под новый ввод.
Форматы БД.
- Несмотря на то, что форматы БД менялись в процессе развития переводчика, импорт старых форматов работает.
О бэкапах.
- Если Ваша База Данных по какой либо причине повредилась, переводчик всегда создаёт рядом с файлами БД резервную копию предыдущей версии в формате .oldBackup.
- Для того чтобы восстановить БД, удалите оригинальный файл БД и переименуйте файл резервной копии, удалив у него окончание .oldBackup.
- В Вашей системе может быть отключено отображение расширений имён файлов. В этом случае, включите эту возможность, как это делается в Вашей операционной системе.
О браузерной логике.
-
Некоторые сервисы используют для перевода действия в реальном браузере.
Для автоматизации используется связка selenium/chromedriver.
Для корректной работы в ОС должен быть установлен браузер Google Chrome.
- Поддерживаются версии новее 70.
- Лучше, конечно, использовать последнюю.
Так как данная логика полностью имитирует действия пользователя (открытие страницы, нажатие кнопок, ввод текста), перевод занимает ощутимое время. Рекомендуется использовать только с предварительным сканированием.
По умолчанию графическая часть браузера отключена.
- При желании, её можно активировать. Подробнее в документации настроечного файла
Где что лежит и какие файлы создаёт/использует переводчик.
Будут использоваться следующие условные обозначения:
- %UserName%:
- Имя текущего пользователя.
- Путь до домашней папки пользователя. Может быть разный на разных системах.
- По умолчанию в Windows:
- С:\Users\%UserName%
- /home/%UserName%
- /Users/%UserName%
- Название какого либо сервиса перевода.
- Директория игры.
- Та в которой папки game, renpy и исполняемый файл запуска.
Пути будут писаться в формате Windows (с обратными слешами), при необходимости смените на прямые.
Приведён полный список рабочих путей. В зависимости от использования переводчика, некоторых из них может не быть.
%userprofile%\vladya’s projects database:
- Основная папка для хранения данных.
%userprofile%\vladya’s projects database\selenium:
- Основная папка модуля selenium, отвечающего за браузерную логику.
%userprofile%\vladya’s projects database\selenium\chromedriver:
- Папка с исполняемыми файлами cromedriver, отвечающего за автоматизацию действий в браузере.
- Содержит папки с номерами версий браузера, которые содержат папки с номерами версий chromedriver, которые содержат исполняемый файл chromedriver.
%userprofile%\vladya’s projects database\translator3000:
- Основная папка переводчика.
%userprofile%\vladya’s projects database\translator3000\%ServiceName%:
- Папка с глобальной (для всех новелл) базой данных переводов конкретного сервиса.
- Содержит папки с номерами версий базы данных, которые содержат файл базы данных translations (формат может быть различный).
%userprofile%\vladya’s projects database\translator3000\Ren’Py MuitiGame Data.pickle:
- Файл, хранящий данные переноса между играми и использованные шрифты.
%NovelDir%\_translator3000_setting.json:
- Файл с настройками переводчика для конкретной новеллы.
%NovelDir%\local translations\%ServiceName%:
- Папка с локальной (для конкретной новеллы) базой данных переводов конкретного сервиса.
- Содержит папки с номерами версий базы данных, которые содержат файл базы данных translations (формат может быть различный).
- Так же содержит папку imported translations для импорта готовых переводов.
%NovelDir%\local translations\%ServiceName%\imported translations:
- Папка для импорта готовых переводов.
- Инструкция по импорту переводов описана выше.
%NovelDir%\_translator3000Data:
- Папка для рабочих файлов, для конкретной новеллы.
%NovelDir%\_translator3000Data\debug:
- Файлы для отладки работы переводчика.
%NovelDir%\_translator3000Data\debug\lastLog.log:
- Лог файл, описывающий действия переводчика.
- Если включён параметр _debug_mode, в файл будет записываться полная информация, в противном случае только базовые данные и информация о ошибках.
%NovelDir%\_translator3000Data\temp:
- Временные файлы переводчика.
%NovelDir%\_translator3000Data\temp\cacert.pem:
- Файл сертификата для модуля requests.
- Создаётся только в старых версиях Ren’Py.
- В версиях Ren’Py, новее 7.4.0, модуль requestsявляется частью движка.
%NovelDir%\game\Translator3000.rpa:
- Сам переводчик.
%NovelDir%\game\translator3000_ingame_files:
- Папка с файлами переводчика, используемыми в новелле.
%NovelDir%\game\translator3000_ingame_files\multigame_fonts:
- Папка куда будут копироваться шрифты из других новелл, при их выборе.
%NovelDir%\game\translator3000_ingame_files\pc_fonts:
- Папка куда будут копироваться шрифты при выборе их в графическом интерфейсе из файлов компьютера.
О багах и ошибках.
- Сообщения о ошибках принимаются только по последней актуальной версии.
Что делать при возникновении ошибок:
- Если ошибка возникает в единственной новелле, читать соответствующий пункт FAQ.
Если ошибка возникает во время предварительного сканирования, нажать в графическом интерфейсе “Бросить трейсбек”, для составления отчёта о ошибке.
Подготовить следующие данные, необходимые разработчику для отладки:
- Лог файл:
- Как правильно записать лог файл:
- Активируйте режим отладки.
- Дойдите до момента возникновения ошибки.
- Читать предыдущий раздел документации, с описанием путей.
- Режим работы переводчика, сервис и т.д.
- Если он имеется.
Информацию о том, какие действия привели к ошибке.
Если ошибка возникает с сервисом перевода с браузерной логикой, установить параметр “default” для пункта настройки “seleniumStartMode” и добавить в сообщение о ошибке информацию, повлияло ли это на работу.
Описание некоторых ошибок:
- Тип ошибки будет написан в трейсбеке, перед описанием ошибки, либо в конце, после текста перевода.
ShadowBan:
- Ошибка “теневого” бана. Может возникать у сервисов, которые распознали автоматизацию.
- Возникает в случае долгого и последовательного перевода крайне больших новелл.
Вопрос — ответ.
У меня “квадратики” вместо текста.
-
Смените шрифт на другой, поддерживающий нужный Вам язык.
- По запросу “шрифты скачать” в любом поисковике.
- Как сделана та или иная игра зависит от разработчика. В зависимости от реализации, могут быть конфликты в отдельных играх. Смиритесь. Здесь я ничего не могу поделать. Совместимость со всеми играми во вселенной реализовать, к сожалению, не получится.
- Из за вопроса совместимости. Я стараюсь делать переводчик наиболее универсальным, а такую комбинацию вряд ли где будут использовать.
- Может быть, когда нибудь… На данный момент, насколько я знаю, ни разу не было конфликтов комбинаций с играми, а значит выбор верный.
- Есть такое. А ещё удаляет текстовые теги вида / и подобные.
- Сделано это потому что теги нельзя экранировать при обращении к сервису перевода.
- На “
” сервис вполне может вернуть “<цвет=…>”, что, разумеется, приведёт к ошибке. - Можно, конечно, переводить частями (отрывок до тега, отрывок после него и т.д.), но в этом случае сильно пострадает качество самого перевода, т.к. слова переведутся без учёта всего контекста и будут не связаны между собой.
- Я не вижу способа “безболезненно” сохранить теги, поэтому принял решение убрать их вообще.
А как запустить переводчик на ОС Android?
- Без понятия. Переводчик я пишу под ПК версию. Под телефоны никогда не прогал и не умею этого делать.
- Насколько я слышал, вроде бы существуют какие-то порты от сторонних разработчиков, но они не имеют никакого отношения к проекту. Пользуйтесь ими только на свой страх и риск.
Я не нашёл ответа на свой вопрос в этой документации.
Посмотрите канал вопросов в Discord сообществе переводчика. Скорее всего, там уже отвечали на подобный вопрос.
Игры с переводчиком больше не запускаются! #32
Играл в игру, все игры работали с переводчиком нормально. Потом произошла принудительная перезагрузка ПК( с кнопки) и после нее ни одна игра не работает, если в ней установлен переводчик. Если удалить его -все норм.
Ошибка всегда одинаковая на любой игре.. Вылетает при запуске. Может гугл переводчик забанил? А то у меня скорость перевода стояла 500I’m sorry, but an uncaught exception occurred.
While running game code:
File «game/Translator3000Data/scripts/general.rpy», line 608, in
File «game/Translator3000Data/scripts/general.rpy», line 101, in turn_on
File «game/Translator3000Data/scripts/general.rpy», line 92, in init
ValueError: No JSON object could be decodedFull traceback:
File «renpy/bootstrap.py», line 326, in bootstrap
renpy.main.main()
File «renpy/main.py», line 515, in main
renpy.game.context().run(node)
File «game/Translator3000Scripts/general.rpyc», line 2, in script
��ѓ�C/0�a��Y-‘f��55�NJ�3���q����_��V�^
File «game/Translator3000Scripts/general.rpyc», line 2, in script
��ѓ�C/0�a��Y-‘f��55�NJ�3���q����_��V�^
File «renpy/ast.py», line 922, in execute
renpy.python.py_exec_bytecode(self.code.bytecode, self.hide, store=self.store)
File «renpy/python.py», line 2218, in py_exec_bytecode
exec(bytecode, globals, locals)
File «game/Translator3000Data/scripts/general.rpy», line 608, in
File «game/Translator3000Data/scripts/general.rpy», line 101, in turn_on
File «game/Translator3000Data/scripts/general.rpy», line 92, in init
File «_translator3000/translator.py», line 19, in init
File «_translator3000/_google/translator.py», line 42, in init
File «_translator3000/translator_abstract.py», line 32, in init
File «/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/json/init.py», line 291, in load
File «/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/json/init.py», line 339, in loads
File «/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/json/decoder.py», line 364, in decode
File «/home/tom/ab/renpy-build/tmp/install.linux-x86_64/lib/python2.7/json/decoder.py», line 382, in raw_decode
ValueError: No JSON object could be decodedhttps://amdy.su/wp-admin/options-general.php?page=ad-inserter.php#tab-8Windows-10-10.0.19041
Ren’Py 7.4.2.1292
The Wife Trainer Files 0.7n
Fri Sep 17 05:09:08 2021Как перевести любую визуальную новеллу на ваш язык? Автопереводчик Ren'Py игр!
Привет! Есть ли у тебя игры, а точнее визуальные новеллы, которые ты бы хотел пройти, но не можешь, потому что они только на английском/китайском/японском языке? Если это так, то эта статья для тебя. Тебе не придется ждать локализацию (если она вообще будет) и не нужно пользоваться переводчиком вручную. Я расскажу об автопереводчике Ren’Py игр (движок, на котором написаны почти все визуальные новеллы), он автоматически переведет весь текст в игре. Далее пару слов о проге и прикреплю гайд, как ей пользоваться.
Сразу хочу сказать, так как это программа, перевод не будет идеальным. Увы, если вас смущает плохо переведенный контекст, например переводчик иногда не может уловить пол персонажа, то проходите мимо. Если же вам просто хочется понимать, что происходит в VN (визуальная новелла), тогда велкам.
Речь идет об автопереводчике Translator3000 от автора: NyashniyVladya
Для начала расскажу про бесплатную, ознакомительную версию. Translator3000 v. 2.10.8., можно скачать на GitHub разраба. К сожалению, новые игры она вряд ли переведет, так как работает со старыми версиями игрового движка. Если у вас завалялся какой-то старый тайтл, можете смело поэкспериментировать.
Давайте перейдем к последней версии программы. Так как автору наверняка хочется кушать, придется отдать свои кровные, но оно того стоит. Купить ласт версию (на момент написания поста, это v. 3.6.20.) можно на Boosty автора. Цена: 350 рублей.
Автопереводчик не заброшен и постоянно улучшается. В комментариях вам всегда помогут решить проблему, если такая возникнет. Сам прохожу некоторые игры с ней, когда не могу найти перевод или просто лень его ждать.
Автором проги я НЕ являюсь. Моя задача просто поддержать разработчика и помочь людям пройти игру, которую они откладывают в долгий ящик, из-за отсутствия локализации.
Для начала, вам нужно перетащить файл Translator3000.rpa в папку game, нужной вам игры.
Далее, запускаем игру. Теперь начинаем игру, должно появиться вот такое окошко (слева, в верхнем углу).
ВАЖНО! Лучше сразу дойдите до момента, когда нужно ввести игровые данные вручную (например имя персонажа). Как только все это будет введено, можно смело начать перевод.
В главном меню программа не откроется. Сочетанием клавиш Alt +
можно закрыть/открыть окно переводчика. Убедитесь, что у вас английская раскладка.
казалось бы трудно, но вроде все просто
Копируем Translator3000.rpa в папку game в директории игры, для которой нужен перевод.
Запускаем игру и, после запуска, закрываем.
Открываем файл _translator3000_setting.json , появившийся в директории игры.
- В директории самой игры. Не в папке «game» .
Меняем параметры на необходимые, заменяя значение null :
- Важно: Проверяем наличие кавычек у текстовых значений, при вводе данных! У null их не было, для «en» они нужны.
- Параметр gameLanguage (текстовое значение):
- Язык самой игры, С КОТОРОГО нужен перевод.
- Параметр directionOfTranslation (текстовое значение):
- Язык, НА КОТОРЫЙ нужен перевод.
- Параметр prescan (true/false):
- Нужен ли предварительный перевод всех строк.
- Может занять крайне продолжительное время, в зависимости от количества строк.
- Лучший вариант использования этой опции: запустить игру на любой строке и ждать окончания перевода.
- Нужен ли предварительный перевод всех строк.
- Параметр _debug_mode (true/false):
- Режим отладки.
- Если false (умолчание) — трейсы будут подавляться.
- Если true — активируется логирование во внешний файл и бросаются трейсы.
- Режим отладки.
- Параметр translationService (текстовое значение):
- Сервис перевода.
- На данный момент может быть только «google» . Заготовка на будущее.
- Сервис перевода.
- Параметр originalInHistory (true/false):
- Оставлять ли оригинал в «истории» (screen history).
- Если true — текст в истории будет не переведён.
- Если false (умолчание) — перевод будет как в диалоговом окне, так и в истории.
- Оставлять ли оригинал в «истории» (screen history).
- Параметр requestsFrequency (положительное действительное число):
- Максимальное количество обращений к сервису перевода в минуту.
- Максимальное количество обращений к сервису перевода в минуту.
Для имитации человеческого фактора, реальное количество обращений будет рандомизировано в диапазоне:
Значение по умолчанию равно 100.
Использовать эту опцию только на свой страх и риск, т.к. возможен бан со стороны сервиса, при слишком большом количестве последовательных обращений и подозрении на факт автоматизации запросов.
- Опции, которые будут применены к переведённому тексту.
- Параметр font (текстовое значение):
- Шрифт, с которым должен выводиться текст.
- Путь к файлу шрифта задаётся относительно папки game в директории игры.
- Та, куда ранее был скопирован файл Translator3000.rpa .
- Параметр size (положительное целое число или выражение в формате Ren’Py):
- Размер выводимого текста.
- Может быть как числом, так и выражением в формате Ren’Py.
-
.
- На “
Где я могу найти шрифты?
Игра <вставить имя игры> не переводится/не запускается/работает некорректно.
Как вызвать графический интерфейс переводчика?
Комбинация (одновременное нажатие) клавиш Alt+
Почему такой странный выбор?
Можно поменять?
Переводчик удаляет теги из оригинальной игры (курсив, жирный текст, цвет и прочее).
- Параметр bold (true/false):
- Сделать текст жирным .
- Параметр italic (true/false):
- Сделать текст курсивным.
- Как правильно записать лог файл:
Так же, вместо кода языка, можно указать наименование на английском языке:
- «russian» для русского языка.
- «english» для английского и т. д.
Запускаем игру и пользуемся.
(Click here to open)
Copy Translator3000.rpa to the game folder in the directory of the game you want to translate.
Start the game and close it, after starting.
Open the file _translator3000_setting.json that appeared in the game directory.
- In the directory of the game itself. Not in the «game» folder.
Change the parameters to the required ones, replacing the value null :
- Important: Check for quotes, when entering text values! null did not have them, but for «en» they are needed.
- Parameter gameLanguage (text value):
- The language of the game itself (the language FROM WHICH a translation is needed).
- Parameter directionOfTranslation (text value):
- The language of translation (the language INTO WHICH a translation is needed).
- Parameter prescan (true/false):
- Preliminary translation of the whole text.
- It can take an extremely long time (depends on the amount of text).
- The best way to use this option is to start the game on any line and wait for the translation to finish.
- Preliminary translation of the whole text.
- Parameter _debug_mode (true/false):
- Well. Everything is said in the title. This is a debug mode.
- If false (default) — errors will be ignored.
- If true — logging to an external file is activated and exceptions are raised when errors occur.
- Well. Everything is said in the title. This is a debug mode.
- Parameter translationService (text value):
- Again, everything is clear from the title. This is a translation service.
- At the moment, there can only be «google» . Preparation for the future.
- Again, everything is clear from the title. This is a translation service.
- Parameter originalInHistory (true/false):
- Leave untranslated text in the «history» (screen history).
- If true — the text in the history will not be translated.
- If false (default) — translation will be both in the dialog box and in the history.
- Leave untranslated text in the «history» (screen history).
- Parameter requestsFrequency (positive real number):
- Maximum number of requests to the translation service per minute.
- Maximum number of requests to the translation service per minute.
To simulate the human factor, the real number of requests will be randomized in the range:
The default value is 100.
Use this option only at your own risk, because it is possible to block by the service, if the number of consecutive requests is too large and it is suspected of automating requests.
- Options that will apply to the translated text.
- Parameter font (text value):
- The font used when displaying text.
- The path to the font file is set relative to the game folder in the game directory.
- The folder where the Translator3000.rpa file was copied earlier.
- Parameter size (positive integer or expression in Ren’Py format):
- The size of the displayed text.
- Can be either an integer or an expression in Ren’Py format.
-
.
- Parameter bold (true/false):
- Make the text bold .
- Parameter italic (true/false):
- Make the text italic.
- «russian» for the Russian language.
- «english» for the English language etc.
- P.S.:
I do not speak English very well, so I wrote this manual using online translators.
If a native speaker decides to help me correct translation errors, I would be very grateful.
Contact details are given at the end of the article.
Also, instead of the language code, you can specify a common name in English:
Start the game and use it.
If there are native speakers of other languages who are willing to help translate this instruction into their language, I will be happy to add their translations. Thank you!
My contact information:
Сохранные данные перевода из игры никак не связан с конкретной игрой. Логи хранятся по директории %userprofile%\vladya’s projects database\translator3000\Google\1.1
Если вы переведете X- фразу в одной игре Ren’Py, она будет загружена при запуске другой.
- По умолчанию в Windows: