当前位置: 首页>>代码示例>>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;未经允许,请勿转载。