ホームページ >バックエンド開発 >PHPチュートリアル >CakePHP で i18n を使用するには?
CakePHP は、多言語国際化 (i18n) の統合をサポートするオープンソースの PHP フレームワークです。 i18n を使用すると、アプリケーションを多言語化できるため、世界中の視聴者を引きつけ、地元のユーザーにより良いサービスを提供することが容易になります。この記事では、CakePHP i18n の使用法を詳しく見ていきます。
まず、CakePHP の多言語機能を有効にする必要があります。これを行うには、構成ファイル config/bootstrap.php を更新し、次のコードをアプリケーションに追加します。
Configure::write('App.defaultLocale', 'en_US'); //设置默认语言 Configure::write('App.languages', ['en_US', 'es_ES', 'de_DE']); //可选语言
次に、言語ファイルを作成する必要があります。 config/Locale ディレクトリ内。これらの言語ファイルには、locale%iso-639-1code%iso-3166-1-alpha-2 format.php という名前を付ける必要があります。たとえば、en_US.php、es_ES.php、de_DE.php などです。
言語ファイルでは、翻訳文字列を定義できます。たとえば、en_US.php では次のように記述できます:
return [ 'welcome' => 'Welcome', 'hello' => 'Hello', ];
es_ES.php では次のように記述できます:
return [ 'welcome' => 'Bienvenido', 'hello' => 'Hola', ];
de_DE.php では次のように記述できます:
return [ 'welcome' => 'Willkommen', 'hello' => 'Hallo', ];
ビューでは、__() 関数を使用してテキストを翻訳できます。たとえば、ビューに「ようこそ」を表示したい場合は、次のように記述できます。
<h1><?php echo __('welcome'); ?></h1>
これにより、現在のロケールに応じた正しい翻訳文字列が自動的に使用されます。ロケールが en_US の場合、「ようこそ」が表示されます。ロケールが es_ES の場合、Bienvenido が表示されます。
同様に、ビュー ファイルで __('string', array('name' => 'value')) を使用して出力をフォーマットすることができます。
<?php echo __('My name is %name%', array('name' => 'Lucas')); ?>
出力 私の名前はルーカスです。
コントローラーでは、Configure::write('Config. language', 'langauge') を使用して現在のロケールを変更できます。
Configure::write('Config.language', 'de_DE'); //将语言环境设置为de_DE
必要に応じて、コントローラーのアクションで異なるロケールを設定して、ビューごとに異なる翻訳文字列を選択できます。これは動的な Web サイトに非常に役立ちます。
例:
public function index() { Configure::write('Config.language', 'es_ES'); $this->set('title', __('home_title')); }
この例では、es_ES.php をロードし、翻訳文字列 home_title を使用します。
CakePHP i18n は、ローカライズされた日付と時刻の形式もサポートしています。例:
echo $this->Time->nice(new DateTime('2018-11-20')); //在控制器分配或直接用数组传递时使用 echo $this->Time->nice($dateObject);
これにより、現在のロケールに従って日付がフォーマットされ、2018 年 11 月 20 日のような結果が表示されます。 app.php で日付形式を変更できます。
'defaultDateFormat' => 'yyyy-MM-dd',
ご覧のとおり、CakePHP の i18n は非常に使いやすいです。フレームワークによって提供される i18n サポートを使用すると、世界中のユーザーに多言語およびローカリゼーションのサポートを迅速かつ簡単に提供できます。最高のユーザーエクスペリエンスを実現するために、アプリケーションには常に明確で正確なテキストを提供することを忘れないでください。
以上がCakePHP で i18n を使用するには?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。