HOWTO-Translate ScummVM GUI
This page contains instructions to translate the ScummVM GUI.
Creating or Updating a translation file
Translations can be produced with the use of the GNU gettext tools. To create or edit a translation file you can for example use Emacs PO-Mode or Poedit which are both free and available for various platforms.
Before starting a translation it would be a good idea to check if a translation for this language already exists in the the source code repository and to contact the team on the forum or IRC to know if other persons are already working on a translation for this language. That way if there is already a translation in the work you can avoid duplicate efforts and work together.
For a new translation, use scummvm.pot (from the source code repository) as a template and fill out the header. Then you just have to translate the strings and save your work in a po file.
Please note that:
- The current implementation in ScummVM supports only single byte encoding. So don't use UTF-8 encoding for the po file. Latin1 (ISO 8859-1) is fine for most western european languages.
- Some strings (e.g. button labels) contain the definition of a shortcut key using the ~ characters. For example "~S~tart" will display "Start" and use 'S' has a shortcut.
- '%' character in a string denotes an argument. For example '%d' is an integer and '%s' is a string. They need to be kept unchanged in the translated string and furthermore their order has also to be kept.
Using the translation in ScummVM
ScummVM does not use the po files directly. They need to be compiled in the application instead. To use or test your translation you will therefore need to compile ScummVM. This involves the following steps:
- Make your translation available
- Compile ScummVM (with translation support, which is the default).
Proposing your translation to the team
You are welcome to propose your new translations (or an update of an existing translation) on our patch tracker.
- Currently there is no support for locale-defined fonts. Therefore some languages will not be displayed correctly (e.g. Russian Cyrillic will be displayed with latin accentuated characters). Translations using the latin1 encoding should all work fine however.
- As noted above, only single byte character encoding is supported.