Honosítási és fordítási mechanizmus

Lefordítható szövegek megjelölése a forrásfájlokban
Lefordítható szövegek összegyűjtése a fordítási adatbázisba
Alapértelmezett keretrendszer fordítási fájl
Egyéni fordítási fájl
Maga a fordítási folyamat
A kódból lefordított adatok használata

Négy lépés szükséges a szoftver lefordításához és honosításához: a honosítható szövegek megjelölése a forrásfájlokban, a fordítási adatbázis/fájl előállítása, maga a fordítási folyamat, és a lefordított adatok használata a kódon belül.

Lefordítható szövegek megjelölése a forrásfájlokban

A Perl-kódban az összes lefordítandó literál szöveg automatikusan meg van jelölve a fordításhoz: a $LanguageObject->Translate('My string %s', $Data) fogja megjelölni a 'My string %s' szöveget a fordításhoz. Ha arra van szüksége, hogy a kódban megjelölje a szövegeket, de még NE fordítsa le azokat, akkor használhatja a Kernel::Langauge::Translatable() NOOP metódust.

package MyPackage;

use strict;
use warnings;

use Kernel::Language (qw(Translatable));

...

my $UntranslatedString = Translatable('My string %s');
                

A sablonfájlokban az összes olyan literál szöveg automatikusan meg van jelölve a kigyűjtéshez, amelyek a Translate()-címkével vannak körbezárva: [% Translate('My string %s', Data.Data )%].

A rendszerbeállítás és az adatbázis XML-fájlokban a Translatable="1" attribútummal jelölheti meg a szövegeket a kigyűjtéshez.

# Adatbázis XML
<Insert Table="groups">
    <Data Key="id" Type="AutoIncrement">1</Data>
    ...
    <Data Key="comments" Type="Quote" Translatable="1">Group for default access.</Data>
    ...
</Insert>

# Rendszerbeállítás XML
<Setting>
    <Option SelectedID="0">
        <Item Key="0" Translatable="1">No</Item>
        <Item Key="1" Translatable="1">Yes</Item>
    </Option>
</Setting>
                

Lefordítható szövegek összegyűjtése a fordítási adatbázisba

Az otrs.Console.pl Dev::Tools::TranslationsUpdate konzolparancs használható az összes lefordítható szöveg kigyűjtéséhez a forrásfájlokból. Ezek össze lesznek gyűjtve, és ki lesznek írva a fordítási fájlokba.

Az OTRS keretrendszernél és az összes olyan kiterjesztés modulnál, amelyek szintén a Transifex szolgáltatását használják a fordítások kezeléséhez, .pot és .po fájlok lesznek kiírva. Ezeket a fájlokat használják a lefordítható szövegek feltöltéséhez a Transifexre, illetve a fordítások letöltéséhez onnan.

De az OTRS-nek sebességi okok miatt a fordításokra Perl-fájlokban van szüksége. Az otrs.Console.pl Dev::Tools::TranslationsUpdate parancs ezeket a fájlokat is elő fogja állítani. Két különböző fordítási gyorsítótár fájltípus létezik, amelyek a következő sorrendben kerülnek felhasználásra. Ha egy szó vagy mondat újra meg van adva egy fordítási fájlban, akkor a legutolsó meghatározást fogja használni.

  1. Alapértelmezett keretrendszer fordítási fájl

    Kernel/Language/$Language.pm

  2. Egyéni fordítási fájl

    Kernel/Language/$Language_Custom.pm

Alapértelmezett keretrendszer fordítási fájl

Az alapértelmezett keretrendszer fordítási fájl tartalmazza az alapvető fordításokat. Az alábbi egy alapértelmezett keretrendszer fordítási fájl példája.

Formátum:

package Kernel::Language::hu;

use strict;
use warnings;

use vars qw(@ISA $VERSION);

sub Data {
    my $Self = shift;

    # $$START$$

    # lehetséges karakterkészletek
    $Self->{Charset} = ['utf-8', 'iso-8859-2', ];
    # date formats (%A=WeekDay;%B=LongMonth;%T=Time;%D=Day;%M=Month;%Y=Jear;)
    $Self->{DateFormat}          = '%Y-%M-%D %T';
    $Self->{DateFormatLong}      = '%Y. %B %D. %A %T';
    $Self->{DateFormatShort}     = '%Y-%M-%D';
    $Self->{DateInputFormat}     = '%Y-%M-%D';
    $Self->{DateInputFormatLong} = '%Y-%M-%D - %T';

    $Self->{Translation} = {
    # Template: AAABase
    'Yes' => 'Igen',
    'No' => 'Nem',
    'yes' => 'igen',
    'no' => 'nem',
    'Off' => 'Ki',
    'off' => 'ki',
    };
    # $$STOP$$
    return 1;
}

1;
                

Egyéni fordítási fájl

Az egyéni fordítási fájl kerül beolvasásra legutoljára, és így annak fordítása, amely használva lesz. Ha saját megfogalmazást szeretne hozzáadni a telepítéshez, akkor hozza létre ezt a fájlt a nyelvéhez.

Formátum:

package Kernel::Language::xx_Custom;

use strict;
use warnings;

use vars qw(@ISA $VERSION);

sub Data {
    my $Self = shift;

    # $$START$$

    # saját fordítások
    $Self->{Translation}->{'Lock'} = 'Lala';
    $Self->{Translation}->{'Unlock'} = 'Lulu';

    # $$STOP$$
    return 1;
}

1;
                

Maga a fordítási folyamat

Az OTRS a Transifex szolgáltatását használja a fordítási folyamat kezeléséhez. A részletekért nézze meg ezt a szakaszt.

A kódból lefordított adatok használata

Használhatja a $LanguageObject->Translate() metódust a szövegek lefordításához futási időben a Perl-kódból, és a Translate()-címkét a sablonokban.