Sophie

Sophie

distrib > * > cooker > x86_64 > by-pkgid > 1035a8dcf763b5accbdb85cbcb0ff9e7 > files > 51

ggz-docs-0.0.14.1-5.noarch.rpm

How to internationalize GGZ
---------------------------

The GGZ Gaming Zone is a truly international project. Its contributors range
from America to Europe, from the frosty North to the warm South. In order to
let everyone participate as easy as possible, translation is probably among the
most important parts.

* New: The GGZ Internationalization Center!
* http://dev.ggzgamingzone.org/i18n/

Common infrastructure
---------------------
There are different strategies of how i18n is integrated into the build system.
www, community: PHP file templates
kde-client, kde-games: KDE build system already supports i18n
python: gettext and python wrapper
gtk-client, gtk-games, txt-client, utils, grubby, gnome-client: use i18n.mk
java: property files, although gettext conversion tools are available

Individual module descriptions
------------------------------
GGZ-KDE-Client: To update the message catalog, type 'make messages' in the
kde-client/ggz-kde/po directory.
This is now a po/ directory in the root directory of the CVS module. This is
used for all apps beside kggz.

If a language hasn't been created yet, you only need to copy kggz.pot to
<cc>.po, and add it to po/Makefile.am. The same applies for all other .pot
files as well.

GGZ-Gtk-Games: This is very easy. Every game and every language form a matrix.
Please have a look at po/*, it should be self-explanatory. If you write a new
game, please add it to SUBDIRS (although that may even be abolished). Languages
are then recognized automatically.
The games may have different concepts of adding gettext support - right now the
TicTacToe and Hastings games show how that can easily be done via ggzintl.c.

GGZ-Gtk-Client: This core client has its translation files under po/. The
process is nearly the same as with GGZ-Gtk-Games, but it is already sufficient
to copy a .po file in there. Very easy.

Both Gtk+ modules are now designed to not touch the translations at all, so
don't forget to run a "make messages" in their po directories (just like with
kggz).

Grubby: This is the first of our apps which uses run-time language switches,
based on the player it is talking with. It has some interesting i18n stuff in
it which might be interesting for other areas too, for example once we start to
internationalize the servers.

Documentation: Feel free to translate as you like - we will be thankful for
every bit! Especially for docs which have yet to be written ;)

GGZ Java: Since the native i18n framework for Java is using property files,
they're also used in the Java port of GGZ. There is no need to convert these
files into a different format.

Other packages: No i18n yet, but this will change. Please hold on.

New stuff
---------

Grubby is now also i18n'd, he spits out his word in whatever language you want.
Just tell him where you're from.
In order to make that happen for many people, the guru modules must be
translated, and this is not so easy - in particular because most strings are
assembled at run time.
Maybe someone should try out new internationalization techniques here. I wish
the C interface of gettext would perform perl variable substitution :)

For the next release, it is very important to have an introductory file in many
languages, preferably in HTML format, which tells all about the main
focus of GGZ, e.g. the games, the chat and so on. This could then placed
as a link on the various international news sites.

Translation table
-----------------

This table should eventually be complete.

ggz-txt:      src: en de
              man: en
grubby:       src: en de
              man: en de
              mod: en de
docs:         doc: en de
gtk-games:    src: en de es
              man: en
kde-games:    src: en de es
              man: en
gtk-client:   src: en de es
              man: en
kde-client:   src: en de es (fr)
              man: en
gnome-client: src: en de
              man: -
sdl-games:    src: en
              man: -
ggzd:         src: en
              man: en
utils:        src: en
              man: en
python:       src: en (de)
              man: -
community:    src: en (de) (sv)
java:         src: en de

Need advice?
------------

If you want to help out with translation but don't know where to start, please
ask on the GGZ developers mailing list <ggz-dev@mail.ggzgamingzone.org>.

Josef
written: 2001-06-02
updated: 2001-09-09
updated: 2002-03-20
updated: 2003-04-28
updated: 2005-01-22
updated: 2005-05-21
updated: 2006-03-06