The Manifold GUI uses English language by default but will automatically a different language specified in a user-configurable localization file. The localization file lists in canonical form all strings used for captions, menus, prompts and other GUI text and specifies the text to be used for that string in the desired language.  The canonical default.ui.txt file is provided in the portable Manifold installation and is always kept up to date with any changes for the latest Manifold build.


Any user can take the canonical default.ui.txt file and provide their own translation for whatever language they like.  Example localization files created by Manifold users are French, German,  Portuguese, Russian, and Spanish  languages provided on the Manifold web site and named ui.de.txt, ui.fr.txt, ui.de.txt, ui.pt.txt, ui.ru.txt, and ui.es.txt respectively.    Download the latest ui.zip file containing French, German, Portuguese, Russian and Spanish translations from the Manifold web site.


Localization files using ANSI encoding are fine but most localization file authors will use Unicode,  UTF-8 encoding.


The default.ui.txt file provides a list of strings and English text in simple text form:


CommandFileNew=New|Create new document.

CommandFileOpen=Open...|Open existing document.

CommandFileOpenRecent=Recent Projects|Open recently opened document.

CommandFileSave=Save|Save opened document.

CommandFileSaveAs=Save As...|Save opened document with a new name.

CommandHelp=Help|Help commands.

CommandHelpAbout=About...|Display program version and copyright.




The German localization file, called ui.de.txt provides German translations of the above:


CommandFileNew=Neu|Erzeuge ein neues Dokument.

CommandFileOpen=Öffnen...|Vorhandendes Dokument öffnen.

CommandFileOpenRecent=Zuletzt benutzte Projekte|Öffne eines der zuletzt benutzten Dokumente.

CommandFileSave=Sichern|geöffnetes Dokument speichern.

CommandFileSaveAs=Sichern als...|Geöffnetes Dokument unter neuem Namen speichern.


CommandHelpAbout=Über...|Programmversion und Copyright anzeigen.




When a German localization file is placed in the Manifold installation folder, on launch Manifold will look at the Windows language setting and if Windows has been set to German, Manifold will automatically load the German localization file.  If we would like to use Windows in English but Manifold in German, we can rename the German localization file to ui.en.txt and it will be used.

Multiple Localization Files

Launching Help - About will show in the Lang entry the language Manifold recognizes as currently in use.  The Lang entry lists languages from most specific to least specific.


A typical entry for Lang for English language users of Manifold is the above, listing the most specific version, en-US, that is, English as used in the United States, with the least specific version being en, generic English.  The Lang entry specifies the postfixes following ui. that Manifold will try to use to load localization files.


More than one localization file can be provided.  If a particular string is defined in more than one file, Manifold will use the definition in the most specific language.   In the example above, Manifold will try to load two localization files, one called ui.en-US.txt and the other called ui.en.txt.    If a particular string is defined in both files Manifold will use the definition from the more specific file, ui.en-US.txt.   Fallback is automatic: if a more specific localization file does not define a string the definition from a less specific file will be used, or if there is no less specific localization file the string will appear in the default English.


The above system makes it easy to customize not only for a particular language but also for dialects of that language.   For example, we could have a ui.de.txt localization file for German and in addition a ui.de-CH.txt localization file for Swiss German.   The ui.de-CH.txt localization file need only contain those strings that are different in the Swiss version of German.


The fallback capability also makes it easier to create a new translation: we can start with a blank ui.xx.txt file and add translated strings to it from the starting ui.txt file as we do the translation.   To future-proof a translation it is a good idea to use a version control system to maintain the file so that it is easier to add / modify / delete strings as Manifold evolves and new capabilities appear.

File Locations

Localization files should go into the same folder as the executable for Manifold.   For example, to use 64-bit Manifold with a localization file put the localization file into the ~\Bin64 folder in which the 64-bit Manifold executable, called manifold.exe, is located.   To use 32-bit Manifold with a localization file put the localization file into the ~\Bin folder in which the 32-bit Manifold executable, also called manifold.exe, is located.  


Other Manifold Products

All Manifold products based on Radian, such as Manifold System, Radian Studio and Manifold Viewer,  use the same translation strings, so a localization file created for Manifold will work for Manifold Viewer and vice versa.



Where are the ui.en.txt and ui.en-US.txt localization files?  - If we launch Manifold in a Windows installation that uses US English the en-US and en postfixes are what we will see listed in Help - About, meaning those are the postfixes for localization files Manifold will look for.   In the case of English, Manifold does not install with any localization files since English language is built into Manifold.   The default.ui.txt file that may be downloaded from the Manifold web site in the portable Manifold installation is the English language file that is compiled into Manifold.    


Given that Manifold will look for ui.en-US.txt and ui.en.txt localization files we can exploit that to utilize other languages even if we keep Windows in English.     For example, if we are running Windows in English we could take the French localization file, ui.fr.txt, rename it to ui.en.txt and place it into the Manifold program folder and Manifold will launch using the French definitions that are in that file.  


Credits:  Radian user KlausDE contributed the German localization file used in this example.  Join in by adding your language and sharing the localization file with others!


See Also

Download the latest ui.zip file containing French, German, Portuguese, Russian and Spanish translations from the Manifold web site.