X-Git-Url: https://git.lyx.org/gitweb/?a=blobdiff_plain;f=README.localization;h=2f1b3512dff75837f3fc8cf44d431b15a98c8db9;hb=df19a709008e706c40c3b81e6a42f61bbef745ef;hp=10b78cf678ffeea44763c2ae975355d03c8916d1;hpb=5abd0edd596d57fda827e1e01a28f147386d80da;p=lyx.git diff --git a/README.localization b/README.localization index 10b78cf678..2f1b3512df 100644 --- a/README.localization +++ b/README.localization @@ -1,90 +1,215 @@ Localization/Translation FAQ - + (2007-2018) + by Ran Rutenberg, Pavel Sanda, Michael Gerz - February 2007 -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 into their -native language. +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 it an xx.po file where xx stands for your language's -two letter code. German would be for example de.po and Polish pl.po. For a list -of country codes look at: +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 - http://www.gnu.org/software/gettext/manual/html_mono/gettext.html#SEC222 +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. -If you want to start from scratch than you should obtain a copy of the lyx.pot -file. +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 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 +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 your 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 your using a specialized po editor then you will -see in it the untranslated strings and a place to write your translation for -them. +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? +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... +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. -'$' 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 +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 have -to have the script language Perl installed. +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 -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. For running LyX with your translation, use the -appropriate LANG variable: +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, +xx stands for your language code. CC stands for your country code. So to get, e.g., Czech, the code is "cs_CZ". -7) REFERENCES +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 \po + Another option is to build the target "update-po" in MSVC. + + +7) HOW TO CONTRIBUTE MY WORK? + +Send your edited xx.po file to po-updates@lyx.org. + +Also you can check https://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 a basic idea of how the translation works, you can look at + + https://en.wikipedia.org/wiki/Gettext + +For detailed reference (including a full list of country and language codes), +have a look at + + https://www.gnu.org/software/gettext/manual/gettext.html + + +Consider subscribing to the documentation list, lyx-docs@lists.lyx.org (rather +silent), or the 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 the file +lib/layouttranslations. An easy way to check many of the translations is to +simply load lib/examples/localization_test.lyx in LyX and read its +instructions. -For some basic idea on how the translation works, you can look at +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: https://www.lyx.org/trac/changeset/38169. - http://en.wikipedia.org/wiki/Gettext +If you need to manually regenerate the layouttranslations file from .po files +- Under Linux: If using autotools, execute the command + `make ../lib/layouttranslations' + in the po directory. If using CMake, execute the command + `make layouttranslations1' + in the build directory. + The Python polib library is needed for building the output file. +- Under Windows: + 1. install the Python extensions "polib". To do this, + 1.1 open a commen line prompt in the folder where you find the file "pip.exe" + withing the python installation folder. + 1.2 execute the command + pip install polib + 2. close the command prompt and open the file "lyx.sln" with MSVC. You find + file in the compilation result folder you set for LyX + 3. right click in MSVC on the target "layouttranslations1" and choose "Rebuild" -For detailed reference, have a look at +Optionally - to quickly check whether some new translatable strings appeared +for your language you can always check ../lib/layouttranslations.review. - http://www.gnu.org/software/gettext/manual/gettext.html +Q: Running make ../lib/layouttranslations returns 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