コード例 #1
0
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;
}
コード例 #2
0
 static function LoadFromFile($_isoTwoletterCode)
 {
     global $LZLANG;
     IOStruct::RequireDynamic(LocalizationManager::GetLocalizationFileString($_isoTwoletterCode), LIVEZILLA_PATH . "_language/");
     LocalizationManager::$TranslationStrings = $LZLANG;
 }
コード例 #3
0
 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);
         }
     }
 }