LameXP/doc/Translate.html

87 lines
13 KiB
HTML

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<title>Howto: Translate LameXP v4.xx</title>
<meta http-equiv="Content-type" content="text/html;charset=UTF-8">
<style type="text/css">
<!--
a { text-decoration:none; color:#0000EE; transition:color 0.5s ease; -moz-transition:background-color 0.5s ease; -o-transition:background-color 0.5s ease; -webkit-transition:background-color 0.5s ease; }
a:hover { background-color: #CCCCCC; }
a:active { color: #551A8B; }
a:visited { color: #0000EE; }
-->
</style>
</head>
<body>
<!-- ============================= -->
<h1>Howto: Translate LameXP</h1>
<p><b>If you are willing to contribute a new LameXP v4.xx translation or improve an existing translation, then this guide will help you to do so :-)</b></p>
<br>
<img src="http://lamexp.sourceforge.net/lamexp.png" alt="Screenshot"><br>
<br>
<!-- ============================= -->
<h3>Introduction:</h3>
<p>LameXP v4.xx is a complete re-write of LameXP. This time LameXP is developed in C++ and it is based on the <a href="https://www.qt.io/" target="_blank"><b>Qt</b></a> cross-platform application framework. The good news for translators is that Qt provides <i>full Unicode support</i>, which was also one of the main reasons for the re-write. Consequently there will be <b>no</b> more headache with different Codepages! Furthermore the Qt framework provides a sophisticated <i>translation system</i>, which allows for easy internationalization and localization. There even is an easy-to-use <i>graphical tool</i> for translating Qt application, which is called <b>Qt Linguist</b>. Consequently, before you start translating, you should make yourself familiar with the <i>Qt Linguist</i> application. As a translator, having a quick look at the <a href="http://doc.qt.io/qt-4.8/linguist-translators.html" target="_blank"><i>Qt Linguist manual for translators</i></a> should be sufficient.</p>
<br>
<!-- ============================= -->
<h3>Prerequisites:</h3>
<p>You can obtain the <i>Qt Linguist</i> application as a part of the <b>Qt</b> cross-platform application framework, which is available as a <i>free</i> download from the <a href="cross-platform application framework" target="_blank">Qt Project web-site</a>. We recommend choosing the "Qt libraries 4.8.6 for Windows (VS 2010)" download. Note that, in order to find the desired download link, you may need to click on the "Show Downloads" button first and then scroll down. In any case, the <i>free</i> "OpenSource" edition of Qt is perfectly sufficient, i.e. you do <b>not</b> need to buy the <i>commercial</i> edition of Qt offered by Digia Inc.</p>
<p>Alternatively, if you do <b>not</b> want to download and install the <i>complete</i> Qt framework, you can download Qt Linguist (and some other Qt-related tools) as a <i>stand-alone</i> package at <a href="http://sourceforge.net/projects/lamexp/files/Miscellaneous/Qt%20Linguist/" target="_blank"><b>this</b></a> location. This stand-alone version will work "out of the box" <i>without</i> installation.</p>
<br>
<!-- ============================= -->
<h3>Editing the language file:</h3>
<p>LameXP v4.xx translations are created as TS (translation) files, which can be edited using the <i>Qt Linguist</i> application. For new translations an empty TS file ("Blank.ts") is provided in the LameXP Git repository. When you open the empty TS file for the first time, Qt Linguist will ask for some basic settings. Here you must keep the "Source language" options at "English" and "Any Country". Change the "Target language" options to whatever language (region) you are going to translate to. Once you have edited all (or some) text strings, you can save your work to a TS file again. It is recommended to save your work to "LameXP_XX.ts", where <i>XX</i> should be replaced with the suitable upper-case <a href="http://www.loc.gov/standards/iso639-2/php/code_list.php" target="_blank">ISO 639-1</a> Code for the representation of names of languages (for example the German translation is saved as "LameXP_DE.ts", because the corresponding ISO 639-1 code is DE). You can re-open your TS file at any time in order to continue with your work. In case you want to improve an existing LameXP translation, simply download the corresponding TS file from the LameXP Git repository and edit it using the Qt Linguist tool.</p>
<p>The latest translation (TS) files can always be found in the LameXP Git repository at:</p>
<ul>
<li><a href="https://github.com/lordmulder/LameXP/tree/master/etc/Translation" target="_blank">https://github.com/lordmulder/LameXP/tree/master/etc/Translation</a>
<li><a href="https://bitbucket.org/muldersoft/lamexp/src/master/etc/Translation" target="_blank">https://bitbucket.org/muldersoft/lamexp/src/master/etc/Translation</a>
</ul>
<p>After you have chosen a file from the directory tree, by <i>left</i>-click, you can download the file by <i>right</i>-clicking on <b>Raw</b> button/link (in the upper right corner) an then choosing "Save Link As..." from the context menu.<br><img style="margin-top:0.25em" src="http://i.imgur.com/FYeggvn.png" alt="Raw Button"></p>
<p>(As many people seem to have problems here: Please be sure to download the <i>actual file content</i>, by using the "Raw" button. Please do <i>not</i> save the page as shown in the browser, as that would only save the HTML preview of the file rather than the file itself! Also, in the directory tree view, do <i>not</i> right-click &#43; "Save Link As..." on one of the TS files, as that would only save the HTML preview. Instead, <i>left</i>-click on the link to open the TS file in the browser. <i>Then</i> use the "Raw" button as described above!)</p>
<p style="border-width:2px;border-style:solid;border-color:darkred;margin-top:2em"><font color="darkred"><b>IMPORTANT:</b> Before you start to create a new translation, <i>always</i> make sure you downloaded the <u>latest</u> "Blank.ts" file from the LameXP Git repository. Also, before you start editing or updating an <i>existing</i> translation, make sure you downloaded the <u>latest</u> TS file from the LameXP Git repository. <u>Never</u> do any translations based on some working copies that you kept on your local system! The translation files (TS) in the Git repository will be updated <i>continuously</i>, as the development proceeds. We can <b>not</b> accept translations based on an <i>outdated</i> TS file!</font></p>
<br>
<!-- ============================= -->
<h3>Language file editing rules:</h3>
Only language files that have been edited according to the following rules can be accepted:
<ul>
<li>The translated string should <i>not</i> be significant longer (or shorter) than the original string, so the layout isn't destroyed.
<li>Strings don't have to be translated literally, as long as the original meaning is retained.
<li>Do <i>not</i> use any HTML-style tags, like <tt>&lt;b&gt;&hellip;&lt;/b&gt;</tt>, <tt>&lt;i&gt;&hellip;&lt;/i&gt;</tt> or <tt>&lt;u&gt;&hellip;&lt;/u&gt;</tt> in your translated text, except when such tags are already present in the original string.
<li>Take care of the C-style <a href="http://en.wikipedia.org/wiki/Printf" target="_blank">printf()</a> syntax: All the <tt>%s</tt> and <tt>%d</tt> placeholders <i>must</i> remain in the translated strings, at the appropriate position.
<li>All Qt-style place markers, like <tt>%1</tt>, <tt>%2</tt> and so on, <i>must</i> remain in the translated strings, at the appropriate position.
<li>Strings containing <i>plurals</i> need two translations: One for the "singular" form and one for the "plural" form. The <tt>%n</tt> number place marker must remain, at the appropriate position.
<li>Once the translation for a string is finished, please click the 'mark item as done' button, so the item (string) gets a green <font style="color:darkgreen">&#10004;</font> icon.
<li>Note that the red <font style="color:darkred;font-weight:bold">!</font> icon and the yellow <font style="color:#AA8B0F">&#10004;</font> icon indicate that there is some problem with your translation, which needs to be resolved!
</ul>
<br>
<!-- ============================= -->
<h3>Examples:</h3>
Here are a few examples of properly translated strings:
<ul>
<li><b>Example #1</b><table><tr><td>&bull; Original:</td><td>&nbsp;</td><td><tt>Executable '<font style="color:darkred">%1</font>' was built for Qt '<font style="color:darkred">%2</font>', but found Qt '<font style="color:darkred">%3</font>'.</tt></td></tr><tr><td>&bull; Translated:</td><td>&nbsp;</td><td><tt>Programm '<font style="color:darkred">%1</font>' wurde für Qt '<font style="color:darkred">%2</font>' erzeugt, aber Qt '<font style="color:darkred">%3</font>' gefunden.</tt></td></tr></table><br>
<li><b>Example #2</b><table><tr><td>&bull; Original:</td><td>&nbsp;</td><td><tt>LameXP will <font style="color:darkred">&lt;i&gt;</font>not<font style="color:darkred">&lt;/i&gt;</font> check for Beta (pre-release) updates from now on.</tt></td></tr><tr><td>&bull; Translated:</td><td>&nbsp;</td><td><tt>LameXP wird fortan <font style="color:darkred">&lt;i&gt;</font>nicht<font style="color:darkred">&lt;/i&gt;</font> nach Beta (Entwickler) Updates suchen.</tt></td></tr></table><br>
<li><b>Example #3</b><table><tr><td>&bull; Original:</td><td>&nbsp;</td><td><tt><font style="color:darkred">%n</font> minute(s)</tt></td></tr><tr><td>&bull; Translated (Singular):</td><td>&nbsp;</td><td><tt><font style="color:darkred">%n</font> Minute</tt></td></tr><tr><td>&bull; Translated (Plural):</td><td>&nbsp;</td><td><tt><font style="color:darkred">%n</font> Minuten</tt></td></tr></table>
</ul>
<br>
<!-- ============================= -->
<h3>Testing your translation:</h3>
<p>LameXP v4.xx needs to be re-built from the sources in order to integrate a new translation or to update one of the "built-in" translations. However there is an easy method to test your translation file <i>without</i> re-building LameXP: Open your current translation (TS) file in the <i>Qt Linguist</i> application and go to "File" &rArr; "Release As...", which allows you to save your translation as a "release" (QM) file. Once saved as a QM file, you can load your translation in LameXP. This is <i>not</i> possible with the TS file. In LameXP, just goto "View" &rArr; "Language" &rArr; "From File..." and choose the QM file that you have saved in Linguist before. Your translation should be in effect immediately. If you notice that your translation needs further modifications, please go back to the TS file for editing (don't try to edit the QM file!), in the <i>Qt Linguist</i> application. Then, for your next test run, create a <i>new</i> QM file from the updated TS file. Also note that, in newer versions of LameXP, you can press <tt>CTRL&#43;F5</tt> to re-load your current QM file (works only in the "Main" window!).</p>
<br>
<!-- ============================= -->
<h3>Submitting your translation:</h3>
<p>Once you are done with your translation (i.e. all items and all contexts have a green <font style="color:darkgreen">&#10004;</font> icon), you can submit it, so it can be integrated into the next LameXP release. You can contact me by e-mail:<br><b><a href="mailto:mulder2%20[at]%20gmx%20[dot]%20de">mulder2<font color="dimgray">[at]</font>gmx<font color="dimgray">[dot]</font>de</a></b></p>
<p>Please do <i>not</i> submit translations that have any items/context with <font style="color:#AA8B0F">&#10004;</font>, <font style="color:#AA8B0F;font-weight:bold">?</font>, <font style="color:#427D7E;font-weight:bold">?</font> or even <font style="color:darkred;font-weight:bold">!</font> icon left. Also do <i>not</i> submit QM files, do <i>not</i> compress the submitted file (ZIP, RAR, etc) and do <i>not</i> attach a flag icon file. It is perfectly sufficient to submit <i>only</i> the translation (TS) file.</p>
<p><b><i>Legal notice:</i></b><br>By submitting LameXP translations, all translators agree that their work will be incorporated into the LameXP software. All translations will be published and redistributed under the terms of the <i>GNU General Public License</i>. If you do <b>not</b> agree, please do <b>not</b> submit!
<p>(Advanced translators can get write-access to the Git repository, so they can keep their translations up-to-date easily. If you need Git access, just drop me a note!)</p>
<p style="border-width:2px;border-style:solid;border-color:darkred;margin-top:2em"><font color="darkred"><b>IMPORTANT:</b> Before you start to create a new translation, <i>always</i> make sure you downloaded the <u>latest</u> "Blank.ts" file from the LameXP Git repository. Also, before you start editing or updating an <i>existing</i> translation, make sure you downloaded the <u>latest</u> TS file from the LameXP Git repository. <u>Never</u> do any translations based on some working copies that you kept on your local system! The translation files (TS) in the Git repository will be updated <i>continuously</i>, as the development proceeds. We can <b>not</b> accept translations based on an <i>outdated</i> TS file!</font></p>
<br>
<!-- ============================= -->
<h3>Personalization:</h3>
<p>Usually all translators will be mentioned in the "About..." dialogue of LameXP. If you don't want your (nick)name and/or e-mail address to appear there, please tell us that you wish to stay anonymous!</p>
<br>
<br>
Thanks in advance !!!<br><br><img src="http://forum.doom9.org/images/smilies/thanks-t.gif" alt="emoticon">
<!-- ============================= -->
</body>
</html>