OTRS CVS - Manual
Prev |  | Next

# Chapter 16. Language translations

The OTRS webfrontend supports different frontend languages. The language translation files are located under Kernel/Language/*.pm.

Beginning with release 1.3, translations are multi-layered.

1. Kernel/Language/$Locale.pm - default, this file is read first.
2. Kernel/Language/$Locale_$Action.pm - translations for add-on modules like Calender. Overrides the precedent.
3. Kernel/Language/$Locale_Custom.pm - your own translations/additions. You may override any definition of the previous files.

# New translation files

If you want to translate OTRS into a new language, you have to follow these five steps:

- Take the current German translation (Kernel/Language/de.pm) from CVS (http://cvs.otrs.org/).

- Change the package name (z. g. "package Kernel::Language::de;" to "package Kernel::Language::fr;") and translate each word/sentence.

- Add the new language translation to the system via adding "$Self->{DefaultUsedLanguages}->{fr} = 'French';" to your Kernel/Config.pm.

- If you use mod_perl, restart your webserver and you will have the new language.

- Send the new translation file to feedback at otrs.org - Thanks!

Now you can select the new language in your preferences screen.

Example 16-1. Kernel/Language/de.pm - Old file

    # --
    # Kernel/Language/de.pm - provides de language translation
    # Copyright (C) 2002-2003 Martin Edenhofer xxxxxxxxxxxxxxxxxxxx
    # --
    # $Id: language-translation.sgml,v 1.2 2004/06/03 13:35:55 robert 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.2 $';
    $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',
    [...]

To:

Example 16-2. Kernel/Language/fr.pm - New file

    # --
    # 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.2 2004/06/03 13:35:55 robert 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.2 $';
    $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',
    [...]

Prev | Home | Next
Examples |  | Translation for Actions