mirror of
https://git.lyx.org/repos/lyx.git
synced 2024-11-21 17:51:03 +00:00
174 lines
6.9 KiB
Plaintext
174 lines
6.9 KiB
Plaintext
|
|
Localization/Translation FAQ
|
|
(2007-2011)
|
|
|
|
by Ran Rutenberg, Pavel Sanda, Michael Gerz
|
|
|
|
|
|
PART I - Interface translation
|
|
------------------------------
|
|
|
|
This file is mainly intended for those who have no or little experience using
|
|
.po files, but want to contribute by translating the LyX interface (i.e. menu
|
|
and dialog items, console messages) into their native language.
|
|
|
|
|
|
1) WHERE DO I START?
|
|
|
|
The file you need to edit is an xx.po file where xx stands for your language's
|
|
two letter code. For a list of languages codes look at:
|
|
|
|
http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#Language-Codes
|
|
|
|
If you want to start from scratch then you should obtain a copy of the lyx.pot
|
|
and name it after your language. German would be for example de.po and Polish
|
|
pl.po. This file is generated in the "po" directory of the source tree during
|
|
the compilation.
|
|
|
|
There are basically two source trees you can start to work with - trunk
|
|
(development version) and branch (stable version). Unless the development
|
|
version is shortly before release it is better idea to start your translating
|
|
work on the stable version. If you have no idea how to get those trees you
|
|
can follow http://www.lyx.org/HowToUseGIT page.
|
|
|
|
|
|
2) HOW DO I EDIT PO FILES?
|
|
|
|
PO files can be edited with every text editor available for your system (e.g.
|
|
VIM, NotePad etc.). Yet another option is to use a specialized editor for .po
|
|
files. You can e.g. use the editors "poEdit" or "jEdit", Linux users can
|
|
additionally use e.g. "kbabel". Using these editors usually makes things easier
|
|
as they have many tools to assist the translator.
|
|
|
|
|
|
3) WHAT DO I NEED TO TRANSLATE?
|
|
|
|
If you are using a simple text editor you should translate the strings that
|
|
appear in the msgid line and write the translation into the msgstr line. Note
|
|
that a "#, fuzzy" line is just a hint for translation from compiler - in order
|
|
to get the translation of the current item working you have to delete this
|
|
line. It is recommended that you would take a look at another .po file - that
|
|
way you can get an idea of what to do. If you are using a specialized po editor
|
|
then you will see in it the untranslated strings and a place to write your
|
|
translation for them.
|
|
|
|
|
|
4) WHAT SHOULD I DO WITH THE '&', '|', '$, '%' {} AND [[]] CHARACTERS?
|
|
|
|
'&' stands for underlined characters (shortcut) in dialog boxes.
|
|
'|' stands for underlined characters in menus.
|
|
|
|
These chars should be somehow used in your translations, however you'll have to
|
|
invent your own working shortcuts for dialog and menu entries and resolve
|
|
possible conflicts of the same shortcut chars in one menu...
|
|
|
|
Note also that there are already used global shortcuts (such as p k x c m s a)
|
|
and you should avoid to use these characters for first-level menu shortcuts.
|
|
|
|
'$' and '%' are usually used as handlers for formatting or variables to be
|
|
inserted into the strings. Character sequences like %1$s or %1$d MUST also
|
|
appear in your translations! Please take them exactly as they are or you may
|
|
experience crashes when running LyX.
|
|
|
|
[[Context]] is used to distinguish otherwise identical strings, which could
|
|
have different translation dependent on the Context. [[Context]] appears only
|
|
in msgid string and should not be repeated in the translated version.
|
|
|
|
{} refer to counters and must not be translated. Example would be:
|
|
msgid "Algorithm \\arabic{theorem}"
|
|
msgstr "Algoritmus \\arabic{theorem}"
|
|
|
|
|
|
5) WHAT IS pocheck.pl AND HOW DO I USE IT?
|
|
|
|
This is a small script located in the "po" directory of the source that helps
|
|
you find common errors in your translation. In order to use this script you have
|
|
to have the script language Perl installed.
|
|
Run ./pocheck.pl -h to see all possible switches.
|
|
|
|
|
|
6) HOW CAN I TEST MY TRANSLATION?
|
|
|
|
In order to test your translation you need to obtain the LyX sources (from the
|
|
SVN repository) and replace the existing .po with yours. Afterwards, you should
|
|
compile and install LyX (check the INSTALL file for your OS). If you don't
|
|
install LyX it won't work. In order to run LyX with your translation, use the
|
|
appropriate LANG variable:
|
|
|
|
On Linux: LANG=xx_CC lyx
|
|
On Windows, you need to change the lyx.bat file and write: set LANG=xx_CC
|
|
|
|
xx stands for your language code. CC stands for your country code. So to get,
|
|
e.g., Czech, the code is "cs_CZ".
|
|
|
|
The most comfortable way to see your updated translation while editing, is
|
|
running (in linux):
|
|
1. "make xx.gmo" in the po directory to compile updated xx.po translation
|
|
2. "make install" in root lyx tree to copy xx.gmo into the appropriate location
|
|
(or do it by hand...)
|
|
|
|
For advanced users - if you want to remerge your files against current source
|
|
files run make update-po.
|
|
|
|
|
|
7) HOW TO CONTRIBUTE MY WORK?
|
|
|
|
Send your edited xx.po file to po-updates@lyx.org.
|
|
|
|
Also you can check http://www.lyx.org/trac/browser/lyxgit/?rev=master to track
|
|
changes or watch updates.
|
|
|
|
|
|
8) SHALL ALL THE UNUSED STRINGS AT THE BOTTOM OF .PO FILE BE REMOVED,
|
|
OR SHALL THEY STAY?
|
|
|
|
As you wish. They can be reused for generating fuzzy hints when completely
|
|
new strings appear, no other function.
|
|
|
|
|
|
9) REFERENCES
|
|
|
|
For some basic idea on how the translation works, you can look at
|
|
|
|
http://en.wikipedia.org/wiki/Gettext
|
|
|
|
For detailed reference (including full list of country and language codes),
|
|
have a look at
|
|
|
|
http://www.gnu.org/software/gettext/manual/gettext.html
|
|
|
|
|
|
Consider subscribing to the documentation list at lyx-docs@lists.lyx.org (rather
|
|
silent one) or developer's mailing list lyx-devel@lists.lyx.org (high volume).
|
|
|
|
|
|
|
|
PART II - Translation of Math environments and Floats in the final output
|
|
-------------------------------------------------------------------------
|
|
|
|
As of 2.0 LyX allows automatic translation in tex/dvi/ps/pdf output for math
|
|
environment strings (and some floats) which are not automatically translated via
|
|
babel package to the localized form. For example the environment "Exercise"
|
|
becomes "Aufgabe" in the output of the documents with language set to german.
|
|
|
|
These translations are taken from the previously translated .po file before the
|
|
final major LyX release (e.g. 2.0.0) and are fixed for all next minor releases
|
|
(e.g. 2.0.x) in order to have fixed output of LyX documents.
|
|
|
|
The current translation for your language can be found in lib/layouttranslations
|
|
file. Easy way to check many of the translation is to simply load
|
|
lib/examples/localization_test.lyx in LyX and read its instructions.
|
|
|
|
The problematic strings can be then fixed in the .po file. For inspiration the
|
|
typical places in .po files, where to fix the translation, can be seen on the
|
|
following commit: http://www.lyx.org/trac/changeset/38169 .
|
|
|
|
If you need to manually regenerate layouttranslations file from .po files run
|
|
`make ../lib/layouttranslations' in po directory. Python polib library is
|
|
needed for building the output file.
|
|
|
|
Q: Running make ../lib/layouttranslations return with just saying
|
|
../lib/layouttranslations is up to date.
|
|
A: To force regerenation, use something like (XX is your language)
|
|
make -W XX.po ../lib/layouttranslations
|