_rootDir . "languages/" . $_lang . "/lang.inc")) { include $settings->_rootDir . "languages/" . $_lang . "/lang.inc"; $LANG[$_lang] = $text; } } unset($text); function getLanguages() { GLOBAL $settings; $languages = array(); $path = $settings->_rootDir . "languages/"; $handle = opendir($path); while ($entry = readdir($handle) ) { if ($entry == ".." || $entry == ".") continue; else if (is_dir($path . $entry)) array_push($languages, $entry); } closedir($handle); asort($languages); return $languages; } /** * Get translation * * Returns the translation for a given key. It will replace markers * in the form [xxx] with those elements from the array $replace. * A default text can be gіven for the case, that there is no translation * available. The fourth parameter can override the currently set language * in the session or the default language from the configuration. * * @param string $key key of translation text * @param array $replace list of values that replace markers in the text * @param string $defaulttext text used if no translation can be found * @param string $lang use this language instead of the currently set lang */ function getMLText($key, $replace = array(), $defaulttext = "", $lang="") { /* {{{ */ GLOBAL $settings, $LANG, $session; $trantext = ''; if(0 && $settings->_otrance) { $trantext = '
'; } if(!$lang) { if($session) $lang = $session->getLanguage(); else $lang = $settings->_language; } if(!isset($LANG[$lang][$key]) || !$LANG[$lang][$key]) { if (!$defaulttext) { if(isset($LANG[$settings->_language][$key])) $tmpText = $LANG[$settings->_language][$key]; else $tmpText = ''; } else $tmpText = $defaulttext; } else $tmpText = $LANG[$lang][$key]; if($settings->_otrance) { $_GLOBALS['used_langs'][$key] = $tmpText; } if (count($replace) == 0) return $tmpText.$trantext; $keys = array_keys($replace); foreach ($keys as $key) $tmpText = str_replace("[".$key."]", $replace[$key], $tmpText); return $tmpText; } /* }}} */ function printMLText($key, $replace = array(), $defaulttext = "", $lang="") /* {{{ */ { print getMLText($key, $replace, $defaulttext, $lang); } /* }}} */ function printReviewStatusText($status, $date=0) { /* {{{ */ if (is_null($status)) { print getMLText("status_unknown"); } else { switch ($status) { case -2: print getMLText("status_reviewer_removed"); break; case -1: print getMLText("status_reviewer_rejected").($date !=0 ? " ".$date : ""); break; case 0: print getMLText("status_not_reviewed"); break; case 1: print getMLText("status_reviewed").($date !=0 ? " ".$date : ""); break; default: print getMLText("status_unknown"); break; } } } /* }}} */ function getReviewStatusText($status, $date=0) { /* {{{ */ if (is_null($status)) { return getMLText("status_unknown"); } else { switch ($status) { case -2: return getMLText("status_reviewer_removed"); break; case -1: return getMLText("status_reviewer_rejected").($date !=0 ? " ".$date : ""); break; case 0: return getMLText("status_not_reviewed"); break; case 1: return getMLText("status_reviewed").($date !=0 ? " ".$date : ""); break; default: return getMLText("status_unknown"); break; } } } /* }}} */ function printApprovalStatusText($status, $date=0) { /* {{{ */ if (is_null($status)) { print getMLText("status_unknown"); } else { switch ($status) { case -2: print getMLText("status_approver_removed"); break; case -1: print getMLText("status_approval_rejected").($date !=0 ? " ".$date : ""); break; case 0: print getMLText("status_not_approved"); break; case 1: print getMLText("status_approved").($date !=0 ? " ".$date : ""); break; default: print getMLText("status_unknown"); break; } } } /* }}} */ function getApprovalStatusText($status, $date=0) { /* {{{ */ if (is_null($status)) { return getMLText("status_unknown"); } else { switch ($status) { case -2: return getMLText("status_approver_removed"); break; case -1: return getMLText("status_approval_rejected").($date !=0 ? " ".$date : ""); break; case 0: return getMLText("status_not_approved"); break; case 1: return getMLText("status_approved").($date !=0 ? " ".$date : ""); break; default: return getMLText("status_unknown"); break; } } } /* }}} */ function printOverallStatusText($status) { /* {{{ */ print getOverallStatusText($status); } /* }}} */ function getOverallStatusText($status) { /* {{{ */ if (is_null($status)) { return getMLText("assumed_released"); } else { switch($status) { case S_IN_WORKFLOW: return getMLText("in_workflow"); break; case S_DRAFT_REV: return getMLText("draft_pending_review"); break; case S_DRAFT_APP: return getMLText("draft_pending_approval"); break; case S_RELEASED: return getMLText("released"); break; case S_REJECTED: return getMLText("rejected"); break; case S_OBSOLETE: return getMLText("obsolete"); break; case S_EXPIRED: return getMLText("expired"); break; default: return getMLText("status_unknown"); break; } } } /* }}} */ ?>