ファルコンは多言語ウェブサイトのための施設を提供していますか?ファルコンの翻訳施設
MVC phalconベースのサイトを開発するためのベストプラクティスは何ですか?ビューレイヤーはどのように実装すればよいですか?
ファルコンは多言語ウェブサイトのための施設を提供していますか?ファルコンの翻訳施設
MVC phalconベースのサイトを開発するためのベストプラクティスは何ですか?ビューレイヤーはどのように実装すればよいですか?
このサンプルアプリケーション(https://github.com/phalcon/php-site)はPhalconを使用して変換を実装しています。
ファルコンはI18n機能を提供しません。 intl(manual参照)と呼ばれるこの種の機能を提供する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'
);
}
上記だけでは、プレースホルダ変数とメッセージを翻訳し得ることができます方法を示しています。単に異なる言語の文字列を取得するには、関連するキーと変数を渡さずに翻訳者の_()
を呼び出します。
EDITあなたが好きなように作業することができます。ビューレイヤーに表示される変数を設定したり、変換オブジェクトを渡したりして変換を実行することができます。あなた次第。
HTH
ありがとう、他のどのアダプタを実装する予定ですか?このような配列の作成と使用はちょっとしたことですが、 '_( 'x'、array( '1'、 '2'))' ' a '=>' 1 '、' b '=>' 2 ')) '。ビューを介してアクセスするサービス名を作成するのは良い仕事ですか? – PHPst
Gettextの代わりに '\ Phalcon \ Translate \ Adapter \ NativeArray'を使用する際の長所と短所は何ですか? – PHPst
Re Gettextは非常に小さく、主にパフォーマンスと環境設定に基づいています。パフォーマンスは実際に大きな問題ではありません。 –
ベストソリューションはPhalcon Gettext Adapterです。 Gettextの最も重要な利点は複数形を扱うことです。
Phalconアーキテクチャでgettextを使用するにはどうすればよいですか? – PHPst
あなたのための例を作成しましょう – twistedxtra
しかし、Apacheでアプリケーションを実行している場合、gettextはスレッドセーフではないことに注意してください。 – twistedxtra