Tool Translator++

5.00 star(s) 1 Vote

ParaPara15

Newbie
Dec 27, 2018
17
4
Can i translate pin-point games or orc-soft?
If they use the KiriKiri engine then maybe, though in my experience it's kind of hit or miss as to whether the translated version generated will actually run, and sometimes needs some tweaking even in the cases where things mostly work.

As far as other engines... I've had good luck with LiveMaker after extracting scripts using the PyLivemaker toolset into a spreadsheet and then using Translator++'s spreadsheet function to translate it and then import the translated spreadsheet back into the game, though there are a few caveats you need to work around. (『 and 』 break the line wrapping in Translator++ for example and need to be find/replaced out into 「 and 」 or something... and also if you're using Excel you have to save as Unicode .txt rather than .csv and then find/replace tab with comma in Notepad, Notepad++, etc since saving directly as .csv screws up the encoding)

I also had some luck with TyranoBuilder games using the Tyrano Translator tool and a similar method of exporting the script to .csv and then importing the translated script back in, though I was unable to actually recompile it back into a working .exe and could only launch the translated version through Tyrano Translator's preview function. If you find some other game engine that isn't necessarily supported "out of the box" in Translator++ but that has pre-existing tools to allow you to dump and recompile scripts to/from a spreadsheet like format you might be able to get decent results with Translator++'s spreadsheet functionality similar to above.
 
Last edited:

bogdankl

Member
Aug 18, 2018
107
176
so receiving this message when trying to create a project for a VX ace game


Error opening file : undefinedTypeError [ERR_INVALID_ARG_TYPE]: The "path" argument must be of type string or an instance of Buffer or URL. Received undefined


O did decrypt it and deleted the rgss3a archive and the game runs fine so I assume I decrypted it correctly, is there any chance that you guys would know a fix or am I sol on this?
 

Snow972

Member
Dec 4, 2017
117
406
Translate rpg wolf games from previous versions:
Some rpg wolf games do not support translator and give different errors. I found a solution to fix these errors.

1-download wolf rpg editor


2- decrypt the wolf.dat file. (you can do it with ++translator or some other tool found on this site)

3-Move the decrypted "data" folder to the WRPGE English 2.24Z starter pack.
(It should be like the picture)

1617068222443.png
4- run Editor 2.24Z.exe if you get error you need to open it with local emulator (jap).
once inside it will appear as in the following image

1617068571384.png 5- Select "File" and then "Create game data."
Set as in the picture and just change where you want to save it "output"

1617068734327.png
6- We give "ok" and the game is generated with the new version compatible with ++translator. (also fixes text errors)
1617069029814.png

And that's all that has to be done so that the translator doesn't cause any problems when it comes to wanting to translate wolf RPGs.
(If you have any questions, you can message me and I'll try to help) :)
 

EddyGordo

Member
Oct 16, 2017
170
184
Hello guys, I need some help, I'm currently doing a MTL of "adventure of litis - the labyrinth of the devil and the curse of futanari"
The commonevents don't seem to be injected into the game, and I can't proceed in the game since I always get this error :

Error script.PNG

I also get Heredoc / TES issues.

TES.PNG

HEREDOC.PNG

DATA.PNG

And I'm not sure what is causing those issues, since there is for example lots of 「 and 」 that just get replaced with " and " in english, so do I have to manualy put 「 and 」instead ?
Also each dialogue finishes with \.\^ or \.\.\^ so I guess I have to do that manualy as well since Translator ++ puts spaces everywhere.
But the thing is I tried doing in on a small portions of the dialogues in commonevents, but it doesn't seem to be injected in the game for I don't what reason.
If any of you have any idea how to proceed to get a working translation, or encounted any of those errrors, I'd love some guidance :)
 

Darksshades

Member
Feb 7, 2020
132
472
This might have been answered at some point but I could not find it anywhere.

How do you change the auto-correct language when translating sentences? (red lines when you make a typo, right click to show correction options)
 

ParaPara15

Newbie
Dec 27, 2018
17
4
Does anyone know how to change the text size or make the text not exceed the text box?
View attachment 1128326
You need to wrap the line length to whatever the text box can fit. Translator++ DOES have this functionality built in, but last I checked it was... pretty bad (seems like it doesn't take line breaks into account at all...)

What I do instead is use the find/replace feature with regular expressions enabled to accomplish this. You'll need to do it in a few stages but off the top of my head, assuming a maximum line length of 95 characters, would be something like this.

1) Find: ^(.{95,}) Replace: $1#WRAP#

Explanation: Append #WRAP# to the end of all lines at the first line of a text box longer than 95 characters (necessary because in the next step we might otherwise run into lines that technically match the pattern but aren't actually long enough to require splitting)

2) Find: ^(.{80,94}) (.*)#WRAP#(\n) Replace: $1$3$2$3

Explanation: Look for those previously marked lines, and then insert a linebreak somewhere it finds a space between 80 and 94 characters. (You can tweak this range a bit if you want, I think 14 characters seems reasonable most of the time.) Note that we need to capture the "\n" linebreak character in our regular expression due to an odd quirk in Translator++ where it will always escape this in the replace sequence, and the only way I could ever find to insert it was to use a regex backreference (in this case the $3 referring to the 3rd object surrounded by parenthesis which would be that linebreak character)

3) Find: (\n.{95,}) Replace: $1#WRAP#

Explanation: Similar to step 1 except this time we're looking for lines after the first line matching this condition.

4) Find: (\n)(.{80,94}) (.*)#WRAP# Replace: $1$2$1$3

Explanation: Similar to step 2 but we got the line break from the start of the string rather than the end this time.

5) Repeat steps 3 and 4 until you get no more matches. (Or one or two matches that it fails to split repeatedly, usually a single very long exclamation or something that you can split manually if you want.) You'll probably have to do this a few times.

6) Find: #WRAP# Replace: (empty)

Explanation: Just cleaning up any leftover #WRAP# from lines that weren't able to get split or something.

And yeah this is basically from memory so I might have forgot something or made a typo but hopefully it's helpful for you. I've managed to get some decent results line wrapping so far like this. The only thing that still gives me some issues is in older RPG maker versions sometimes when there's greater than 3 lines in a text box it won't wrap correctly into a new text box.... but this is hit or miss. Sometimes duplicating the speaker tag from the first line into the 5th can help if you're having this problem (shouldn't be needed on MV)

Find: ^(.*\n)(.*\n.*\n.*\n)(.*) Replace: $1$2$1$3

though I've seen games where this doesn't work either.
 
Last edited:

D-us

New Member
Nov 12, 2019
14
4
You need to wrap the line length to whatever the text box can fit. Translator++ DOES have this functionality built in, but last I checked it was... pretty bad (seems like it doesn't take line breaks into account at all...)

What I do instead is use the find/replace feature with regular expressions enabled to accomplish this. You'll need to do it in a few stages but off the top of my head, assuming a maximum line length of 95 characters, would be something like this.

1) Find: ^(.{95,}) Replace: $1#WRAP#

Explanation: Append #WRAP# to the end of all lines at the first line of a text box longer than 95 characters (necessary because in the next step we might otherwise run into lines that technically match the pattern but aren't actually long enough to require splitting)

2) Find: ^(.{80,94}) (.*)#WRAP#(\n) Replace: $1$3$2$3

Explanation: Look for those previously marked lines, and then insert a linebreak somewhere it finds a space between 80 and 94 characters. (You can tweak this range a bit if you want, I think 14 characters seems reasonable most of the time.) Note that we need to capture the "\n" linebreak character in our regular expression due to an odd quirk in Translator++ where it will always escape this in the replace sequence, and the only way I could ever find to insert it was to use a regex backreference (in this case the $3 referring to the 3rd object surrounded by parenthesis which would be that linebreak character)

3) Find: (\n.{95,}) Replace: $1#WRAP#

Explanation: Similar to step 1 except this time we're looking for lines after the first line matching this condition.

4) Find: (\n)(.{80,94}) (.*)#WRAP# Replace: $1$2$1$3

Explanation: Similar to step 2 but we got the line break from the start of the string rather than the end this time.

5) Repeat steps 3 and 4 until you get no more matches. (Or one or two matches that it fails to split repeatedly, usually a single very long exclamation or something that you can split manually if you want.) You'll probably have to do this a few times.

6) Find: #WRAP# Replace: (empty)

Explanation: Just cleaning up any leftover #WRAP# from lines that weren't able to get split or something.

And yeah this is basically from memory so I might have forgot something or made a typo but hopefully it's helpful for you. I've managed to get some decent results line wrapping so far like this. The only thing that still gives me some issues is in older RPG maker versions sometimes when there's greater than 3 lines in a text box it won't wrap correctly into a new text box.... but this is hit or miss. Sometimes duplicating the speaker tag from the first line into the 5th can help if you're having this problem (shouldn't be needed on MV)

Find: ^(.*\n)(.*\n.*\n.*\n)(.*) Replace: $1$2$1$3

though I've seen games where this doesn't work either.
Hey friend, where is the function you mention?
I also have that problem and I want to try first with this function that is integrated in Translator ++
 

ParaPara15

Newbie
Dec 27, 2018
17
4
Hey friend, where is the function you mention?
I also have that problem and I want to try first with this function that is integrated in Translator ++
For the built in word wrapper you can right click any file and do "with all" -> "wrap texts". You can sometimes get ok results by playing with different maximum length values though I find it tends to ignore pre-existing line breaks in the text which lead to either a lot of extra unneccessary line breaks if you set a low value or missing a ton of lines that need them if you set a high value. If you just want to get the text readable with a minimum of effort you should be able to do it quickly with this tool though, even if the result isn't all that nice to look at.

If you want to go the other route I suggested you can do ctrl+f for Find or ctrl+h for Find/Replace (not sure how to get them through the GUI menus) sometimes it's useful to just use Find first to make sure your regex is matching what it's supposed to. Make sure to check the "RegExp" box.

Also though they say there's no undo for this, note that the results of a find/replace aren't actually "saved" until you save or export your project, so you can just exit out of Translator++ and reopen if you do something bad. (But make sure to do one export first after MTLing everything to save that.)
 
  • Like
Reactions: D-us

EmpsChsn

Newbie
Aug 12, 2017
29
15
Alright, maybe someone can point me in the right direction. I discovered this tool a couple of days ago and am trying to put together a rough translation of one of the beelzebub games. However, the moment I try to launch the kirikiri game, it pops up with this error.

image_2021-04-10_112629.png

I understand that there's code that gets borked when you just blanket machine translate everything, however there is no observable code that I can see in the lines I have translated.

image_2021-04-10_112834.png

I have tried looking for the file mentioned in the error itself to see if it references to anything in the translated section, but the .ks file in the error doesn't exist. Does anyone have any ideas or can point out my mistake? The parsing/injection takes too long for me to reasonably bang my head against the wall until I break through.
 

D-us

New Member
Nov 12, 2019
14
4
For the built in word wrapper you can right click any file and do "with all" -> "wrap texts". You can sometimes get ok results by playing with different maximum length values though I find it tends to ignore pre-existing line breaks in the text which lead to either a lot of extra unneccessary line breaks if you set a low value or missing a ton of lines that need them if you set a high value. If you just want to get the text readable with a minimum of effort you should be able to do it quickly with this tool though, even if the result isn't all that nice to look at.

If you want to go the other route I suggested you can do ctrl+f for Find or ctrl+h for Find/Replace (not sure how to get them through the GUI menus) sometimes it's useful to just use Find first to make sure your regex is matching what it's supposed to. Make sure to check the "RegExp" box.

Also though they say there's no undo for this, note that the results of a find/replace aren't actually "saved" until you save or export your project, so you can just exit out of Translator++ and reopen if you do something bad. (But make sure to do one export first after MTLing everything to save that.)
Thanks for the information, I will try later and then I will tell you how it went
 

megalol

Engaged Member
Modder
Compressor
Apr 3, 2017
2,441
10,512
Alright, maybe someone can point me in the right direction. I discovered this tool a couple of days ago and am trying to put together a rough translation of one of the beelzebub games. However, the moment I try to launch the kirikiri game, it pops up with this error.

View attachment 1135070

I understand that there's code that gets borked when you just blanket machine translate everything, however there is no observable code that I can see in the lines I have translated.

View attachment 1135071

I have tried looking for the file mentioned in the error itself to see if it references to anything in the translated section, but the .ks file in the error doesn't exist. Does anyone have any ideas or can point out my mistake? The parsing/injection takes too long for me to reasonably bang my head against the wall until I break through.
Translator++ converts .ks files to Shift-JIS encoding from UCS-2 LE BOM after auto translation what makes game crashing.
U should convert back to UCS-2 LE BOM encoding all *.ks files in Notepad++ but after translating and injecting text.
OR do it as shown on my attached screenshot (Translator++ breaks some game system files and u should copy original ones in system2 folder and tweak KagParser settings to force it write in UCS-2 LE BOM encoding at translation injecting)
1618425006843.png
P.S. But it wouldn't fix all problems but just make the game start. U will get after start new errors. For example this prase:
【鳴】「[落]はい、入れてください」[待]
program converts to that (and it will make game crash):
[Ring] "
[落]
Yes, please put it in
[待]
 
Last edited:
  • Like
Reactions: EmpsChsn

EmpsChsn

Newbie
Aug 12, 2017
29
15
Translator++ converts .ks files to Shift-JIS encoding from UCS-2 LE BOM after auto translation what makes game crashing.
U should convert back to UCS-2 LE BOM encoding all *.ks files in Notepad++ but after translating and injecting text.
OR do it as shown on my attached screenshot (Translator++ breaks some game system files and u should copy original ones in system2 folder and tweak KagParser settings to force it write in UCS-2 LE BOM encoding at translation injecting)
View attachment 1142370
P.S. But it wouldn't fix all problems but just make the game start. U will get after start new errors. For example this prase:
【鳴】「[落]はい、入れてください」[待]
program converts to that (and it will make game crash):
[Ring] "
[落]
Yes, please put it in
[待]
Thank you for the help. I'll give that a shot and fiddle around with it and let you know how it goes.

Edit: Works like a charm. As you said, there are still issues as queues to sound effects and the like need to remain untranslated or else an error will pop up, but it looks like I might be able to make the game interpretable for the most part.

Thanks again.
 
Last edited:

megalol

Engaged Member
Modder
Compressor
Apr 3, 2017
2,441
10,512
Thank you for the help. I'll give that a shot and fiddle around with it and let you know how it goes.

Edit: Works like a charm. As you said, there are still issues as queues to sound effects and the like need to remain untranslated or else an error will pop up, but it looks like I might be able to make the game interpretable for the most part.

Thanks again.
Good, glad to help. Btw new version is out with updated KagParser plugin. I hope somebody will post it here so we can test.
Ver. 3.4.15
Changelog
  • Update : Better code escaping regexp for RPG Maker
  • Fix : Google Cloud unable to translate other than Japanese
  • Update : Google cloud translator engine to 1.4
  • Fix : Sometime when closing the option windows the configuration is not saved
  • Fix : Better performance for addon loader
  • Fix : Unable to resize column via context menu
  • Fix : RenParser can now export selected files
  • Fix : replaces fs with graceful-fs to avoid error when opening or writing a lot of files at once.
  • Fix : Renpy updated to ver 0.6, more stable file handling, parsing & writing progress now displayed on the progress window.
  • Fix : KAG Parser, added new alternative parser, supposed to be more accurate.
  • Fix : KAG Parser now able to export files partially
  • Update : KAGParser ver.0.6
  • Fix : Cleaning up SourceMaps that causes warnings on developer console
 

breakingbasha

Member
Modder
Dec 28, 2019
250
1,588
can anyone tell me whats the deal with main.json/ TES ? When i extracted a rgss3a and opened in translator a lot of dialogue was sepereate to the usual maps and co and extracted into a main.json file . Where do i have to put that so the game works?
 
5.00 star(s) 1 Vote