2010-12-29 10 views
1

was ich versuche zu erreichen ist hier beschrieben http://nuts-and-bolts-of-cakephp.com/2008/11/28/cakephp-url-based-language-switching-for-i18n-and-l10n-internationalization-and-localization/ , aber ich kann es nicht funktionieren.cakephp Sprache durch URL wählen

Die Router-Konfigurationen wie folgt aussehen:

Router::connect('/registered/:language/:controller/:action/*', 
array('prefix' => 'registered', 'registered' => true, 'layout'=> 'registered'), 
array('language' => '[a-z]{3}')); 

butw wenn ich www.example.com/registered/cze/packages zu gehen versuchen, erhalte ich:

Error: CzeController could not be found.

Ich bin mit Kuchen 1.3, nicht 1.2 als Autor, Das mag das Problem sein, aber was muss ich ändern, damit dies funktioniert?

Edit:

$this->Session->write('Config.language','cze'); 

Dieser Code funktioniert, und wenn in der Steuerung verwendet ändert sich die Sprache der Website, aber ich muss es nach der URL erhalten arbeiten

Antwort

1

Die URL www.example.com/registered/cze/packages stimmt nicht überein die Route /registered/:language/:controller/:action/*, da das :action Segment leer ist. Daher fällt die URL auf die Standardroute, wobei registered als Präfix und cze als Controller erkannt wird.

Sie müssen auch eine "kürzere" Route /registered/:language/:controller erstellen, um "abgekürzte" URLs abzufangen.

+0

Vielen Dank, endlich funktioniert. – Elwhis