function getLanguageJS($_isoLanguageCode) { global $LZLANG; $languageData = array(); $LZLANGEN = $LZLANG; if (empty($_isoLanguageCode) || strlen($_isoLanguageCode) > 5) { $_isoLanguageCode = Server::$Configuration->File["gl_default_language"]; } $languageFiles[] = array(LocalizationManager::GetLocalizationFileString($_isoLanguageCode, true, true, false) => false); $languageFiles[] = array(LocalizationManager::GetLocalizationFileString($_isoLanguageCode, true, true, true) => true); if (strlen($_isoLanguageCode) > 2) { $shortLanguageCode = substr($_isoLanguageCode, 0, 2); $languageFiles[] = array(LocalizationManager::GetLocalizationFileString($shortLanguageCode, true, true, false) => false); $languageFiles[] = array(LocalizationManager::GetLocalizationFileString($shortLanguageCode, true, true, true) => true); } foreach ($languageFiles as $fileParams) { foreach ($fileParams as $file => $isOrg) { $folder = LIVEZILLA_PATH . (!$isOrg ? "_language/" : "mobile/php/translation/"); if (IOStruct::RequireDynamic($file, $folder)) { break 2; } } } $translationKeys = array_keys($LZLANGEN); for ($i = 0; $i < count($translationKeys); $i++) { $translation = array("key" => $translationKeys[$i], "orig" => str_replace("'", "\\'", $LZLANGEN[$translationKeys[$i]])); if (isset($LZLANG[$translationKeys[$i]]) && $LZLANG[$translationKeys[$i]] !== "") { $translation[$_isoLanguageCode] = str_replace("'", "\\'", $LZLANG[$translationKeys[$i]]); } else { $translation[$_isoLanguageCode] = str_replace("'", "\\'", $LZLANGEN[$translationKeys[$i]]); } array_push($languageData, $translation); } $jsLanguageData = "["; for ($i = 0; $i < count($languageData) - 1; $i++) { $jsLanguageData .= "{'key': '" . $languageData[$i]["key"] . "', 'orig': '" . $languageData[$i]["orig"] . "', '" . $_isoLanguageCode . "': '" . $languageData[$i][$_isoLanguageCode] . "'}, "; } $i = count($languageData) - 1; $jsLanguageData .= "{'key': '" . $languageData[$i]["key"] . "', 'orig': '" . $languageData[$i]["orig"] . "', '" . $_isoLanguageCode . "': '" . $languageData[$i][$_isoLanguageCode] . "'}"; $jsLanguageData .= "]"; return $jsLanguageData; }
static function LoadFromFile($_isoTwoletterCode) { global $LZLANG; IOStruct::RequireDynamic(LocalizationManager::GetLocalizationFileString($_isoTwoletterCode), LIVEZILLA_PATH . "_language/"); LocalizationManager::$TranslationStrings = $LZLANG; }
static function GetTranslationData($translation = "") { global $LZLANG; if (OperatorRequest::IsValidated() && Is::Defined("VALIDATED_FULL_LOGIN") && OperatorRequest::IsAdministrator(true)) { Logging::SecurityLog("ServerManager::GetTranslationData", serialize($_POST), CALLER_SYSTEM_ID); $langid = $_POST["p_int_trans_iso"]; if (strpos($langid, "..") === false && strlen($langid) <= 6) { $mobile = !empty($_POST["p_int_trans_m"]); $mobileOriginal = !empty($_POST["p_int_trans_mo"]); $path = !$mobileOriginal ? "_language/" : "mobile/php/translation/"; IOStruct::RequireDynamic(LocalizationManager::GetLocalizationFileString($langid, true, $mobile, $mobileOriginal), LIVEZILLA_PATH . $path); $translation .= "<language key=\"" . base64_encode($langid) . "\">\r\n"; foreach ($LZLANG as $key => $value) { $translation .= "<val key=\"" . base64_encode($key) . "\">" . base64_encode($value) . "</val>\r\n"; } $translation .= "</language>\r\n"; Server::$Response->SetStandardResponse(1, $translation); } else { Server::$Response->SetStandardResponse(0, $translation); } } }