Localization

Hi! Are you interested in translating My Little Investigations into your native language? If so, you’ve come to the right place! This page will lead you through the process.

(Note: Please contact GabuEx here if you do want to localize My Little Investigations. He can give you the assistance that you’ll need, and you’ll also need to work with us to ultimately release your localization to the public.)

Translating the game basically requires you to translate two separate things: the main executable UI, and the case file. For the main executable UI, you can look in this folder:

Windows: C:\ProgramData\My Little Investigations\Languages
OS X: /Applications/My Little Investigations.app/Contents/Resources/Languages/

In the current version, this folder contains two files: common_en-US.dat and common_ru-RU.dat. These files contain the localizable content for the languages English (United States) and Russian (Russia). If you rename any of these files to have a .zip extension, you can extract their contents, and if you do that, you’ll find two folders: “fonts”, which contain the fonts to use in the game executable, and “XML”, which contains a file containing all of the text found in the game executable.

To localize this, you’ll want to edit XML/LocalizableContent.xml to translate all of the text from English to your native language, and then make sure that the fonts in “fonts” support the character set used. If they don’t, then you’ll need to find a font that does support your native language, put it in the “fonts” folder, and then reference that font in XML/LocalizableContent.xml.

Then, once you’ve done that, you can re-zip it back into a zip file and name it “common_(language culture name).dat” (e.g. “common_en-US.dat”) and put that file in the same folder as above. You can find your language culture name here – it’s the first column in the table. Once the file is in place, if everything is good, then you should be able to see the language show up when you select “Select Language” from the title screen, and when you do that, you can see the text in the game executable become replaced by the text you substituted.

For the case file, you’ll want to look at this file:

Windows: C:\ProgramData\My Little Investigations\Cases\9912C0C7-2C2F-53CB-856A-F82D11CFBED1.mlicase
OS X: /Applications/My Little Investigations.app/Contents/Resources/Cases/9912C0C7-2C2F-53CB-856A-F82D11CFBED1.mlicase

If you rename this as .zip and unzip it, then you’ll find a file called “languages.xml”, plus the folders “en-US” and “ru-RU”.

“languages.xml” lists the languages supported by the case, and then the folders contain the actual case data needed to run the case (images, text, audio, etc.). “languages.xml” also defines a “base” language, which is basically the fallback language that it tries to get a resource from if it doesn’t find it in the selected language folder. For example, if you have “Russian (Russia)” selected, and if the game executable wants to find “image.png”, it first looks under “ru-RU”, and then if it can’t find it there, it will fall back to “en-US”. This makes it so that localizers only have to add the content that changes for their localization – anything like BGM, sound effects, and so on that stays consistent across languages doesn’t have to be duplicated.

Here, you’ll want to a entry to languages.xml whose name is your language culture name, then create a folder with the same name, and then add your localized content there. You can look under “ru-RU” to get a general sense of how to work with this. “case.xml” contains all of the case data (and thus all of the strings that you’ll be wanting to localize), whereas “caseMetadata.xml” contains the information to be displayed when the case is selected in the executable (and thus contains a few more strings to localized). The only other things that you’ll want to localize (unless you want to add voice acting or something like that) will be a few images under SpriteSheets; the rest shouldn’t need localization.

“case.xml” is a bit difficult to read; it was not originally designed to be edited by humans, so it doesn’t contain any line breaks. We’re working on a case creator that will make this much easier to do, but until it’s done, you’ll probably want to add line breaks between “><” characters to make it easier to read. (You can do that easily by using “find and replace” to change “><” to “>\n<“.) Once you do that, then you’ll want to translate all of the English text in this file – the list of tags to look for to find strings to localize includes <RawDialog>, <RawNotificationText>, <Name>, <Description>, <PassiveAbilityDescription>, <ActiveAbilityDescription>, and <FieldAbilityName>. (If in doubt, just find a string in the game and search for it in this file – you’ll find it.)

Once you’ve done all that, you can re-zip it up into 9912C0C7-2C2F-53CB-856A-F82D11CFBED1.mlicase, replace the original with this new file, and test it out with your language culture name selected in the case executable.

As above, please contact GabuEx here if you’re interested in localizing My Little Investigations, or if you’re unclear on any of the above. He’ll be happy to help you with whatever you might need. Happy localizing!

(Note #2: At the moment, My Little Investigations does not support right-to-left languages such as Arabic and Hebrew. If you speak such a language and would like to localize MLI into your language, however, email GabuEx – he can work with you to improve MLI to support right-to-left languages. We haven’t done so yet simply because we haven’t had any languages with which to test such improvements.)