It's so inconvenient that it's hardcoded to the C\Temp\BG3Translator location. Please let me extract it to the desired location like the previous version
And since it's located right under the C drive, the translation speed is noticeably slow. This is critical
It will probably take 5 minutes to process 100 lines.
I tried to start the translation and loaded the xml file and add of course the API Key into the config. But when I would like to start the Translation i got the following messages:
❌ Failed to process file: [Errno 2] No such file or directory: 'C:\\Temp\\BG3Translator\\placeholder_formats.yaml' ❌ Please load an XML file first.
Unfortunately, I couldn't get everything working as smoothly as I wanted. You'll need to manually place the files from the ZIP into C:/Temp/BG3Translator.
The main issue is the placeholder_formats.yaml file. I intentionally left it out of the .exe so you can adjust it yourself if your language isn't translating correctly due to problematic placeholders.
This is just a temporary solution. I wasn’t able to improve the translation logic the way I had hoped, but I really wanted to get an update out that at least fixes the current issues.
Hi, every time I load and translate a xml file the "save as" button is not working. There is no reaction. Before loading the xml file and then I click in save as the windows appears.
Unfortunately, there's nothing you can do except copy the translated text from the window into a new file. I'll upload an update shortly that should fix this issue.
However, based on past experience, NexusMods will likely block the upload at first. It usually takes until tomorrow, or the day after at the latest, for it to be approved.
This is a simple change that will be included in the next update.
I had planned to release it today, theoretically everything is done. But unfortunately I can't test it today or tomorrow, so the next update will not come until Monday, assuming nothing unexpected comes up.
<?xml version="1.0" encoding="utf-8"?> <contentList> <content contentuid="h563d80aagcb20g453ag99f5ga5c793e7ed11" version="1">Jergal</content> <content contentuid="h75e2af44g23e6g492fgaaf6gc35c06684b43" version="1">Cleric of Jergal</content> <content contentuid="h21e1492dg91e7g4fb5gbe5fgcd0d41167cea" version="1">Paladin of Jergal</content> <content contentuid="h49f50887g4d62g4709gbfcagef0606b1ba91" version="1">Jergal was once the original god of death, before he ceded his position and power to the Dead Three. Despite this, Jergal's few followers remain loyal, even in undeath.</content> </contentList>
<?xml version="1.0" encoding="utf-8"?> <contentList> <content contentuid="h563d80aagcb20g453ag99f5ga5c793e7ed11" version="1"> Jergal </content> <content contentuid="h75e2af44g23e6g492fgaaf6gc35c06684b43" version="1"> 저갈의 성직자 </content> <content contentuid="h21e1492dg91e7g4fb5gbe5fgcd0d41167cea" version="1"> 저갈의 성기사 </content> <content contentuid="h49f50887g4d62g4709gbfcagef0606b1ba91" version="1"> Jergal was once the original god of death, before he ceded his position and power to the Dead Three. Despite this, Jergal's few followers remain loyal, even in undeath. </content> </contentList>
Thanks for the heads-up, that the "Save As button" doesn't work. I was actually pretty sure that I had tested this. However... I’ll fix that in the next version. (Coming very soon)
I honestly wasn’t aware of that – I assumed this was the preferred format:
<content contentuid="" version=""> Text </content>
But that’s an easy change, and it’ll be included in the next update.
To be completely honest, before working on this tool, I had never translated a mod before. So I’m still unsure about a few things that are probably considered basic knowledge, like the XML layout or whether I need to escape or unescape the XML content.
Regarding GitHub: I am planning a release there, but only once I’m truly happy with the project and my own work. Right now, I still feel a bit hesitant about making the source code public. This is my first Python project, and I don’t feel like it’s quite “ready to show off” yet. It’s not so much about perfection, but more about feeling comfortable with sharing it.
And yes, you’re absolutely right – most developers host their releases on GitHub and have users download the .exe directly from there. Since that’s not really an option for me at the moment, I’m trying to build trust by sharing the VirusTotal scan results (https://www.virustotal.com). Even though I know that might not reach everyone, it feels like a reasonable compromise for now.
And thanks for your feedback! If you have any other ideas or suggestions for improvement, feel free to let me know.
Hi! I’ll try to investigate this as early as tomorrow. In the meantime, could you let me know:
1. Which source and target languages did you choose?
2. Are you using a Free or Pro DeepL account, and does the GUI correctly display that in the bottom‑left corner? Based on the error message showing, it looks like you’re using a Free DeepL API key—can you confirm?
3. Approximately how large is your XML file? Do any individual <content> blocks exceed 30,000 characters? Unfortunately, DeepL rejects segments that long, and I haven’t implemented a guard against that yet.
If you can share the XML file with me, that would be a big help in pinpointing the issue. Thanks
I found the issue: DeepL actually distinguishes between source and target languages. More than I had expected. The source language options like EN-GB – English (British) or EN-US – English (American) don’t exist. I have to use just EN… Which I did, before I tried to improve the Code.
The source and target settings share the same language codes from the same dict. I’ll fix this properly soon; in the meantime, just set the source language to auto — then it works fine. (By the way, the same applies to Portuguese.)
And just one question.. 3. 60000 + - I hope you mean the entire file, right? Not a single <content></content> within the file. Because that would actually be a problem that I can't easily solve in the current version. But I think that's rather unlikely.
I have to admit, this tool is more of a work-in-progress than I expected — thanks for your patience while I build it.
Looks like a free API key to me. It definitely looks correct. The problem might be that the program is still trying to connect to DeepL's Pro server. Lately, I've only been testing with the Pro key — I'll check it out this evening or tomorrow
That's right, I also had problems creating the exe via pyinstaller on a Windows system. It took me several attempts to get Microsoft Defender to stop interfering.
I don't know exactly what I can do about it, but I'll look into it before the next update.
Got it. Now I have bad requst to url "deepl api". Error after 5 attempts: 400 Client Error: Bad Requset for url: "https://api-free.deepl.com/v2/translate"
si funciona solo deben esperar a que mande el mensaje final de traducción, quizás podrías agregar una ventana de procesando para evitar que aprieten varias veces el botón de "Auto Translate"
There is currently a loading bar in the GUI, but I’m considering replacing it with a popup dialog to indicate the processing status, as this might make it clearer to users that the system is still working. At least, it might be a good idea to disable the 'Auto Translate' button until the process is complete to prevent users from clicking it multiple times while waiting for the final translation message.
37 comments
It's so inconvenient that it's hardcoded to the C\Temp\BG3Translator location.
Please let me extract it to the desired location like the previous version
And since it's located right under the C drive,
the translation speed is noticeably slow.
This is critical
It will probably take 5 minutes to process 100 lines.
I tried to start the translation and loaded the xml file and add of course the API Key into the config. But when I would like to start the Translation i got the following messages:
❌ Failed to process file: [Errno 2] No such file or directory: 'C:\\Temp\\BG3Translator\\placeholder_formats.yaml'
❌ Please load an XML file first.
The main issue is the placeholder_formats.yaml file. I intentionally left it out of the .exe so you can adjust it yourself if your language isn't translating correctly due to problematic placeholders.
This is just a temporary solution. I wasn’t able to improve the translation logic the way I had hoped, but I really wanted to get an update out that at least fixes the current issues.
every time I load and translate a xml file the "save as" button is not working. There is no reaction.
Before loading the xml file and then I click in save as the windows appears.
How to solve that ?
However, based on past experience, NexusMods will likely block the upload at first. It usually takes until tomorrow, or the day after at the latest, for it to be approved.
If I copy / paste I have also the same problems as ims21c has written. The format is not correct.
(Before)
<?xml version="1.0" encoding="utf-8"?>
<contentList>
<content contentuid="h563d80aagcb20g453ag99f5ga5c793e7ed11" version="1">Jergal</content>
.......
(After)
<?xml version="1.0" encoding="utf-8"?>
<contentList>
<content contentuid="h563d80aagcb20g453ag99f5ga5c793e7ed11" version="1">
I had planned to release it today, theoretically everything is done. But
unfortunately I can't test it today or tomorrow, so the next update will
not come until Monday, assuming nothing unexpected comes up.
However, most developers use GitHub to release their code and
induce users to download the .exe from GitHub.
I am concerned that NexusMods keeps giving the image of a quarantined file,
so translators will be reluctant to use it.
1. "Save As button" doesn't work. There is no response when pressed.
It's not a big problem because I can use it by copying and pasting the result.
2. The translation result contains unwanted line breaks.
So you need to do a batch conversion with a text editor.
(English -> Korean)
Please fix it! lol
It's a good program!
----------------------------------------------------------------------------------------------------------
(Before)
<?xml version="1.0" encoding="utf-8"?>
<contentList>
<content contentuid="h563d80aagcb20g453ag99f5ga5c793e7ed11" version="1">Jergal</content>
<content contentuid="h75e2af44g23e6g492fgaaf6gc35c06684b43" version="1">Cleric of Jergal</content>
<content contentuid="h21e1492dg91e7g4fb5gbe5fgcd0d41167cea" version="1">Paladin of Jergal</content>
<content contentuid="h49f50887g4d62g4709gbfcagef0606b1ba91" version="1">Jergal was once the original god of death, before he ceded his position and power to the Dead Three. Despite this, Jergal's few followers remain loyal, even in undeath.</content>
</contentList>
----------------------------------------------------------------------------------------------------------
(After)
<?xml version="1.0" encoding="utf-8"?>
<contentList>
<content contentuid="h563d80aagcb20g453ag99f5ga5c793e7ed11" version="1">
Jergal
</content>
<content contentuid="h75e2af44g23e6g492fgaaf6gc35c06684b43" version="1">
저갈의 성직자
</content>
<content contentuid="h21e1492dg91e7g4fb5gbe5fgcd0d41167cea" version="1">
저갈의 성기사
</content>
<content contentuid="h49f50887g4d62g4709gbfcagef0606b1ba91" version="1">
Jergal was once the original god of death, before he ceded his position and power to the Dead Three. Despite this, Jergal's few followers remain loyal, even in undeath.
</content>
</contentList>
----------------------------------------------------------------------------------------------------------
I was actually pretty sure that I had tested this. However... I’ll fix that in the next version. (Coming very soon)
I honestly wasn’t aware of that – I assumed this was the preferred format:
<content contentuid="" version="">
Text
</content>
But that’s an easy change, and it’ll be included in the next update.
To be completely honest, before working on this tool, I had never translated a mod before. So I’m still unsure about a few things that are probably considered basic knowledge, like the XML layout or whether I need to escape or unescape the XML content.
Regarding GitHub: I am planning a release there, but only once I’m truly happy with the project and my own work. Right now, I still feel a bit hesitant about making the source code public. This is my first Python project, and I don’t feel like it’s quite “ready to show off” yet. It’s not so much about perfection, but more about feeling comfortable with sharing it.
And yes, you’re absolutely right – most developers host their releases on GitHub and have users download the .exe directly from there.
Since that’s not really an option for me at the moment, I’m trying to build trust by sharing the VirusTotal scan results (https://www.virustotal.com). Even though I know that might not reach everyone, it feels like a reasonable compromise for now.
And thanks for your feedback! If you have any other ideas or suggestions for improvement, feel free to let me know.
1. Which source and target languages did you choose?
2. Are you using a Free or Pro DeepL account, and does the GUI correctly display that in the bottom‑left corner?
Based on the error message showing, it looks like you’re using a Free DeepL API key—can you confirm?
3. Approximately how large is your XML file? Do any individual <content> blocks exceed 30,000 characters? Unfortunately, DeepL rejects segments that long, and I haven’t implemented a guard against that yet.
If you can share the XML file with me, that would be a big help in pinpointing the issue. Thanks
2. Free, all correctly displayed.
3. 60000 + -
The source language options like EN-GB – English (British) or EN-US – English (American) don’t exist.
I have to use just EN… Which I did, before I tried to improve the Code.
The source and target settings share the same language codes from the same dict.
I’ll fix this properly soon; in the meantime, just set the source language to auto — then it works fine.
(By the way, the same applies to Portuguese.)
And just one question..
3. 60000 + -
I hope you mean the entire file, right? Not a single <content></content> within the file.
Because that would actually be a problem that I can't easily solve in the current version. But I think that's rather unlikely.
I have to admit, this tool is more of a work-in-progress than I expected — thanks for your patience while I build it.
my key (deactivated) d05d3f9e-18b3-4a0c-8dc1-6fd423ad58ff:fx
I don't know exactly what I can do about it, but I'll look into it before the next update.