Developers' side bar Selected categories Edit Links |
Devel /
POFAQCategories: Development, Translation << | Page list | >>Frequently asked questions regarding localization/translation issues. Localization/Translation FAQ (2007-2018) 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 language codes look at: https://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 to start your translating work on the stable version. If you have no idea how to get those trees you can follow https://www.lyx.org/HowToUseGIT page. 2) HOW DO I EDIT PO FILES? PO files can be edited with any text editor available for your system (e.g. Vim, jEdit etc.). Yet another option is to use a specialized editor for .po files. You can e.g. use the editor "Poedit", Linux users can additionally use e.g. "Lokalize". Using these editors usually makes things easier as they have many tools to assist the translator. If you use Poedit, please uncheck in its settings the option to break lines after 80 characters. 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 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... You will be informed about conflicts in the terminal if you try to access the menu. Note that, in the case of '|', if more than one character follows, this means that LyX will try each of them in turn and use the first one that is not yet used by another entry in the menu. That way, you can define alternative shortcuts in the case one works in one context only, and another one only in another. You can use this possibility also in translations, but please use it only if no single shortcut that fits could be found. Note also that there are already used global shortcuts (such as p k x c m s a) and you should avoid using 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 translations depending on the Context. It can also be used to indicate what is substituted for a placeholder. Context? appears only in msgid string and should not be repeated in the translated version. {} refer to counters and must not be translated. An 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 need 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 git repository) and replace the existing .po with yours. Afterwards, you should compile and optionally install LyX (check the INSTALL file for your OS). Note that, as of LyX 2.1, it is not necessary anymore to install anything. In order to run LyX with your translation, change the current language in Preferences dialog or 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". Another possibility is to use the Preferences dialog to set LyX UI to use your language. Note that, as of LyX 2.2, a newly introduced language will not appear in the languages combox unless it corresponds to an entry of the lib/languages file that has a "HasGuiSupport true" property. See this file for more details. The most comfortable way to see your updated translation while editing, is running (in linux) "make xx.gmo" in the po directory to compile updated xx.po translation and then run LyX. For advanced users - if you want to remerge your files against current source: - on Linux: execute the command: make update-po - on Windows: if you compile LyX in install mode, the po files are automatically updated and output to the folder Category: Development, Translation |