Position actuelle: Accueil> Derniers articles> Vérifiez les champs manquants à l'aide d'Array_Diff_Key () dans l'alignement des fichiers multilingues

Vérifiez les champs manquants à l'aide d'Array_Diff_Key () dans l'alignement des fichiers multilingues

M66 2025-06-06

Le maintien de l'intégrité des fichiers linguistiques est crucial lors du développement de sites Web ou d'applications multilingues. À mesure que la fonctionnalité augmente, de nouveaux champs peuvent être ajoutés au fichier linguistique principal, ce qui peut entraîner la manquement des champs correspondants dans d'autres fichiers linguistiques. À ce stade, nous avons besoin d'un moyen de vérifier et d'assurer l'intégrité de tous les fichiers linguistiques. La fonction Array_Diff_Key () de PHP peut nous aider à y parvenir très bien.

Quelle est la fonction array_diff_key () ?

La fonction array_diff_key () est utilisée pour comparer les clés de deux tableaux ou plus et renvoie un tableau contenant toutes les clés du premier tableau qui ne sont pas dans d'autres tableaux. Ceci est très utile pour vérifier les champs manquants dans les fichiers linguistiques. Nous pouvons l'utiliser pour comparer les clés pour différents fichiers linguistiques, en s'assurant que chaque fichier de langue contient tous les champs nécessaires.

Contexte de la scène

Supposons que nous ayons un fichier de langue principale (comme le fichier de langue anglaise) et que nous voulions nous assurer que d'autres fichiers linguistiques (tels que chinois, français, etc.) n'ont pas de champs manquants. Nous pouvons utiliser array_diff_key () pour comparer les valeurs clés de ces fichiers et trouver les champs manquants.

Application pratique: vérifiez les champs manquants

Supposons que nos fichiers linguistiques soient stockés dans un tableau, similaire à la structure suivante:

Fichiers de langue anglaise ( en.php ):

 return [
    'welcome_message' => 'Welcome to our website!',
    'login_button' => 'Login',
    'logout_button' => 'Logout',
    'contact_us' => 'Contact Us'
];

Fichiers en langue chinoise ( zh.php ):

 return [
    'welcome_message' => 'Bienvenue sur notre site Web!',
    'login_button' => 'Se connecter',
    // 'logout_button' => 'Déconnecter', Il manque ici 'logout_button' Champs
];

Maintenant, nous voulons comparer ces deux fichiers linguistiques via array_diff_key () pour découvrir les champs manquants dans le fichier chinois.

Utilisez array_diff_key () pour comparer les fichiers linguistiques

 // Chargez des fichiers en anglais et en chinois
$en = include('en.php');
$zh = include('zh.php');

// Comparaison des clés des fichiers de langue chinoise avec des fichiers en anglais,找出缺失的Champs
$missingFields = array_diff_key($en, $zh);

// 输出缺失的Champs
if (!empty($missingFields)) {
    echo "以下Champs在中文语言文件Manquant:\n";
    foreach ($missingFields as $key => $value) {
        echo "- $key\n";
    }
} else {
    echo "中文语言文件没有缺失任何Champs。\n";
}

Explication du code

  1. Chargement des fichiers linguistiques : utilisez include () pour charger des fichiers EN.php et zh.php , qui stockent les données de traduction dans des formats de paire de valeurs clés.

  2. Appelez Array_Diff_Key () : Comparez les clés des fichiers de langue anglaise et chinoise via array_diff_key ($ en, $ zh) . array_diff_key () renvoie un tableau contenant des clés qui sont dans le fichier de langue anglaise mais pas dans le fichier de langue chinoise.

  3. Foux manquants de sortie : si le tableau de champs $ retourné n'est pas vide, cela signifie que certains champs manquent dans le fichier de langue chinoise. Nous publions ces champs manquants par boucle.

Vérifiez plusieurs fichiers linguistiques

Si nous devons vérifier l'intégrité de plusieurs fichiers linguistiques, nous pouvons utiliser une approche similaire pour comparer chaque fichier linguistique avec le fichier linguistique principal pour nous assurer que tous les champs sont traduits. Par exemple, nous pouvons encapsuler la logique de vérification dans une fonction:

 function checkMissingFields($primaryLangFile, $compareLangFile) {
    $primaryLang = include($primaryLangFile);
    $compareLang = include($compareLangFile);

    $missingFields = array_diff_key($primaryLang, $compareLang);

    if (!empty($missingFields)) {
        echo "以下Champs在 $compareLangFile Manquant:\n";
        foreach ($missingFields as $key => $value) {
            echo "- $key\n";
        }
    } else {
        echo "$compareLangFile 没有缺失任何Champs。\n";
    }
}

// Comparaison des documents anglais et chinois
checkMissingFields('en.php', 'zh.php');

// Comparaison des documents anglais et français
checkMissingFields('en.php', 'fr.php');

résumé

En utilisant la fonction Array_Diff_Key () de PHP, nous pouvons vérifier efficacement les champs manquants dans des fichiers multilingues. Cela garantit que les fichiers dans différentes langues sont cohérents et évitent l'affichage d'interface incomplet en raison d'omissions de traduction. De cette façon, la qualité et la maintenabilité des projets multilingues peuvent être considérablement améliorées.