Monkey Island SE translation tool
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.
How it work
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]
(C) 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)
This is very cool!
Please translate tool for MISE 2
Lucas changed speech.info and uitext.info. Separated them.. (en. fr. etc)
Old tool do not work
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.
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.
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.
I'd also like to ask you for this tool. I know we were ungrateful with feedback, but everyone hasn't much time. Without your help it would be extremely difficult to translate game.
..do it Koun... no question.. :thmbup1:
no response about your tool, but hundreds people use it :)
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.
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.
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.
SPEECH.info and uiTEXT.info
Is there any tool to easily edit these files to a translation?
thanks! good tool
can you edit or make font?
i try translate .. use your tool... but not work! because font
base font is not support my language
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.
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.
The speech.info and uitext.info files are different in XBOX than PC.
So you need different tool to edit them:
UItext.info and speech.info files are also supported.
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.
Thanks for making it open source Krasas. I've just had a quick look through - it will certainly be useful to other translators - good work!
|All times are GMT -4. The time now is 04:44 PM.|
Powered by vBulletin®
Copyright ©2000 - 2013, Jelsoft Enterprises Ltd.
LFNetwork, LLC ©2002-2011 - All rights reserved.