當前位置: 首頁>>代碼示例>>PHP>>正文


PHP Tinebase_Config::isReady方法代碼示例

本文整理匯總了PHP中Tinebase_Config::isReady方法的典型用法代碼示例。如果您正苦於以下問題:PHP Tinebase_Config::isReady方法的具體用法?PHP Tinebase_Config::isReady怎麽用?PHP Tinebase_Config::isReady使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在Tinebase_Config的用法示例。


在下文中一共展示了Tinebase_Config::isReady方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的PHP代碼示例。

示例1: getAvailableTranslations

 /**
  * returns list of all available translations
  * 
  * NOTE available are those, having a Tinebase translation
  * 
  * @return array list of all available translation
  *
  * @todo add test
  */
 public static function getAvailableTranslations($appName = 'Tinebase')
 {
     $availableTranslations = array();
     // look for po files in Tinebase
     $officialTranslationsDir = dirname(__FILE__) . "/../{$appName}/translations";
     foreach (scandir($officialTranslationsDir) as $poFile) {
         list($localestring, $suffix) = explode('.', $poFile);
         if ($suffix == 'po') {
             $availableTranslations[$localestring] = array('path' => "{$officialTranslationsDir}/{$poFile}");
         }
     }
     // lookup/merge custom translations
     if (Tinebase_Config::isReady() === TRUE) {
         $logger = Tinebase_Core::getLogger();
         $customTranslationsDir = Tinebase_Config::getInstance()->translations;
         if ($customTranslationsDir) {
             foreach ((array) @scandir($customTranslationsDir) as $dir) {
                 $poFile = "{$customTranslationsDir}/{$dir}/{$appName}/translations/{$dir}.po";
                 if (is_readable($poFile)) {
                     $availableTranslations[$dir] = array('path' => $poFile);
                 }
             }
         }
     } else {
         $logger = null;
     }
     $filesToWatch = array();
     // compute information
     foreach ($availableTranslations as $localestring => $info) {
         if (!Zend_Locale::isLocale($localestring, TRUE, FALSE)) {
             if ($logger) {
                 $logger->WARN(__METHOD__ . '::' . __LINE__ . " {$localestring} is not supported, removing translation form list");
             }
             unset($availableTranslations[$localestring]);
             continue;
         }
         $filesToWatch[] = $info['path'];
     }
     if (Tinebase_Config::isReady()) {
         $cache = new Zend_Cache_Frontend_File(array('master_files' => $filesToWatch));
         $cache->setBackend(Tinebase_Core::get(Tinebase_Core::CACHE)->getBackend());
     } else {
         $cache = null;
     }
     if ($cache) {
         $cacheId = Tinebase_Helper::convertCacheId(__FUNCTION__ . $appName . sha1(serialize($filesToWatch)));
         $cache = new Zend_Cache_Frontend_File(array('master_files' => $filesToWatch));
         $cache->setBackend(Tinebase_Core::get(Tinebase_Core::CACHE)->getBackend());
         if ($cachedTranslations = $cache->load($cacheId)) {
             $cachedTranslations = unserialize($cachedTranslations);
             if ($cachedTranslations !== null) {
                 return $cachedTranslations;
             }
         }
     }
     // compute information
     foreach ($availableTranslations as $localestring => $info) {
         // fetch header grep for X-Poedit-Language, X-Poedit-Country
         $fh = fopen($info['path'], 'r');
         $header = fread($fh, 1024);
         fclose($fh);
         preg_match('/X-Tine20-Language: (.+)(?:\\\\n?)(?:"?)/', $header, $language);
         preg_match('/X-Tine20-Country: (.+)(?:\\\\n?)(?:"?)/', $header, $region);
         $locale = new Zend_Locale($localestring);
         $availableTranslations[$localestring]['locale'] = $localestring;
         $availableTranslations[$localestring]['language'] = isset($language[1]) ? $language[1] : Zend_Locale::getTranslation($locale->getLanguage(), 'language', $locale);
         $availableTranslations[$localestring]['region'] = isset($region[1]) ? $region[1] : Zend_Locale::getTranslation($locale->getRegion(), 'country', $locale);
     }
     ksort($availableTranslations);
     if ($cache) {
         $cache->save(serialize($availableTranslations), $cacheId, array(), 86400);
     }
     return $availableTranslations;
 }
開發者ID:ingoratsdorf,項目名稱:Tine-2.0-Open-Source-Groupware-and-CRM,代碼行數:83,代碼來源:Translation.php


注:本文中的Tinebase_Config::isReady方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。