Difference between revisions of "HOWTO-Translate ScummVM GUI"

From ScummVM :: Wiki
Jump to navigation Jump to search
m (Make the repository links point to the po directory.)
m (Improve a bit the page (e.g. list existing translations))
Line 1: Line 1:
This page contains instructions to translate the ScummVM GUI.
This page contains instructions to translate the ScummVM GUI.Translations from the community are welcome and should be proposed on the [http://sourceforge.net/tracker/?group_id=37116&atid=418822 patch tracker].


== Creating or Updating a translation file ==
== Creating or Updating a translation file ==
Translations can be produced with the use of the [http://www.gnu.org/software/gettext/ GNU gettext tools]. To create or edit a translation file you can for example use [http://www.gnu.org/software/hello/manual/gettext/PO-Mode.html Emacs PO-Mode] or [http://www.poedit.net/ Poedit] which are both free and available for various platforms.
Translations can be produced with the use of the [http://www.gnu.org/software/gettext/ GNU gettext tools]. To create or edit a translation file you can for example use [http://www.gnu.org/software/hello/manual/gettext/PO-Mode.html Emacs PO-Mode] or [http://www.poedit.net/ 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 [http://scummvm.svn.sourceforge.net/viewvc/scummvm/scummvm/trunk/po/ 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.
Before starting a translation it would be a good idea to check [[#Existing Translations|the list of existing translations]] 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 [http://scummvm.svn.sourceforge.net/viewvc/scummvm/scummvm/trunk/po/ 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.
For a new translation, use scummvm.pot (from [http://scummvm.svn.sourceforge.net/viewvc/scummvm/scummvm/trunk/po/ 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.
Line 16: Line 16:


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:
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:
# Get ScummVM source code if you don't already have it.
# Make your translation available
# Make your translation available
##move or copy your po file into the scummvm source code po/ directory.
##move or copy your po file into the scummvm source code po/ directory.
Line 23: Line 24:
== Proposing your translation to the team ==
== Proposing your translation to the team ==
You are welcome to propose your new translations (or an update of an existing translation) on [http://sourceforge.net/tracker/?group_id=37116&atid=418822 our patch tracker].
You are welcome to propose your new translations (or an update of an existing translation) on [http://sourceforge.net/tracker/?group_id=37116&atid=418822 our patch tracker].
== Existing translations ==
Currently the following translations are present in [http://scummvm.svn.sourceforge.net/viewvc/scummvm/scummvm/trunk/po/ our repository]. They may not be complete and improved translations for these languages are welcome.
* '''Russian''': complete
* '''French''': nearly complete (300 messages translated, 14 approximative translations, 7 messages not translated).
* '''Hungarian''': Need work (34 messages translated, 19 approximative translations, 268 messages not translated).


== Limitations ==
== Limitations ==
* 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.
* 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.
* As noted above, only single byte character encoding is supported.

Revision as of 20:35, 20 June 2010

This page contains instructions to translate the ScummVM GUI.Translations from the community are welcome and should be proposed on the patch tracker.

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 the list of existing translations 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:

  1. Get ScummVM source code if you don't already have it.
  2. Make your translation available
    1. move or copy your po file into the scummvm source code po/ directory.
    2. run "make update-translations" (you need to have perl and gettext installed to do this).
  3. 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.

Existing translations

Currently the following translations are present in our repository. They may not be complete and improved translations for these languages are welcome.

  • Russian: complete
  • French: nearly complete (300 messages translated, 14 approximative translations, 7 messages not translated).
  • Hungarian: Need work (34 messages translated, 19 approximative translations, 268 messages not translated).

Limitations

  • 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.