renpy-translator
A translator for renpy based on google | youdao | deepl | open-ai | offline-ai tranlation supports extract untranslated words and translate
Stars: 89
Renpy Translator is a free and open-source tool designed for translating Ren'py games. It supports various translation services such as Google, Youdao, Deepl, OpenAI, and more. The tool can automatically translate game content, extract untranslated words, replace fonts, and add language preferences. It aims to assist in game translation work by providing a user-friendly interface and supporting multiple languages. The translated contents may not be accurate due to auto-translation, so users are encouraged to review and modify translations as needed.
README:
If you want to use offline ai translation, you can refer to :
https://github.com/anonymousException/renpy-translator/blob/feature/ai-translate/README.md
| Translator | Supported Language number | Charge | Service | Country | Reference |
|---|---|---|---|---|---|
| 108 | Free | Token Required | America | pygtrans | ||
| Youdao | 11 | 114 | Free | Token Required | Netease | China | |
| Deepl | 29 | Token Required | Deepl | Germany | |
| OpenAI | 108 | Token Required | OpenAI | America | openai-python |
| Alibaba | 214 | Free | damo | China | translators |
| ModernMt | 200 | Free | Modernmt / Translated | Italy | translators |
| Bing | 133 | Free | Modernmt / Translated | Italy | translators |
| CloudTranslation | 8 | Free | Xiamen University / CloudTranslation | China | translators |
| Caiyun | 3 | Token Required | ColorfulClouds | China |
Support one key translate , just select the target language and the font file and the game will be translated automatically
It's equal to the following complete tutorial
The video shows in order :
- show the original game
- unpack game package
- runtime extraction (extract dialogues only)
- official extraction (equals to the extract function in official renpy-sdk)
- extraction
- replace font
- add an entrance to change langauge in preference
- translate
- show the translated game
Support pack game package based on rpatool , you can make a translation mod now
https://github.com/user-attachments/assets/3023cb0a-138e-4951-935c-d9f58d1027d7
Support format rpy files which do not cotain the original contents
You can translate the contents after format
https://github.com/user-attachments/assets/00ebd44a-6623-4d65-8562-6e8ec90cca3d
For advanced edit , it is recommended to use professional software such as EXCEL
This tool only supports loading and simple modifications
You should offer 2 columns :
Original : the words before replaced
Current(Replaced) : the words replaced
The first row should be the header (just for show you can rename them)
Extract all extractable contents to tl directory and rename(if tl name is empty will just extracted to the tl directory):
As you see the above translated contents. The original contents will be remained after translation.
If the contents are short of the original contents(behind the "#" as comment) , translation will not take effect on them
The reason why I made this tool is not to replace the real translator's work , but to help.
The translated contents will be not accurate enough due to auto google | youdao | deepl translation.
So the original contents will do the effect. You can re-translate the translated contents according to the original contents. And what you modified will not be replaced during next translation.
This tool also take care of the special symbols like "{}" "[]" and "<>" in untranslated contents , for detail you can see it on the Features point 2
You can download the latest version through https://github.com/anonymousException/renpy-translator/releases/latest
-
Completely free and open-source
-
Support Editor Mode to edit file
-
Supoort local glossary to improve translation
-
Support special symbols in untranslated contents like "{}" "[]" and "<>" , the contents in special symbols will not be translated. Example:
-
# untranslated contents: # "Your name is [povname], right?" # Chinese translated: "你的名字是 [povname] ,对吗?" # Japanese translated: "あなたの名前は [povname] ですよね?"
-
Support extract the untranslated words ren'py engine has not discovered
-
Support input,brower and drag the file(s) and directory
-
Support translate/extract for single rpy file
-
Support translate/extract for all rpy files under directory
-
Support replace the fonts used by translated language
-
Support be compatible with the translated game that not translated by this translator. The translated contents before will be remained and just translate the untranslated contents
-
Support skip extract the extracted contents , need not to be worried about repeat extraction
For example , if the translation contents already exist in tl folder like :
old "Hello" new "こんにちは"
or :
# game/xxx.rpy:1352 translate japanese role_lose_7489b947: # "Hello" "こんにちは"
Then "Hello" will not be extracted again
-
Support 108 kinds of language (Default Google Translation) , you can view the google support source and the google support target
-
Support remain the original words as comments after translation
-
Support real-time log output , you can check the progress about the translation
-
Support local-proxy , if you can not access google , you can use a vpn tool like v2ray and set local proxy
-
Support multi translation engines
A good network environment , if not you may not able to translate words through the translation engine
If you can not access the translate engine, you can try use vpn tool like v2ray and set local-proxy
before:
usage:
An unpacked ren‘py game (for what you can find .rpa files under the game directory) like this:
You can try to translate the tutorial game following the tutorial
if not you can try to unpack it
I usually use UnRen-ultrahack.bat from https://f95zone.to/ to unpack the game
It's strongly not recommended for translators to make translation through unpack and then deliver a translated version without the original author's permission. Please respect the original author
Download the UnRen-ultrahack.bat and copy it to the game directory (where game.exe locates)
Now unpack function is supported : Support unpack game through runtime hook which can bypass most encryption
The dumped file format is rpyc , so will auto call UnRen-forall(v9.4) to tranform into rpy
If the game is completely blend-new for you to translate , you can continue to the following contents
If the game has already been translated , you want to update the translation (translate the contents still not been translated) , you can jump to the next caption : UpdateTranslation
the first thing for the First-Translation is to extract the untranslated words from game
there are two methods to do that:
- Official Extract (extract function supported by the ren'py engine)
- Tool Extract (extract function supported by this tool)
It's recommended to use Offical Extract first and then translate the game. If you found that there still remains plenty of words not been translated after translation (Sometimes ren'py engine's official extract may miss many words). You can use the tool extract function and retranslate the game.
Offcial Extract is supported in this tool now
you can forward to https://www.renpy.org/ and then download the latest version
Unzip the ren'py engine you download
Click "preferences" in the lower right corner
Reset the "Projects Directory" to the parent directory of the game you want to translate
Return back to the last interface and Click "Generate Translations"
Fill the "Language" , this is just a tag (It's related to the "tl name" label in this tool) used for the translation that you can name whatever you want. But it's recommended to name the target language you want to translate. Such as "japanese" or "chinese" etc.
It would be alright to keep other options default ,Especially for "Generate Translations" option , do not tick the "Generate empty strings for translations"
After all options have been set . Click the "Generate Translations" and wait to complete
And then you can close the software , the official extract is done
You can see the generated folder , remember the path
The folder path in this tutorial is :
F:\Games\RenPy\DemoGame\game\tl\japanese
Runtime Extract can extract only dialogues without unpacking the game and the format is block like official
Fill (input,drag or brower) the directory that generated by Official Extract before and just tap the extract buttion , and then extraction will be done
Quite easy, right ? That's why I made this tool.
It's supportable to add entrance through this tool automatically
You need to add an entrance to change the language in game
Open the game directory and then enter subfolder "game", open the "screens.rpy" file (you can use notepad to open it)
Search the key words:"game_menu(_("Preferences")" (usually the words do effect if not you may need to explore what the game use to replace "Preferences")
Normally you will found many "vbox:" like this:
Try to find a vbox that contains "Language" or some other words can replace "Language"
If not found , add the following code to the file(the location next to the vbox contains "skip"):
vbox:
style_prefix "radio"
label _("Language")
textbutton "English" action Language(None)
textbutton "LanguageName" action Language("The Tag you fill in official Extract")
#such as textbutton "turn to Japanese" action Language("japanese")Pay attention to the indentation to keep it aligned. After edit it should be like this
If found , just add a new line to the vbox:
textbutton "LanguageName" action Language("The Tag you fill in official Extract")
#such as textbutton "turn to Japanese" action Language("japanese")After the file saved,open the game and make sure the preference show the content you just edit
Before translation you need to get the font file (*.ttf or *.otf) you want to translate
The default font path is filled with your default system font which is compatible with the language you used now
For example , if you are a japanese user and your system font is japanese , the default font file can support japanese , you need not to download a japanese font from the internet to solve the garbled code problem
For japanese, I usually use the hanazomefont
For chinese, I usally use the SourceHanSansCN
For other language , you can find relative font files using search engine easily
Open the ren'py translator and fill the following blanks
directory : the path generated during Official Extract before
font: the font file you downloaded
target : the target language you want to translate (input the letter in front of the target language to search is supportable , need not to scroll to search)
source: default Auto Detect is OK
Wait until the translation done:
So far , the translation is done , you can open game and check it :
Update-Translation is quite easy, directly use the Official Extract (optional) and Tool Extarct
After extraction , just input the directory generated during Official Extract and choose the target
As for font , if the updated game appended new special style with different font settings , you can use replace font function without font path to cover the appended special styles (font has been replaced before)
If you are willing to develop based on this project. You will need to have a python3 environment.
And install the following packages :requirements.txt
Make sure when you in Official Extract step , for "Generate Translations" option , do not tick the "Generate empty strings for translations"
The translation will only do effect when the format like this:
# game/script.rpy:553
translate schinese naming_0f7b6e71:
# r "Do name yourself like that and I'll break your face..."
r "Do name yourself like that and I'll break your face..."or
# game/script.rpy:30886
old "Win or Lose?"
new "Win or Lose?"Notice that the original text (behind # or old) should be the same with untranslated text (behind no # or new)
you may meet errors like this:
2024-01-30 14:55:19 D:\Download\Nova-Pasta\SunshineLoveCH2-1.01-pc\game\tl\Portugues/10_week10_00.rpy Error in line:1320
It’s [s_name]. And [y_name].
It’s [0] . And [1] .
É [0] . E 1] .
ErrorIt's depend on the translation result. In order to skip translate special symbols like '[]' '{}' '<>' , this tool will replace the contents in special symbols in order nums.
For example :
"It’s [s_name]. And [y_name]."
will be replaced to
"It’s [0] . And [1] ."
Normally, this format will not be translated and will remain '[0]' and '[1]' , and the tool will restore the orginal contents with the ordered nums.
However , sometimes this format may be destroyed after translation. As mentioned : "É [0] . E 1] ."
You can found that one '[' is missing , so this tool can't restore the original contents. And will not translate this line.
You may need to modify these certain lines manually.
Fortunately this situation occurs rarely , you need not to spend too much time to modify these certain lines.
Currently Google is the best choice to translate the contents which contain special symbols , you can re-translate these contents with Google
This program is packed by pyinstaller and with file operation (open read write) , so may cause false detection
If you are worried about this , you can download the source code and run the program yourself
Pyinstaller Build Version is easy to be detected as virus , it's false positive
If you are still worried about this , you can try the Nuitka verison (Nuitka.Build or RenpyTranslatorInstaller)
| Release Package | Explanation | Advantage | Disadvantage |
|---|---|---|---|
| RenpyTranslator-Win.Pyinstaller.Build.zip | build by Pyinstaller | the executable file is single and light | may cause false positive as virus |
| RenpyTranslator-Win.Nuitka.Build.zip | build by Nuitka | will not cause a false positive for most antiviruses | the executable file contain many extra support libraries |
| RenpyTranslatorInstaller.exe | installer for Nuitka version | make things easier | need to install |
you may meet errors after running the translated game like this :
You can found that after translation "[[XXXX]" was translated into "[ [XXXX]" , an extra space was added (you may meet other error format but the important point is that after translation the structure of the special symbols destroyed)
The result is translated by translate engine , sometimes translation engine is not friendly to special symbols like '[]' '<>' ... especially when the special symbols used repeatedly
But there still remains good news , normally the case will not happen frequently , you only need to modify the error sentences manually (For the case mentioned above , just remove the extra space)
For special text in tooltip is actually translated but seems not work
the original code looks like this :
tooltip "this is a tooltip"Following the tutorial from https://f95zone.to/threads/translation-of-text-in-screen.90781/
Just open the rpy file (any one under tl folder else if you can create a new one) and add the following code :
# if you choose to create a new one,you need to add the next line remove header # and relace tl_name with the directory name under tl folder like japanese
#translate tl_name strings:
old "[tooltip]"
new "[tooltip!t]"For special text in notify is actually translated but seems not work
You need to locate the sentence on the orginal code (not the translation tl folder)
You will found the original code looks like this :
show screen notify(_("Find old Man Gibson"), None)replace it with
show screen notify(__("Find old Man Gibson"), None)the operation is just to add '_' after notify(
quite easy right? And then the translation will do the effect
It probably remains other case that some sentences seem not to be translated after translation
It depends on the original code , extraction may not completely covered if the original code is not quite translation-friendly
To avoid extra useless extraction , the extraction function in this tool will not extract sentences match the following style :
the length of sentences (space and special synbol will be counted as zero length) lower than 8
for example :
"I know [special symbol]"
the actual effect content is
Iknow
the length is only 5 , so it will not be extracted by the extraction from the tool
Besides the contents in ConditionSwitch() will also not be translated due to switch code may contained in it
It's normal because the target file has nothing to extract
Do not delete the 0 kb file , it is used to occupy position
Errors may occur if the file does not exist
you can view content like this after extraction
old "old:1709016761.706834_0.8853030081254853"
new "new:1709016761.706834_0.8853030081254853"it's an unique timestamp to mark the time you extract , the format is timestamp_random (random value is to make sure the generated content is unique otherwise will cause error)
you can convert the part before '_' (in this example is 1709016761.706834) to readable time through https://www.epochconverter.com/ or other timestamp convert website
You can view your rate-limits on : rate-limits and set a reasonable limit
There are great restrictions for a new user of openai , can only post max 3 requests in per minute. almost unusable to translate
The default setting is for this situation , If you don't pay much attention to the time cost , you can try it with the default config
For higher-level user , it's recommended to turn up the setting. A suggested config is :
| parameter | recommend |
|---|---|
| RPM(requests per minute) | 250 |
| RPS(requests per second) | 10 |
| TPM(requests token limits) | rate-limits |
| model | gpt-3.5-turbo | gpt-4 (smarter but slower and more expensive) |
OpenAI seems not to be friendly to special symbols like '{}' '[]' , you may meet errors mentioned before : Some errors made it impossible to translate certain lines
You can re-translate the error lines with google engine (translated lines will be auto skipped , just re-translate the full directory or file(s) translated before)
(Google translation is more friendly to the special symbols but may still remain few errors)
At last you need to modify the remained few error lines manually
Besides if you meet traceback errors in openai , try to disable the option Multi-Translate and re-translate (it's more stable but slower).
And you may meet errors like this:
2024-02-22 11:18:28 Traceback (most recent call last):
File "openai_translate.py", line 180, in translate_limit
File "json\__init__.py", line 346, in loads
File "json\decoder.py", line 337, in decode
File "json\decoder.py", line 353, in raw_decode
json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 1613 (char 1612)
During handling of the above exception, another exception occurred:
Traceback (most recent call last):
File "openai_translate.py", line 187, in translate_limit
Exception: Unterminated string starting at: line 1 column 1613 (char 1612)It's due to the error format data returned by openai , fortunately this will not happened frequently and will only cause partially untranslated in one file. You can re-translate the untranslated lines with other translation engine such as google translation
You may meet errors like this:
2024-02-23 10:19:34 translated result can not match the untranslated contentsThe reason is that openai may merge multi-translation result occasionally , such as:
#untranslated
["Hello","Good"]
#translated
["こんにちは,良い"]
This can lead to mismatching of translations , so the partial translation will not do effect , you may need to translate the untranslated lines with other translation engine
You may meet errors like this:
2024-02-23 10:19:34 Another non-200-range status code was received:400 <Response [400 Bad Request]>
2024-02-23 10:19:34 Error code: 400 - {'error': {'message': 'Connection error (request id: 20240223101928248984704uoEfBgvh)', 'type': '', 'param': '', 'code': 'connection_error'}}
2024-02-23 10:19:34 ['untranslated1','untranslated2','....']It's depend on your network environment , re-translate may do effect
You can write a python script which supports translation api , and import it to this tool
you should write like _caiyun.py and _baidu.py (the api name must be tranlate_single or tranlate_queue)
besides you should offer two language files for source and target like caiyun.source.rst and caiyun.target.rst
A good example setting looks like this:
For Tasks:
Click tags to check more tools for each tasksFor Jobs:
Alternative AI tools for renpy-translator
Similar Open Source Tools
renpy-translator
Renpy Translator is a free and open-source tool designed for translating Ren'py games. It supports various translation services such as Google, Youdao, Deepl, OpenAI, and more. The tool can automatically translate game content, extract untranslated words, replace fonts, and add language preferences. It aims to assist in game translation work by providing a user-friendly interface and supporting multiple languages. The translated contents may not be accurate due to auto-translation, so users are encouraged to review and modify translations as needed.
quivr
Quivr is a personal assistant powered by Generative AI, designed to be a second brain for users. It offers fast and efficient access to data, ensuring security and compatibility with various file formats. Quivr is open source and free to use, allowing users to share their brains publicly or keep them private. The marketplace feature enables users to share and utilize brains created by others, boosting productivity. Quivr's offline mode provides anytime, anywhere access to data. Key features include speed, security, OS compatibility, file compatibility, open source nature, public/private sharing options, a marketplace, and offline mode.
vim-airline
Vim-airline is a lean and mean status/tabline plugin for Vim that provides a nice statusline at the bottom of each Vim window. It consists of several sections displaying information such as mode, environment status, filename, filetype, file encoding, and current position in the file. The plugin is highly customizable and integrates with various plugins, providing a tiny core with extensibility in mind. It is optimized for speed, supports multiple themes, and integrates seamlessly with other plugins. Vim-airline is written in 100% Vimscript, eliminating the need for Python. The plugin aims to be stable and includes a unit testing suite for reliability.
obsidian-arcana
Arcana is a plugin for Obsidian that offers a collection of AI-powered tools inspired by famous historical figures to enhance creativity and productivity. It includes tools for conversation, text-to-speech transcription, speech-to-text replies, metadata markup, text generation, file moving, flashcard generation, auto tagging, and note naming. Users can interact with these tools using the command palette and sidebar views, with an OpenAI API key required for usage. The plugin aims to assist users in various note-taking and knowledge management tasks within the Obsidian vault environment.
intense-rp-next
IntenseRP Next v2 is a local OpenAI-compatible API + desktop app that bridges an OpenAI-style client (like SillyTavern) with provider web apps (DeepSeek, GLM Chat, Moonshot) by starting a local FastAPI server, launching a real Chromium session, intercepting streaming network responses, and re-emitting them as OpenAI-style SSE deltas for the client. It provides free-ish access to provider web models via the official web apps, a clicky desktop app experience, and occasional wait times due to web app changes. The tool is designed for local or LAN use and comes with built-in logging, update flows, and support for DeepSeek, GLM Chat, and Moonshot provider apps.
OpenMusic
OpenMusic is a repository providing an implementation of QA-MDT, a Quality-Aware Masked Diffusion Transformer for music generation. The code integrates state-of-the-art models and offers training strategies for music generation. The repository includes implementations of AudioLDM, PixArt-alpha, MDT, AudioMAE, and Open-Sora. Users can train or fine-tune the model using different strategies and datasets. The model is well-pretrained and can be used for music generation tasks. The repository also includes instructions for preparing datasets, training the model, and performing inference. Contact information is provided for any questions or suggestions regarding the project.
discord-llm-chatbot
llmcord.py enables collaborative LLM prompting in your Discord server. It works with practically any LLM, remote or locally hosted. ### Features ### Reply-based chat system Just @ the bot to start a conversation and reply to continue. Build conversations with reply chains! You can do things like: - Build conversations together with your friends - "Rewind" a conversation simply by replying to an older message - @ the bot while replying to any message in your server to ask a question about it Additionally: - Back-to-back messages from the same user are automatically chained together. Just reply to the latest one and the bot will see all of them. - You can seamlessly move any conversation into a thread. Just create a thread from any message and @ the bot inside to continue. ### Choose any LLM Supports remote models from OpenAI API, Mistral API, Anthropic API and many more thanks to LiteLLM. Or run a local model with ollama, oobabooga, Jan, LM Studio or any other OpenAI compatible API server. ### And more: - Supports image attachments when using a vision model - Customizable system prompt - DM for private access (no @ required) - User identity aware (OpenAI API only) - Streamed responses (turns green when complete, automatically splits into separate messages when too long, throttled to prevent Discord ratelimiting) - Displays helpful user warnings when appropriate (like "Only using last 20 messages", "Max 5 images per message", etc.) - Caches message data in a size-managed (no memory leaks) and per-message mutex-protected (no race conditions) global dictionary to maximize efficiency and minimize Discord API calls - Fully asynchronous - 1 Python file, ~200 lines of code
qa-mdt
This repository provides an implementation of QA-MDT, integrating state-of-the-art models for music generation. It offers a Quality-Aware Masked Diffusion Transformer for enhanced music generation. The code is based on various repositories like AudioLDM, PixArt-alpha, MDT, AudioMAE, and Open-Sora. The implementation allows for training and fine-tuning the model with different strategies and datasets. The repository also includes instructions for preparing datasets in LMDB format and provides a script for creating a toy LMDB dataset. The model can be used for music generation tasks, with a focus on quality injection to enhance the musicality of generated music.
chromem-go
chromem-go is an embeddable vector database for Go with a Chroma-like interface and zero third-party dependencies. It enables retrieval augmented generation (RAG) and similar embeddings-based features in Go apps without the need for a separate database. The focus is on simplicity and performance for common use cases, allowing querying of documents with minimal memory allocations. The project is in beta and may introduce breaking changes before v1.0.0.
deep-chat
Deep Chat is a fully customizable AI chat component that can be injected into your website with minimal to no effort. Whether you want to create a chatbot that leverages popular APIs such as ChatGPT or connect to your own custom service, this component can do it all! Explore deepchat.dev to view all of the available features, how to use them, examples and more!
thread
Thread is an AI-powered Jupyter alternative that integrates an AI copilot into your editing experience. It offers a familiar Jupyter Notebook editing experience with features like natural language code edits, generating cells to answer questions, context-aware chat sidebar, and automatic error explanations or fixes. The tool aims to enhance code editing and data exploration by providing a more interactive and intuitive experience for users. Thread can be used for free with Ollama or your own API key, and it runs locally for convenience and privacy.
vertex-ai-mlops
Vertex AI is a platform for end-to-end model development. It consist of core components that make the processes of MLOps possible for design patterns of all types.
LLamaSharp
LLamaSharp is a cross-platform library to run 🦙LLaMA/LLaVA model (and others) on your local device. Based on llama.cpp, inference with LLamaSharp is efficient on both CPU and GPU. With the higher-level APIs and RAG support, it's convenient to deploy LLM (Large Language Model) in your application with LLamaSharp.
WildBench
WildBench is a tool designed for benchmarking Large Language Models (LLMs) with challenging tasks sourced from real users in the wild. It provides a platform for evaluating the performance of various models on a range of tasks. Users can easily add new models to the benchmark by following the provided guidelines. The tool supports models from Hugging Face and other APIs, allowing for comprehensive evaluation and comparison. WildBench facilitates running inference and evaluation scripts, enabling users to contribute to the benchmark and collaborate on improving model performance.
Transtation-KMP
Transtation is an easy-to-use and powerful translation software for Android/Desktop based on Kotlin Multiplatform + Compose Multiplatform. It allows users to translate one item using multiple engines simultaneously, utilize advanced Large Language Models for translation, chat with LLMs for translation, translate long text, support plugin development, image translation, and screen translation. The application is designed for Chinese users and serves as a reference for learning Jetpack Compose or Compose Multiplatform. It features Kotlin Multiplatform, Compose Multiplatform, MVVM, Kotlin Coroutine, Flow, SqlDelight, synchronized translation with multiple engines, plugin development, and makes use of Kotlin language features like lazy loading, Coroutine, sealed classes, and reflection. The application gradually adapts to Android13 with features like setting application language separately and supporting Monet icon.
upscayl
Upscayl is a free and open-source AI image upscaler that uses advanced AI algorithms to enlarge and enhance low-resolution images without losing quality. It is a cross-platform application built with the Linux-first philosophy, available on all major desktop operating systems. Upscayl utilizes Real-ESRGAN and Vulkan architecture for image enhancement, and its backend is fully open-source under the AGPLv3 license. It is important to note that a Vulkan compatible GPU is required for Upscayl to function effectively.
For similar tasks
renpy-translator
Renpy Translator is a free and open-source tool designed for translating Ren'py games. It supports various translation services such as Google, Youdao, Deepl, OpenAI, and more. The tool can automatically translate game content, extract untranslated words, replace fonts, and add language preferences. It aims to assist in game translation work by providing a user-friendly interface and supporting multiple languages. The translated contents may not be accurate due to auto-translation, so users are encouraged to review and modify translations as needed.
For similar jobs
renpy-translator
Renpy Translator is a free and open-source tool designed for translating Ren'py games. It supports various translation services such as Google, Youdao, Deepl, OpenAI, and more. The tool can automatically translate game content, extract untranslated words, replace fonts, and add language preferences. It aims to assist in game translation work by providing a user-friendly interface and supporting multiple languages. The translated contents may not be accurate due to auto-translation, so users are encouraged to review and modify translations as needed.
GalTransl
GalTransl is an automated translation tool for Galgames that combines minor innovations in several basic functions with deep utilization of GPT prompt engineering. It is used to create embedded translation patches. The core of GalTransl is a set of automated translation scripts that solve most known issues when using ChatGPT for Galgame translation and improve overall translation quality. It also integrates with other projects to streamline the patch creation process, reducing the learning curve to some extent. Interested users can more easily build machine-translated patches of a certain quality through this project and may try to efficiently build higher-quality localization patches based on this framework.
speechlib
Speechlib is a Python library that provides functionalities for speaker diarization, speaker recognition, and transcription on audio files. It offers features such as converting audio formats to WAV, converting stereo to mono, and re-encoding to 16-bit PCM. The library allows users to transcribe audio files, store transcripts, specify language and model size, and perform speaker recognition using voice samples. It supports various languages and provides performance metrics for different model sizes. Speechlib utilizes huggingface models for speaker recognition and transcription tasks.
RPGMaker_LLM_Translator
This is an offline Japanese translator for RPGMaker games based on Mtool and the Sakura model, capable of providing high-quality offline Japanese translations. It is recommended to use the Sakura-13B-Galgame translation model, and the currently supported versions are Sakura v0.8/v0.9/v0.10pre0.
Next-Gen-Dialogue
Next Gen Dialogue is a Unity dialogue plugin that combines traditional dialogue design with AI techniques. It features a visual dialogue editor, modular dialogue functions, AIGC support for generating dialogue at runtime, AIGC baking dialogue in Editor, and runtime debugging. The plugin aims to provide an experimental approach to dialogue design using large language models. Users can create dialogue trees, generate dialogue content using AI, and bake dialogue content in advance. The tool also supports localization, VITS speech synthesis, and one-click translation. Users can create dialogue by code using the DialogueSystem and DialogueTree components.
AiNiee
AiNiee is a tool focused on AI translation, capable of automatically translating RPG SLG games, Epub TXT novels, Srt Lrc subtitles, and more. It provides features for configuring AI platforms, proxies, and translation settings. Users can utilize this tool for translating game scripts, novels, and subtitles efficiently. The tool supports multiple AI platforms and offers tutorials for beginners. It also includes functionalities for extracting and translating game text, with options for customizing translation projects and managing translation tasks effectively.
VideoLingo
VideoLingo is an all-in-one video translation and localization dubbing tool designed to generate Netflix-level high-quality subtitles. It aims to eliminate stiff machine translation, multiple lines of subtitles, and can even add high-quality dubbing, allowing knowledge from around the world to be shared across language barriers. Through an intuitive Streamlit web interface, the entire process from video link to embedded high-quality bilingual subtitles and even dubbing can be completed with just two clicks, easily creating Netflix-quality localized videos. Key features and functions include using yt-dlp to download videos from Youtube links, using WhisperX for word-level timeline subtitle recognition, using NLP and GPT for subtitle segmentation based on sentence meaning, summarizing intelligent term knowledge base with GPT for context-aware translation, three-step direct translation, reflection, and free translation to eliminate strange machine translation, checking single-line subtitle length and translation quality according to Netflix standards, using GPT-SoVITS for high-quality aligned dubbing, and integrating package for one-click startup and one-click output in streamlit.
laravel-ai-translator
Laravel AI Translator is a powerful tool designed to streamline the localization process in Laravel projects. It automates the task of translating strings across multiple languages using advanced AI models like GPT-4 and Claude. The tool supports custom language styles, preserves variables and nested structures, and ensures consistent tone and style across translations. It integrates seamlessly with Laravel projects, making internationalization easier and more efficient. Users can customize translation rules, handle large language files efficiently, and validate translations for accuracy. The tool offers contextual understanding, linguistic precision, variable handling, smart length adaptation, and tone consistency for intelligent translations.



























