Aktueller Standort: Startseite> Neueste Artikel> Mehrsprachiger Konfigurationsdateivergleich: Welche Schlüssel und Werte werden nicht übersetzt?

Mehrsprachiger Konfigurationsdateivergleich: Welche Schlüssel und Werte werden nicht übersetzt?

M66 2025-06-06

Bei der Entwicklung von mit mehrsprachigen Webanwendungen unterstützten Webanwendungen verfügen wir häufig über Konfigurationsdateien für mehrere Sprachen (z. B. en.php , fr.php , de.php usw.), und jede Konfigurationsdatei enthält den Übersetzungsinhalt der entsprechenden Sprache. In der tatsächlichen Entwicklung können einige Schlüsselwerte auftreten, wenn sie nicht übersetzt werden, oder einige Schlüssel fehlen in der Konfigurationsdatei einer bestimmten Sprache. Wie verwenden Sie PHP -Programme, um Konfigurationsdateien automatisch in mehreren Sprachen zu vergleichen und diese nicht translatierten Schlüsselwerte herauszufinden?

In diesem Artikel wird angezeigt, wie ein PHP -Skript geschrieben wird, das mehrere Sprachkonfigurationsdateien vergleicht, um zu identifizieren, welche Schlüsselwerte nicht übersetzt wurden, wodurch Entwickler mehr mehrsprachig verwaltet werden können.

1. Konfigurationsdateistruktur

Angenommen, wir haben die folgende mehrsprachige Konfigurationsdatei:

en.php (Englisch)

 return [
    'welcome_message' => 'Welcome to our website!',
    'login' => 'Login',
    'register' => 'Register',
];

Fr.php (Französisch)

 return [
    'welcome_message' => 'Bienvenue sur notre site!',
    'login' => 'Se connecter',
];

De.php (Deutsch)

 return [
    'welcome_message' => 'Willkommen auf unserer Website!',
    'register' => 'Registrieren',
];

Wie oben gezeigt, enthalten Konfigurationsdateien für verschiedene Sprachen einige der gleichen Tasten (z. B. Welcome_Message ), aber einige Schlüssel erscheinen nur in einigen Sprachen (z. B. Login erscheinen nur in Englisch und Französisch, aber Deutsch fehlt diesen Schlüssel).

2. PHP -Skriptlogik

Um diese Konfigurationsdateien zu vergleichen, können wir ein PHP -Skript schreiben, die Konfigurationsdateien jeder Sprache laden und sie vergleichen, um herauszufinden, welche Tasten in den Dateien einiger Sprachen fehlen oder nicht übersetzt werden.

Schritt 1: Laden Sie die Konfigurationsdatei

Zunächst müssen wir eine Funktion schreiben, um die Konfigurationsdatei zu laden. Diese Dateien können mit inklusiven oder verlangen geladen werden, vorausgesetzt, diese Konfigurationsdateien geben alle ein assoziatives Array zurück.

 function loadLangFile($langCode) {
    $filePath = __DIR__ . "/$langCode.php";
    if (file_exists($filePath)) {
        return include $filePath;
    }
    return [];
}

Schritt 2: Finden Sie alle Schlüssel heraus

Wir müssen alle Schlüssel aus allen Konfigurationsdateien finden. Angenommen, wir kennen bereits alle unterstützten Sprachcodes (wie EN , FR , DE usw.). Wir können jedes Sprachprofil durchlaufen und ihre Bindungen miteinander kombinieren.

 $langCodes = ['en', 'fr', 'de'];
$allKeys = [];

foreach ($langCodes as $langCode) {
    $langData = loadLangFile($langCode);
    $allKeys = array_merge($allKeys, array_keys($langData));
}

$allKeys = array_unique($allKeys);  // In den schweren gehen,Vermeiden Sie doppelte Schlüssel

Schritt 3: Vergleiche und finde unüberwande Schlüssel

Als nächstes werden wir alle Schlüssel durchlaufen und prüfen, ob sie in jeder Sprachkonfigurationsdatei entsprechende Werte haben. Wenn in der Konfigurationsdatei einer Sprache ein Schlüssel fehlt oder leer wird, können wir davon ausgehen, dass der Schlüssel nicht übersetzt wird.

 $missingKeys = [];

foreach ($allKeys as $key) {
    foreach ($langCodes as $langCode) {
        $langData = loadLangFile($langCode);
        if (!isset($langData[$key]) || empty($langData[$key])) {
            $missingKeys[$langCode][] = $key;
        }
    }
}

Schritt 4: Ausgabe des Ergebnisses ausgeben

Schließlich können wir unübersetzte Schlüssel ausgeben, um Entwicklern dabei zu helfen, schnell zu lokalisieren, welche Schlüssel nicht übersetzt wurden.

 echo "Unbeschuldete Schlüssel:\n";
foreach ($missingKeys as $langCode => $keys) {
    echo "\nIn der Sprache $langCode Der folgende Schlüssel fehlt:\n";
    foreach ($keys as $key) {
        echo "- $key\n";
    }
}

3. CODE CODE BEISPIEL

Führen Sie den gesamten Code zusammen, und das endgültige PHP -Skript sieht so aus:

 function loadLangFile($langCode) {
    $filePath = __DIR__ . "/$langCode.php";
    if (file_exists($filePath)) {
        return include $filePath;
    }
    return [];
}

$langCodes = ['en', 'fr', 'de'];
$allKeys = [];

foreach ($langCodes as $langCode) {
    $langData = loadLangFile($langCode);
    $allKeys = array_merge($allKeys, array_keys($langData));
}

$allKeys = array_unique($allKeys);  // In den schweren gehen,Vermeiden Sie doppelte Schlüssel

$missingKeys = [];

foreach ($allKeys as $key) {
    foreach ($langCodes as $langCode) {
        $langData = loadLangFile($langCode);
        if (!isset($langData[$key]) || empty($langData[$key])) {
            $missingKeys[$langCode][] = $key;
        }
    }
}

echo "Unbeschuldete Schlüssel:\n";
foreach ($missingKeys as $langCode => $keys) {
    echo "\nIn der Sprache $langCode Der folgende Schlüssel fehlt:\n";
    foreach ($keys as $key) {
        echo "- $key\n";
    }
}

4. Zusammenfassung

Über das obige PHP -Skript können wir Konfigurationsdateien in mehreren Sprachen schnell vergleichen und herausfinden, welche Schlüsselwerte nicht übersetzt werden. Dies ist sehr hilfreich für die Wartung und Aktualisierung mehrsprachiger Anwendungen und kann die verpassten Übersetzungen reduzieren und die Benutzererfahrung verbessern.