ACC SHELL
<?php
class TF_Controller_Plugin_Translate extends Zend_Controller_Plugin_Abstract
{
/**
* Nastavi soubor pro preklad
*
* @param Zend_Controller_Request_Abstract $request
*/
public function routeShutdown(Zend_Controller_Request_Abstract $request)
{
if($request->getModuleName() == 'admin'){
$lang = 'cs';
} else {
$langSession = new Zend_Session_Namespace('lang');
$lang = $langSession->langId?$langSession->langId:'cs';
}
$config = Zend_Registry::get('config');
$defaultPath = '../application/translate/' . $lang . '.default.mo';
$translate = new Zend_Translate('gettext', $defaultPath, $lang);
if( 1 == $config->translate->logUntranslated && $lang !== 'cs'){
$writer = new Zend_Log_Writer_Stream(APP_ROOT . $config->translate->logPath);
$writer->setFormatter(new TF_Log_Formater_Gettext());
$log = new Zend_Log($writer);
$translate->setOptions(array(
'log' => $log,
'logUntranslated' => true
));
}
if (!$module = $request->getModuleName()) {
$module = 'default';
}
if (!$controller = $request->getControllerName()) {
$module = 'index';
}
$formFile = '../application/translate/' . $lang . '.' . 'forms.mo';
if (file_exists($formFile)) {
$translate->addTranslation($formFile, $lang);
}
$controllerFile = '../application/translate/' . $module . '/' . $lang . '.' . $controller . '.mo';
if (file_exists($controllerFile)) {
$translate->addTranslation($controllerFile, $lang);
}
Zend_Validate_Abstract::setDefaultTranslator($translate);
Zend_Form::setDefaultTranslator($translate);
Zend_Registry::set('Zend_Translate', $translate);
}
}
ACC SHELL 2018