Hm ... and does English.xml contain any header field with a language tag that has 'English' ?
If that was the case it could be the 'selector' for language files. But it could as well be the selector for the file names which are read.

No matter what it is, you'd need to find out how other languages are written.

I just looked into an english.xml (written with all small letters) and it is not even a valid XML by itself because it does not contain any headers.
So I'd guess if you wanted to provide translations, you will use files like french.xml, german.xml, etc. and you can put them all into a single package which is unpacked and only the file named after the current language is chosen among all files.

All requires testing though and you have to find out how different languages are named, because for example german might be named 'german.xml' but it might as well be 'deutsch.xml', french might be 'french.xml' but it could as well be 'francais.xml' and so on. (Just to be sure.)

The fact that it works to use deltas makes things easier for you.

You can provide all languages in a single package, make a copy of your english.xml to french.xml etc. and request the help of other people with translations.
For the beginning, users of localized versions at least have english displayed instead of nothing at all for your new stuff.
(Well, if you did the 'handle adding stuff' for your translated string keys etc., like the names of all the new spells, the new spell books, etc.)


You know that you can use <!-- --> comments in XML, so you might want to note the key from the translated string keys, or the original names - for the renamed talents - and maybe some description in comments above the lines. Makes translations easier I'd guess.


I just thought of one thing: the language file says value="English" and the file is named 'english.xml'. This is no problem ... on Windows, on a Linux (or OSX) file system, letter case DOES matter. So if the value from language.lsx is taken as the file name selector, you'd have to experiment I guess, Larian will not tell you if they simply take this value and attach '.xml' to it to get the file name or if they use something like "strtolower( $xmlValue ) + '.xml'".
This is only important for Mac and Linux because those have case sensitive file systems (I'm not a 100% sure about OSX but since its origin is some BSD, I suppose it inherited that.)

Last edited by FrauBlake; 06/01/17 08:03 AM.