Vladya

Answers to questions and general information..


General Information.

  1. What kind of project is this?

    • Translator3000 is an automatic translator for games made on the Ren’Py engine, with an easy installation and user-friendly interface.

    • Want to read a visual novel and it doesn’t have a translation in your language?
      • All you need to do is copy the file Translator3000.rpa into the folder with the game.
        • Read more about installation here.
    • More information about the functions and features of the translator is provided in the following sections of the documentation.
    1. Discord Community.

      • Here you can find a link to the latest version, chat with other translator users, and search for an answer to your question in the Question Channel.
    2. Boosty.

      • Here you can support the project and download the latest version of the translator.
  2. About Versions.

    • There are two versions of the translator:

      1. Trial version.

        • You can download it here.
        • Available for download to all without exception.
        • Trial version with limited functionality, to get acquainted with the translator.
      2. Main version.

        • You can subscribe and download on Boosty.

        • The version is distributed according to the subscription model.

        • Version with full functionality, updates and bug fixes.

        • Important:

          • Only the latest version is supported.
          • Bug reports are only accepted for the latest version.
  3. Where to begin?

    • So. You signed up for Boosty, downloaded Translator3000.rpa and don’t know what to do with it. Let me explain.
    1. Copy the file to the folder game in the directory of the game for which you need a translation.
    2. Launch the game.
    3. In the upper left corner you will see the GUI window of the translator.
    4. Enjoy the game.
  4. About translator work modes.

    • Translator can work in three switchable modes:

      1. Real-time translation.

        • The translation takes place at the moment when the game passes the string to the display.
        • If there is a string in the translations database, the cached translation is displayed immediately.
        • if the string isn’t in the translation database (the string has never been displayed and there was no prescan), there will be a request to the translation service.
          • This will inevitably cause a “freeze”, because a network request will be executed.
      2. Translation only from the database.

        • Similar to the previous mode, but with one important change:
          • If a string isn’t in the translation database, it will not be translated, but the original text will be displayed.
        • This mode is very useful in novels-sandboxes, where there is a lot of permanently updated data.
          • When this mode is activated, with the performed prescan, the permanent text (dialogues, etc.) will be translated, while the dynamic data (date, game time, etc.) will be output as it is.
      3. Prescan.

        • Pre-translate all strings in the game and compile a database of translations, to neutralize “freezes” at the moment of switching strings.
        • When activated, the translator collects all the strings in the game, groups it and translates them sequentially.
        • If the game has dynamic data (player name, etc.), it is better to enter it before running the prescan.
          • This is needed to correctly translate strings where dynamic data substitution is used.
        • If a novel is large, the process can take a long time.
    • The best (optimal for comfortable reading) use is as follows:

      1. Run the novel.
      2. Get to the place where the game asks you to enter the player name / other dynamic data (if any).
        • If there is no dynamic data input, just run the game anywhere.
      3. Enter data (if required).
      4. Start the translator in prescan mode with the corresponding item in the GUI.
      5. Wait for the prescan to complete.
        • Depending on the size of the novel, prescanning can take a long time.
        • If the novel is extremely large, it makes sense to leave it in the translation process and do something else in the meantime until the translation is complete.
      6. Switch to the translation mode “only from the database”.
      7. Hide the translator’s GUI and enjoy the novel.
  5. About Database.

    • Any text translated either by prescanning or in real time is stored in a database on the user’s device.

    • Global Database.

      • The first time you start the translator, it creates a global database that stores the translations of all the novels that have ever been translated.
    • Local Database.

      • In addition to the global database, each novel creates its own (local) database.
    • Database Import.

      • If anyone has already completed the novel, he can share his database (local, or global).
      • To use a translation from another person, just copy their database to the imported translations folder.
      • After launching, the game imports the translation into the local game database and the global database.
      • After a successful import, the imported file will be deleted.
      • Important:
        • As indicated earlier, the translation is made with the insertion of dynamic data, so that if the creator of the database has entered different data, the strings containing this data will need to be re-translated, taking into account the new values.
      • Collected databases can be found in the Discord community.
    • About database formats.

      • Although database formats have changed as the translator has evolved, importing databases in the old format works.
    • About backups.

      • If your database is broken for some reason, the translator always creates, next to the database files, a backup copy of the previous version with the .oldBackup extension.
      • To restore the database, delete the original database file and rename the backup file, removing the ending .oldBackup from it.
        • Your system may have turned off the display of file name extensions. In this case, enable this feature in the way that your operating system does.
  6. About “browser logic”.

    • Some translation services use real browser actions to work.
    • The selenium/chromedriver stack is used for automation.

    • The Google Chrome browser must be installed in the OS to work correctly.

      • Versions newer than 70 are supported.
        • It is, of course, better to use the latest version.
    • By default, the graphical part of the browser is disabled.

  7. Where is what and what files the translator uses and creates.

    • The following conventions will be used:

      • %UserName%:
        • Current username.
      • %userprofile%:
        • The path to the user’s home folder. May be different on different systems.
          • Default is in Windows:
            • С:\Users\%UserName%
          • Default in UNIX-like:
            • /home/%UserName%
          • Default in Mac:
            • /Users/%UserName%
      • %ServiceName%:
        • The name of one of the translation services.
      • %NovelDir%:
        • Game directory.
          • The one with the game, renpy folders and the executable launch file
    • Paths will be written in Windows format (with backslashes), change to forward slashes if necessary.

    • This is a complete list of working paths. Depending on how the translator is used, some of them may not exist.

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

      • The main folder for storing data from the different modules.
    2. %userprofile%\vladya’s projects database\selenium:

      • The main folder of the selenium module, which is responsible for the browser logic.
    3. %userprofile%\vladya’s projects database\selenium\chromedriver:

      • The folder with the executable files of the chromedriver module, which is responsible for automating actions in the browser.
      • Contains folders with the version numbers of the browser, which contain folders with the version numbers of the chromedriver module, which contain the executable file of the chromedriver module.
    4. %userprofile%\vladya’s projects database\translator3000:

      • Translator’s main folder.
    5. %userprofile%\vladya’s projects database\translator3000\%ServiceName%:

      • The folder with the global (for all novels) database of translations of one of the services.
      • Contains folders with database version numbers, which contain database file translations (the format can be different).
    6. %userprofile%\vladya’s projects database\translator3000\Ren’Py MuitiGame Data.pickle:

      • A file that stores data that can be transferred between games, such as previously used fonts, translation service settings, etc.
    7. %NovelDir%\_translator3000_setting.json:

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

      • A folder with a local (for a particular novel) database of translations for one of the services.
      • Contains folders with database version numbers, which contain database file translations (the format can be different).
      • It also contains the imported translations folder for importing completed translations.
    9. %NovelDir%\local translations\%ServiceName%\imported translations:

      • A folder for importing completed translations.
      • The instructions for importing translations are described above.
    10. %NovelDir%\_translator3000Data:

      • A folder for working files, for a particular novel.
    11. %NovelDir%\_translator3000Data\debug:

      • Files for debugging the translator.
    12. %NovelDir%\_translator3000Data\debug\lastLog.log:

      • Log file containing technical information about the translator’s actions.
      • If parameter _debug_mode is activated, full information will be written to the file, otherwise only basic data and error information will be written.
    13. %NovelDir%\_translator3000Data\temp:

      • Temporary translator files.
    14. %NovelDir%\_translator3000Data\temp\cacert.pem:

      • The certificate file for the requests module.
      • Generated only in older versions of Ren’Py.
    15. %NovelDir%\game\Translator3000.rpa:

      • The translator itself.
    16. %NovelDir%\game\translator3000_ingame_files:

      • A folder with the translator files used in the novel.
    17. %NovelDir%\game\translator3000_ingame_files\multigame_fonts:

      • The folder where fonts from other novels will be copied when they are selected.
    18. %NovelDir%\game\translator3000_ingame_files\pc_fonts:

      • The folder where fonts will be copied to when they are selected in the GUI from computer files.
  8. About bugs and errors.

    • Bug reports are only accepted for the latest actual version.
    • What to do when errors occur:

      1. Make sure you have the latest version of the translator.

      2. Replay the situation in another novel and make sure the error repeats itself.
      3. If an error occurs during a prescan, click “Raise traceback” in the GUI to generate an error report.

      4. Prepare the following data needed by the developer for debugging:
        1. Log file:
        2. Information about the settings.
          • Translator’s work mode, service, etc.
        3. The file traceback.txt, which is in the game directory.
          • If it exists.
        4. Information about what actions caused the error.

        5. If the error occurs with the translation service with browser logic, set the “default” value for the “seleniumStartMode” setting and add information in the error message about whether it affected the operation.

        6. Any other information you deem relevant in the context of this question.
      5. Read this section of the documentation and, if your question has not yet been answered, ask it in the question channel.
    • Description of some errors:

      • The error type will be written in the traceback, before the description of the error, or at the end, after the translation text.
      1. ShadowBan:
        • The “shadow” ban error. May occur with services that have recognized automation.
        • Occurs in the case of a long and consistent translation of extremely large novels.

Q&A.

  1. I have “squares” instead of text.

    • Change the font to one that supports the language you want.
  2. The game <insert game name> does not translate/does not start/does not work correctly.

    • How a game is made depends on the developer. Depending on the implementation, there may be conflicts in particular games. Get over it. There is nothing I can do here. Compatibility with all games in the universe, unfortunately, can not be realized.
  3. How do I launch the GUI of the translator?

    • Alt+~ (tilde) key combination (simultaneous pressing).

      1. Why did you make such a strange choice?

        • Because of the compatibility question. I’m trying to make my translator as versatile as possible, and this combination is unlikely to be used anywhere else.
        1. Can I change it?

          • Some day, some time… At this point, as far as I know, there has never been a conflict of combinations in games, which means the choice is correct.
  4. The translator removes tags from the original game (italics, bold text, color, etc.).

    • Yep. It does that. It also removes tags like {w}/{nw} and the like.
    • This is done because tags cannot be escaped when requesting a translation service.
      • To “{color=…}” the service may return “{цвет=…}”, which of course will cause an error.
      • It is possible, of course, to translate in parts (a passage before the tag, a passage after it, etc.), but in this case the quality of the translation will suffer greatly, because the words will be translated without taking into account all the context and will not be connected to each other.
      • I see no way to “painlessly” keep the tags, so I decided to remove them altogether.
  5. How do I run the translator on Android?

    • No idea. I write the translator for the PC version. I have never programmed for phones and do not know how to do it.
    • As far as I heard, there seem to be some ports from third-party developers, but they have nothing to do with me or the project. Use them only at your own risk.
  6. I did not find an answer to my question in this documentation.

    • Look at the question channel in the translator’s Discord community. Most likely a similar question has already been answered there.

    • If there is no answer, ask your question there.

      • Exactly in the question channel.
        • Not in private messages to the translator’s author.
        • Not in private messages to the moderator.
      • By asking your question in private messages, you deprive others of the opportunity to see the answer if they have similar problems and, among other things, you force the administrator/moderator to repeat the same things several times.
        • Which is no fun at all.
        • Not at all.
        • Not. At. All.
      • If you report an error, be sure to attach the data necessary to resolve the error.
  7. I still don’t understand something in this documentation. Can I write to you in a private message, on a social network, by e-mail, or anywhere else?

    • No.
  8. But I…

    • No.
  9. But…

    • No.