'de', 'en' => 'en'); // Should we keep one out? if (!empty($except)) { // Remove this unset($langs[$except]); } // END - if // Return the array return $langs; } // Compares two language files function ifLanguageFilesCompares ($source, $target, $targetLanguage) { // Init differences $GLOBALS['lang_diff'][$target] = array(); $GLOBALS['lang_diff_count'][$target] = 0; if (!isset($GLOBALS['lang_diff_count']['total'])) { $GLOBALS['lang_diff_count']['total'] = 0; } // END - if // *Does* match by default $matches = true; // Is one not readable? if (!isIncludeReadable($source)) { // Please report this bug! debug_report_bug(__FUNCTION__, __LINE__, 'Source file ' . $source . ' is not readable.'); } elseif (!isIncludeReadable($target)) { // Please report this bug! debug_report_bug(__FUNCTION__, __LINE__, 'Target file ' . $target . ' is not readable.'); } elseif ($targetLanguage == getCurrentLanguage()) { // Must be different debug_report_bug(__FUNCTION__, __LINE__, 'Target language ' . $targetLanguage . ' is same as current.'); } // Backup current messages/language $backupLang = getCurrentLanguage(); $messages[$backupLang] = $GLOBALS['messages'][$backupLang]; $GLOBALS['messages'][$backupLang] = array(); // Both are readable so include current language file $GLOBALS['count'] = false; loadInclude($source); $GLOBALS['msgs'][$source] = $GLOBALS['messages'][$backupLang]; unset($GLOBALS['count']); // Set target language setCurrentLanguage($targetLanguage); // Do we have an array? if (!isset($GLOBALS['messages'][$targetLanguage])) { // Then create it to avoid notice $GLOBALS['messages'][$targetLanguage] = array(); $GLOBALS['msg_count'][$targetLanguage] = 0; } // END - if // Load target language file loadInclude($target); $GLOBALS['msgs'][$target] = $GLOBALS['messages'][$targetLanguage]; // Set backup back setCurrentLanguage($backupLang); $GLOBALS['messages'][$backupLang] = $messages[$backupLang]; unset($messages[$backupLang]); // Do they mismatch? if ((count($GLOBALS['msgs'][$source])) != (count($GLOBALS['msgs'][$target]))) { // Does not match $matches = false; // Check all differences foreach ($GLOBALS['msgs'][$source] as $key => $value) { // Don't we have it? if (!isset($GLOBALS['msgs'][$target][$key])) { // Then add is as difference $GLOBALS['lang_diff'][$target][$key] = $value; // ... and count it $GLOBALS['lang_diff_count'][$target]++; $GLOBALS['lang_diff_count']['total']++; } // END - if } // END - foreach } // END - if // Return result return $matches; } // Getter for getting difference of target file function getLanguageComparisonDifference ($target) { return $GLOBALS['lang_diff_count'][$target]; } // Checks wether the given message is masked function isMessageMasked ($messageId) { // Is the message id valid? if (!isMessageIdValid($messageId)) { // No, then abort here debug_report_bug(__FUNCTION__, __LINE__, 'Invalid message id ' . $messageId . ' detected.'); } // END - if // Now simply check it $masked = isInString('%', $GLOBALS['messages'][getCurrentLanguage()][$messageId]); // Return result return $masked; } // [EOF] ?>