/ / Zend_Translate сканування файлів перекладу - zend-framework, локалізація, gettext

Zend_Translate сканує переклад файли - zend-framework, локалізація, gettext

Я намагаюся використовувати Zend_Translate з Zend Framework

Я використовую "POEdit" для створення "gettext" файлів перекладу.

Мої файли знаходяться під адресою /www/mysite.com/webapps/includes/locale (цей шлях знаходиться в моєму шляху включення). У мене є: pictures.en.mo pictures.en.po (Я планую мати фотографії.ес.мо незабаром)

Все працює добре, якщо я вручну додаю переказ () для кожного файлу. Однак я хочу використовувати метод автоматичного сканування файлів.

Я спробував обидва з них:

<?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");
}

В обох випадках я отримую повідомлення: перекладу для мови "en" немає. в /www/mysite.com/webapps/includes/Zend/Translate/Adapter.php на лінії 411

Він також працював, якщо я намагався сканувати каталог.

Відповіді:

1 для відповіді № 1

Я думаю, що є лише одна маленька "помилка".

$translate = new Zend_Translate(
"gettext",
LOCALE,
null,
array("scan" => Zend_Translate::LOCALE_DIRECTORY) // <--
);

Якщо ви використовуєте LOCALE_FILENAME, ZF шукає всередині цього файлу для вашого перекладу.