<?php
// Charger le contenu du fichier fr_FR.json
$json_file_path = 'module/slider/i18n/fr_FR.json';
$json_data = json_decode(file_get_contents($json_file_path), true);

// Extraire les clés du tableau JSON
$json_keys = array_keys($json_data);

// Parcourir les fichiers PHP dans les deux répertoires source 'module/blog/' et 'core/'
$core_directories = ['module/slider/', 'core/'];
$php_files = [];

foreach ($core_directories as $core_directory) {
    $php_files = array_merge($php_files, get_php_files($core_directory));
}

// Fonction récursive pour récupérer les fichiers PHP dans l'arborescence et exclure les dossiers 'i18n'
function get_php_files($directory) {
    $php_files = [];
    $files = scandir($directory);
    foreach ($files as $file) {
        if ($file === '.' || $file === '..') continue;
        $path = $directory . DIRECTORY_SEPARATOR . $file;
        if (is_dir($path) && $file !== 'i18n') {
            $php_files = array_merge($php_files, get_php_files($path));
        } elseif (pathinfo($file, PATHINFO_EXTENSION) === 'php') {
            $php_files[] = $path;
        }
    }
    return $php_files;
}

// Créer un tableau pour stocker les clés présentes dans les fichiers PHP
$php_keys = [];

// Rechercher les clés du tableau JSON dans les fichiers PHP et les ajouter à $php_keys
foreach ($json_keys as $key) {
    foreach ($php_files as $php_file) {
        $content = file_get_contents($php_file);
        if (strpos($content, "'{$key}'") !== false) {
            $php_keys[] = $key;
            break;
        }
    }
}

// Supprimer les clés absentes du fichier fr_FR.json
$keys_to_remove = array_diff($json_keys, $php_keys);
foreach ($keys_to_remove as $key) {
    unset($json_data[$key]);
}

// Enregistrer les modifications dans le fichier fr_FR.json
file_put_contents($json_file_path, json_encode($json_data, JSON_PRETTY_PRINT | JSON_UNESCAPED_UNICODE));

echo "Le fichier fr_FR.json a été mis à jour avec succès !";