Vícejazyčný web a vybírání z databáze
- rihot
- Člen | 16
Zdravím,
jsem v NETTE začátečník a moc bych prosil o radu jak mám začít
s vícejazyčným webem. Normální webovou stránku v NETTE nějak zvládnu,
ale dát do toho druhý jazky resp. EN to nevím.
Příklad:
Web budu mít ve verzi EN | CS. Když se přepnu do EN tak všechno se bude
nyní vybírat pouze z EN databáze a naopak.
Děkuji za každou radu.
PS. : z ostatních článků jsem to moc nepochopil :(.
- mkoubik
- Člen | 728
Zační tím, že si do BsePresenter
u přidáš persistentní
parametr $lang
:
/** @persistent */
public $lang = 'cs'; // 'cs' je výchozí hodnota
Pak můžeš přepínat jazyk pomocí
$presenter->link(..., array('lang' => 'en'))
nebo
{link ... lang => en}
. Routu si uprav na
něco jako
new Route('[<lang [a-z]{2}>/]<presenter>/<action>[/<id>]', 'Homepage:default');
ať nemáš hnusný url.
Pak už můžeš ve kterémkoliv presenteru přistupovat k
$this->lang
a např. podle toho sestavovat dotazy ve stylu
->where('lang', $this->lang)
.
- iguana007
- Člen | 970
Pokud jsem to dobře pochopil, tak by si chtěl použít dvě databáze.
Takto se to ale nedělá, lepší máš mít jednu databázi pro celou aplikaci
a v tabulkách přidat sloupec ‚lang‘, podle kterého budeš rozlišovat
o jaký jazyk se jedná na základě persistent parametru, který ti již
poradil mkoubik.