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.