Exemplo n.º 1
0
function add_lang_id($path, $lang_id, $arTLangs)
{
    $path_temp = remove_lang_id($path, $arTLangs);
    $arr = explode("/", $path_temp);
    if (in_array("lang", $arr)) {
        $arr1 = array();
        foreach ($arr as $d) {
            $arr1[] = $d;
            if ($d == "lang") {
                $arr1[] = $lang_id;
            }
        }
        $path = implode("/", $arr1);
    }
    return $path;
}
Exemplo n.º 2
0
function GetPhraseCounters($arCommon, $path, $key)
{
    global $arCommonCounter, $Counter, $arTLangs;
    $Counter++;
    $arDirFiles = array();
    // is directori
    if (is_dir(prepare_path($_SERVER["DOCUMENT_ROOT"] . "/" . $path . "/"))) {
        if (is_lang_dir($path)) {
            if (is_array($arTLangs)) {
                // files array for directory language
                foreach ($arTLangs as $lng) {
                    $path = replace_lang_id($path, $lng);
                    $path_l = strlen($path);
                    foreach ($arCommon as $arr) {
                        if ($arr["IS_DIR"] == "N" && strncmp($arr["PATH"], $path, $path_l) == 0) {
                            $arDirFiles[] = $arr["PATH"];
                        }
                    }
                }
            }
        } else {
            if (is_array($arCommon)) {
                $path_l = strlen($path);
                // array files for directory
                foreach ($arCommon as $arr) {
                    if ($arr["IS_DIR"] == "N" && strncmp($arr["PATH"], $path, $path_l) == 0) {
                        $arDirFiles[] = $arr["PATH"];
                    }
                }
            }
        }
    } else {
        foreach ($arTLangs as $lng) {
            $arDirFiles[] = replace_lang_id($path, $lng);
        }
    }
    $arFilesLng = array();
    // array for every files
    foreach ($arDirFiles as $file) {
        if (file_exists($_SERVER["DOCUMENT_ROOT"] . $file) && preg_match("#/lang/(.*?)/#", $file, $arMatch)) {
            $file_lang = $arMatch[1];
            if (isset($arTLangs[$file_lang])) {
                if (substr($file, -3) != "php") {
                    continue;
                }
                $MESS_tmp = $MESS;
                $MESS = array();
                include $_SERVER["DOCUMENT_ROOT"] . $file;
                $file_name = remove_lang_id($file, $arTLangs);
                $arFilesLng[$file_name][$file_lang] = array_keys($MESS);
                $MESS = $MESS_tmp;
            }
        }
    }
    $arFilesLngCounter = array();
    //rashogdenia for files
    foreach ($arFilesLng as $file => $arLns) {
        $total_arr = array();
        //summa
        foreach ($arLns as $ln => $arLn) {
            $total_arr = array_merge($total_arr, $arLn);
        }
        $total_arr = array_unique($total_arr);
        $total = sizeof($total_arr);
        foreach ($arTLangs as $lang) {
            $arr = array();
            $arLn = is_array($arLns[$lang]) ? $arLns[$lang] : array();
            $diff_arr = array_diff($total_arr, $arLn);
            $arr["TOTAL"] = $total;
            $diff = sizeof($diff_arr);
            $arr["DIFF"] = $diff;
            $arFilesLngCounter[$file][$lang] = $arr;
        }
    }
    foreach ($arFilesLngCounter as $file => $arCount) {
        foreach ($arCount as $ln => $arLn) {
            $file_path = str_replace("/lang/", "/lang/" . $ln . "/", $file);
            $arCommonCounter[$key][$ln][$file_path]["TOTAL"] += $arLn["TOTAL"];
            $arCommonCounter[$key][$ln][$file_path]["DIFF"] += $arLn["DIFF"];
        }
    }
}