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