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. |