Jet\Translator

Tato třída (a především její alias Jet\Tr) je hlavní fasádou systému překladače. Tedy je to ta třída, kterou budete primárně používat ve vaší aplikaci. Přesněji řečeno její statické metody.

Přehled metod

Metoda Význam
public static setBackend(
Translator_Backend $backend
): void
Nastaví překladači instanci backendu. Metodu je nutné použít pouze v tom případě, že se rozhodnete implementovat vlastní backend a nepoužívat ten výchozí a nebude vám ani postačovat možnost změnit názvu třídy výchozího backendu přes továrnu.
V takovém případě by bylo nutné v inicializaci aplikace, ještě než se překladač začne používat, vložit překladači instanci vašeho backendu: Translator::setBackend( new MySuperCoolTranslatorBackend() );
public static getBackend(
): Translator_Backend
Vrátí instanci backendu. Pokud jste nevložili instanci vlastního backendu, tak při první příležitosti vytvoří instanci backendu výchozího.
public static setCurrentDictionary(
string $current_dictionary
): void
Nastaví aktuální slovník překladače.
public static getCurrentDictionary(
): string
Vrátí název aktuálního slovníku překladače.
public static setCurrentDictionaryTemporary(
string $current_dictionary,
callable $action
): mixed
Nastaví aktuální slovník překladače pouze pro provedení určité akce. Po provedení akce navrátí původní nastavení slovníku. Vrátí případnou návratovou hodnotu akce.
public static setCurrentLocale(
Locale $current_locale
): void
Nastaví aktuální lokalizaci překladače.

Nabízí se otázka proč má překladač vlastní nastavení lokalizace a nespoléhá na obecné nastavení lokalizace třídy Locale.
Důvod je jednoduchý. Teoreticky může nastat situace, kdy budete potřebovat například datumy a čísla formátovat podle jiné lokalizace, než v té která má překládat texty. Je to sice málo pravděpodobné, ale je to možné a zamezit tomu by mohla být chyba. Proto má překladač své nastavení aktuální lokalizace.
public static getCurrentLocale(
): Locale
Vrátí aktuální lokalizaci překladače. Viz metoda setCurrentLocale.
public static getTranslation(
string $phrase,
array $data = [],
string|null $dictionary = null,
Locale|null $locale = null
): string
Vrátí překlad fráze a ve výsledném texty rovnou doplní data (parametr $data) na pozice podle klíčů. Viz obecné informace o překladači.

Pokud fráze není přeložena, tak vrátí původní podobu fráze (rovněž doplněnou o data).

Parametry $dictionary a $locale je možné použít na překlad dle určitého slovníku a lokalizace bez ohledu na aktuální nastavení.
public static _(
string $text,
array $data = [],
string|null $dictionary = null,
Locale|null $locale = null
) : string
Alias metody getTranslation používaný pro krátký zápis často používaného volání.
public static saveUpdatedDictionaries(
): void
Tato metoda se z aplikačního prostoru běžně nepoužívá ( i když je to možné ).

Slouží k uložení aktualizovaného slovníku (doplněného o nově použité fráze) a je registrována jako shutdown funkce. Tedy spouští se až když aplikace zcela ukončí běh.

A samozřejmě ukládá pouze opravdu změněné slovníky - tedy na odladěné, otestované a lokalizované aplikaci již prakticky nic nedělá.

Je registrována pouze když je ukládání nových frází povoleno nastavením SysConf_Jet_Translator::getAutoAppendUnknownPhrase() - což by na produkčním prostředí mělo být vypnuto!
public static function saveDictionary(
Translator_Dictionary $dictionary
): void
Okamžitě uloží daný slovník.
public static loadDictionary(
string $dictionary,
Locale $locale,
bool $force_load = false
): Translator_Dictionary
Nahraje daný slovník v pro danou lokalizaci. Pokud slovník ještě neexistuje, pak jej vytvoří.

Pokud je parametr $force_load = true, pak opětovně nahraje slovník i když už byl jednou nahrán.
public static installApplicationModuleDictionaries(
Application_Module_Manifest $module
): void
Nainstaluje do systému slovníky, které si aplikační module nese ve svém instalační adresáři.
public static collectApplicationModuleDictionaries(
Application_Module_Manifest $module
): void
Vytáhne ze systému aktuální slovníky patřící aplikačnímu modulu a nakopíruje je do jeho instalačního adresáře.
public static uninstallApplicationModuleDictionaries(
Application_Module_Manifest $module
): void
Odinstaluje (smaže) ze systému slovníky patřící aplikačnímu modulu.
Předchozí kapitola
Překladač
Další kapitola
Jet\Translator_Backend