本文整理汇总了PHP中Zend_Locale::setLocale方法的典型用法代码示例。如果您正苦于以下问题:PHP Zend_Locale::setLocale方法的具体用法?PHP Zend_Locale::setLocale怎么用?PHP Zend_Locale::setLocale使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Zend_Locale
的用法示例。
在下文中一共展示了Zend_Locale::setLocale方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: preDispatch
public function preDispatch($request)
{
try {
$locale = new Zend_Locale();
$locale->setDefault('en');
$locale->setLocale(Zend_Locale::BROWSER);
$requestedLanguage = key($locale->getBrowser());
$formatter = new Zend_Log_Formatter_Simple('%message%' . PHP_EOL);
$writer = new Zend_Log_Writer_Stream(APPLICATION_LOG_PATH . 'translations.log');
$writer->setFormatter($formatter);
$logger = new Zend_Log($writer);
$frontendOptions = array('cache_id_prefix' => 'translation', 'lifetime' => 86400, 'automatic_serialization' => true);
$backendOptions = array('cache_dir' => APPLICATION_CACHE_PATH);
$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);
$options = array('adapter' => 'gettext', 'scan' => Zend_Translate::LOCALE_FILENAME, 'content' => APPLICATION_PATH . '/languages/en/en.mo', 'locale' => 'auto', 'disableNotices' => true);
$translate = new Zend_Translate($options);
if (!$translate->isAvailable($locale->getLanguage())) {
$locale->setLocale('en');
} else {
$translate->setLocale($locale);
}
$translate->setCache($cache);
Zend_Registry::set('locale', $locale->getLanguage());
Zend_Registry::set('Zend_Translate', $translate);
} catch (Exception $e) {
try {
$writer = new Zend_Log_Writer_Stream(APPLICATION_LOG_PATH . 'plugin-locale.log');
$logger = new Zend_Log($writer);
$logger->log($e->getMessage(), Zend_Log::ERR);
} catch (Exception $e) {
}
}
}
示例2: preDispatch
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
// Get our translate object from registry.
$translate = Zend_Registry::get('Zend_Translate');
$currLocale = $translate->getLocale();
// Create Session block and save the locale
$session = new Zend_Session_Namespace('session');
$lang = $request->getParam('language', '');
// Register all your "approved" locales below.
switch ($lang) {
case "nl":
$langLocale = 'nl_NL';
break;
case "en":
$langLocale = 'en_US';
break;
default:
/**
* Get a previously set locale from session or set
* the current application wide locale (set in
* Bootstrap) if not.
*/
$langLocale = isset($session->lang) ? $session->lang : $currLocale;
}
$newLocale = new Zend_Locale();
$newLocale->setLocale($langLocale);
Zend_Registry::set('Zend_Locale', $newLocale);
$translate->setLocale($langLocale);
$session->lang = $langLocale;
// Save the modified translate back to registry
Zend_Registry::set('Zend_Translate', $translate);
}
示例3: _initToken
/**
* Common handler utility to initialize tokens from parameters
*
* @return boolean True if there is a real token specified in the request
*/
protected function _initToken()
{
if ($this->tracker) {
return $this->token && $this->token->exists;
}
$this->tracker = $this->loader->getTracker();
$this->tokenId = $this->tracker->filterToken($this->_getParam(\MUtil_Model::REQUEST_ID));
if (!$this->tokenId) {
return false;
}
$this->token = $this->tracker->getToken($this->tokenId);
if (!$this->token->exists) {
return false;
}
if (!($this->currentUser->isActive() || $this->token->getSurvey()->isTakenByStaff())) {
$tokenLang = strtolower($this->token->getRespondentLanguage());
// \MUtil_Echo::track($tokenLang, $this->locale->getLanguage());
if ($tokenLang != $this->locale->getLanguage()) {
$this->locale->setLocale($tokenLang);
$this->translateAdapter->setLocale($this->locale);
$this->currentUser->setLocale($tokenLang);
\Gems_Cookies::setLocale($tokenLang, $this->basepath->getBasePath());
}
$currentOrg = $this->loader->getOrganization();
$tokenOrgId = $this->token->getOrganizationId();
if ($tokenOrgId != $currentOrg->getId()) {
$this->loader->getOrganization($tokenOrgId)->setAsCurrentOrganization();
}
}
return true;
}
示例4: setLocale
/**
* Try to set given locale
* Throw Zend_Translate_Exception if cannot
*/
public function setLocale($name = null)
{
try {
if (!$this->localeName) {
$this->locale = new Zend_Locale($name);
} else {
$this->locale->setLocale($name);
}
if (array_key_exists($this->locale->getLanguage(), $this->translationsPaths)) {
if (!isset($this->translate)) {
$this->translate = new Zend_Translate($this->translationAdapter, $this->translationsPaths[$this->locale->getLanguage()], $this->locale->getLanguage());
} elseif ($this->translate->isAvailable($this->locale->getLanguage())) {
$this->translate->setLocale($this->locale->getLanguage());
} else {
$this->translate->addTranslation($this->translationsPaths[$this->locale->getLanguage()], $this->locale->getLanguage());
}
} else {
include_once 'Zend/Translate/Exception.php';
throw new Zend_Translate_Exception("Unsupported language");
}
} catch (Zend_Exception $e) {
if ($this->localeName) {
$this->setLocale($this->localeName);
}
throw $e;
}
$this->localeName = $this->session->localeName = $this->locale->getLanguage() . ($this->locale->getRegion() ? "_" . $this->locale->getRegion() : "");
Zend_Registry::set('Zend_Locale', $this->locale);
Zend_Locale::setDefault($this->locale);
}
示例5: init
function init()
{
Zend_Registry::set('languages', array('en' => 'English', 'es' => 'Español', 'ca' => 'Català', 'gl' => 'Galego', 'eu' => 'Euskara', 'nl' => 'Nederlands', 'de' => 'Deutsch', 'fr' => 'Français', 'pt' => 'Português', 'it' => 'Italiano'));
$activelangs = array('en' => 0, 'es' => 0, 'ca' => 1, 'gl' => 1, 'eu' => 1, 'nl' => 1, 'de' => 1, 'fr' => 1, 'pt' => 1, 'it' => 1);
Zend_Registry::set('activelangs', $activelangs);
$this->lang = $this->getRequest()->getParam("language");
if ($this->lang == null) {
$auth = Zend_Auth::getInstance();
if ($auth->hasIdentity()) {
$this->lang = $auth->getIdentity()->lang;
}
}
if ($this->lang == null && isset($_COOKIE['lang'])) {
$this->lang = $_COOKIE['lang'];
}
$locale = new Zend_Locale();
// El setLocale del Zend está malito...
// uso también el nativo de php
$locale->setLocale($this->lang . '_' . strtoupper($this->lang) . '.utf8');
setlocale(LC_ALL, $this->lang . '_' . strtoupper($this->lang) . '.utf8');
if (!isset($activelangs[$locale->getLanguage()])) {
$locale->setLocale('es_ES.utf8');
}
$this->lang = $locale->getLanguage();
$this->langtest = $activelangs[$this->lang] == 1;
$options = array('scan' => Zend_Translate::LOCALE_FILENAME);
$translate = new Zend_Translate('csv', APPLICATION_PATH . '/languages/', $this->lang, $options);
if ($translate->isAvailable($this->lang)) {
$translate->setLocale($locale);
Zend_Form::setDefaultTranslator($translate);
Zend_Registry::set('Zend_Translate', $translate);
} else {
header('Location: /es');
exit;
}
if ($this->langtest && (!isset($_COOKIE['langtest']) || $_COOKIE['langtest'] != "0")) {
$controller = $this->getActionController();
if (isset($controller->view)) {
$controller->view->extra .= " advices";
if (!$controller->view->advices) {
$controller->view->advices = array();
}
$controller->view->advices["langtest"] = $controller->view->translate("BetaTranslation", "/{$this->lang}/page/translate?lang={$this->lang}");
$controller->view->headScript()->appendFile('/js/jquery.advice.js');
}
}
}
示例6: setLocale
/**
* Sets a new locale
*
* @param string|array|Zend_Locale $locale (Optional) New locale to set
* @return Enlight_Components_Locale
*/
public function setLocale($locale = null)
{
if (is_array($locale)) {
$this->id = isset($locale['id']) ? (int) $locale['id'] : null;
$locale = isset($locale['locale']) ? $locale['locale'] : null;
}
parent::setLocale($locale);
return $this;
}
示例7: testBadLang
public function testBadLang()
{
$locale = new Zend_Locale();
$locale->setLocale('qwerty');
Zend_Registry::set('Zend_Locale', $locale);
$this->setUp();
$this->dispatch('/');
$this->assertHeader('Content-Language', 'en');
}
示例8: preDispatch
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$lang = $request->getParam('lang', '');
if ($lang !== 'id' && $lang !== 'en') {
$request->setParam('lang', 'id');
}
$zl = new Zend_Locale();
$zl->setLocale($lang);
Zend_Registry::set('Zend_Locale', $zl);
}
示例9: setUpBeforeClass
public static function setUpBeforeClass()
{
parent::setUpBeforeClass();
// Uebersetzung vorhanden?
if (!Registry::isRegistered('Zend_Translate')) {
// Locale erweitern; Lade Uebersetzungen und speichere Translate Objekt in der Registry
$lang = 'de';
$locale = new \Zend_Locale();
$locale->setLocale($lang);
$langFile = APPLICATION_PATH . '/translations/' . $lang . '.php';
Registry::set('Zend_Translate', new \Zend_Translate('array', $langFile, $locale->getLanguage()));
}
}
示例10: Field
public function Field($properties = array())
{
$source = $this->getSource();
if (!$this->value || !isset($source[$this->value])) {
if ($this->config()->get('default_to_locale') && $this->locale()) {
$locale = new Zend_Locale();
$locale->setLocale($this->locale());
$this->value = $locale->getRegion();
}
}
if (!$this->value || !isset($source[$this->value])) {
$this->value = $this->config()->get('default_country');
}
return parent::Field();
}
示例11: Field
public function Field($properties = array())
{
$source = $this->getSource();
// Default value to best availabel locale
$value = $this->Value();
if ($this->config()->default_to_locale && (!$value || !isset($source[$value])) && $this->locale()) {
$locale = new Zend_Locale();
$locale->setLocale($this->locale());
$value = $locale->getRegion();
$this->setValue($value);
}
// Default to default country otherwise
if (!$value || !isset($source[$value])) {
$this->setValue($this->config()->default_country);
}
return parent::Field($properties);
}
示例12: preDispatch
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
$lang = $request->getParam('lang', '');
if ($lang !== 'en' && $lang !== 'cs') {
$request->setParam('lang', 'en');
}
$lang = $request->getParam('lang');
if ($lang == 'en') {
$locale = 'en_UK';
} else {
$locale = 'cs_CZ';
}
$zl = new Zend_Locale();
$zl->setLocale($locale);
Zend_Registry::set('Zend_Locale', $zl);
$translate = new Zend_Translate('csv', APPLICATION_PATH . '/configs/lang/' . $lang . '.csv', $lang);
Zend_Registry::set('Zend_Translate', $translate);
}
示例13: setLanguage
/**
* Nastavuje funkcionalitu prekladani
*
* @return void
* @todo nastavit cache pro Zend_Locale + otestovat vykon
* @todo nastaveni Zend_Locale podle nastaveni v db
* @todo pouziti $locale->getLanguage nebo neco podobneho - mohlo by to zkratit switch, pripadne by se nove jazyky mohly pridavat pres admin rozhrani
*/
public function setLanguage()
{
$options = $this->getOptions();
$locale = new Zend_Locale();
switch ($locale) {
case 'cs_CZ':
$this->_lang->code = 'cs';
$this->_lang->locale = $locale;
$this->_lang->name = 'Czech';
break;
case 'de_AT':
case 'de_BE':
case 'de_CH':
case 'de_DE':
case 'de_LI':
case 'de_LU':
case 'de':
$this->_lang->code = 'de';
$this->_lang->locale = 'de';
$this->_lang->name = 'German';
break;
default:
$this->_lang->code = 'en';
$this->_lang->locale = 'en_US';
$this->_lang->name = 'English';
break;
}
$locale->setLocale($this->_lang->locale);
// Nastaveni locale - nejspis se to nastavi nekde v pluginu podle preferenci uzivatele a ulozi do registru nebo session
Zend_Registry::set('Zend_Locale', $locale);
$manager = $this->getBootstrap()->getResource('CacheManager');
$cache = $manager->getCache('translate');
Zend_Translate::setCache($cache);
if (isset($options['logUntranslated']) and $options['logUntranslated'] == true) {
$writer = new Unodor_Log_Writer_Translate(LANGUAGES_PATH . '/source/stringtable.php');
$log = new Zend_Log();
$log->addWriter($writer);
$options = array('log' => $log, 'logUntranslated' => true, 'logMessage' => 'gettext(%message%);');
}
$translate = new Zend_Translate('Unodor_Translate_Adapter_Gettext', LANGUAGES_PATH . '/' . $this->_lang->name . '.mo', $this->_lang->code, $options);
Zend_Registry::set('Zend_Translate', $translate);
}
示例14: routeShutdown
public function routeShutdown(Zend_Controller_Request_Abstract $request)
{
$locale = new Zend_Locale();
$options = array('scan' => Zend_Translate::LOCALE_FILENAME, 'clear' => false, 'disableNotices' => true);
Zend_Translate::setCache(Zend_Registry::get('cache'));
if (isset($_COOKIE['language_select'])) {
$language = $_COOKIE['language_select'];
} else {
$language = 'en';
}
$translate = new Zend_Translate('csv', APPLICATION_PATH . '/languages', 'auto', $options);
$translate->addTranslation(APPLICATION_PATH . '/languages/ot');
$translate->addTranslation(APPLICATION_PATH . '/../overrides/languages');
if (!$translate->isAvailable($language)) {
throw new Exception('Language ' . $language . ' is not available');
}
$locale->setLocale($language);
$translate->setLocale($locale);
Zend_Registry::set('Zend_Locale', $locale);
Zend_Registry::set('Zend_Translate', $translate);
}
示例15: preDispatch
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
//$config = Zend_Registry::get('config');
// Get languages
$locale = new Zend_Locale();
$options = array('scan' => Zend_Translate::LOCALE_FILENAME, 'disableNotices' => true);
$cache = Zend_Registry::get('cache');
Zend_Translate::setCache($cache);
$translate = @new Zend_Translate('tmx', APPLICATION_PATH . '/languages/', 'auto', $options);
$params = $this->getRequest()->getParams();
$language = 'en';
/*
if(isset($params['language']))
{
$language = $params['language'];
}
if($language == false)
{
$language = $translate->isAvailable($locale->getLanguage) ? $locale->getLanguage() : $config->language->default;
}
if(!$translate->isAvailable($language))
{
$language = 'en';
//throw new Zend_Controller_Action_Exception('This page does not exist', 404);
}
*/
//else
//{
$locale->setLocale($language);
$translate->setLocale($locale);
Zend_Form::setDefaultTranslator($translate);
//setcookie('lang', $locale->getLanguage(), null, '/');
Zend_Registry::set('Zend_Locale', $locale);
Zend_Registry::set('Zend_Translate', $translate);
Zend_Registry::set('Available_Translations', $translate->getList());
//}
}