CakePHPの多言語化にあたり、
まず、多言語化にしてもいくつかケースが考えられそうです。
1、企業サイトの海外向けページのパターン
管理画面→日本語のみで可能。
閲覧側→日本語と各言語
2、管理者も多言語 or SNSぽくユーザが管理画面のパターン
管理画面→日本語と各言語
閲覧側のUIなどのレイアウト部分→多言語自動切替
閲覧側のコンテンツ部分→管理で入力したコンテンツをそのまま表示
また実装方法にもいくつかのパターンがありそうです。
上の実装のパターンに併せて最も良い方法を選定する必要があり。
実装方法その1(多言語ファイルpotファイルを使う)
- 管理画面の基本的文面を翻訳。
翻訳済ファイルを持っておく。
LC_MESSAGES/core.poとして保持 - 管理画面のメッセージ系統
view / controllerが出来上がった後に、
cake/console/cake i16nを実行し、
app/内を走査しpotファイル生成
LC_MESSAGES/default.poとして保持
実装方法その2(テーブルi18nに言語を保持する)
- cake/console/cake i18nを実行し、
テーブルi18nを生成する。
※テーブル及びフィールドのエンコードがlatenでダメーなので
utf8にしてあげる。 - モデル内で
var $actsAs = array(
‘Translate’ => array(‘label’)
);
と実在しないフィールド名を指定しておくと
勝手に言語のi11nテーブルへ入る。
勝手に言語判定し入れてくれる。
コメントを残す