2010-12-29 14 views
1

私が達成しようとしているものはここに記載されていますhttp://nuts-and-bolts-of-cakephp.com/2008/11/28/cakephp-url-based-language-switching-for-i18n-and-l10n-internationalization-and-localization/ しかし、私はそれを働かせることはできません。cakephp URLで言語を選択

ルータの設定は次のようになります。

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

butw私はwww.example.com/registered/cze/packagesへ行くしようとすると、私が取得:

Error: CzeController could not be found.

私はケーキの著者として1.3ではなく1.2を使用しています、それは問題かもしれませんが、これを機能させるためには何を変更する必要がありますか?

編集:このコードは動作し、コントローラで使用する場合、サイトの言語を変更しますが、私はそれがURL

答えて

1

URLに係る作業を取得する必要が

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

www.example.com/registered/cze/packages一致していません。 :actionセグメントが空であるため、/registered/:language/:controller/:action/*ルート。したがって、URLはプレフィックスとしてregisteredが認識され、コントローラとしてczeが認識される標準ルートになります。

「短縮」/registered/:language/:controllerルートを作成して、「短縮」URLを取得する必要があります。

+0

ありがとう、最終的に動作します。 – Elwhis