Die Aufrechterhaltung der Integrität von Sprachdateien ist bei der Entwicklung mehrsprachiger Websites oder Anwendungen von entscheidender Bedeutung. Mit zunehmender Funktionalität können der Hauptsprachdatei neue Felder hinzugefügt werden, die dazu führen, dass die entsprechenden Felder in anderen Sprachdateien fehlen. Zu diesem Zeitpunkt benötigen wir eine Möglichkeit, die Integrität aller Sprachdateien zu überprüfen und sicherzustellen. Die Funktion von PHP von Array_Diff_Key () kann uns helfen, dies sehr gut zu erreichen.
Die Funktion array_diff_key () wird verwendet, um Tasten von zwei oder mehr Arrays zu vergleichen und gibt ein Array zurück, das alle Schlüssel im ersten Array enthält, die sich nicht in anderen Arrays befinden. Dies ist sehr nützlich, um nach fehlenden Feldern in Sprachdateien zu überprüfen. Wir können es verwenden, um Schlüssel für verschiedene Sprachdateien zu vergleichen und sicherzustellen, dass jede Sprachdatei alle erforderlichen Felder enthält.
Angenommen, wir haben eine Hauptsprachdatei (z. B. englische Sprachdatei) und möchten sicherstellen, dass andere Sprachdateien (wie Chinesen, Französisch usw.) keine fehlenden Felder haben. Wir können array_diff_key () verwenden, um die Schlüsselwerte dieser Dateien zu vergleichen und die fehlenden Felder zu finden.
Angenommen, unsere Sprachdateien werden in einem Array gespeichert, ähnlich der folgenden Struktur:
Englische Sprachdateien ( EN.PHP ):
return [
'welcome_message' => 'Welcome to our website!',
'login_button' => 'Login',
'logout_button' => 'Logout',
'contact_us' => 'Contact Us'
];
Chinesische Sprachdateien ( Zh.php ):
return [
'welcome_message' => 'Willkommen auf unserer Website!',
'login_button' => 'Einloggen',
// 'logout_button' => 'Melden Sie sich aus', Hier fehlt es 'logout_button' Felder
];
Jetzt möchten wir diese beiden Sprachdateien über Array_Diff_key () vergleichen, um die fehlenden Felder in der chinesischen Datei zu finden.
// Laden Sie englische und chinesische Sprachdateien
$en = include('en.php');
$zh = include('zh.php');
// Vergleich der Tasten chinesischer Sprachdateien mit englischen Sprachdateien,找出缺失的Felder
$missingFields = array_diff_key($en, $zh);
// 输出缺失的Felder
if (!empty($missingFields)) {
echo "以下Felder在中文语言文件Fehlen:\n";
foreach ($missingFields as $key => $value) {
echo "- $key\n";
}
} else {
echo "中文语言文件没有缺失任何Felder。\n";
}
Lade von Sprachdateien : Verwenden Sie include () zum Laden von EN.php- und Zh.php- Dateien, die Übersetzungsdaten in Schlüsselwertpaarformaten speichern.
Rufen Sie array_diff_key () an : Vergleichen Sie die Schlüssel der englischen und chinesischen Sprachdateien über Array_Diff_Key ($ en, $ zh) . array_diff_key () gibt ein Array mit Schlüssel zurück, die in der englischen Sprachdatei, jedoch nicht in der chinesischen Sprachdatei enthalten sind.
Ausgabe fehlende Felder : Wenn das zurückgegebene $ fehlende Fields -Array nicht leer ist, bedeutet dies, dass in der chinesischen Sprachdatei einige Felder fehlen. Wir geben diese fehlenden Felder durch Schleifen aus.
Wenn wir die Integrität mehrerer Sprachdateien überprüfen müssen, können wir einen ähnlichen Ansatz verwenden, um jede Sprachdatei mit der Hauptsprachdatei zu vergleichen, um sicherzustellen, dass alle Felder übersetzt werden. Zum Beispiel können wir die Überprüfung der Logik in eine Funktion einkapseln:
function checkMissingFields($primaryLangFile, $compareLangFile) {
$primaryLang = include($primaryLangFile);
$compareLang = include($compareLangFile);
$missingFields = array_diff_key($primaryLang, $compareLang);
if (!empty($missingFields)) {
echo "以下Felder在 $compareLangFile Fehlen:\n";
foreach ($missingFields as $key => $value) {
echo "- $key\n";
}
} else {
echo "$compareLangFile 没有缺失任何Felder。\n";
}
}
// Vergleich der englischen und chinesischen Dokumente
checkMissingFields('en.php', 'zh.php');
// Vergleich der englischen und französischen Dokumente
checkMissingFields('en.php', 'fr.php');
Mit der Funktion "Array_Diff_key () von PHP) können wir fehlende Felder in mehrsprachigen Dateien effizient überprüfen. Dies stellt sicher, dass Dateien in verschiedenen Sprachen konsistent sind und aufgrund von Übersetzungsauslassungen eine unvollständige Schnittstellenanzeige vermeiden. Auf diese Weise können die Qualität und Wartbarkeit mehrsprachiger Projekte erheblich verbessert werden.