Moony
PHP Framework

Multilanguage

Job Moony\app\jobs\LanguageSetJob nastavuje jazyk aplikace a určuje výchozí jazyk pro cron joby. Soubory jsou uloženy v /storage/lang a jejich nazev je iso two letter country code ve formátu ini (en.ini, cs.ini).

Usage

Použít se dá napříč aplikací pomocí globální funkce lang(). První argument je položka v ini souboru, pokud je součástí skupiny, je třeba tuto skupinu uvést a oddělit tečkou.

Pokud je potřeba jednorázově použít položku z jiného jazyka, bude první argument pole, které bude obsahovat jaký jazyk použit a položku v ini.

lang('ItemLabel');
lang('System.ItemLabel');

lang(['cs', 'System.ItemLabel']);

Proměnné

Pro užití proměnné použij nativní funkci sprintf() a v ini souboru %s, %d atd.

Skloňování a plural

V jazykovém souboru je třeba použít speciální zápis a globální funkci lang() bude vyžadovat druhý parametr, hodnotu podle které skloňovat, resp. který z uvedených záznamů použít. Zapisuje se formou {{1:jeden||2,4:dva až čtyři||5,:pět a více}}. V záznamu je také možno uvést %%, místo toho bude dosazena hodnota, podle které se skloňuje.

Příklady:
Item1 = "Váš košík obsahuje %% {{1:položku||2,4:položky||5,:položek}}";
Item2 = "Číslo %% je {{,0:menší, nebo rovno 0||1,:větší, než 0}}";
Item3 = "Překlad slova %% je {{car:auto||house:dům}}";lang('Item1', 10);       // Váš košík obsahuje 10 položek
lang('Item2', 2);        // Číslo 2 je větší, než 0
lang('Item3', 'car');    // Překlad slova car je auto