私はgoogle'dを使って、ローカライゼーションのDBアダプタ(素晴らしいbtwを使用しています)でアプリケーションを動作させる方法を見つけました。このシナリオは次のとおりです。dbとfallbackを使ってZend_Localeを行う方法は?
- 英語、ドイツ語、フランス語、韓国語の翻訳があります。
- 英語は100%ですが、それ以外はありません。
- 文字列が英語 アダプタを使用しています
- とIDませんローカライズされた文字列にフォールバックするために、ドイツ語、フランス語、韓国語のニーズに局在されていない場合
例:
<?php
// This is init'd in the bootstrap
try {
$locale = new Zend_Locale(Zend_Locale::BROWSER); /* Q1!!! */
} catch (Zend_Locale_Exception $e) {
$locale = new Zend_Locale('en_US');
}
$translate = new Zend_Translate(
'XYZ_Translate_Adapter_Db', // My adapter
$data, // Populated variable
$locale->getLanguage(), // Returns en, de, fr or ko
array() // Options to pass to the adapter, none.
);
// This is called from the view
echo $translate->_(123); /* Q2!!! */
?>
エコー出力はID 123の対応するテキストになります。今すぐQ1!コメント、en/de/fr/koロケールを検証するにはどうすればよいですか?そして、Q2 !!!コメントID 123の場合、どのように英語にフォールバックできますか?他の言語では見つかりませんでした。
また、私は日付と通貨を処理するので、fr_FR、de_DE、ko_KOのバリデーションを行い、fr_CAやde_ATのようなバリエーションは検証しません。だから最初の部分では、ロケールが私が必要とする国/ラングから来たものであるかどうか、あるいは彼らが少なくとも有効な言語である(そして彼らを適切な国に強制する)かどうかを検証する必要がある。最後の部分については、翻訳がdbにない場合は、それを検証して英語に戻ってください。