1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116
|
# Colobot data translation
The translation of Colobot level titles, level hierarchy and help files
is managed through translation files (`*.pot` and `*.po`) as those generated by
[gettext](https://www.gnu.org/software/gettext/). This is achieved by
a set of Python scripts using [polib library](https://pypi.python.org/pypi/polib).
The only requirement for generating translations is standard Python 2.7+ installation
(polib library is bundled with other script files). If you don't have Python
installed, nothing is generated and only English files are installed.
## Level scene description files
Level scene description files have English headers that are used in the
Colobot interface to describe the levels. Level scene description files
are `levels/$level/scene.txt` and translations are handled in the
level-specific `po/` directory: `levels/$levels/po/`. The `*.pot` file is the
source translation file, the `*.po` files are the translations.
## Help files
Help files are divided in two categories:
* Generic help files, about the game, the objects, the syntax, etc. These
are stored in `help/`, in 5 sub-categories: generic, bots, object, programs
and cbots.
* Level-specific help files, about the level, instructions, example
programs, etc. are stored like `levels/$type/$chapterXxx/$levelYyy/help/`.
type beeing into : missions/freemissions/exercises/challenges & battles
* some generics are also stored into `levels/other`
Help files have their source in English, always stored in the `E/`
subdirectory. Every other language directory is dynamically generated
in the build process from files in level's `po/` directory.
## Colobot syntax
Colobot parses a specific syntax to enable some formatting in the game
interface.
To ease translation, this syntax is transformed into a pseudo-HTML
syntax in the gettext files.
Here is the table of transformations and their meanings:
<table>
<thead>
<tr>
<td>Transformed label</td>
<td>Colobot native label</td>
<td>Description</td>
</tr>
</thead>
<tbody>
<tr>
<td><tt><button $buttonID/></tt></td>
<td><tt>\button $buttonID;</tt></td>
<td>Indicates a UI button. <tt>$buttonID</tt> is a number</td>
</tr>
<tr>
<td><tt><key $keyCode/></tt></td>
<td><tt>\key $keyCode;</tt></td>
<td>Indicates a keyboard key. <tt>$keyCode</tt> is a code, such as <tt>action</tt></td>
</tr>
<tr>
<td><tt><format $formatID>Formatted text</format></tt></td>
<td><tt>\$formatID;Formatted text\norm;</tt></td>
<td>Changes text formatting in the marker. <tt>$formatID</tt> can be <tt>const</tt>, <tt>type</tt>, <tt>token</tt> or <tt>key</tt>.</td>
</tr>
<tr>
<td><tt><$formatID/></tt></td>
<td><tt>\$formatID;</tt></td>
<td>Toggle text formatting. <tt>$formatID</tt> can be <tt>const</tt>, <tt>type</tt>, <tt>token</tt>, <tt>key</tt> or <tt>norm</tt>.</td>
</tr>
<tr>
<td><tt><a $link>Link text</a></tt></td>
<td><tt>\l;Link text\u $link;</tt></td>
<td>Direct hyper-link. <tt>$link</tt> can be direct or in a category (such as <tt>cbot\abstime</tt>)</td>
</tr>
<tr>
<td><tt><a $linkcat|$link>Link text</a></tt></td>
<td><tt>\l;Link text\u $linkcat\$link;</tt></td>
<td>In-category hyper-link, <tt>linkcat</tt> can only be <tt>cbot</tt>, <tt>bots</tt> or <tt>object</tt>.</td>
</tr>
<tr>
<td><tt><code>CBot code</code></tt></td>
<td><tt>\c;CBot code\n;</tt></td>
<td>Code formatting</td>
</tr>
<tr>
<td><tt><s/></tt></td>
<td><tt>\s;</tt></td>
<td>Typewriter line indicator (usually verbatim code)</td>
</tr>
<tr>
<td><tt><t/></tt></td>
<td><tt>\t;</tt></td>
<td>Title line indicator</td>
</tr>
<tr>
<td><tt><b/></tt></td>
<td><tt>\b;</tt></td>
<td>Subtitle line indicator</td>
</tr>
<tr>
<td><tt><c/></tt></td>
<td><tt>\c;</tt></td>
<td>Typewriter formatting toggle</td>
</tr>
<tr>
<td><tt><n/></tt></td>
<td><tt>\n;</tt></td>
<td>Normal formatting toggle</td>
</tbody>
</table>
|