Phalcon は、多言語 Web サイト用の機能を提供していますか?
MVC phalcon ベースのサイトを開発するためのベスト プラクティスは何ですか? ビューレイヤーを実装するにはどうすればよいですか?
Phalcon は、多言語 Web サイト用の機能を提供していますか?
MVC phalcon ベースのサイトを開発するためのベスト プラクティスは何ですか? ビューレイヤーを実装するにはどうすればよいですか?
このサンプル アプリケーション ( https://github.com/phalcon/php-site ) は、Phalcon を使用して翻訳を実装します。
Phalcon Gettext Adapterを使用するのが最善の解決策だと思います。Gettext の最も重要な利点は、複数形の処理です。
Phalcon は I18n 機能を提供しません。intlと呼ばれる、この種の機能を提供する PECL 拡張機能があります(マニュアルを参照)。
ただし、ウェブサイトをさまざまな言語で表示することに主に関心がある場合は、
\Phalcon\Translate\Adapter\NativeArray
成分。このコンポーネントは、言語対応文字列を含むキー/値の配列を使用します。たとえば、構成でこれを使用できます。
$trans_config = array(
'en' => array(
'bye' => 'Good Bye',
'song-key' => 'This song is %song% (%artist%)',
),
'es' => array(
'bye' => 'Adiós',
'song-key' => 'La canción es %song% (%artist%)',
),
);
上記の使用法を実証するテストは次のとおりです。
public function testVariableSubstitutionTwoEnglish()
{
$language = $trans_config['en'];
$params = array('content' => $language);
$translator = new \Phalcon\Translate\Adapter\NativeArray($params);
$vars = array(
'song' => 'Dust in the wind',
'artist' => 'Kansas',
);
$expected = 'This song is Dust in the wind (Kansas)';
$actual = $translator->_('song-key', $vars);
$this->assertEquals(
$expected,
$actual,
'Translator does not translate English correctly - many parameters'
);
}
上記は、プレースホルダー変数を使用して翻訳されたメッセージを取得する方法を示しています。別の言語で単純に文字列を取得するには_()
、関連するキーを使用してトランスレータで を呼び出し、変数を渡さないだけです。
編集ビューでは、好きなように作業できます。ビューレイヤーに表示される変数を設定するか、翻訳オブジェクトを渡してそこで翻訳を実行できます。君による。
HTH