Vícejazyčný web a vybírání z databáze

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
rihot
Člen | 16
+
0
-

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
+
0
-

Zační tím, že si do BsePresenteru 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
+
0
-

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.