CakePHP多言語化の手順
CakePHPの多言語化の手順をメモしました。

CakePHPの多言語化にあたり、
まず、多言語化にしてもいくつかケースが考えられそうです。

1、企業サイトの海外向けページのパターン

管理画面→日本語のみで可能。
閲覧側→日本語と各言語

2、管理者も多言語 or SNSぽくユーザが管理画面のパターン

管理画面→日本語と各言語
閲覧側のUIなどのレイアウト部分→多言語自動切替
閲覧側のコンテンツ部分→管理で入力したコンテンツをそのまま表示

また実装方法にもいくつかのパターンがありそうです。
上の実装のパターンに併せて最も良い方法を選定する必要があり。

実装方法その1(多言語ファイルpotファイルを使う)

  1. 管理画面の基本的文面を翻訳。
    翻訳済ファイルを持っておく。
    LC_MESSAGES/core.poとして保持
  2. 管理画面のメッセージ系統
    view / controllerが出来上がった後に、
    cake/console/cake i16nを実行し、
    app/内を走査しpotファイル生成
    LC_MESSAGES/default.poとして保持

実装方法その2(テーブルi18nに言語を保持する)

  1. cake/console/cake i18nを実行し、
    テーブルi18nを生成する。
    ※テーブル及びフィールドのエンコードがlatenでダメーなので
    utf8にしてあげる。
  2. モデル内で
    var $actsAs = array(
    ‘Translate’ => array(‘label’)
    );
    と実在しないフィールド名を指定しておくと
    勝手に言語のi11nテーブルへ入る。
    勝手に言語判定し入れてくれる。