V dnešnom článku si ukážeme ako jednoducho pomocou CakePHP vytvoriť viacjazyčný web, ktorý okrem prekladu statického obsahu, ako sú rôzne popisky a doplňujúce informácie, dokáže efektívne pracovať aj s prekladom obsahu uloženého v databáze.
Viacjazyčný web v CakePHP – dynamický obsah
V dnešnom článku si ukážeme ako jednoducho pomocou CakePHP vytvoriť viacjazyčný web, ktorý okrem prekladu statického obsahu, ako sú rôzne popisky a doplňujúce informácie, dokáže efektívne pracovať aj s prekladom obsahu uloženého v databáze.
Ako prekladať statický obsah v CakePHP sme si ukázali v článku Viacjazyčný web v CakePHP. I keď je už článok pomerne starý a mnohé veci sa zjednodušili, podstata stále ostáva rovnaká a určite vám odporúčam pred ďalším čítaním najprv prečítať tento článok.
Mozgom celej viacjazyčnej podpory v CakePHP je trieda TranslateBehavior, ktorá sa stará u ukladanie, aktualizáciu a získavanie viacjazyčného obsahu z databázy. Poďme si v krátkosti predstaviť celý mechanizmus práce s viacjazyčným obsahom. Skutočná sila tohto riešenie spočíva v tom, že trieda TranslateBehaviour funguje ako behavior, čiže magicky pridáva funkcionalitu do vašich existujúcich modelov. To okrem iného znamená, že vôbec nemusíte meniť vaše už existujúce databázové tabuľky.
Princíp fungovania je nasledovný. Predstavme si, že chceme prekladať články v našom systéme. Pridáme teda k nášmu modelu Article behavior TranslateBehavior a určíme ktoré atribúty z tabuľky článkov sa majú prekladať. TranslateBehaviour nám bude pri každom uložení článku do databázy ukladať jazykové mutácie atribútov, ktoré sme určili na preklad, do špeciálnej tabuľky. Čiže od tohto momentu budeme mať k našemu článku dostupné aj preložené jednotlivé časti.
Zdroj: Ims.rockretail.com