| 1 |
|
|---|
| 2 |
Localization/Translation FAQ |
|---|
| 3 |
|
|---|
| 4 |
by Ran Rutenberg, Pavel Sanda, Michael Gerz |
|---|
| 5 |
|
|---|
| 6 |
February 2007 |
|---|
| 7 |
|
|---|
| 8 |
This file is mainly intended for those who have no or little experience using |
|---|
| 9 |
.po files, but want to contribute by translating the LyX interface into their |
|---|
| 10 |
native language. |
|---|
| 11 |
|
|---|
| 12 |
|
|---|
| 13 |
1) WHERE DO I START? |
|---|
| 14 |
|
|---|
| 15 |
The file you need to edit it an xx.po file where xx stands for your language's |
|---|
| 16 |
two letter code. For a list of languages codes look at: |
|---|
| 17 |
|
|---|
| 18 |
http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#Language-Codes |
|---|
| 19 |
|
|---|
| 20 |
If you want to start from scratch then you should obtain a copy of the lyx.pot |
|---|
| 21 |
and name it after your language. German would be for example de.po and Polish |
|---|
| 22 |
pl.po. This file is generated in the "po" directory of the source tree during |
|---|
| 23 |
the compilation. |
|---|
| 24 |
|
|---|
| 25 |
|
|---|
| 26 |
2) HOW DO I EDIT PO FILES? |
|---|
| 27 |
|
|---|
| 28 |
PO files can be edited with every text editor available for your system (e.g. |
|---|
| 29 |
VIM, NotePad etc.). Yet another option is to use a specialized editor for .po |
|---|
| 30 |
files. You can e.g. use the editors "poEdit" or "jEdit", Linux users can |
|---|
| 31 |
additionally use e.g. "kbabel". Using these editors usually makes things easier |
|---|
| 32 |
as they have many tools to assist the translator. |
|---|
| 33 |
|
|---|
| 34 |
|
|---|
| 35 |
3) WHAT DO I NEED TO TRANSLATE? |
|---|
| 36 |
|
|---|
| 37 |
If you are using a simple text editor you should translate the strings that |
|---|
| 38 |
appear in the msgid line and write the translation into the msgstr line. Note |
|---|
| 39 |
that a "#, fuzzy" line is just a hint for translation from compiler - in order |
|---|
| 40 |
to get the translation of the current item working you have to delete this |
|---|
| 41 |
line. It is recommended that you would take a look at another .po file - that |
|---|
| 42 |
way you can get an idea of what to do. If you are using a specialized po editor |
|---|
| 43 |
then you will see in it the untranslated strings and a place to write your |
|---|
| 44 |
translation for them. |
|---|
| 45 |
|
|---|
| 46 |
|
|---|
| 47 |
4) WHAT SHOULD I DO WITH THE '&', '|', '$, '%' {} AND [[]] CHARACTERS? |
|---|
| 48 |
|
|---|
| 49 |
'&' stands for underlined characters (shortcut) in dialog boxes. |
|---|
| 50 |
'|' stands for underlined characters in menus. |
|---|
| 51 |
|
|---|
| 52 |
These chars should be somehow used in your translations, however you'll have to |
|---|
| 53 |
invent your own working shortcuts for dialog and menu entries and resolve |
|---|
| 54 |
possible conflicts of the same shortcut chars in one menu... |
|---|
| 55 |
|
|---|
| 56 |
Note also that there are already used global shortcuts (such as p k x c m) and |
|---|
| 57 |
you should avoid to use these characters for first-level menu shortcuts. |
|---|
| 58 |
|
|---|
| 59 |
'$' and '%' are usually used as handlers for formatting or variables to be |
|---|
| 60 |
inserted into the strings. Character sequences like %1$s or %1$d MUST also |
|---|
| 61 |
appear in your translations! Please take them exactly as they are or you may |
|---|
| 62 |
experience crashes when running LyX. |
|---|
| 63 |
|
|---|
| 64 |
[[Context]] is used to distinguish otherwise identical strings, which could |
|---|
| 65 |
have different translation dependent on the Context. [[Context]] appears only |
|---|
| 66 |
in msgid string and should not be repeated in the translated version. |
|---|
| 67 |
|
|---|
| 68 |
{} refer to counters and must not be translated. Example would be: |
|---|
| 69 |
msgid "Algorithm \\arabic{theorem}" |
|---|
| 70 |
msgstr "Algoritmus \\arabic{theorem}" |
|---|
| 71 |
|
|---|
| 72 |
|
|---|
| 73 |
5) WHAT IS pocheck.pl AND HOW DO I USE IT? |
|---|
| 74 |
|
|---|
| 75 |
This is a small script located in the "po" directory of the source that helps |
|---|
| 76 |
you find common errors in your translation. In order to use this script you have |
|---|
| 77 |
to have the script language Perl installed. |
|---|
| 78 |
|
|---|
| 79 |
|
|---|
| 80 |
6) HOW CAN I TEST MY TRANSLATION? |
|---|
| 81 |
|
|---|
| 82 |
In order to test your translation you need to obtain the LyX sources (from the |
|---|
| 83 |
SVN repository) and replace the existing .po with yours. Afterwards, you should |
|---|
| 84 |
compile and install LyX (check the INSTALL file for your OS). If you don't |
|---|
| 85 |
install LyX it won't work. In order to run LyX with your translation, use the |
|---|
| 86 |
appropriate LANG variable: |
|---|
| 87 |
|
|---|
| 88 |
On Linux: LANG=xx_CC lyx |
|---|
| 89 |
On Windows, you need to change the lyx.bat file and write: set LANG=xx_CC |
|---|
| 90 |
|
|---|
| 91 |
xx stands for your language code. CC stands for your country code. So to get, |
|---|
| 92 |
e.g., Czech, the code is "cs_CZ". |
|---|
| 93 |
|
|---|
| 94 |
The most comfortable way to see your updated translation while editing, is |
|---|
| 95 |
running (in linux): |
|---|
| 96 |
1. "make xx.gmo" in the po directory to compile updated xx.po translation |
|---|
| 97 |
2. "make install" in root lyx tree to copy xx.gmo into the appropriate location |
|---|
| 98 |
(or do it by hand...) |
|---|
| 99 |
|
|---|
| 100 |
For advanced users - if you want to remerge your files against current source |
|---|
| 101 |
files run make update-po. |
|---|
| 102 |
|
|---|
| 103 |
|
|---|
| 104 |
7) HOW TO CONTRIBUTE MY WORK? |
|---|
| 105 |
|
|---|
| 106 |
Send your edited xx.po file to po-updates@lyx.org. |
|---|
| 107 |
|
|---|
| 108 |
Also you can check http://www.lyx.org/trac/browser/lyx-devel/trunk to track |
|---|
| 109 |
changes or watch updates. |
|---|
| 110 |
|
|---|
| 111 |
|
|---|
| 112 |
8) REFERENCES |
|---|
| 113 |
|
|---|
| 114 |
For some basic idea on how the translation works, you can look at |
|---|
| 115 |
|
|---|
| 116 |
http://en.wikipedia.org/wiki/Gettext |
|---|
| 117 |
|
|---|
| 118 |
For detailed reference (including full list of country and language codes), |
|---|
| 119 |
have a look at |
|---|
| 120 |
|
|---|
| 121 |
http://www.gnu.org/software/gettext/manual/gettext.html |
|---|
| 122 |
|
|---|
| 123 |
|
|---|
| 124 |
Consider subscribing to the documentation list at lyx-docs@lists.lyx.org (rather |
|---|
| 125 |
silent one) or developer's mailing list lyx-devel@lists.lyx.org (high volume). |
|---|