<chapter id="translation">
<title>&Uuml;bersetzung in verschiedene Sprachen</title>
<para>
Das OTRS Webfrontend unterst&uuml;tzt verschiedene Sprachen. Die &Uuml;bersetzungen befinden sich in den Dateien, die unter Kernel/Language/*.pm zu finden sind.
</para>
<para>
Beginnend mit dem Release 1.3 werden die &Uuml;bersetzungen von mehreren Dateien eingelesen. 
</para>
<orderedlist>

<listitem><para>
Kernel/Language/$Locale.pm - Standard, Diese Datei wird zuerst gelesen.
</para></listitem>

<listitem><para>
Kernel/Language/$Locale_$Action.pm - &Uuml;bersetzungen f&uuml;r Zusatzmodule wie den Kalender. &Uuml;berschreibt die Standardwerte..
</para></listitem>

<listitem><para>
Kernel/Language/$Locale_Custom.pm - Ihre eigenen &Uuml;bersetzungen und Zus&auml;tze. Der Inhalt dieser Datei &uuml;berschreibt die beiden vorhergenden.
</para></listitem>

</orderedlist>

<sect1 id="translation-example">
<title>Neue &Uuml;bersetzungsdateien</title>
<para>
Wenn sie OTRS in eine Spache &uuml;berstetzen m&ouml;chten, die derzeit noch nicht vorliegt, so m&uuml;ssen Sie nur 5 Dinge tun:
</para>

<itemizedlist mark='opencircle'>

<listitem><para>
Laden Sie sich eine aktuelle Deutsch-&Uuml;bersetzung (Kernel/Language/de.pm) aus dem CVS (http://cvs.otrs.org/) herunter.
</para></listitem>

<listitem><para>
&Auml;ndern Sie den Packetnamen (von "package Kernel::Language::de;" zu "package Kernel::Language::xy;") und &uuml;bersetzen sie jedes Wort und jeden Satz.
</para></listitem>

<listitem><para>
F&uuml;gen Sie die neue Spache ins System ein, indem sie das Folgende in Ihre Kernel/Config.pm einf&uuml;gen:
"$Self->{DefaultUsedLanguages}->{xy} = 'Sprache XY';" 
</para></listitem>

<listitem><para>
Wenn Sie mod_perl verwenden, starten Sie Ihren Webserver neu und Ihre Sprache steht zur Verf&uuml;gung.
</para></listitem>

<listitem><para>
Senden Sie die neue &Uuml;bersetzung an feedback[at]otrs.org - Vielen Dank!
</para></listitem>

</itemizedlist>

<para>
Jetzt k&ouml;nnen Sie die neue Spache im Einstellungsfenster ausw&auml;hlen.
</para>

<example>
<title>Kernel/Language/de.pm - alte Datei</title>
<programlisting>
# --
# Kernel/Language/de.pm - provides de language translation
# Copyright (C) 2002-2003 Martin Edenhofer xxxxxxxxxxxxxxxxxxxx
# --
# $Id: language-translation.sgml,v 1.5 2004/09/21 20:50:28 martin Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (GPL). If you
# did not receive this file, see http://www.gnu.org/licenses/gpl.txt.
# --
package Kernel::Language::de;

use strict;

use vars qw($VERSION);
$VERSION = '$Revision: 1.5 $';
$VERSION =~ s/^.*:\s(\d+\.\d+)\s.*\$/$1/;

# --
sub Data {
    my $Self = shift;
    my %Param = @_;
    my %Hash = ();

    # $$START$$
    # Last translation Fri Jan  3 20:39:15 2003 by 

    # possible charsets
    $Self->{Charset} = ['iso-8859-1', 'iso-8859-15', ];
    # date formats (%A=WeekDay;%B=LongMonth;%T=Time;%D=Day;%M=Month;%Y=Jear;)
    $Self->{DateFormat} = '%D.%M.%Y %T';
    $Self->{DateFormatLong} = '%A %D %B %T %Y';
    $Self->{DateInputFormat} = '%D.%M.%Y - %T';

    %Hash = (
    # Template: AAABase
      ' 2 minutes' => ' 2 Minuten',
      ' 5 minutes' => ' 5 Minuten',
      ' 7 minutes' => ' 7 Minuten',
      '10 minutes' => '10 Minuten',
      '15 minutes' => '15 Minuten',
      'AddLink' => 'Link hinzufügen',
      'AdminArea' => 'AdminBereich',
      'all' => 'alle',
      'All' => 'Alle',
      'Attention' => 'Achtung',
[...]
</programlisting>
</example>

<para>
An:
</para>

<example>
<title>Kernel/Language/xy.pm - Neue Datei</title>
<programlisting>
# --
# Kernel/Language/fr.pm - provides fr language translation
# Copyright (C) 2002 Bernard Choppy xxxxxxxxxxxxxxxxxxxx
# Copyright (C) 2002-2003 Nicolas Goralski xxxxxxxxxxxxxxxxxxxx
# --
# $Id: language-translation.sgml,v 1.5 2004/09/21 20:50:28 martin Exp $
# --
# This software comes with ABSOLUTELY NO WARRANTY. For details, see
# the enclosed file COPYING for license information (GPL). If you
# did not receive this file, see http://www.gnu.org/licenses/gpl.txt.
# --
package Kernel::Language::fr;

use strict;

use vars qw($VERSION);
$VERSION = '$Revision: 1.5 $';
$VERSION =~ s/^.*:\s(\d+\.\d+)\s.*\$/$1/;
# --
sub Data {
    my $Self = shift;
    my %Param = @_;
    my %Hash = ();

    # $$START$$
    # Last translation Fri Jan  3 20:40:04 2003 by 

    # possible charsets
    $Self->{Charset} = ['iso-8859-1', 'iso-8859-15', ];
    # date formats (%A=WeekDay;%B=LongMonth;%T=Time;%D=Day;%M=Month;%Y=Jear;)
    $Self->{DateFormat} = '%D.%M.%Y %T';
    $Self->{DateFormatLong} = '%A %D %B %T %Y';
    $Self->{DateInputFormat} = '%D.%M.%Y - %T';

    %Hash = (
    # Template: AAABase
      ' 2 minutes' => ' 2 minutes',
      ' 5 minutes' => ' 5 minutes',
      ' 7 minutes' => ' 7 minutes',
      '10 minutes' => '10 minutes',
      '15 minutes' => '15 minutes',
      'AddLink' => 'Ajouter un lien',
      'AdminArea' => 'Zone d\'administration',
      'all' => 'tout',
      'All' => 'Tout',
      'Attention' => 'Attention',
[...]
</programlisting>
</example>
</sect1>

<sect1 id="translation-Actions">
<title>&Uuml;bersetzungen f&uuml;r Aktionen</title>
<para>
Die Datei f&uuml;r Aktionen &uuml;berschreibt die Standardwerte aus Kernel/Language/$Locale.pm, obwohl sie eher daf&uuml;r gedacht ist, &Uuml;bersetzungen f&uuml;r Zusatzmodule bereitzustellen. Sie kommt daher nur in Benutzung, wenn ein bestimmtes Modul geladen ist.
</para>

<example>
<title>Kernel/Language/de_Calendar.pm</title>
<programlisting>
# --
package Kernel::Language::de_Calendar;
# --
use strict;

use vars qw($VERSION);
$VERSION = '$Revision: 1.5 $';
$VERSION =~ s/^\$.*:\W(.*)\W.+?$/$1/;

# --
sub Data {
    my $Self = shift;
    my %Param = @_;

    # $$START$$

    $Self->{Translation}->{'Calendar'} = 'Termine';

    # $$STOP$$
}
# --
1;
</programlisting>
</example>

</sect1>

<sect1 id="translation-custom">
<title>Eigene &Uuml;bersetzungen und Zus&auml;tze</title>
<para>
Diese Datei wird zuletzt eingelesen, ergo k&ouml;nnen und sollten Sie hier Einstellungen der vorherigen &uuml;berschreiben. Sie k&ouml;nnen auch eigene, neue &Uuml;bersetzungen hinzuf&uuml;gen.
</para>

<example>
<title>Kernel/Language/de_Custom.pm</title>
<programlisting>
# --
package Kernel::Language::de_Custom;
# --
use strict;

use vars qw($VERSION);
$VERSION = '$Revision: 1.5 $';
$VERSION =~ s/^\$.*:\W(.*)\W.+?$/$1/;

# --
sub Data {
    my $Self = shift;
    my %Param = @_;

    # $$START$$

    # Re-Definitions
    $Self->{Translation}->{'Lock'} = 'Bearbeiten';
    $Self->{Translation}->{'Unlock'} = 'Freigeben';

    # Additions
    $Self->{Translation}->{'Model#'} = 'Modell-Nr.';
    $Self->{Translation}->{'spare part number'} = 'Ersatzteil-Nummer';

    # $$STOP$$
}
# --
1;
</programlisting>
</example>

</sect1>

</chapter>
