Projekt

Allgemein

Profil

Herunterladen (8,98 KB) Statistiken
| Zweig: | Markierung: | Revision:
f8309cb7 Moritz Bunkus
<html><head>
06cb6b12 Moritz Bunkus
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
cb484787 Geoffrey Richardson
<title>4.4. Translations and languages</title><link rel="stylesheet" type="text/css" href="style.css"><meta name="generator" content="DocBook XSL Stylesheets V1.76.1-RC2"><link rel="home" href="index.html" title="kivitendo 3.3.0: Installation, Konfiguration, Entwicklung"><link rel="up" href="ch04.html" title="Kapitel 4. Entwicklerdokumentation"><link rel="prev" href="ch04s03.html" title="4.3. SQL-Upgradedateien"><link rel="next" href="ch04s05.html" title="4.5. Die kivitendo-Test-Suite"></head><body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF"><div class="navheader"><table width="100%" summary="Navigation header"><tr><th colspan="3" align="center">4.4. Translations and languages</th></tr><tr><td width="20%" align="left"><a accesskey="p" href="ch04s03.html">Zurück</a>&nbsp;</td><th width="60%" align="center">Kapitel 4. Entwicklerdokumentation</th><td width="20%" align="right">&nbsp;<a accesskey="n" href="ch04s05.html">Weiter</a></td></tr></table><hr></div><div class="sect1" title="4.4. Translations and languages"><div class="titlepage"><div><div><h2 class="title" style="clear: both"><a name="translations-languages"></a>4.4. Translations and languages</h2></div></div></div><div class="sect2" title="4.4.1. Introduction"><div class="titlepage"><div><div><h3 class="title"><a name="translations-languages.introduction"></a>4.4.1. Introduction</h3></div></div></div><div class="note" title="Anmerkung" style="margin-left: 0.5in; margin-right: 0.5in;"><table border="0" summary="Note"><tr><td rowspan="2" align="center" valign="top" width="25"><img alt="[Anmerkung]" src="system/docbook-xsl/images/note.png"></td><th align="left">Anmerkung</th></tr><tr><td align="left" valign="top"><p>Dieser Abschnitt ist in Englisch geschrieben, um
5fa26f9a Moritz Bunkus
internationalen Übersetzern die Arbeit zu erleichtern.</p></td></tr></table></div><p>This section describes how localization packages in kivitendo
f8309cb7 Moritz Bunkus
are built. Currently the only language fully supported is German, and
since most of the internal messages are held in English the English
version is usable too.</p><p>A stub version of French is included but not functunal at this
dbda14c2 Moritz Bunkus
point.</p></div><div class="sect2" title="4.4.2. Character set"><div class="titlepage"><div><div><h3 class="title"><a name="translations-languages.character-set"></a>4.4.2. Character set</h3></div></div></div><p>All files included in a language pack must use UTF-8 as their encoding.</p></div><div class="sect2" title="4.4.3. File structure"><div class="titlepage"><div><div><h3 class="title"><a name="translations-languages.file-structure"></a>4.4.3. File structure</h3></div></div></div><p>The structure of locales in kivitendo is:</p><pre class="programlisting">kivitendo/locale/&lt;langcode&gt;/</pre><p>where &lt;langcode&gt; stands for an abbreviation of the
f8309cb7 Moritz Bunkus
language package. The builtin packages use two letter <a class="ulink" href="http://en.wikipedia.org/wiki/ISO_639-1" target="_top">ISO 639-1</a> codes,
but the actual name is not relevant for the program and can easily be
extended to <a class="ulink" href="http://en.wikipedia.org/wiki/IETF_language_tag" target="_top">IETF language
tags</a> (i.e. "en_GB"). In fact the original language packages
from SQL Ledger are named in this way.</p><p>In such a language directory the following files are
recognized:</p><div class="variablelist"><dl><dt><span class="term">LANGUAGE</span></dt><dd><p>This file is mandatory.</p><p>The <code class="filename">LANGUAGE</code> file contains the self
descripted name of the language. It should contain a native
representation first, and in parenthesis an english translation
dbda14c2 Moritz Bunkus
after that. Example:</p><pre class="programlisting">Deutsch (German)</pre></dd><dt><span class="term">all</span></dt><dd><p>This file is mandatory.</p><p>The central translation file. It is essentially an inline
f8309cb7 Moritz Bunkus
Perl script autogenerated by <span class="command"><strong>locales.pl</strong></span>. To
generate it, generate the directory and the two files mentioned
above, and execute the following command:</p><pre class="programlisting">scripts/locales.pl &lt;langcode&gt;</pre><p>Otherwise you can simply copy one of the other languages.
You will be told how many are missing like this:</p><pre class="programlisting">$ scripts/locales.pl en
English - 0.6% - 2015/2028 missing</pre><p>A file named "<code class="filename">missing</code>" will be
generated and can be edited. You can also edit the
"<code class="filename">all</code>" file directly. Edit everything you
like to fit the target language and execute
<span class="command"><strong>locales.pl</strong></span> again. See how the missing words
get fewer.</p></dd><dt><span class="term">Num2text</span></dt><dd><p>Legacy code from SQL Ledger. It provides a means for
numbers to be converted into natural language, like
<code class="literal">1523 =&gt; one thousand five hundred twenty
three</code>. If you want to provide it, it must be inlinable
Perl code which provides a <code class="function">num2text</code> sub. If
an <code class="function">init</code> sub exists it will be executed
5fa26f9a Moritz Bunkus
first.</p><p>Only used in the check and receipt printing module.</p></dd><dt><span class="term">special_chars</span></dt><dd><p>kivitendo comes with a lot of interfaces to different
f8309cb7 Moritz Bunkus
formats, some of which are rather picky with their accepted
charset. The <code class="filename">special_chars</code> file contains a
listing of chars not suited for different file format and
provides substitutions. It is written in "Simple Ini" style,
containing a block for every file format.</p><p>First entry should be the order of substitution for
entries as a whitespace separated list. All entries are
interpolated, so <code class="literal">\n</code>, <code class="literal">\x20</code>
and <code class="literal">\\</code> all work.</p><p>After that every entry is a special char that should be
translated when writing text into such a file.</p><p>Example:</p><pre class="programlisting">[Template/XML]
order=&amp; &lt; &gt; \n
&amp;=&amp;amp;
&lt;=&amp;lt;
&gt;=&amp;gt;
\n=&lt;br&gt;</pre><p>Note the importance of the order in this example.
Substituting &lt; and &gt; befor &amp; would lead to $gt; become
&amp;amp;gt;</p><p>For a list of valid formats, see the German
<code class="filename">special_chars</code> entry. As of this writing the
following are recognized:</p><pre class="programlisting">HTML
URL@HTML
Template/HTML
Template/XML
Template/LaTeX
Template/OpenDocument
filenames</pre><p>The last of which is very machine dependant. Remember that
a lot of characters are forbidden by some filesystems, for
exmaple MS Windows doesn't like ':' in its files where Linux
doesn't mind that. If you want the files created with your
language pack to be portable, find all chars that could cause
trouble.</p></dd><dt><span class="term">missing</span></dt><dd><p>This file is not a part of the language package
itself.</p><p>This is a file generated by
<span class="command"><strong>scripts/locales.pl</strong></span> while processing your
locales. It's only to have the missing entries singled out and
does not belong to a language package.</p></dd><dt><span class="term">lost</span></dt><dd><p>This file is not a part of the language package
itself.</p><p>Another file generated by
<span class="command"><strong>scripts/locales.pl</strong></span>. If for any reason a
translation does not appear anymore and can be deleted, it gets
moved here. The last 50 or so entries deleted are saved here in
case you made a typo, so that you don't have to translate
everything again. If a tranlsation is missing, the lost file is
checked first. If you maintain a language package, you might
d1564e8a Moritz Bunkus
want to keep this safe somewhere.</p></dd></dl></div></div></div><div class="navfooter"><hr><table width="100%" summary="Navigation footer"><tr><td width="40%" align="left"><a accesskey="p" href="ch04s03.html">Zurück</a>&nbsp;</td><td width="20%" align="center"><a accesskey="u" href="ch04.html">Nach oben</a></td><td width="40%" align="right">&nbsp;<a accesskey="n" href="ch04s05.html">Weiter</a></td></tr><tr><td width="40%" align="left" valign="top">4.3. SQL-Upgradedateien&nbsp;</td><td width="20%" align="center"><a accesskey="h" href="index.html">Zum Anfang</a></td><td width="40%" align="right" valign="top">&nbsp;4.5. Die kivitendo-Test-Suite</td></tr></table></div></body></html>