Router + nenalezená shoda + translátor

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

Ahoj,

potřeboval bych poradit jak si poradit s následující situací..

  • uživatel jde na adresu .. domena.cz/en/asdasdasdas
  • není nalezena routa a vyhazuje se 404
  • $locale není nastaveno a tak se fallbackem hodí CZ verze a ukáže se česká chybová stránka..

Kde nejlíp ještě před vyhozením 404 zkotrolovat zda není nastavený jazyk a případně to translatoru přepnout. Používám klasický Nette router a Kdyby Translátor.

Díky za tip.

blaztar
Člen | 93
+
0
-

Ještě doplním že můj „zoufalý“ pokus vypadal asi jako routa někde vzadu ve stylu..

/<locale>[/<path .+>]

kde jsem pomocí locale nastavil translátor a pokud bylo něco v path tak jsem vyhodil 404, v domnění že tato routa příjde nařadu jen tehdy, pokud žádná jiná přední není ok. Ale pro generování odkazů se projíždí asi vše a dělá to problémy.

Editoval blaztar (4. 3. 2016 11:32)

CZechBoY
Člen | 3608
+
+1
-

Jak máš poslední routu

$router[] = new Route('<presenter>/<action>', 'Homepage:default');

Tak tam zkus přidat locale

$router[] = new Route('<locale>/<presenter>/<action>', 'Homepage:default');
blaztar
Člen | 93
+
0
-

jo díky, toto mě už navedlo na funkční variantu)) aspoň to tak vypadá :)