/** * get translation with Zend_Translate_Adapter_Gettext * * @see Zend_Translate_Adapter_Gettext * @param string $file * @return array */ protected function _getGettextFileData($file) { $data = array(); if (file_exists($file)) { $gettextTranslator = new Zend_Translate(array('adapter' => 'Zend_Translate_Adapter_Gettext', 'content' => $file)); $data = $gettextTranslator->getMessages(); } return $data; }
public function getJsTranslation() { if (!$this->_jstranslation) { try { $locale = Mage::app()->getLocale()->getLocaleCode(); $translator = new Zend_Translate(array('adapter' => 'csv', 'content' => Mage::getBaseDir('locale') . '/' . $locale . '/' . 'Mirasvit_Helpdesk.csv', 'locale' => substr($locale, 0, 2), 'delimiter' => ',')); $this->_jstranslation = json_encode($translator->getMessages()); } catch (Exception $e) { // If we had unexpected exception (non-standard locale, for example), return empty return array(); } } return $this->_jstranslation; }
/** * Tests getting of all messages */ public function testGettingAllMessages() { $lang = new Zend_Translate(Zend_Translate::AN_ARRAY, array('msg1' => 'Message 1', 'msg2' => 'Message 2'), 'en'); $lang->addTranslation(array('msg1' => 'Message 1 (ru)'), 'ru'); $this->assertEquals(array('msg1' => 'Message 1 (ru)'), $lang->getMessages()); $this->assertEquals(array('msg1' => 'Message 1', 'msg2' => 'Message 2'), $lang->getMessages('en')); $this->assertEquals(array('en' => array('msg1' => 'Message 1', 'msg2' => 'Message 2'), 'ru' => array('msg1' => 'Message 1 (ru)')), $lang->getMessages('all')); }
/** Try to load current translations */ protected function _loadTranslations($locale, $module, $adapter) { $profile = $this->_getProfile(); $path = $this->_getLocalesPath($locale, $module); $content = $path . '/' . $module . '.' . $this->_adapters[$adapter]; try { $translate = new Zend_Translate(array('adapter' => $adapter, 'content' => $content, 'locale' => $locale, 'disableNotices' => true)); } catch (Exception $e) { if (!file_exists($content)) { return array(); // The file will be created later } throw $e; // File exists, but consist from unkown format } // Translation file can be empty, thus this check if ($messageIds = $translate->getMessageIds()) { return array_combine($messageIds, $translate->getMessages()); } return array(); }
} // Timezone date_default_timezone_set($conf->general->timezone); $locale = $conf->general->locale; if (!file_exists(APPLICATION_DIRECTORY . "/Joobsbox/Languages/{$locale}")) { $locale = "en"; } try { // Translation $translate = new Zend_Translate('gettext', APPLICATION_DIRECTORY . '/Joobsbox/Languages/' . $locale . '/LC_MESSAGES/main.mo', $locale, array('disableNotices' => true)); Zend_Registry::set("Zend_Locale", new Zend_Locale($locale)); } catch (Exception $e) { Zend_Registry::set("Zend_Locale", new Zend_Locale("en")); $translate = new Zend_Translate('gettext', APPLICATION_DIRECTORY . '/Joobsbox/Languages/en/LC_MESSAGES/main.mo', 'en'); } Zend_Registry::set("Translation_Hash", $translate->getMessages()); Zend_Registry::set('Zend_Translate', $translate); // Database parameters if (file_exists(APPLICATION_DIRECTORY . '/config/db.xml')) { try { $dbconf = new Zend_Config_Xml(APPLICATION_DIRECTORY . '/config/db.xml', 'zend_db'); $db = Zend_Db::factory($dbconf->dbadapter, $dbconf); Zend_Db_Table_Abstract::setDefaultAdapter($db); Zend_Registry::set("db", $db); if (strlen($dbconf->start)) { $db->query($dbconf->start); } } catch (Exception $e) { @rename(APPLICATION_DIRECTORY . "/config/db.xml", APPLICATION_DIRECTORY . "/config/db.xml.bak"); throw $e; exit;
/** * Reads a translation file (gettext) and merges it to the messages array * * @param string $file * @param array $messages */ private function mergeTranslationFile($file, &$messages) { if (file_exists($file)) { $translate = new Zend_Translate('gettext', $file, $this->locale); $new_messages = $translate->getMessages(); if (is_array($new_messages)) { $messages = array_merge($messages, $new_messages); } } }