Choď na navigáciu

Viacjazyčné validačné error hlášky

CakePHP ponúka v najnovšej verzii možnosť definovať validačné error hlášky priamo do modelu. Problémom však ostáva, ako tieto error hlášky prekladať a definovať ich preklad v jazykových súboroch. My si v článku ukážeme jednoduché riešenie.

Najprv si definujme jednoduché validačné pravidlo

var $validate = array(
        'name' => array('rule'=>array('between',2,200),'message'=>'Between 2 and 200 characters'),
);

Definovali sme, že input nazvaný name bude musieť obsahovať od 2 do 200 znakov, v opačnom prípade sa vypíše chybová hláška Between 2 and 200 characters.

My však tvoríme viacjazyčnú aplikáciu a potrebujeme, aby sa daná hláška zobrazila podľa aktuálne nastaveného jazyka v aplikácii. Riešenie je jednoduché, stačí ak pridáme daný kód do súboru app/app_model.php

function invalidate($field, $value = true) {
    return parent::invalidate($field, __($value, true));
}

Potom už môžeme v našom jazykovom súbore default.po (jeho umiestnenie záleží od príslušnosti k určitému jazyku) definovať preklad validačnej error hlášky následovne

msgid "This field cannot be left blank"
msgstr "Toto pole nemôže byť prázdne"

Viac si o viacjazyčnom webe v CakePHP môžete prečítať v jednom z mojich článkov Viacjazyčný web v cakePHP

Povedz o článku aj ostatným - www.pridej.cz

Hodnotenie článku: 48%
Počet hodnotení: 35

zlýdobrý

Komentáre k článku

Nový komentár

  1. Titulok: Ochuzeni o moznost extrahovat texty pomoci shellu
    Autor: Marek Kebza
    Vytvorený: 20. 10. 2008 11:51

    Neprijdes nahodou diky teto finte o moznost extrahovat chybove hlasky pomoci shellu?

    Neni lepsi, kdyz je potreba multijazycne hlasky, vytvorit validacni pravidla v konstruktoru?

  2. Titulok: RE: Ochuzeni o moznost extrahovat texty pomoci shellu
    Autor: Tibor
    Vytvorený: 20. 10. 2008 12:26

    Neprijdes nahodou diky teto finte o moznost extrahovat chybove hlasky pomoci shellu?

    Tomuto vobec nerozumiem… Co to znamena?

    No pokial chcem vytvorit viacjazycne hlasky, tak je podla mna jasne, ze ich preklady budu v jazykovych suboroch aplikacie ako vsetky ostatne preklady. Tymto sposobom sa o nic neoberas, skor ziskavas velku flexibilitu pri pridavani dalsich jazykovych mutacii do tvojej aplikacie.

  3. Titulok: RE: Ochuzeni o moznost extrahovat texty pomoci shellu
    Autor: Marek Kebza
    Vytvorený: 20. 10. 2008 15:05

    Mel jsem na mysli pokud si nechavas generovat *.mo soubory, tak jestli to zahrne i tyto hlasky?

  4. Titulok: RE: RE: Ochuzeni o moznost extrahovat texty pomoci shellu
    Autor: Tibor
    Vytvorený: 20. 10. 2008 15:25

    No nezahrnie. Avsak ja obycajne zapisujem do tychto suborov rucne, pretoze vyvijam iteracne a potrebujem zakaznikovi ukazovat ciastocne vysledky, ktore uz mam vzdy prelozene a potom tam len dopisujem nove preklady…