[Tools] SLR - Offline JP to EN Translation for RPG Maker VX, VX Ace, MV, MZ, and Pictures

I've released SLR Translator v2.0.

Besides a bunch of other changes, Introducing the SEP offline picture translation system.

It will load pictures into a SLR project as if they are text files, letting you translate the text however you want. When exporting it will automatically mask the original text and draw the new one in its place making absolutely sure the text never covers more general area than the original text.
It will also attempt to logically group the text so that font size stays consistent.
You can also override the automated system if you want to specify a different font, font size, or font color.
During tests using Qwen2.5-VL-32B-Instruct-abliterated as assistant LLM and translating with DeepSeek DSLR, SEP consistently outperformed the free picture translation services of both Google and Yandex. (For horizontal Japanese.)

Current Limitations:
Only works on PNG without encryption.
Only works on horizontal text. (Slightly tilted text technically works, but it will draw the new text horizontal and probably in a very small font size.)
 
  • Like
Reactions: account
As of v2.004 SEP now supports JPG and JPEG files, too. In case someone cares about that for some reason.
 
  • Like
Reactions: Entai2965
I've released v2.005.
New option to change how the calculation for word wrapping treats text commands.
Revamped the drawing module of SEP.
It's now much faster. During tests it was exporting pictures in under 1 second.
It now supports angled/rotated text. (But still not vertical)
Blur can no longer affect new text, because all blur boxes are applied before any text is applied.
The blur masking can now be turned off completely in the options menu.
 
I've released 2.007.
I didn't make a specific post for 2.006, since nobody really cares about SEP besides me.
But both combined I made error handling A LOT better for SEP and DSLR.
DSLR will now also log all requests and responses to the console even if it did not detect a problem.
That means whenever you see a terrible translation you will now be able to check what the actual request was, in case it wasn't actually the LLM screwing up, but DSLR making a bad request, that needs to be prevented.
(A lot happens to a cell before any of it is actually sent to the LLM to preserve scripts and stuff like that, it's very rare that the entire cell will actually be fed as is.)
 
Just some fun numbers about DSLR.

Let's say we want to translate a game with 4 million characters of text that needs translation (Including duplicates, 16 SLR batches), which would be a small to medium sized game.
And we use deepseek-chat-v3-0324 with the second fastest provider on OpenRouter Baseten (The technically fastest SambaNova is basically a scam), because we want the translation to finish as fast as possible. (There are significantly cheaper options.)
That would be running costs of $0.77/mt input and $0.77/mt output, + 5.5% tax.
A token is on average 4 characters, and we will not be using cache because it makes AI translations worse.

That means the absolute minimum amount to spend on the translation would be $1,65, assuming an optimistic 110% input / 100% output ratio, and if you assume that you do not ever have to redo any part of it due to bugs, and not a single AI response ever needs correction.

If we would have used GPT4.1 instead ($2/mt input $8/mt output + 5.5% tax).
Then (everything else being the same) that would be an absolute minimum of $10,76.

Or differently put, using GPT would be a 552% cost increase compared to using the second fastest DeepSeek provider.

If you feel like the translation is also 552% better go for it, but please note that dazedanon's translations are not in any way representative of the normal quality of GPT4.1, his stuff is not raw GPT output by any means, people don't give him enough credit.
 
  • Like
Reactions: Entai2965
I've released v2.008 v2.009
Edit: Changed how the cache file names are generated in v2.009 so they aren't this stupid long and using something like ":free" no longer makes the cache unique. If you used any version before v2.009 to make persistent cache files you will have to rename them.
The translator cache is located at www>addons>SLRtrans.
Your project cache is at www>php>cache btw.

Revamped the DSLR Cache System, it's now actually usable.

It will now create individual cache files based on LLM model. Meaning it can no longer put qwen translations into a deepseek cache, etc.
Added new option "Clean Persistent Cache".
It makes it so translations will be cached to separate "Clean" files when no Context Prompt was given.
The Persistant Cache option disables Clean Persistent Cache and still always caches everything.
Added new option Batch Cache.
Batch Cache only uses cached translations if every line in the current batch was cached in the session or in active cache files. "Clean" cache files will only be used if no Context Prompt was given.
Renamed old Cache option to Line Cache. Line Cache overwrites Batch Cache.

The Batch Cache option now means that it is incredibly unlikely that the cache will make the translation worse, but you still do not have to pay double for long repeated sections. (Which are really common in VX and VX Ace games)
And there's also no real downside to using persistent clean cache because it would have given the same response anyway.

But if you are someone who actually changes the other prompts I recommend keeping all persistent cache off.
 
Last edited:

Users who are viewing this thread

Latest profile posts

ybz378938171 wrote on Otokonoko's profile.
Hi, Otokonoko. Would you reupload the mexa links of RJ01314572, RJ01323503, RJ01314010, RJ01315317, RJ01326786, RJ01327067. Many thanks