Итак, я google'd и нашел способ заставить мое приложение работать с адаптером db для локализации (что отлично работает), теперь следующей проблемой роста является резервное копирование. Вот сценарий:Как сделать Zend_Locale с db и резервным?
- Приложение имеет переводы для английского, немецкого, французского и корейского языков.
- Английский на 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 locales? И для Q2 !!! комментарий, как я могу отступить на английском языке в случае ID 123 не найден для использования на других языках.
Также я буду обрабатывать даты и валюты, поэтому я хотел бы проверить для fr_FR, de_DE, ko_KO, а не варианты, такие как fr_CA или de_AT. Поэтому для первой части мне нужно проверить, соответствуют ли локали из страны/языка, которые мне нужны, или если они являются хотя бы действительным языком (и принуждают их к соответствующей стране); и для последней части мне нужно проверить, что если перевод не находится на db, вернитесь на английский язык.