Viacjazyčný web v cakePHP

publikované: od: Tibor Piňo
Tagy: , ,

Podpora viacjazyčných webových aplikácií v dnešnom internete je veľmi dôležitá a preto cakePHP nám ponúka efektívne nástroje, ako takéto aplikácie jednoducho a rýchlo vytvárať.

Tento článok slúži ako veľmi jednoduchý príklad, ktorý demonštruje ukážku vytvorenia slovenského a anglického jazyka pre našu aplikáciu.

1. krok: vytvorenie adresárov pre jazykové súbory

Najprv si musíme vytvoriť potrebné adresáre, do ktorých budeme ukladať naše jazykové súbory.

mkdir app/locale/slo
mkdir app/locale/slo/LC_MESSAGES

mkdir app/locale/eng
mkdir app/locale/eng/LC_MESSAGES

Kompletný zoznam názvov adresárov pre jednotlivé jazyky môžete nájsť http://api.cakephp.org/…-source.html#…

'sk' => array(
    'language' => 'Slovack',
    'locale' => 'slo',
    'localeFallback' => 'slo',
    'charset' => 'utf-8'
),
'en' => array(
    'language' => 'English',
    'locale' => 'eng',
    'localeFallback' => 'eng',
    'charset' => 'utf-8'
),

V kóde vyššie môžeme vidieť, že slo je správny názov adresára pre slovenský jazyk a eng je správny názov adresára pre anglický jazyk.

2. krok: Vytvorenie view súboru so slovami pre preklad

Nasledovný kód si môžeme uložiť do ľubovoľného view súboru

<h1><? __('uvod_hlavicka'; ?></h1>

<p><? __('uvod_text'); ?></p>

3. krok: vytvorenie jazykových súborov

Consola v CakePHP nám poskytuje veľmi efektívny spôsob, ako vytvárať jazykové súbory. Stačí použiť nasledovný príkaz.

cd cake/console
./console extract

Tento príkaz znamená, že cakePHP rekurzívne prehľadá naše súbory *.ctp a *.php, a vyhľadá v nich funckie __(). Po dokončení tohoto príkazu nám ostane vygenerovaný súbor app/locale/de­fault.pot

Následne musíme skopírovať daný súbor do jazykových adresárov

cd app/locale
cp default.pot app/locale/eng/LC_MESSAGES/default.po
cp default.pot app/locale/slo/LC_MESSAGES/default.po

Teraz už môžete editovať vaše default.po súbory ako obyčajný text. Po otvorení môžete vidieť niečo takéto

msgid "uvod_hlavicka"
msgstr "toto je hlavicka"

msgid "uvod_text"
msgstr "toto je text"

4. krok: nastavenie jazyka

Posledným krokom je nastavenie jazyka pre našu aplikáciu. To docielime zapísaním nasledovného kódu do app/config/bo­ostrap.php

//pre slovensky jazyk
define('DEFAULT_LANGUAGE','sk');

//pre anglicky jazyk
define('DEFAULT_LANGUAGE','en');

V niektorom z budúcich článkov si ukážeme, ako si bude môcť dynamicky prepínať jazyk sám užívateľ.

Rád uvítam vaše postrehy a názory v diskusii.

VN:F [1.8.3_1051]
Rating: 0.0/5 (0 votes cast)