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.
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>
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.
Alapértelmezett keretrendszer fordítási fájl
Kernel/Language/$Language.pm
Egyéni fordítási fájl
Kernel/Language/$Language_Custom.pm
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;
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;
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.
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.