'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! reportBug(__FUNCTION__, __LINE__, 'Source file ' . $source . ' is not readable.'); } elseif (!isIncludeReadable($target)) { // Please report this bug! reportBug(__FUNCTION__, __LINE__, 'Target file ' . $target . ' is not readable.'); } elseif ($targetLanguage == getCurrentLanguage()) { // Must be different reportBug(__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); // Is there 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 whether the given message is masked function isMessageMasked ($messageId, $strict = TRUE) { // Is the message id valid? if (($strict === TRUE) && (!isMessageIdValid($messageId))) { // No, then abort here reportBug(__FUNCTION__, __LINE__, 'Invalid message id ' . $messageId . ' detected.'); } // END - if // Now simply check it $isMasked = isInString('%', getMessage($messageId)); //* DEBUG: */ logDebugMessage(__FUNCTION__, __LINE__, 'messageId=' . $messageId . ',isMasked=' . intval($isMasked)); // Return result return $isMasked; } // [EOF] ?>