To translate this mod you will need a passing familiarity with Norbyte's LSLib tool if you do not and wish to use one of the modding tools then you will have to work out the differences, but you are welcome to post and ask questions if needed. Note in examples below I will use German in general, but please substitute your language as needed.
Step 1: Create a new folder for your translation
Create a folder for the mod and then download the 'Small' version you wish to translate into it. Now extract it with LSLib.
- Run LSLib
- select the tab 'PAK/LSV Tools'
- Under "Extract Package' click the ... for Package Path. Select the downloaded .pak for the mod
- Under 'Destination Path' select a folder to create the new folder in and add a name for the new folder for the new translation
- click the Extract Package button
done!. The folder you picked for 'Destination Path' has the unpacked mod
Step 2: Extract Your Localization
In your game installation
e.g.
x:\SteamLibrary\steamapps\common\Baldurs Gate 3\Data
you will see a folder Localization, in that folder amongst some others there is the main localization file like English.pak, or German.pak etc. The exact name depends on the language you are playing the game in.
Using similar steps to above extract the file like German.pak into the top folder you created for the mod.
This will create in the folder a set of folders
Localization/language
e.g.
Localization/German
in that folder will be a file
language.loca
e.g
german.loca
Decode this by eunning LSLib again
- select the Localization tab
- in Input File Tab select the above .loca file
- in Output File copy the path above and paste in but replace .loca with .xml
- click Convert
You now have the extracted and decoded localization
Step 3: Update the English Changes to Your Language
Either download the FemaleXML.zip file in Files or decode the .loca file in the Localization/English folder of the mod extracted. They are essentially the same file.
Each line is like<content contentuid="h6c787c1cgc57eg4db7gb811g2765412b3513" version="3">Our pal Astarion is a vamp. One that takes chunks out of her friends.</content>
The contentuid is a unique identifier for the text, and the element data (i.e 'Our pal...') is the line shown or spoken. Exactly who says this line is not specified here though I believe the contentuid does contain that somehow.
Now edit both the extracted localization file (e.g. german.xml) and the mod version (e.g. FemaleAstarionDialogs.xml). For each line in the mod version check the contentuid, locate the equivalent line in the localization and copy that line over the mod version. Then update the line to change to a feminine gender for the character as your language requires.
Repeat a few hundred times. Potentially the more code savvy could script this!
Step 4: Rebuild the Mod
Now you have an updated file like FemaleAstarionDialogs.xml, use LSLib, Localization tab in reverse, so select this xml as the Input file, and select the original FemaleAstarionDialogs.loca as the output file and click convert. This will replace the file.
Now rename the folder Localization/English to the appropriate language name. Copy the localization file like language.loca from Step 2 into that folder (e.g. copy german.loca into Localization/German folder. Do not decode/encode just leave as a .loca file.
Now for your local testing you can just repack the mod so again use the PAK/LSV tab but now the 'Create Package' group, here for 'Source Path' select the folder containing the mod, not the xml but the folder with Localization and Mods subfolders. In Package Path select a folder and give a name for the .pak file you are creating. Click Create Package
You now have a working mod, it is just the same as my version, but you can install and test
To properly create a new mod you need to edit the files meta.lsx and info.json most importantly with a new value for UUID, and also ideally a new version number but you can use mine if you wish. You can then pak the mod and publish, or forward to me and I will publish as a translation. Probably I prefer the later, if nothing else so I can double check for issues.
Big/Small Versions
The above creates a 'Big' version as it does the step
Copy the localization file like language.loca from Step 2 into that folder (e.g. copy german.loca into Localization/German folder. Do
not decode/encode just leave as a .loca file.
(first draft)
3 comments
Thank you for your help ! I hope I will be able to bring a French translation to this mod soon x3