Я новичок в zend framework, и я нахожу очевидную проблему, с которой вы встречаетесь, когда используете ее в первый раз. Теперь я устанавливаю функцию перевода, и, чтобы убрать язык сайта, я разместил два флага, один для языка сайта, а другой с английским флагом. Он должен работать таким образом, я уже создал определенный контроллер:Zend Translate/locale/set/en не найден на этом сервере
<?php
class LocaleController extends Zend_Controller_Action
{
public function init()
{
// init code
}
public function indexAction()
{
// action body
}
public function setAction()
{
// if supported locale, add to session
if (Zend_Validate::is($this->getRequest()->getParam('locale'), 'InArray',
array('haystack' => array('en', 'it'))))
{
$session = new Zend_Session_Namespace('ttb.l10n');
$session->locale = $this->getRequest()->getParam('locale');
}
// redirect to requesting URL
$url = $this->getRequest()->getServer('HTTP_REFERER');
$this->_redirect($url);
}
}
В контроллере локали, я написал «установить» действие, которое принимает на «EN» и «ее» параметры. (Я установил файл Bootstrap для перевода, я вставьте его ниже, но страница не найдена. Должен ли я написать представление для этого контроллера? Не могу ли я просто загрузить страницу индекса с нужным языком? ? как я добиться того, что
protected function _initLocale()
{
$session = new Zend_Session_Namespace('ttb.l10n');
if ($session->locale)
{
$locale = new Zend_Locale($session->locale);
}
if ($locale === null)
{
try
{
$locale = new Zend_Locale('browser');
}
catch (Zend_Locale_Exception $e)
{
$locale = new Zend_Locale('en');
}
}
$registry = Zend_Registry::getInstance();
$registry->set('Zend_Locale', $locale);
}
protected function _initTranslate()
{
$translate = new Zend_Translate('array',
APPLICATION_PATH . '/../languages/',
null,
array('scan' => Zend_Translate::LOCALE_FILENAME,
'disableNotices' => 1));
$registry = Zend_Registry::getInstance();
$registry->set('Zend_Translate', $translate);
}
Затем в файле IndexController.php я есть:
public function init()
{
/* Initialize action controller here */
$registry = Zend_Registry::getInstance();
$this->view->locale = $registry->get('Zend_Locale');
}
Тогда в layout.phtml я есть ссылки:
<a href="/locale/set/it"><img src="<?php echo $this->baseUrl(); ?>/immagini/flag/italia.png" title="Italiano"></a>
<a href="/locale/set/en"><img src="<?php echo $this->baseUrl(); ?>/immagini/flag/inghilterra.png" title="English"></a>
I» m с использованием zend framework 1.12 ...