getFilename(), ".php")) continue; if (str_contains($fichier->getPathname(), "/lang/")) continue; // ne pas s'auto-analyser if ($fichier->getFilename() === basename(__FILE__)) continue; // idem, pour le script lui-même $contenu = file_get_contents($fichier->getPathname()); if (preg_match_all('/\bt\(\s*"((?:[^"\\\\]|\\\\.)*)"\s*\)/', $contenu, $matches)) { foreach ($matches[1] as $chaine) { $chaine = stripcslashes($chaine); $chaines_trouvees[$chaine][] = $fichier->getPathname(); } } } $traductions_en = file_exists($fichier_en) ? include $fichier_en : []; // --- Rapport console, comme avant --- echo "=== Chaînes utilisées dans le code : " . count($chaines_trouvees) . " ===\n\n"; $manquantes = []; foreach ($chaines_trouvees as $chaine => $fichiers) { if (!array_key_exists($chaine, $traductions_en)) { $manquantes[$chaine] = $fichiers[0]; } } echo count($manquantes) . " nouvelle(s) chaîne(s) à traduire.\n"; $obsoletes = array_diff(array_keys($traductions_en), array_keys($chaines_trouvees)); echo count($obsoletes) . " entrée(s) obsolète(s), déplacée(s) en commentaire.\n\n"; // --- Régénération de lang/en.php --- // Sauvegarde de précaution avant d'écraser : if (file_exists($fichier_en)) { copy($fichier_en, "$fichier_en.bak"); } // Fusion : traductions existantes conservées pour les chaînes encore utilisées, // nouvelles chaînes ajoutées avec une valeur vide : $nouveau_tableau = []; foreach ($chaines_trouvees as $chaine => $fichiers) { $nouveau_tableau[$chaine] = $traductions_en[$chaine] ?? ""; } $contenu = " $valeur) { $contenu .= " " . var_export($cle, true) . " => " . var_export($valeur, true) . ",\n"; } $contenu .= "];\n"; if (!empty($obsoletes)) { $contenu .= "\n/*\n"; $contenu .= "// OBSOLÈTES au " . date("d/m/Y à H:i:s") . " - plus utilisées dans le code.\n"; $contenu .= "// À supprimer manuellement une fois confirmé qu'elles ne servent vraiment plus.\n"; foreach ($obsoletes as $chaine) { $contenu .= var_export($chaine, true) . " => " . var_export($traductions_en[$chaine], true) . ",\n"; } $contenu .= "*/\n"; } file_put_contents($fichier_en, $contenu); echo "Fichier régénéré : $fichier_en\n"; echo "(sauvegarde de l'ancienne version : $fichier_en.bak)\n";