function GetTLangFiles($path, $IS_LANG_DIR = false) { global $arTLangs, $arFiles, $arDirFiles, $arLangDirFiles; if (is_dir(prepare_path($_SERVER["DOCUMENT_ROOT"] . "/" . $path . "/"))) { if ($IS_LANG_DIR) { if (is_array($arTLangs)) { foreach ($arTLangs as $lng) { $path = replace_lang_id($path, $lng); $path_l = strlen($path); foreach ($arFiles as $arr) { if ($arr["IS_DIR"] == "N" && strncmp($arr["PATH"], $path, $path_l) == 0) { $arDirFiles[] = $arr["PATH"]; } } } } } else { if (is_array($arLangDirFiles)) { $path_l = strlen($path); foreach ($arLangDirFiles 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); } } }
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"]; } } }