Ready to play dirty? Command your Lust Goddess now. Play Now!
x

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

natsugajeel2000

Active Member
Jan 4, 2018
787
400
204
That is not the case on my end. I can use the translated plugins.js just fine.
Remember to only export actually changed files.
Hi,

Have tried various times now, cannot find what I am doing wrong but literally only thing I know is that it's the js plugin file causing the error of syntax. Could you please share your translation zip file, just to compare please.

For this game:
 

LinkR34

Member
Dec 9, 2017
308
286
177
I've released v2.003.

Fixed the bracket duplication issue... probably.

I changed SEP to now actually tell you if it found usable files or not.
That it didn't was honestly just terrible design on my part.
View attachment 5258771
And this is how the project looks like when processing a file worked:
View attachment 5258770
Same issue, I'll leave some screenshots

1758234773482.png

1758234798091.png

1758234834139.png

1758234855641.png

Folder name: D:\Games\H Games\RPG Games\00A-NTR\Love Is Forbidden at Our Academy - Never Take Your Eyes Off Your Wife v1.1\img\pictures (translation)

1758234623795.png

1758234671095.png

1758234955630.png

1758235067128.png

1758235095447.png

1758235114864.png

1758235140082.png

Now Prepare project for batch translation:

1758235186677.png

1758235201277.png

And when I select "Batch Translation" it gets stuck here:

1758235228491.png

I hope I’ve given you all the necessary information. If you need anything else, I can send it to you. Thanks.
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,472
6,182
676
Same issue, I'll leave some screenshots

View attachment 5261714

View attachment 5261715

View attachment 5261718

View attachment 5261719

Folder name: D:\Games\H Games\RPG Games\00A-NTR\Love Is Forbidden at Our Academy - Never Take Your Eyes Off Your Wife v1.1\img\pictures (translation)

View attachment 5261703

View attachment 5261706

View attachment 5261725

View attachment 5261729

View attachment 5261731

View attachment 5261734

View attachment 5261735

Now Prepare project for batch translation:

View attachment 5261738

View attachment 5261739

And when I select "Batch Translation" it gets stuck here:

View attachment 5261742

I hope I’ve given you all the necessary information. If you need anything else, I can send it to you. Thanks.
Wait what... Why does it detect that as valid?
The PNG need to be in the folder you choose, they can't be in folders inside the folder.
Please try again with a folder that has nothing in it except png files.
 

LinkR34

Member
Dec 9, 2017
308
286
177
Wait what... Why does it detect that as valid?
The PNG need to be in the folder you choose, they can't be in folders inside the folder.
Please try again with a folder that has nothing in it except png files.
Oh, I thought it was capable of detecting images in folders inside folders

Here: This is the log, it gave me some errors:

INFORMACIÓN: no se puedo encontrar ningún archivo para los patrones dados
translates to: INFORMATION: No file could be found for the given patterns.


1758239539849.png

1758239557737.png

1758239577877.png

Yeah, they are now there:

1758239632692.png
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,472
6,182
676
Oh, I thought it was capable of detecting images in folders inside folders

Here: This is the log, it gave me some errors:

INFORMACIÓN: no se puedo encontrar ningún archivo para los patrones dados
translates to: INFORMATION: No file could be found for the given patterns.


View attachment 5261924

View attachment 5261925

View attachment 5261928

Yeah, they are now there:

View attachment 5261929
Can you pass me those files? I want to run some tests on my end, I haven't seen that weird sRGB error, yet.
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,472
6,182
676
Hi,

Have tried various times now, cannot find what I am doing wrong but literally only thing I know is that it's the js plugin file causing the error of syntax. Could you please share your translation zip file, just to compare please.

For this game:
I think I found the issue.
It's wrapping.
The error occurs after wrapping, because cell 42 in plugins gets wrapped even though it shouldn't be.

I still do not know why on earth that cell is being wrapped, but as long as you remove the wrapping from the cell it no longer crashes.
I didn't experience the error earlier because I wasn't actually wrapping the project.
 
  • Like
Reactions: natsugajeel2000

RTS23

Newbie
Apr 10, 2018
76
95
141
After checking out the code of the official Automatic Word Wrapping (didn't do it earlier because it didn't occur to me how to search for it), now I understand what I was doing wrong.

1- It's considering monospace in japanese, I was doing it in english.

2- Then I found the SLR BATCH ADD-ON OPTIONS! Maybe it's because I'm blind, but did not find the options for the word wrapping until now, again, because the add-on is named SLR Batch which sounds like a translator component and not the word wrapper, maybe it should be its own add-on? I believe it would suffice adding at the word wrapper window prompt "You can change the default and some other wrap options at Options, Add-ons/SLR Batch tab." instead of just "You can change the default wrap value in the options menu."

3- The word wrapper is considering color codes \C[x] as text to wrap, and names \N[x] with that same length as the code, which of course is not equivalent to the actual name which is replaced with and may overflow text. I added some lines (copy paste from my prototype) and tested it a bit, it seems to work fine. The only problem is that I don't see an easy way of extracting the names to build the "nameList." Hopefully, it is easy with more knowledge of RPGMaker (thought about the Actors.json, but I guess it's not that easy, specially if it's on a saved file).
You don't have permission to view the spoiler content. Log in or register now.

4- The word wrapper options, in my opinion, should be saved with the translation project instead of being a general option (general option is fine for getting it as default when starting a new project). It's not a big deal, because the options have to be modified for every game, but it would be a mess if working at multiple projects at the same time.
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,472
6,182
676
1- It's considering monospace in japanese, I was doing it in english.
Didn't I give you an example what kind of space I mean?
2- Then I found the SLR BATCH ADD-ON OPTIONS! Maybe it's because I'm blind, but did not find the options for the word wrapping until now, again, because the add-on is named SLR Batch which sounds like a translator component and not the word wrapper, maybe it should be its own add-on? I believe it would suffice adding at the word wrapper window prompt "You can change the default and some other wrap options at Options, Add-ons/SLR Batch tab." instead of just "You can change the default wrap value in the options menu."
4- The word wrapper options, in my opinion, should be saved with the translation project instead of being a general option (general option is fine for getting it as default when starting a new project). It's not a big deal, because the options have to be modified for every game, but it would be a mess if working at multiple projects at the same time.
You are literally the first person to care about those options since I've implemented them.
As a result I don't even know if they even work. lol
3- The word wrapper is considering color codes \C[x] as text to wrap, and names \N[x] with that same length as the code, which of course is not equivalent to the actual name which is replaced with and may overflow text. I added some lines (copy paste from my prototype) and tested it a bit, it seems to work fine. The only problem is that I don't see an easy way of extracting the names to build the "nameList." Hopefully, it is easy with more knowledge of RPGMaker (thought about the Actors.json, but I guess it's not that easy, specially if it's on a saved file).
The issue is that nothing is forcing a dev to use "\n[n]" as the placeholder. I've seen "n[num]", \nw[num], \w[num], \v[num], %nnum, etc..
And the location of the original variables isn't always the same either. Not just different from VX to MZ, but sometimes devs rebuild entire systems from scratch just for the hell of it.
I've always just lowballed the wrap amount so everything fits, since it's just for a MTL anyway. And of course I tend to use STINT for everything. The only true font. The only one capable of holding back the moonrune menace.
If I was manually checking/translating every line I would probably not even use the automatic wrapping and just wrap by hand.
 

RTS23

Newbie
Apr 10, 2018
76
95
141
Didn't I give you an example what kind of space I mean?
Saying "it's not characters, it's monospaces" and "iiiiiiii is much shorter than OOOOOOO" gets lost on me because the game I'm testing uses a monospace font. The length of a single monospace depends on what you take as reference. Mine was, from the game I'm testing with, 1 english character = 1 monospace, 1 japanese character = 2 monospaces. The automatic wrapper, as it's using japanese as reference, 1 japanese character = 1 monospace, 1 english character = 0.5 monospaces.

That, added to not finding the options menu with the indication of "count window length by printing 1 2 3 4 5...", and trying various things like failing to set the hasPicture and nonPicture length by writting 60/56 in the window prompt, I just assumed that you were talking about the other way around. As in, I see monospaces at the SLRTranslation but the game may use a non-monospace font, thus the word wrapper wraps for non-monospaced font. That's the reason I was trying to make a monospace wrapper, because I'm way too dumb.

About the name length values and custom symbols... what if they're customizable. Have at the word wrapper options like 3 windows to write; the invisible commands (not counted in the word wrapper), replace text command (counted taking it from an array), and the name array. That way, the user can adapt the tool to the game. For instance, in my case would be:
JavaScript:
invisibleSymbols = "\C[SHISAYE_NUMBER]";
replaceSymbols = "\N[SHISAYE_NUMBER]";
replaceText = ["","Tatsuya"]; // The first is empty because \N[] starts at 1
And just indicate at the description that SHISAYE_NUMBER can be used for iterative numbers. In the code, just replace SHISAYE_NUMBER with a [0-9]+, and escape any special character from what the user has input, e.g., \=\\, [=\[, etc. Then, put everything in the regex like in my code and that's it (as if it were so easy).
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,472
6,182
676
Saying "it's not characters, it's monospaces" and "iiiiiiii is much shorter than OOOOOOO" gets lost on me because the game I'm testing uses a monospace font.
Erm, my example was:
This special space for example " " is exactly 1 monospace wide.
About the name length values and custom symbols... what if they're customizable. Have at the word wrapper options like 3 windows to write; the invisible commands (not counted in the word wrapper), replace text command (counted taking it from an array), and the name array. That way, the user can adapt the tool to the game. For instance, in my case would be:
JavaScript:
invisibleSymbols = "\C[SHISAYE_NUMBER]";
replaceSymbols = "\N[SHISAYE_NUMBER]";
replaceText = ["","Tatsuya"]; // The first is empty because \N[] starts at 1
And just indicate at the description that SHISAYE_NUMBER can be used for iterative numbers. In the code, just replace SHISAYE_NUMBER with a [0-9]+, and escape any special character from what the user has input, e.g., \=\\, [=\[, etc. Then, put everything in the regex like in my code and that's it (as if it were so easy).
Feel free to implement that.
:Kappa:
 

RTS23

Newbie
Apr 10, 2018
76
95
141
1- I have added a "Default=" message to the SLR Batch Add-on options, since they did not have it.

2- I have it tested with the text commands I know of (\N[] and \C[]), and it works. But of course, maybe it gets broken anytime a special character is not escaped right. (EDIT: due to the limitation of 3, only the first text command allows text replacements in the text wrapping, even though the description of the new options explain things as the limitation wasn't there).

3- I found a GUI limitation that I don't know how to solve. I want the new "Replace Text Commands" option to be an ace text window like DSLR's "Context Prompt" option. Tried to copy and paste, but did not get anything working.

4- "Text Commands" could also use a window like that, making it easy to match "line command" (Text Command option) with "line text array" ("Replace Text Commands"). If it's done like that, then the description should be updated to use different lines instead of commas, and the following line should be changed.

Code:
let textCommands = thisAddon.config[thisAddonOptions.textCommands].split(','); change to
let textCommands = thisAddon.config[thisAddonOptions.textCommands].split('\n');
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,472
6,182
676
I've released v2.004.
Specifically for my "good friend" Entai, who definitely wasn't really fucking annoying about wanting it implemented.
SEP now also works with JPG and JPEG files. Not just PNG.

Since JPG is an obsolete shit lossy format, it's literally impossible to work with it without further decreasing the image quality.
Trust me I've tried.
But unless you feed it some super detailed big picture, you probably wont notice any quality loss at a glance, and I guess projects that require JPG translations will have tiny shit quality pictures anyway.

I also fixed it listing files from sub folders that wont actually be processed.
It also should no longer try to wrap that one weird custom plugin that will probably never show up in a project again.

This was 11 hours of my life I'll never get back.
not upset.gif
 
  • Like
  • Heart
Reactions: LinkR34 and Samjaza

LinkR34

Member
Dec 9, 2017
308
286
177
Can you pass me those files? I want to run some tests on my end, I haven't seen that weird sRGB error, yet.
Yeah, here they are:


Game:
 

kukuru97

Member
May 31, 2019
133
186
167
Why does something like this appear when I create a new JSON project?
When I tried it in Translator++, this didn’t happen there.

1758408318110.png
1758408349586.png
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,472
6,182
676
Why does something like this appear when I create a new JSON project?
When I tried it in Translator++, this didn’t happen there.

View attachment 5268913
View attachment 5268914
I'm starting to regret using T++'s GUI.
It's because SLR Translator is not Translator++...

If you mean the SLRContextID, that's a way of making every cell unique.
Node.js has a bit of an issue displaying duplicate entries of the same object.
If I make them all 100% unique it can never group them.

That ID is automatically removed in the last step when you export, so you can pretty much ignore it exists.
It does not need to show up in the translation. In fact if you press the Fix Cells and Check for Errors, button it will remove all context IDs from translations.

You can also disable it generating that ID in the General Options. Just toggle off "Do-duplication Parsing", but then duplicate cells will be grouped, which could cause problems like incorrect tagging when you press the "Prepare Project for Batch Translation" button.
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,472
6,182
676
1- I have added a "Default=" message to the SLR Batch Add-on options, since they did not have it.

2- I have it tested with the text commands I know of (\N[] and \C[]), and it works. But of course, maybe it gets broken anytime a special character is not escaped right. (EDIT: due to the limitation of 3, only the first text command allows text replacements in the text wrapping, even though the description of the new options explain things as the limitation wasn't there).

3- I found a GUI limitation that I don't know how to solve. I want the new "Replace Text Commands" option to be an ace text window like DSLR's "Context Prompt" option. Tried to copy and paste, but did not get anything working.

4- "Text Commands" could also use a window like that, making it easy to match "line command" (Text Command option) with "line text array" ("Replace Text Commands"). If it's done like that, then the description should be updated to use different lines instead of commas, and the following line should be changed.

Code:
let textCommands = thisAddon.config[thisAddonOptions.textCommands].split(','); change to
let textCommands = thisAddon.config[thisAddonOptions.textCommands].split('\n');
I merged your changes into the transredbatch of 2.004 and changed the options menu entries to have a multiple lines box.
You can change the size of the boxes with the px value.
That now changes their value from a string to an object. Check your code if it actually still works and change the option descriptions accordingly. The formatting seems a bit wonky.
 

RTS23

Newbie
Apr 10, 2018
76
95
141
Yep, it seems to work fine. Completely missed the empty option case and that the type of the option should have been "object" for the ace thing to work. I still find it strange the monospace thing, because it's not cutting exactly at the spacing I believe it should, but it's just nitpicking compared to before I found the SLR Batch options.

Oh, one thing. The options text window doesn't save empty lines, so they must include a comma for them to be saved, so the example should be:
JavaScript:
',
,Yuma,1234,Emi'
You don't have permission to view the spoiler content. Log in or register now.
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,472
6,182
676
Yep, it seems to work fine. Completely missed the empty option case and that the type of the option should have been "object" for the ace thing to work. I still find it strange the monospace thing, because it's not cutting exactly at the spacing I believe it should, but it's just nitpicking compared to before I found the SLR Batch options.

Oh, one thing. The options text window doesn't save empty lines, so they must include a comma for them to be saved, so the example should be:
JavaScript:
',
,Yuma,1234,Emi'
You don't have permission to view the spoiler content. Log in or register now.
Asking DeepSeek it went ballistic and put out this :KEK: :

Current Issues:
  1. Confusing descriptions - The purpose isn't immediately clear
  2. Complex formatting requirements - Hard to understand the expected input format
  3. No examples of actual usage - Difficult to visualize how they work together
JavaScript:
[thisAddonOptions.textCommands]: {
    "type": "object",
    "title": "Text Commands to Process",
    "description": `Define RPG Maker text commands that should be processed during text wrapping.

These commands will be detected and replaced with their actual text representation to calculate accurate line lengths.

• Put each command pattern on a new line
• Use SHISAYE_INT as a placeholder for numbers/variables
• Commands will be matched in the order listed

Examples:
\\\C[SHISAYE_INT]    - Color codes
\\\N[SHISAYE_INT]    - Name displays
\\\V[SHISAYE_INT]    - Variable values
\\\P[SHISAYE_INT]    - Party member names`,
    "HOOK": "thisAddon.config." + thisAddonOptions.textCommands,
    "default": "\\C[SHISAYE_INT]\n\\N[SHISAYE_INT]\n\\V[SHISAYE_INT]",
    "formType": "ace",
    "formOptions": {
        "aceTheme": "twilight",
        "height": "200px",
        "placeholder": "Enter one command pattern per line..."
    }
},
[thisAddonOptions.replaceCommands]: {
    "type": "object",
    "title": "Text Command Replacements",
    "description": `Define the actual text that should replace each command during width calculation.

• Each line corresponds to a command from the list above
• Use commas to separate replacement values for different indices
• Empty entries mean the command adds no width

Format:
Line 1: Replacements for first command (e.g., \\C[0], \\C[1], \\C[2])
Line 2: Replacements for second command (e.g., \\N[0], \\N[1], \\N[2])

Example where:
- \\C[0] has no text (empty)
- \\N[0] is empty, \\N[1] = "Hero", \\N[2] = "LongestPossibleName"
- \\V[0] = "100", \\V[1] = "VariableText"

Input:
,                           (for \\C[x])
,Hero,LongestPossibleName   (for \\N[x])
100,VariableText            (for \\V[x])`,
    "HOOK": "thisAddon.config." + thisAddonOptions.replaceCommands,
    "default": ",\n,Hero\n100",
    "formType": "ace",
    "formOptions": {
        "aceTheme": "twilight",
        "height": "200px",
        "placeholder": "Enter replacement values, one command set per line..."
    }
}
It also suggested a bunch of other stuff, but that seemed shit.

Edit:
I don't really agree with it's default, but I guess the overall explanation does seem a bit easier.
My suggestion for a default would be just handling \C[] commands and removing them. Since I guess that would be correct in the vast majority of games.

Edit2: One thing is weird. Your description for textCommands says stuff is supposed to be separated by ",", but as far as I can tell the stuff is then later divided by "\n". Did you just not adjust that description? Seems like DeepSeek did.
 
Last edited:

RTS23

Newbie
Apr 10, 2018
76
95
141
I don't understand. The code textCommands and replaceCommands is meant for the text wrapper thing for counting correctly the space, not actually replacing text.

Or are you trying to use the code so the LLM gets modified text with the names they should get in-game? If it's that what you're trying, I would advise against it because then you open a gap where the LLM may supress the name out of the translation, making a mess. Or at least, that is what I believe. In case of color codes, I would still leave them because in my context prompt I tell the LLM "\C[1] is dialog from Yuma" which I don't know how much is the LLM able to understand that, but hopefully helps.
Related to this, could be there an automated way to signal the LLM who is talking in a conversation? Sometimes I felt the LLM to botch it because of a lack of comprehension of who is talking or if it's an internal thought dialog, but it may be just the way the game is written.
Edit2: One thing is weird. Your description for textCommands says stuff is supposed to be separated by ",", but as far as I can tell the stuff is then later divided by "\n". Did you just not adjust that description? Seems like DeepSeek did.
Yeah, because that was before I thought about also doing the text box for textCommands, but I believe you did correctly change the description to different lines.

Oh, you're asking the LLM to write a description of the feature? The thing is that I tried to keep it concise while complete, though giving instructions it's not my forte.
 

Shisaye

Engaged Member
Modder
Dec 29, 2017
3,472
6,182
676
I don't understand. The code textCommands and replaceCommands is meant for the text wrapper thing for counting correctly the space, not actually replacing text.

Or are you trying to use the code so the LLM gets modified text with the names they should get in-game? If it's that what you're trying, I would advise against it because then you open a gap where the LLM may supress the name out of the translation, making a mess. Or at least, that is what I believe. In case of color codes, I would still leave them because in my context prompt I tell the LLM "\C[1] is dialog from Yuma" which I don't know how much is the LLM able to understand that, but hopefully helps.
Related to this, could be there an automated way to signal the LLM who is talking in a conversation? Sometimes I felt the LLM to botch it because of a lack of comprehension of who is talking or if it's an internal thought dialog, but it may be just the way the game is written.
What are you talking about? You wrote that feature. :KEK:
It's replacing text commands in the text used to determine break points for word wrapping, is it not?
I have no clue how your code is actually handling that, but I would hope that it works without replacing anything in the actually wrapped text.