Jump to content



Recommended Posts

This tool is intended to ease the task of translating the Monkey Island SE.



-Monkey Island SE (got mine from Steam)

-Java 1.5+ (latest Java 6 recommended)



-copy the following 3 files to a new directory:

-- "misetran.jar" (download link at the end of this post)

-- "speech.info" from "C:\Program files\Steam\steamapps\common\the secret of monkey island special edition\audio" or similar

-- "uiText.info" from "C:\Program files\Steam\steamapps\common\the secret of monkey island special edition\localization" or similar

-run the following command:

java -jar misetran.jar speech.info uiText.info

(add paths where necessary)


-all changes are saved immediately, so you can close the tool at any time

-to test your (partial) translation copy the 2 files back overwriting the ones in the MI-SE subdirectories (always keep backups!!!) and play the game with the first non-English language selected


the translator keeps the English text, stores your translation in place of the first non-English language and uses the other languages to store it's data


You can copy your translation over any language of an existing speech.info or uiText.info using the following command:

java -cp misetran.jar Copy inFile outFile inLang outLang type

inFile: the file to copy a translation from

outFile: the file to copy a translation to

inLang: number of the language to copy from the source file (0 = english, 1-4 = the 4 translations [1 = your translation])

outLang: number of the language to overwrite in the target file (0 = English, 1-4 = the 4 translations]) [not sure if overwriting English is a good idea]

type: "speech" or "uitext" (if this is wrong the target file will be corrupted. keep backups)



this tool is released for free, but also AS IS. the translator has only been tested roughly. the copy tool is untested.





Please post feedback, questions, bug reports and so on in this thread.

Link to comment
Share on other sites

  • 4 months later...

Hi, i'm new on the forum and i'm intersted to your utility...:thmbup1:


But i'd like to know exatly how it work.


So i can made changes in the speech.info and then use your utility to bind it to uiText.info?


Also, i get some errors when run command line :

Microsoft Windows XP [Versione 5.1.2600]

© Copyright 1985-2001 Microsoft Corp.


C:\Documents and Settings\Luca\Desktop\MISE>java -jar misetran.jar speech.info u



at java.io.RandomAccessFile.readFully(Unknown Source)

at java.io.RandomAccessFile.readFully(Unknown Source)

at FileIO.readData(FileIO.java:82)

at SubsTableModel.<init>(SubsTableModel.java:15)

at Main.main(Main.java:54)


at SubsTableModel.<init>(SubsTableModel.java:17)

at Main.main(Main.java:54)



Link to comment
Share on other sites

  • 2 months later...

I currently do not plan to work on a translator for the new SE. For the first tool there was no feedback (except for maybe 2 people). If nobody cares to write a few lines about what he liked or didn't like about the tool, then I just don't have the motivation to spend my evenings coding a new tool. Also I remember only like one single instance of someone posting that he actually did a translation using the tool, so there doesn't seem to be much need for it. I still might look into it to see how easy i can adapt the code, but don't expect it anytime soon.

Link to comment
Share on other sites

Dear Koun,

I wrote you, I like your great tool.

I and my friend made full Hungarian translation of Monkey Island SE

Your translation tool was great. My work was much much easier, than I used hex editor....

I would like to translate MISE 2, but my work will be much much hard without your great tool.

Link to comment
Share on other sites

Yes, please, Koun, would you be so kind and modify your program to handle Monkey2SE texts, too? I promise to give you feedback, just please, please... :) I have a complete Monkey2 translation, but I can't insert it into the localization files with a hex editor, because some sentences are too long.

Link to comment
Share on other sites

I really really would appreciate a translation tool for MI2. The first one I didn't come around using, because the first SE contained 5 translations already, including the old German one. For the second one, I would like to restore the classic German translation of the DOS version which has been practically butchered for the SE release.

Link to comment
Share on other sites

  • 1 month later...

For those who'd like to write a translator for Mi2SE:


The fr.uitext.info's format is the following:


Byte 0-3: identifying data(?)

Byte 4-10131 index table

Byte 10131- localization data in pointer text - localization text format separated by 00 bytes.



The index table contains reversed 4 byte values (for example hex 90 27 00 00 -> hex 00 00 27 90), every value corresponds to one of the pointer texts (like MENU_PLAY_NEW_GAME) or one of the localized texts (like NOUVELLE PARTIE).

There is an offset value for every element in the index table which is i*4 where i is the element's position in the table (starting with 1). In the case of the first index of the table which points to 'MENU_PLAY_NEW_GAME' by value 00 00 27 90, the correct address would be 00 00 27 94, the second index, which is the translated text 'NOUVELLE PARTIE' 00 00 27 9F, the correct address is 00 00 27 A7.


The correct addresses of the n-th item are:


pointer text of the n-th item: (2*(n)-1)-th element of the index table+4*(2*n-1)

localized text of the n-th item: (2*n)-th element of the index table+4*(2*n)


where n starts with 1.


I hope it helps.

Link to comment
Share on other sites

The format of the fr.speech.info is the following:


byte 0-3 : identification data (?)

byte 4-279203 : index table in 32 byte records (8725 entries)

byte 279204- : localization text in pointer text - English original - translation format separated by bytes 00.


The index table's 32 byte records contain pointers to the actual speech file, and to the localization data in this file. Bytes 20-31 contain the three 4-byte reversed pointers, bytes 20-23 for the pointer text (like 'GUY_4_shore_11_1a'), bytes 24-27 for English original (like 'It doesn't seem to open.'), bytes 28-31 for the translation (like 'Ça n'a pas l'air de s'ouvrir.'). Reversed values mean, the actual value of the pointer is byte0+256*byte1+256*256*byte2+256*256*256*byte3. Pointers have an offset which is the position of the first byte in the file. So correct pointers for the n-th item are:


pointer text of the n-th item: (value from the reversed 4 bytes starting at position 4+(n-1)*32+20) + 4+(n-1)*32+20

English original of the n-th item: (value from the reversed 4 bytes starting at position 4+(n-1)*32+24) + 4+(n-1)*32+24

localized text of the n-th item: (value from the reversed 4 bytes at position 4+(n-1)*32+28) + 4+(n-1)*32+28


Where n starts with 1.


Hope it helps.

Link to comment
Share on other sites

  • 1 month later...
  • 2 weeks later...

You should edit font, because MISE 1 and MISE 2 also use png files to fonts.

I edited font files to Hungarian language support.

Hungarian language contains some extra characters. I edited some unused characters to Hungarian. I replaced characters in uitext.info and speech.info. After replace MISE 2 will display proper Hungarian characters.






Hungarian version:



Link to comment
Share on other sites

  • 1 year later...

I made a tool to translate Monkey Island SE 2 speech.info file.

It support speech.info only (at now ), but later I will add uitext.info





I made new version.

You may edit uitext.info also. I made a bug fix. Earlier version did not put 00 byte after translated text.


Link to comment
Share on other sites

  • 2 weeks later...
  • 9 months later...

In case anyone's still interested for an alternative, I'm making available the source files (python 2.7 code) and a binary version for the translation tools we used for the greek translation of MI:SE (completed) and MI2:SE (translation is work in progress).


The source files are in a git-hub repository here:



The most recent zipped package (with a binary executable) is here* (compressed with 7-zip; just un-zip to a folder and run the MISEDialogTranslate.exe):



The code is not as well written nor as organised as I'd like, but it does the job; well, at least it did for the greek translation :)

I have used the PyQt4 v4.9.2 and Python Imaging Library (PIL) libraries for Python 2.7, so you'll need to install those if you want to edit the code and run it with python.


The translation tools are aimed for the PC (Steam) versions of the MI:SE and MI2:SE (I haven't tested with the XBOX or other versions).

Note that they are mostly intented for translation teams that need to extend the font files in order to add support for (multiple) non-latin characters of their native language, while maintaining the latin characters used in-game in the original English translation)


The tools support the translation of the speech.info, uiText.info, *.hints.csv and credits.xml files.

The French language texts in the original game will be replaced with the new translation.

The main application (MISEDialogTranslate) is used to translate the dialogue text, ui text, hints and credits. From the "Tools" menu section you can launch the "Fonts Mod tool", that is used to extend the font files, and also the "Repacking tool", that can be used to recreate a valid .pak file containing the custom translation (in case you want to use that to ultimately create a binary patch). I have included some basic documentation in the readme.txt, though perhaps more details are required for the usage of some of the functionalities.


*. For the creation of the binary, I have used pyinstaller 2.x . Although the executable contains no malware, some antivirus -for example Avast!, may display warnings such as "The file prevalance is low" and run the application in sandbox mode (if you have enabled this in avast!) until you verify that you want to "continue the execution". I don't know how I can prevent this from my side (any ideas are welcome), but in any case, since the source files are availble, you can skip running the executable and try the source files directly.


The tools were tested in Windows 7. They should run in Linux distibutions too (at some point I had tested them in multiple Ubuntu installations -though not the most recent versions).


The translation tool is provided as is, and is considered to be a beta version. As I said, it works fine for the purposes of the greek translation, and I have tried to facilitate the capability to use other encodings (the default is the greek: windows-1253), but I have not tested this.


I intent to work on the code further so as to add some extra or missing functionalities, and organize it better, but I have no timeschedule for this and I have quite limited free time, so I make no promises.

Link to comment
Share on other sites

  • 2 months later...


This topic is now archived and is closed to further replies.

  • Create New...