Created
November 10, 2015 11:07
-
-
Save lucasaba/d0633ca133d24d2f8f72 to your computer and use it in GitHub Desktop.
Controllo coerenza dei file originali e traduzione
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/php | |
<?php | |
if(count($argv) != 3) { | |
echo "Utilizzo: vtiger_test_traduzioni.php <cartella traduzioni italiane> <cartella traduzioni originali>\n"; | |
echo "Esempio: vtiger_test_traduzioni.php /home/utente/traduzioni/Vtiger-6.X-lingua-ITA/modules/ /var/www/vtiger/languages/en_us/\n"; | |
return 0; | |
} | |
$folder_traduzioni = realpath($argv[1]); | |
$folder_originali = realpath($argv[2]); | |
//Controllo della cartella principale | |
controlloFileNellaCartella($folder_originali, $folder_traduzioni); | |
//Controllo della cartella Settings | |
$folder_originali .= DIRECTORY_SEPARATOR."Settings".DIRECTORY_SEPARATOR; | |
$folder_traduzioni .= DIRECTORY_SEPARATOR."Settings".DIRECTORY_SEPARATOR; | |
controlloFileNellaCartella($folder_originali, $folder_traduzioni); | |
function controlloFileNellaCartella($cartella_originale, $cartella_traduzioni) | |
{ | |
//Controllo che le cartelle esistano | |
if(! file_exists($cartella_traduzioni) || ! file_exists($cartella_originale)) { | |
echo "Spiacente. Non sono riuscito a trovare una delle seguenti cartelle:\n"; | |
echo $cartella_traduzioni."\n"; | |
echo $cartella_originale."\n"; | |
return 0; | |
} | |
$file_in_traduzione = scandir($cartella_traduzioni); | |
$file_in_originale = scandir($cartella_originale); | |
// Controllo della coerenza dei file | |
if($file_in_originale != $file_in_traduzione) { | |
$file_non_presenti_in_originale = array_diff($file_in_traduzione, $file_in_originale); | |
$file_non_presenti_in_traduzione = array_diff($file_in_originale, $file_in_traduzione); | |
if(count($file_non_presenti_in_originale) > 0) { | |
echo "File presenti $cartella_traduzioni ma non presenti in $cartella_originale:\n"; | |
foreach($file_non_presenti_in_originale as $nome_file) { | |
echo "- $nome_file\n"; | |
} | |
} | |
if(count($file_non_presenti_in_traduzione) > 0) { | |
echo "File presenti nella cartella $cartella_originale ma non presenti nella cartella $cartella_traduzioni:\n"; | |
foreach($file_non_presenti_in_traduzione as $nome_file) { | |
echo "- $nome_file\n"; | |
} | |
} | |
} | |
//Controllo dei singoli file | |
foreach($file_in_traduzione as $nome_file) { | |
$file_originale = $cartella_originale.DIRECTORY_SEPARATOR.$nome_file; | |
$file_traduzione = $cartella_traduzioni.DIRECTORY_SEPARATOR.$nome_file; | |
if(! file_exists($file_originale) || ! file_exists($file_traduzione) || is_dir($file_originale) || is_dir($file_traduzione)) { | |
// Abbiamo già fatto il controllo per asicurarci che ci sia coerenza | |
// sui file delle due cartelle. Ora ci occupiamo solo dei file che | |
// esistono in entrambe | |
continue; | |
} | |
include($file_originale); | |
if(isset($languageStrings)) $languageStringsOriginale = array_merge($languageStrings, array()); //Per creare una copia dell'array | |
if(isset($jsLanguageStrings)) $jsLanguageStringsOriginale = array_merge($jsLanguageStrings, array()); //Per creare una copia dell'array | |
include($file_traduzione); | |
if(isset($languageStrings)) $languageStringsTraduzione = array_merge($languageStrings, array()); //Per creare una copia dell'array | |
if(isset($jsLanguageStrings)) $jsLanguageStringsTraduzione = array_merge($jsLanguageStrings, array()); //Per creare una copia dell'array | |
echo "Controllo sul file $nome_file\n"; | |
if(isset($languageStringsOriginale) && isset($languageStringsTraduzione)) { | |
controllaChiavi($languageStringsOriginale, $languageStringsTraduzione); | |
} | |
if(isset($jsLanguageStringsOriginale) && isset($jsLanguageStringsTraduzione)) { | |
controllaChiavi($jsLanguageStringsOriginale, $jsLanguageStringsTraduzione); | |
} | |
} // End foreach | |
} //End function | |
function controllaChiavi($originale, $traduzione) | |
{ | |
$chiavi_originali = array_keys($originale); | |
$chiavi_traduzioni = array_keys($traduzione); | |
$differenza = array_diff($chiavi_originali, $chiavi_traduzioni); | |
if(count($differenza) > 0) { | |
echo "##########Chiavi presenti in originale e non in traduzione################\n"; | |
foreach($differenza as $key) { | |
echo "- $key\n"; | |
} | |
} | |
$differenza = array_diff($chiavi_traduzioni, $chiavi_originali); | |
if(count($differenza) > 0) { | |
echo "##########Chiavi presenti in traduzione e non in originale################\n"; | |
foreach($differenza as $key) { | |
echo "- $key\n"; | |
} | |
} | |
} | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment