Рейтинг темы:
  • Голосов: 0 - Средняя оценка: 0. Если голосов меньше 5 оценка не показывается.
  • 1
  • 2
  • 3
  • 4
  • 5
Translator++ (Dreamsavior) программа для машинного перевода игр на движке RPG Maker, Wolf.
#1
Translator++

Разработчик: Dreamsavior

Сайт: http://dreamsavior.net

Видео: Translator++ Overview  Translating RPG Maker Game Перевод игры на Wolf RPG Editor


Программа для машинного перевода игр на движках RPG Maker XP, VX, VX Ace, MV и Wolf RPG Editor. Переводит текст посредством Google, Bing, Atlas, Mecab. Может работать как с зашифрованными архивами игр, такие как .wolf,.rpgmvp, так и с простыми файлами. У гугла два варианта перевода - по словарям и нейронный машинный перевод (nmt). Как правило NMT модель больше подходит для сложных и длинных предложений. У программы есть множество не задокументированных особенностей/багов/фиг. Тема для обсуждения проги и ее работы.
Известные особенности:
  • Программа для  работы должна находится на диске С [исправлено/решено]
  • Путь до проги и игры не должен содержать кириллицу и желательно делать его как можно более простым, коротким и без пробелов
  • Учетная запись винды под которой запущена программа не должна содержать пробелов, очень желательно на латинском [частично решено] - если не экспортирует текст из игры попробуйте запустить от имени Администратора
  • Не работает перевод атлас - переименовать atlas(1).exe на atlas.exe в папке 3dparty [исправлено/решено]
  • Не работает перевод Google Cloud и Bing для перевода НЕ с японского на анг. В частности с анг на русский. - Решается правкой некоторых строк кода в фаиле. [исправлено/решено]
  • Следите внимательно за переводом спец символов в Асе играх и формулах. Иногда прога переводит  своеобразно "\" и "/".Например \np[1] иногда становится \ np[1]. Нехватка или лишняя \ может приводить к падению игры в этих местах. Как минимум будет неверное отображение текста(пропадет цвет или же игра покажет просто текст заместо значения переменной)
    "\"and"/" too. Like \np[1] sometimes it become \ np[1]
  • Программа при  машинном переводе заменяет 〚〘〖【《〈{[〔(『[{(「〛〙〗】》〉}]〕)』]})」 на  простые кавычки ", но плохо переваривает, когда во фразе есть две двойные кавычки или не закрытие лишние, будьте внимательны
  • Plugin Command на японском или частично японском в игре переводить не следует - нарушится работоспособность игры.
    Следите за тем чтобы названия фаилов игры когда их запрашивает кастомный скрипт или плагин не переводились автопереводом, или переводить и названия и фаилы игры
  • Названия переменных так же как предыдущий параметр могут быть переведены. Но будьте внимательны, если отдельный нестандартный скрип делает поиск или использует их оригинальные названия на японском
  • Вшитый словарь иногда мешает. Некоторые слова в Common Reference состоят из одного иероглифа. Автор не сделал проверку в составе слова они или отдельно, потому в любом слове или части слова могут попадаться такие не отключаемые автопереводы. Часто это 運 - LUK. [Делайте поиск по тексту LUK и правьте по строчке]

    У программы два варианта нумерации : по месяцам - 1.x.y, где x- месяц y- день.  1.6.17 -  июнь 17го числа. Но всё еще в бете находится и до релизной версии далековато. Фактическая нумерация где-то такая  0.11.12 - от 20 июня
    Patch notes
    Version 1.3.5
    Improvement on TranslatorEngine core class.
    Now your changes on the options will be saved.
    Google Cloud (GCP) translator is added
    Improvement on the Translator pane.
    Some script optimization, cut the loading time by 50% on application start-up and less RAM consumption.

    Version 1.3.6
    Bug fixing on TranslationEngine core class : Unable to do batch translation for Bing & Google Cloud plugin.
    Update Google Cloud plugin to ver 1.1 : fix on error 400 "Too many text segments"
    Feature added : hold shift on file selector for bulk selecting.
    Feature added : invert selection for file selector pane
    This version contains a fix for previous version's bug, along with minor but important feature addition. Now we can do bulk selection on File navigator pane by holding shift.

    1.3.22
    Adding context menu on file selector
    Adding Row properties window
    Adding File properties window
    Adding license. Translator++ is licensed under GNU GPLv3
    Fixing context menu placement on grid.
    Adding Translator++ icon on the taskbar (finally)

    1.4.21
    Adding duplicate column feature
    Replacing some of ROBOCOPY command with custom handcrafted script. This fixed "empty folder" problem, and has better support for non unicoded path.
    Adding more info in file properties
    Adding more info in "About" window
    This update (hopefully) will fix the obnoxious “empty folder” problems caused by ROBOCOPY command compatibility for certain PC settings.

    Version 1.5.23

    Adding support for pre-extracted WOLF RPG game.
    Fixing bug newline is missing when doing autopadding
    Improving some console notification outputs
    Improving batch translation progress. Fixing waiting time overhead. (Basically, each batch translation process will be 5s faster)

    Ver 1.6.17 :

    Overhaul on export and import feature.
    Adding capability to import from CSV, XLSX, ODS, HTML
    Adding capability to export into XLSX, ODS, HTML
    Adding context menu to import/export into left panel.
    Fixing Google Translate public API key.
    Fixing error handling when trying to open non existing file.
    And more.
    The new version of Translator++ has the capability to export and import translation from major spreadsheet formats like Microsoft’s XLS & XLSX, Open Office ODS, not to mention the wide usability CSV and HTML.
    Ah, and also, the problem on google translate has been fixed. So you can now use google & redgoogle plugin again.

    Version 1.6.30

    Added capability to import/export to .tpp (Translator++ Project Package) file. We can continue our work to another PC now.
    BING translation engine is updated. Now can translate into and translate from any language.
    BING translation engine is updated. Now can modify url API.
    Bug fix on Google Cloud Translator, custom url doesn't work when changing URL on options
    Some fix on auto translator feature.
    Fix on Atlas translator that somehow missing the required middleware binary file to interact with Atlas’ dll.
    We finally can transfer our project to other PC by using TPP file.
    TPP file will pack your “trans” file, along with all necessary game file needed to build a working game patch. So when you import your project in another PC by using TPP file, you can compile a game patch from that PC too. You don’t required to start a new project, and the original full game data is also not required.

    You can find the menu from Export file.

    I think the TPP file conclude all the “must have” feature in my to-do list. Now I can focus on the “nice to have” feature.

    Baidu Translate
    I have fiddle around baidu translation a bit, and find a way to add it into Translator++.

    In Translator++ v 1.6.30, you can use Baidu to translate your game. But I think the translation on the “Translation Pane” will be slightly off because Baidu uses non standard naming for the language. For example, other translation agree that the language code for Japanese is “ja”, but Baidu want to make his own standard, it is “jp”... So, a minor problem will occur when all the translator engine translate simultaneously. I will fix this soon, hopefully on the next update.
    Also, I think I’ll add Yandex for future release.
    Also, Translator++ Ver. 1.6.17 that contains fix for Google Translate will be available for everyone.

    Ver. 1.7.12

    Translator Engine class is overhauled
    Fixing Baidu Translator
    Adding Yandex
    Not much to report here. Because in this update I focused on overhauling TranslatorEngine class. The class became more efficient and  If you are a developer you can write less code to create new engine now. If you are an end user, you can choose the escaping algorithm for inline codes. Currently there are two working algorithm. First is “Aggressive Splitting”(which is now only working for Japanese source material only) and the other is “Meaningless Word”. Each has their pros and cons.

    Starting from Ver. 1.7.12 we can use Yandex service as reference. To be able to use Yandex, you need to create API key though. It’s free, go get it here.


    Общедоступные версии

    Старые версии

    Свежая версия 1.7.12  Mega

    Как изменить размер шрифта, шрифт. Перенос слов на новую строчку. Исправление длинны текста по ширине окна
    При переводе следует учитывать, что анг текст перевода как правило длиннее японского, а русский длиннее анг. В результате чего предложения могут не помещаться в окне. Тут помогают несколько вариантов: Включить перенос слов (words wrap), изменить размер шрифта и сам шрифт, изменить стандартное разрешение игры (при увеличении в  диалоговом окошке помещается больше текста).В Ace/VX и MV  эти способы осуществляются по разному.
    RPG Maker MV
    В MV надо редактировать опции плагинов Янафлая или добавить плагины, если нет их YEP_CoreEngine и YEP_MessageCore. Находим файл в папках www\js\plugins.js. Открываем текстовым редактором.
    Первый YEP_CoreEngine - ядро на котором работают все плагины от Янафлая, без него работать они не будут. Второй плагин отвечает за диалоговое окно в игре.
    YEP_MessageCore
    {"name":"YEP_MessageCore","status":true,"description":"v1.03a Adds more features to the Message Window to customized\nthe way your messages appear and functions.","parameters":{"---General---":"","Default Rows":"4","Default Width":"Graphics.boxWidth","Face Indent":"Window_Base._faceWidth + 24","Fast Forward":"Input.isPressed('pagedown')","Word Wrapping":"true","Description Wrap":"true","---Font---":"","Font Name":"Arial","Font Size":"22","Font Size Change":"12","Font Changed Max":"96","Font Changed Min":"12","---Name Box---":"","Name Box Buffer X":"-28","Name Box Buffer Y":"0","Name Box Padding":"this.standardPadding() * 4","Name Box Color":"0","Name Box Clear":"false","Name Box Added Text":"\\c[6]"}},
    "Word Wrapping" true - перенос длинных слов на новую строку если они не помещаются. (с false надо изменить на true) При включении  игнорирует все ранее установленные переносы строк и делает автоперенос на новую строку как только текст достигнет конца экрана
    Description Wrap":"true - то же самое с описаниями предметов, навыков (не всегда работает там, где хотелось бы)
    "Default Rows":"4" количество строк на экране.

    Для всего остального текста в игре не включенного в другие плагины (вне диалогов, боев) может использоватся YEP_CoreEngine
    опции YEP_CoreEngine
    {"name":"YEP_CoreEngine","status":true,"description":"v1.11 Needed for the majority of Yanfly Engine Scripts. Also\ncontains bug fixes found inherently in RPG Maker.","parameters":{"---Screen---":"","Screen Width":"816","Screen Height":"624","Scale Battlebacks":"true","Scale Title":"true","Scale Game Over":"true","Open Console":"false","Reposition Battlers":"true","---Gold---":"","Gold Max":"99999999","Gold Font Size":"20","Gold Icon":"313","Gold Overlap":"A lotta","---Items---":"","Default Max":"99","Quantity Text Size":"20","---Stats---":"","Max Level":"99","Actor MaxHP":"9999","Actor MaxMP":"9999","Actor Parameter":"999","Enemy MaxHP":"999999","Enemy MaxMP":"9999","Enemy Parameter":"999","---Battle---":"","Animation Rate":"4","Flash Target":"false","---Font---":"","Chinese Font":"SimHei, Heiti TC, sans-serif","Korean Font":"Dotum, AppleGothic, sans-serif","Default Font":"Arial, Verdana, Arial, Courier New","Font Size":"24","Text Align":"left","---Windows---":"","Digit Grouping":"true","Line Height":"36","Icon Width":"32","Icon Height":"32","Face Width":"144","Face Height":"144","Window Padding":"18","Text Padding":"6","Window Opacity":"192","Gauge Outline":"true","Gauge Height":"18","Menu TP Bar":"true","---Window Colors---":"","Color: Normal":"0","Color: System":"16","Color: Crisis":"17","Color: Death":"18","Color: Gauge Back":"19","Color: HP Gauge 1":"20","Color: HP Gauge 2":"21","Color: MP Gauge 1":"22","Color: MP Gauge 2":"23","Color: MP Cost":"23","Color: Power Up":"24","Color: Power Down":"25","Color: TP Gauge 1":"28","Color: TP Gauge 2":"29","Color: TP Cost Color":"29"}},
    Тут можно поэкспериментировать с разрешением экрана игры "Screen Width":"816","Screen Height":"624". Но обычно это сбивает положение сг картинок на экране и мобов персонажей в бою. У меня дефалтный шрифт заменен на Ариал, так как он более компактнее системного для МВ. Так же можно попытаться изменить размер тут.
    Сами плагины тут http://yanfly.moe/plugins/en/
    Описание к ним http://www.yanfly.moe/wiki/Category:Yanfly_Engine_Plugins

    RPG Maker VX - Ace
    В Ace, VX для автопереноса строк добавляется скрипт через мейкер. Открываем игру в мейкере. Заходим в скрипты (F11) Скроллим в самый конец списка скриптов. Видим там Main название. Выбираем Вставить  (Insert) получится новая строчка .Нужно добавить наш скрипт так, чтобы он был выше Main по списку, но ниже остальных наименований скриптов. Название любое на латинском. У меня это Word wrap
    cам скрипт Word Wrapping Message Boxes, by: KilloZapit
    Код:
    #========================================================================
    # ** Word Wrapping Message Boxes, by: KilloZapit
    #------------------------------------------------------------------------
    # Changes message boxes so it will automatically wrap long lines.
    #
    # Note: I consider this script to be public domain, and put no
    # restrictions on it's use whatsoever. My only request is that
    # a link back to the script is provided so more people can
    # access it if they want to.
    #
    # Version the Second:
    #   Now strips color codes and icon codes so they don't break words.
    #   Also calculates icon width along with text width for words.
    # Version the Third:
    #   Now also strips delays and other timing related codes.
    #   Splits for non-icon control codes before counting icons.
    #   Control codes can now break lines in case of font changes.
    #   Added some comments to clarify some code.
    # Version the Forth:
    #   Fixed a small bug that might cause a error when counting icons.
    #   Added a small notice for copyright questions.
    # Version the Fifth:
    #   Added "collapse" mode, which elimanates extra spaces.
    #   Can now use "whitespace" mode outside of wordwrap mode if needed.
    # Version the Sixth:
    #   Fixed problems with collapsed whitespace not wraping words right.
    # Version the Seventh:
    #   Added option to add a margin to the right hand side of the window.
    #------------------------------------------------------------------------
    # Also adds the following new escape sequences:
    #
    # \ww  - Word Wrap: turns word wrap on if it's off
    # \nw  - No Wrap: Turns word wrap off
    # \ws  - WhiteSpace mode: Converts newlines to spaces (like HTML)
    # \nl  - New Line: Preserves hard returns
    # \cs  - Collapse whiteSpace: Eliminates extra spaces (also like HTML)
    # \pre - PRE-formatted: Preserves spaces
    # \br  - line BRake: manual newline for whitespace mode
    # \rm  - Right Margin: extra space on the right side of the window
    #========================================================================

    # Standard config module.
    module KZIsAwesome
     module WordWrap

       # change this if you don't want wordwrap on by default.
       DEFAULT_WORDWRAP = true

       # change this if you want white space mode on by default.
       DEFAULT_WHITESPACE = false

       # change this if you want white space mode on by default.
       DEFAULT_COLLAPSE = true

       # change this to add a right margin to the window.
       DEFAULT_RIGHT_MARGIN = 0

     end
    end

    class Window_Base < Window
     include KZIsAwesome::WordWrap

     alias_method :initialize_kz_window_base, :initialize
     def initialize(x, y, width, height)
       initialize_kz_window_base(x, y, width, height)
       @wordwrap = DEFAULT_WORDWRAP
       @convert_newlines = DEFAULT_WHITESPACE
       @collapse_whitespace = DEFAULT_COLLAPSE
       @right_margin = DEFAULT_RIGHT_MARGIN
       @lastc = "\n"
     end

     alias_method :process_character_kz_window_base, :process_character
     def process_character(c, text, pos)
       c = ' ' if @convert_newlines && c == "\n"
       if @wordwrap && c =~ /[ \t]/
         c = '' if @collapse_whitespace && @lastc =~ /[\s\n\f]/
         if pos[:x] + get_next_word_size(c, text) > contents.width - @right_margin
           process_new_line(text, pos)
         else
           process_normal_character(c, pos)
         end
         @lastc = c
       else
         @lastc = c
         process_character_kz_window_base(c, text, pos)
       end
     end

     def get_next_word_size(c, text)
       # Split text by the next space/line/page and grab the first split
       nextword = text.split(/[\s\n\f]/, 2)[0]
       if nextword
         icons = 0
         if nextword =~ /\e/i
           # Get rid of color codes and YEA Message system outline colors
           nextword = nextword.split(/\e[oOcC]+\[\d*\]/).join
           # Get rid of message timing control codes
           nextword = nextword.split(/\e[\.\|\^<>!]/).join
           # Split text by the first non-icon escape code
           # (the hH is for compatibility with the Icon Hues script)
           nextword = nextword.split(/\e[^iIhH]+/, 2)[0]
           # Erase and count icons in remaining text
           nextword.gsub!(/\e[iIhH]+\[[\d,]*\]/) do
             icons += 1
             ''
           end if nextword
         end
         wordsize = (nextword ? text_size(c + nextword).width : text_size( c ).width)
         wordsize += icons * 24
       else
         wordsize = text_size( c ).width
       end
       return wordsize
     end

     alias_method :process_escape_character_kz_window_base, :process_escape_character
     def process_escape_character(code, text, pos)
       case code.upcase
       when 'WW'
         @wordwrap = true
       when 'NW'
         @wordwrap = false
       when 'WS'
         @convert_newlines = true
       when 'NL'
         @convert_newlines = false
       when 'CS'
         @collapse_whitespace = true
       when 'PRE'
         @collapse_whitespace = false
       when 'BR'
         process_new_line(text, pos)
         @lastc = "\n"
       when 'RM'
         @right_margin = obtain_escape_param(text)
       else
         process_escape_character_kz_window_base(code, text, pos)
       end
       # Recalculate the next word size and insert line breaks
       # (Needed primarily for font changes)
       if pos[:x] + get_next_word_size('', text) > contents.width
         process_new_line(text, pos)
       end
     end

    end
    [Изображение: https://i87.fastpic.ru/thumb/2019/0719/28/5cff43cca537f6b24a341f7a54221f28.jpeg]



  • Позже напишу еще мини-гайд по получению и применению Google API - помогает обойти ограничения на кол-во запросов у гугла, обоити суточные баны из-за частых запросов и использовать нейронный машинный перевод.



  • Обсуждения на  других крупных ресурсах:
    F95 zone
    http://www.rpgmakerweb.com - почти мертвая тема

 
Ответить
#2
Эх, краткую инструкцию бы. Вчера залез в прогу, каким-то образом удалось перевести на автомате игру A New Dawn, и весьма не плохо. Но после этой игры, забыл/потерял способ перевода и не удалось уже остальные игры перевести...
-----------------------------------------------------
А, не, вопрос отпал сам собой. Вспомнил))

Хммм, только сенйчас переводил, да и вчера эту игру переводил уже, а сейчас такую ошибку выдает...
[Изображение: https://i106.fastpic.ru/thumb/2019/0627/ea/5343a36781c0f6b3ca2549e2d501ffea.jpeg]

------------------------------------------------------
Помогла смена ip адреса

 
Ответить
#3
Помогите, перевел игру на VX Ace, экспортировал проект, всё прошло хорошо, но в папке куда экспортировал проект пусто. Куда он сохраняет готовый проект?

 
Ответить
#4
(27.06.2019, 15:14)d6953d2a писал(а): Эх, краткую инструкцию бы. Вчера залез в прогу, каким-то образом удалось перевести на автомате игру A New Dawn, и весьма не плохо. Но после этой игры, забыл/потерял способ перевода и не удалось уже остальные игры перевести...
-----------------------------------------------------
А, не, вопрос отпал сам собой. Вспомнил))

Хммм, только сенйчас переводил, да и вчера эту игру переводил уже, а сейчас такую ошибку выдает...
[Изображение: https://i106.fastpic.ru/thumb/2019/0627/ea/5343a36781c0f6b3ca2549e2d501ffea.jpeg]

------------------------------------------------------
Помогла смена ip адреса

При частых запросах к гуглу можно словить бан на сутки к гугл переводчику. Поможет прокси, смена айпи или получение ключа для перевода через Google Cloud. Там квоты куда выше и можно чаще обращаться и больше текста переводить за раз.


(01.07.2019, 16:25)9d8e1d8d писал(а): Помогите, перевел игру на VX Ace, экспортировал проект, всё прошло хорошо, но в папке куда экспортировал проект пусто. Куда он сохраняет готовый проект?
Сначала надо отметить все фаилы галочками для экспорта. Иначе будет пусто.
Можно инвертировать выделение таким образом
Иногда бывают проблемы при компиляции файлов игры. Это особенно актуально для вольф движка. Тогда тоже в папке экспорта будет пусто. Попробуйте другие варианты сохранения. Либо найдите в кеше юзера фаилы по дате C:\Users\Имяюзера\AppData\Local\Temp\87ec5a22d84a200d9cd628458b7960d9\Data
Заместо 87ec5a22d84a200d9cd628458b7960d9 может быть другое сгенерированное ля игры имя (при открытии проекта игры каждый раз разное)

Версия программы обновлена до 1.6.30
чейндлог
Version 1.6.30

Added capability to import/export to .tpp (Translator++ Project Package) file. We can continue our work to another PC now.
BING translation engine is updated. Now can translate into and translate from any language.
BING translation engine is updated. Now can modify url API.
Bug fix on Google Cloud Translator, custom url doesn't work when changing URL on options
Some fix on auto translator feature.
Fix on Atlas translator that somehow missing the required middleware binary file to interact with Atlas’ dll.
We finally can transfer our project to other PC by using TPP file.
TPP file will pack your “trans” file, along with all necessary game file needed to build a working game patch. So when you import your project in another PC by using TPP file, you can compile a game patch from that PC too. You don’t required to start a new project, and the original full game data is also not required.

You can find the menu from Export file.

I think the TPP file conclude all the “must have” feature in my to-do list. Now I can focus on the “nice to have” feature.
Baidu Translate
I have fiddle around baidu translation a bit, and find a way to add it into Translator++.

In Translator++ v 1.6.30, you can use Baidu to translate your game. But I think the translation on the “Translation Pane” will be slightly off because Baidu uses non standard naming for the language. For example, other translation agree that the language code for Japanese is “ja”, but Baidu want to make his own standard, it is “jp”... So, a minor problem will occur when all the translator engine translate simultaneously. I will fix this soon, hopefully on the next update.

Also, I think I’ll add Yandex for future release.
Also, Translator++ Ver. 1.6.17 that contains fix for Google Translate will be available for everyone.

 
Ответить
#5
Добавлен гайд по изменению размера шрифта, самого шрифта и включения переноса строк если текст не влезает в экран.
А так же новая версия программы, в которой яндекс переводчик добавился. Для переводов с анг на русский он не так уж и плох.

 
Ответить


Похожие темы
Тема: Автор Ответов: Просмотров: Посл. сообщение
  Переводчикам игр RPGMaker - программа RPGMaker Trans b6badda7 211 20401 01.08.2019, 09:27
Посл. сообщение: cc5f18c4
  Soft:  RPG Maker MV Translator c8d23459 2 902 07.07.2019, 14:33
Посл. сообщение: c8d23459
  Перевод и обсуждение программ для авто-перевода b6badda7 279 21302 25.11.2017, 02:29
Посл. сообщение: da03eeac
  Игры для перевода d6953d2a 41 3762 13.01.2017, 18:43
Посл. сообщение: b6badda7
  Программы для вытягивания ресурсов на движке RPG Maker and WOLF f7d4a193 4 3214 04.07.2014, 08:24
Посл. сообщение: c14a6b6

Переход:


Просматривают эту тему: 1 Гость(ей)