Tool RPGM SLR Translator - Offline JP to EN Translation for RPG Maker VX, VX Ace, MV, and MZ

iYuma

Member
Nov 17, 2017
370
907
Quick question. Is there a way for this tool to instead use an LLM translation model from LM studio? I'm assuming I just need to configure the settings with the port and localhost stuff. As much as I like sugoi, LLM's has developed quite well now.
 

natsugajeel2000

Active Member
Jan 4, 2018
708
357
Sorry to request again, but for this DQ style game, I extracted the .rgssad file then ran the slr translator and put the files into the game folder, but it gives me this error after starting the game:
1743621967064.png
From translating it seems to have something to do with the script saying the script hung? What did I do wrong?

 

fantasmic

Member
Modder
Nov 3, 2021
437
1,074
Quick question. Is there a way for this tool to instead use an LLM translation model from LM studio? I'm assuming I just need to configure the settings with the port and localhost stuff. As much as I like sugoi, LLM's has developed quite well now.
The way I use SLR with LLM translations was to copy the sheetParser add-on from T++ to SLR (to enable export/import from spreasheets), then export as xlsx -> translate -> import from xlsx -> clear translations on red-/darkred-tagged cells. I don't translate any scripts, but those are manually done anyway.
 
  • Like
Reactions: iYuma

natsugajeel2000

Active Member
Jan 4, 2018
708
357
Anyone know what engine this is, or rather can SLR translate it: 1744891404811.png ]

Tried to unpack it doesnt work, game is DOREI QUEST from pyramidhouse:
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,298
5,879
I've released v1.128.
Added support for a newish MZ plugin that places notes stacked on top of dialogue. It's kinda hard to read with Latin characters because it's super small, but I guess still better than leaving it Japanese.
ex1.png

I've also added preview screenshots of the tool, which I should have probably done earlier, but I basically thought everyone knows what Translator++ looks like and I kept the core design largely the same. (Except I changed the color palette to no longer burn your eyes out.)
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,298
5,879
The way I use SLR with LLM translations was to copy the sheetParser add-on from T++ to SLR (to enable export/import from spreasheets), then export as xlsx -> translate -> import from xlsx -> clear translations on red-/darkred-tagged cells. I don't translate any scripts, but those are manually done anyway.
It took me till now to actually read that, I'm a bit surprised that you say that works.
I assume you mean this thing:
https://f95zone.to/threads/linguaga...-almost-everything-free-multilanguage.247102/
And I also assume you also exclude blue, aqua, yellow, and gold tags.

The issue is that my green tags are based on the current SLR escaper and the post processing making sure those specific scripts and commands aren't damaged.
Which means those tags aren't necessarily accurate for linguacha because it has to use it's own escaping and processing.

Essentially it is just luck whether or not green tagged cells are being processed correctly, or if they are being processed at all even though they would be processed correctly, because linguagacha could already have automation for some kind of plugin or script that I still tag red or yellow or not have automation for something I tag green.
 

fantasmic

Member
Modder
Nov 3, 2021
437
1,074
It took me till now to actually read that, I'm a bit surprised that you say that works.
Do you mean copying sheetParser into SLR, or the whole process with importing from sheets? I vaguely remember you mentioning that T++ add-ons should work with SLR, though it's possible that only applied way back then and T++ may have diverged too far by now to make it really reliable. Still, the sheetParser is an older add-on, so it works fine.

Yeah, that's the LinguaGacha I use. I don't exclude any tags when translating, since there's always a chance those will be relevant when editing. Even if I delete the translations in-project after importing, I've already run into situations where is was handy to have the translations available in the spreadsheet. However, I don't translate every file from the project. I translate it using SLR, save, "select all edited objects", then clear the translations and export those files. I don't save the project after clearing the translations, though it wouldn't really matter if I accidentally did since everything is saved to the cache.

So far, green-tagged cells have been handled properly (though I've mostly been doing MV/MZ games; who knows if it'll be good with the wild west of VXace). I'm not sure if it's LinguaGacha's preservations rules or DeepSeek being smart though. LG actually has support for translating .trans files directly these days, though I still prefer my spreadsheet method. It does some stuff with tagging when translating .trans files, but it's not well documented. The error reports are also less useful since the errors are arranged by file, which in this case is all the .trans file instead of individual map files. Having the errors be grouped by map makes it easier to see similarities between the errors, and that maybe it's one specific script call or map which is causing issues.
...
Oh wait, I remember I did have some VXace projects primed. For those, it handled benign and if-statement green cells properly, but bungled those using scripts. It's not really surprising, but that's why I still always run projects through SLR first and line up the LLM translation next to them.
 

SakuraKoi

Member
Oct 22, 2020
299
867
I really need to read some more into these tags of yours some of these days. There is so much to learn still... :HideThePain:

While I deliberately have made a quick and dirty LLM TL, in the future I have every intention to actual polish the works I have chosen. The TL I have done was more of a proof-of-concept for myself to see how, how well and if it works in the first place. It was already MTL translated and the game caught my eyes. I didn't even expect it to succeed so I found no harm done in releasing it.

Currently I am 'busy' (playing) and that quick & dirty TL was more of a little break that escalated. After all at the very least I should have used the wordwrap myself... but it turned out well. LinguaGacha inserted empty lines which resulted in empty text boxes once wrapped.
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,298
5,879
or DeepSeek being smart though.
Concerning DeepSeek, are you by chance using this?

It's something I've been meaning to look into, but never found the time/motivation.
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,298
5,879
I've released v1.129.
"Normal" Automatic Word Wrapping will no longer preserve empty lines at the end of a cell.
Meaning if the cell to be wrapped for some reason has a bunch of random linebreaks at the end it will no longer keep them and make empty dialogue boxes for them. I specify "normal" because I purposely did not apply it for word wrapping of scripts/plugins, just in case there's a weird one out there that needs a linebreak at the end. And this will not touch purposely empty cells by the dev.

If you use the Automatic Word Wrapping button, you can now type in "cwrapable" to copy all original text to Initial Translations if it matches the requirements for "normal" word wrapping.
The point of that is so you can wrap dialogue boxes you didn't actually translate/change, for example because you are parsing the translation project of someone else.
I've also added the option to type in "ceverything", which will copy ALL original text to Initial Translations in case you want that for whatever reason. (It will also copy scripts, red tagged cells, etc.)

Edit: I forgot to mention, "cwrapable" and "ceverything" will only process empty rows, meaning you can still use them even if you've already translated/changed stuff. It will not overwrite your changes.
 
Last edited:

fantasmic

Member
Modder
Nov 3, 2021
437
1,074
Concerning DeepSeek, are you by chance using this?

It's something I've been meaning to look into, but never found the time/motivation.
I just pay for DeepSeek. I wanted to try out a llm and I'd heard it's cheap... and it turns out if you only use it during off-peak hours to take advantage of the off-peak discount then it's really cheap. Like, I've run over 25 games through it and only spent a little over $7. Even the most expensive games are just under a dollar, and smaller ones will often be ~$0.15. Most projects are done quickly, though I have had two which took 4 hours for some reason. Dunno if it's weird code or everyone else getting in on the discount or what.
 

gantos

Member
Feb 24, 2018
104
160
Edit: To also preempt questions about smaller LLMs that could be hosted locally, they're all shit.
I've tested a bunch and I haven't found a single LLM small enough to run on "normal" hardware that doesn't make shit up.
They all suddenly put stuff in the translation that is clearly not present in the original text. They look like they are doing a better job than Sugoi because they get pronouns and grammar right more often, but who cares if the English looks good if it's not actually an accurate translation of the input?
Define 'normal hardware'?
If you have 8-12 gb of vram there are a few good models, and if you have 20+GB of vram there are lots of choices that can even start to do parsing for you.
I think this is the best one right now: lmg-anon/vntl-llama3-8b-v2-hf
That one is custom trained on VN's, surprisingly accurate as long as you feed it a glossary for names/places, and really good at handling syntax.

Also mingshiba (sugoi's author) is going to be releasing a small and a big local model for sugoi:
The 14b model supposedly only needs 10 gb of vram. Given how good the sugoi models are for their size I think they could be really good.

I think this diagram thats been floating around might be why people are trying to use SLR with linguagacha:

TranslationTooling.png
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,298
5,879
Alright so nothing about this is "sure", yet, but essentially, big change of plans.
The administrator of anime-sharing has convinced me to broaden my plans significantly.

Instead of just supporting DeepSeekV3 I will add universal support for all common LLM apis, most importantly the OpenRouter service, which means it will be possible to use SLR Translator with whatever online LLM you want and you will be able to use the free dalie requests as well.
I also have plans further down the line to add support for LLM Studio, which will allow you to use whatever locally hosted LLM you want.

I will add an options menu to specify url, api key, model, temperature, system prompt, user prompt and request size. They will all go through the SLR translation wrapper pipeline, which means all tagging and error checking will work exactly the same as it does for Sugoi except it will not use my dictionary system. (Since that is tailored towards SugoiV4.)

But I only plan to actually test stuff with the DeepSeek-chat-v3-0324 and DeepSeek-chat-v3-0324:free models, if you choose to use a different model, you're on your own.

Edit: I should mention, this will not happen overnight, adding stable support will probably take months. I don't just need to write the new code I need to run a lot of tests. These "AI" aren't particularly consistent in their responses, even if you turn the temperature way down.
 
Last edited:
  • Like
Reactions: GoldBolt

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,298
5,879
Here's a preview of the options menu (The options not shown are just the same the other engines already have.). Please tell me if you notice something critical missing.
options2.png
The current plan is to have a separate engine entry for deepseek.com, one for DeepSeek on OpenRouter, 3 blank ones for Openrouter and 3 blank ones for LLM Studio. So that you can have separate persistent cache files for different models.

Edit: Updated Screenshot with new version.
 
Last edited:
  • Heart
Reactions: fantasmic

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,298
5,879
I guess I should also address why the heck DeepSeek and why not GPT4 or whatever, and why not just stick to Sugoi in general.

Of the "big" LLMs Deepseek is by far the most realistic to run locally, not really right now, but in the future certainly more realistic than GPT.
DeepSeek is also way cheaper. Dark Beauty Reina for example is a medium to large size game and the tokens used for the prototype translation I've made for that combined to only around $0.55. (Translation quality is not representative of my newest prototype there's still a bunch of fuckups in there.)

But the big deal to me is not actually really the translation quality it's the ability to ask it to "retry".
As much as I like Sugoi, if it crashes, if it looses the plot, then all my options are to make a dictionary entry manually translating a specific bit a of text so it's never sent to Sugoi again.
Because no matter how often you ask Sugoi it's always going to make the same mistake again.
That's why I had to build that giant 9000+ entry dictionary.

But that is completely unnecessary with DeepSeek, because it understands if you're unhappy with the result, and will actually try to fix it.
So far during testing I've not run into a single cell that couldn't be translated after trying again enough times.

In those 5 games tested I actually only had a single cell so far that needed 3 total attempts.

That means I pretty much will not need to manually update DSLR, because it will just fix itself, while building persistent cache to never ask for anything twice.

All I have to do is create an algorithm to automatically detect bad translations, and I already have one built in SLR anyway. I just need to repurpose and refine it for DeepSeek, which mostly just entails making custom prompts and assistant role notes so DeepSeek understands what is wrong about it.