35 lines
1.2 KiB
PHP
35 lines
1.2 KiB
PHP
<?php
|
|
|
|
class App_Controller_Plugin_LangSelector extends Zend_Controller_Plugin_Abstract
|
|
{
|
|
public function preDispatch(Zend_Controller_Request_Abstract $request)
|
|
{
|
|
$session = new Zend_Session_Namespace('session');
|
|
|
|
$lang = $request->getParam('lang','');
|
|
$langLocale = '';
|
|
|
|
switch($lang) {
|
|
case "it":
|
|
$langLocale = 'it'; break;
|
|
case "en":
|
|
$langLocale = 'en'; break;
|
|
default:
|
|
$langLocale = isset($session->lang) ? $session->lang : Zend_Registry::get('Zend_Locale')->getLanguage();
|
|
}
|
|
|
|
$locale = new Zend_Locale($langLocale);
|
|
Zend_Registry::set('Zend_Locale', $locale);
|
|
|
|
$translationPath = dirname( APPLICATION_PATH ) . DIRECTORY_SEPARATOR . 'languages' . DIRECTORY_SEPARATOR . $langLocale;
|
|
$translate = new Zend_Translate('array', $translationPath, $locale);
|
|
|
|
$session->lang = $langLocale;
|
|
|
|
Zend_Registry::set('Zend_Translate', $translate);
|
|
Zend_Validate_Abstract::setDefaultTranslator($translate);
|
|
Zend_Form::setDefaultTranslator($translate);
|
|
|
|
}
|
|
}
|