annotate README-i18n.txt @ 478:a9925aaf5f61 1.0.1

i18n and Russian translation
author Stefano Rivera <stefano@rivera.za.net>
date Tue, 08 Mar 2011 12:29:14 +0200
parents
children 4ea237bbcef8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
478
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
1 These are notes on internationalization and translation. They are
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
2 suitable for Unix like systems. As prerequisites you need `gettext'
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
3 being installed and (if you want to translate) some editor for
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
4 gettext catalogs like `poedit' or `virtaal'. In case you are familiar
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
5 with gettext ".po" format any text editor will do.
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
6
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
7
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
8 == How do I translate suspended-sentence into my language? ==
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
9
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
10 First of all look if there is already translation catalog for
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
11 your locale in `po/' subdirectory. The file should be named like
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
12 `<locale>.po' where <locale> is the language code for your locale.
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
13 For example, catalog for German is called `de.po'. If it is there
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
14 you can start translating.
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
15
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
16 If there is no file for your locale you need to generate it. To do
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
17 this navigate to the `po/' directory in terminal and type command
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
18
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
19 msginit -l <locale>
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
20
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
21 where <locale> is two-letters-language-code you need. Then translate
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
22 generated file using your preferred editor.
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
23
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
24 To get new translation worked you need to compile and install it by
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
25 executing `install-po.sh' script.
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
26
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
27
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
28 == How can I mark the string in code as translatable? ==
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
29
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
30 Just surround it with _( and ) like
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
31 "Hello, world" -> _("Hello, world!")
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
32
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
33 _() is a function that I placed in `gamelib/i18n.py' file, so you
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
34 might want to import it first.
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
35
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
36 from gamelib.i18n import _
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
37
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
38 And don't forget to update message catalogs with new strings. To do
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
39 that just execute `update-po.sh' script. It collects all translatable
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
40 strings from files that are specified in `po/POTFILES'. Make sure file
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
41 you worked on is in there.
a9925aaf5f61 i18n and Russian translation
Stefano Rivera <stefano@rivera.za.net>
parents:
diff changeset
42