所以,我google'd,發現一種方法,使我的應用程序的工作與定位(這偉大工程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!!! */
?>
回聲'd輸出將是ID 123的相應文本。現在在Q1!評論,我該如何驗證en/de/fr/ko語言環境?而對於Q2!評論,我怎麼能退卻到英語在ID 123沒有發現其他語言的情況。
而且我會處理日期和貨幣的,所以我想,以驗證fr_FR,則de_DE這個,ko_KO和像fr_CA或de_AT沒有變種。因此,對於第一部分,我需要驗證該語言環境是來自我需要的國家/語言還是他們至少是有效的語言(並強制他們到適當的國家/地區);對於最後一部分,我需要驗證,如果翻譯不在數據庫上回落到英語。