Jump to content

Recommended Posts

Posted

Kotor AutoTranslate Tool


Translate an entire mod or KOTOR install to 80 languages using Google Translate!

This is a very powerful tool that can modify TLK strings and CExoLocStrings in GFFs in bulk quickly. Simply follow the prompts, point it to the GFF/TLK/Kotor directory/whatever and have it automatically translated to the language of your choice!

This tool can also create those bitmap 'font packs' that users have been using to play the game in non-released languages (Many thanks to Drazgar and DarthParametric for providing the insight into the TXI files). This means the in game text will show the correct characters when playing the game.

How to use:

Simply run the executable. It'll ask you many things. There are 3 actions you can do with this:

Set all dialog unskippable       sets all dialog found in dlgs, at the chosen path, to unskippable. Includes every node. Not recommended lol

Translate                                     Will translate All CExoLocStrings (localized strings) and TLK entries at the path to the language(s) of your choice

Create Fonts                               Will create fonts of the chosen languages to your current directory in a folder named after the language. Just drag and drop these files to your Override folder once it completes.

If you point PATH1 to a KOTOR install, it will ONLY patch the Override folder, the Modules folder, the rims folder (if exists), and the dialog.tlk file. This was a design choice to improve how long the patcher takes to finish. This includes any subfolders within the aforementioned folder names.

The patched files will be in the same directory as the original files with the appended language suffixed to the end of the file. For example, 'dialog_de.tlk'. You will need to rename them as their original filenames to activate them.

Supported filetypes/formats:

  • TalkTable files (TLK)
  • Any GFF file (DLG, UTC, etc)
  • TGA/TXI (non-translateable obviously)
  • Any capsule (ERF, MOD, etc)

 

DBCS languages such as Japanese/Korean/Chinese are not currently supported.

This program is in beta. Please report any bugs you encounter.

 

Source code:

https://github.com/NickHugi/PyKotor/tree/master/Tools/BatchPatcher

 

Credit:

@Cortisol for creating the PyKotor library

@DarthParametric for extensive testing and feature recommendations.

@Drazgar for providing a ton of knowledge in regard to the TXI/TGA font packs

The project would not be possible without these awesome modders.

K1-translated dialog files:

dialog_es.tlkdialog_sq.tlk dialog_af.tlk dialog_ar.tlk dialog_ay.tlkdialog_cs.tlkdialog_corsican.tlkdialog_chichewa.tlkdialog_catalan.tlkdialog_bulgarian.tlkdialog_belarusian.tlkdialog_basque.tlkdialog_azerbaijani.tlkdialog_aymara.tlkdialog_arabic.tlkdialog_albanian.tlkdialog_afrikaans.tlkdialog_da.tlk


 

  • Like 1
  • 1 year later...
Posted

There is problem occured when this tool finished, so I replaced old elements to new ones with additional "_UKRAINIAN" (because I chosed to translate into ukrainian). But then I saw that this tool made maybe identical elements that differ in the number of “additional words, for ecxample "tat_m18ab_UKRAINIAN.rim ; tat_m18ab_UKRAINIAN_UKRAINIAN.rim ;  tat_m18ab_UKRAINIAN_UKRAINIAN_UKRAINIAN.rim" and so on. So I have a question - what I must to do and how to rename this elements without repeats? Help me, please!

  • 4 weeks later...
Posted
On 8/12/2025 at 9:26 AM, Orest said:

There is problem occured when this tool finished, so I replaced old elements to new ones with additional "_UKRAINIAN" (because I chosed to translate into ukrainian). But then I saw that this tool made maybe identical elements that differ in the number of “additional words, for ecxample "tat_m18ab_UKRAINIAN.rim ; tat_m18ab_UKRAINIAN_UKRAINIAN.rim ;  tat_m18ab_UKRAINIAN_UKRAINIAN_UKRAINIAN.rim" and so on. So I have a question - what I must to do and how to rename this elements without repeats? Help me, please!

Yeah the tool will rename any file and simply add a suffix referring to the language at the end. <original file name>_<language>.ext. So when you run it twice you will receive <original file name (which now has _<language> in it)_<language>.ext

This is not the most polished tool in the world. You'll need to rename them to the original file name.
if you're on Windows I recommend https://www.advancedrenamer.com/

 

  • 6 months later...
Posted

Hi. I'm trying to translate my english game from Steam to polish language but getting error:

Could you help me?

[Note] [05:24:18] Translating CExoLocString at D:\Steam\steamapps\common\swkotor\Modules\end_m01aa_s.rim\nulltrigger.utt\LocalizedName to POLISH
[Note] [05:24:18] Translated Null Trigger --> Wyzwalacz zerowy
[Note] [05:24:18] Adding patched GFF resource 'nulltrigger.utt' to end_m01aa_s_POLISH.rim
[Note] [05:24:18] Traceback (most recent call last):
  File "batchpatcher\__main__.py", line 1219, in execute_patchloop_thread
  File "batchpatcher\__main__.py", line 1252, in do_main_patchloop
  File "batchpatcher\__main__.py", line 1271, in main_translate_loop
  File "batchpatcher\__main__.py", line 1206, in determine_input_path
  File "batchpatcher\__main__.py", line 1145, in patch_install
  File "batchpatcher\__main__.py", line 703, in patch_erf_or_rim
  File "pykotor\resource\formats\rim\rim_data.py", line 96, in set_data
  File "utility\common\more_collections.py", line 38, in append
  File "utility\common\more_collections.py", line 33, in add
  File "pykotor\resource\formats\rim\rim_data.py", line 186, in __hash__
TypeError: unhashable type: 'bytearray'

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

By using this site, you agree to our Guidelines.