Я пытаюсь использовать Zend_Translate от Zend Framework
Я использую "POEdit" для генерации файлов перевода "gettext".
Мои файлы находятся в /www/mysite.com/webapps/includes/locale (этот путь находится в моем пути включения).
Я имею:
pictures.en.mo
pictures.en.po
(Я планирую скоро иметь pictures.es.mo)
Все работает нормально, если я вручную делаю addTranslation () для каждого файла. Однако я хочу использовать метод автоматического сканирования файлов.
Я пробовал оба из них:
<?php
/*Localization*/
require_once 'Zend/Translate.php';
require_once 'Zend/Locale.php';
define('LOCALE','/www/mysite.com/webapps/includes/locale');
if(!empty($_GET['locale'])){
$locale = new Zend_Locale($_GET['locale']);
}
else{
$locale = new Zend_Locale();
}
$translate = new Zend_Translate('gettext', LOCALE, null, array('scan' => Zend_Translate::LOCALE_FILENAME));
if ( $translate->isAvailable( $locale->getLanguage() ) ){
$translate->setLocale($locale);
}
else{
$translate->setLocale('en');
}
А это:
<?php
/*Localization*/
require_once 'Zend/Translate.php';
require_once 'Zend/Locale.php';
define('LOCALE','/www/mysite.com/webapps/includes/locale');
if(!empty($_GET['locale'])){
$locale = new Zend_Locale($_GET['locale']);
}
else{
$locale = new Zend_Locale();
}
$translate = new Zend_Translate('gettext', LOCALE);
if ( $translate->isAvailable( $locale->getLanguage() ) ){
$translate->setLocale($locale);
}
else{
$translate->setLocale('en');
}
В обоих случаях я получаю Уведомление: перевод на английский язык недоступен. в /www/mysite.com/webapps/includes/Zend/Translate/Adapter.php в строке 411
Это также сработало, если я попытался выполнить сканирование каталогов.