0

ほとんどの人にとって、これは「ばかげた」質問かもしれませんが、私にはわかりません。

私は初心者なので、グーグルで見つけた多くのチュートリアルを試しましたが、どれもうまくいきません。

Cakephp 2.2を実行していて、ローカリゼーションを機能させようとしています。私はその本をフォローしました(http://book.cakephp.org/2.0/en/core-libraries/internationalization-and-localization.html

私がこれまでにしたこと:

//In my bootstrap.php I added 
Configure::write('Config.language', 'deu');


// In my AppController.php I added
public function beforeFilter() {
    $locale = Configure::read('Config.language');
    if ($locale && file_exists(VIEWS . $locale . DS . $this->viewPath)) {
        $this->viewPath = $locale . DS . $this->viewPath;
    }
}

私の理解では、訪問者は/ger/にリダイレクトされるはずです。しかし、何も起きていません...?

正しい方向に向けてください。

質問で申し訳ありませんが、私は初心者なので、今は行き詰まっています。:(

よろしくお願いします

4

1 に答える 1

0

このコードが行うのは、$this->viewPath変数を編集することだけです。

これにより、CakePHPは、を呼び出すときに標準とは異なるディレクトリに表示されrender()ます。これは通常、異なるフォルダーを作成する場合に実行されます。各フォルダーには、特定のローカリゼーションのビューファイルが含まれています。

ビューフォルダが現在次のようになっている場合:

View
    - Elements
    - Emails
    - Errors
    - Helper
    - ...

代わりに、次のようになります。

View
    - deu
        - Elements
        - Emails
        - Errors
        - Helper
        - ...
    - Elements
    - Emails
    - Errors
    - Helper
    - ...

このようにして、多くの異なるローカリゼーションに対して完全に異なるビューファイルを指定できます。ルートディレクトリ内のフォルダは、デフォルトのローカリゼーションである必要があります。

file_exists()現在何もしていないのは、チェック時に関連するビューファイルが見つからないためです。必要に応じて再構築すると、正常に機能するはずです。

于 2012-10-11T13:12:44.357 に答える