Intento usar Zend_Translate de Zend Framework
Estoy usando "POEdit" para generar archivos de traducción "gettext".
Mis archivos están en /www/mysite.com/webapps/includes/locale (esta ruta se encuentra en mi ruta de inclusión). Yo tengo: pictures.en.mo pictures.en.po (Planeo tener pictures.es.mo pronto)
Todo funciona bien si manualmente addTranslation () para cada archivo. Sin embargo, quiero usar el método automático de escaneo de archivos.
Intenté ambos:
<?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");
}
Y esto:
<?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");
}
En ambos casos, recibo una notificación: No hay traducción disponible para el idioma "en". en /www/mysite.com/webapps/includes/Zend/Translate/Adapter.php en la línea 411
También funcionó si traté de escanear el directorio.
Respuestas
1 para la respuesta № 1Creo que solo hay un pequeño "error".
$translate = new Zend_Translate(
"gettext",
LOCALE,
null,
array("scan" => Zend_Translate::LOCALE_DIRECTORY) // <--
);
Si usa LOCALE_FILENAME, está ZF buscando dentro de este ARCHIVO para su Traducción.