Viacjazyčný web v cakePHP
publikované: od: Tibor PiňoPodpora 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/default.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/boostrap.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.