public function testGetDevelopmentRevision() { $rev = getDevelopmentRevision(); $this->assertFalse(empty($rev)); }
/** * initializes the session */ public static function setupSession() { self::startSession(array('name' => 'TINE20SETUPSESSID'), 'tinesetup'); if (isset(self::get(self::SESSION)->setupuser)) { self::set(self::USER, self::get(self::SESSION)->setupuser); } $config = self::getConfig(); define('TINE20_BUILDTYPE', strtoupper($config->get('buildtype', 'DEVELOPMENT'))); define('TINE20SETUP_CODENAME', getDevelopmentRevision()); define('TINE20SETUP_PACKAGESTRING', 'none'); define('TINE20SETUP_RELEASETIME', 'none'); }
/** * generate statistics * * @param bool $_verbose * @return void */ function statistics($_verbose) { global $tine20path; $statsFile = "{$tine20path}/langstatistics.json"; $locale = new Zend_Locale('en'); $langStats = array(); $poFilesStats = array(); foreach (Tinebase_Translation::getTranslationDirs() as $appName => $translationPath) { if ($_verbose) { echo "Entering {$appName} \n"; } $appStats[$appName] = array(); foreach (scandir($translationPath) as $poFile) { if (substr($poFile, -3) == '.po') { if ($_verbose) { echo "Processing {$appName}/{$poFile} \n"; } $langCode = substr($poFile, 0, -3); $langLocale = new Zend_Locale($langCode); $statsOutput = `msgfmt --statistics {$translationPath}/{$poFile} 2>&1`; $statsParts = explode(',', $statsOutput); $statsParts = preg_replace('/^\\s*(\\d+).*/i', '$1', $statsParts); $translated = $fuzzy = $untranslated = $total = 0; switch (count($statsParts)) { case 1: $translated = $statsParts[0]; break; case 2: $translated = $statsParts[0]; $untranslated = $statsParts[1]; break; case 3: $translated = $statsParts[0]; $fuzzy = $statsParts[1]; $untranslated = $statsParts[2]; break; default: echo "Unexpected statistic return \n"; exit; } $total = array_sum($statsParts); $poFileStats = array('locale' => $langCode, 'language' => $locale->getTranslation($langLocale->getLanguage(), 'language'), 'region' => $locale->getTranslation($langLocale->getRegion(), 'country'), 'appname' => $appName, 'translated' => (int) $translated, 'fuzzy' => (int) $fuzzy, 'untranslated' => (int) $untranslated, 'total' => array_sum($statsParts)); $poFilesStats[] = $poFileStats; // sum up lang statistics $langStats[$langCode] = array_key_exists($langCode, $langStats) ? $langStats[$langCode] : array('locale' => '', 'language' => '', 'region' => $locale->getTranslation($langLocale->getRegion(), 'country'), 'translated' => 0, 'fuzzy' => 0, 'untranslated' => 0, 'total' => 0); $langStats[$langCode]['locale'] = $langCode; $langStats[$langCode]['language'] = $locale->getTranslation($langLocale->getLanguage(), 'language'); $langStats[$langCode]['region'] = $locale->getTranslation($langLocale->getRegion(), 'country'); $langStats[$langCode]['appname'] = 'all'; $langStats[$langCode]['translated'] += $poFileStats['translated']; $langStats[$langCode]['fuzzy'] += $poFileStats['fuzzy']; $langStats[$langCode]['untranslated'] += $poFileStats['untranslated']; $langStats[$langCode]['total'] += $poFileStats['total']; } } } // clean up unwanted messages.mo `rm messages.mo`; $results = array('version' => getDevelopmentRevision(), 'langStats' => array_values($langStats), 'poFilesStats' => $poFilesStats); file_put_contents($statsFile, Zend_Json::encode($results)); }