Mercurial > boomslang
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 |
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 |