0Pricing
React Academy · Lektion

Sprachauswahl und Lazy Loading von Übersetzungen

Erstellen Sie eine Sprachumschaltung und laden Sie Übersetzungspakete bei Bedarf, um die anfängliche Größe zu reduzieren.

Sprachauswahl und Lazy Loading von Übersetzungen ist eine kostenlose React Academy-Lektion auf CoddyKit. Dies ist Lektion 4 von 4. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des React Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Willkommen

In dieser Lektion erstellen Sie eine Komponente für den Sprachumschalter und konfigurieren i18next so, dass Übersetzungspakete bei Bedarf geladen werden. Dadurch verringert sich die anfängliche JavaScript-Nutzlast.

Einfacher Sprachumschalter

Rufen Sie bei einem Klick auf die Schaltfläche i18n.changeLanguage() auf, um die aktive Sprache zu wechseln. Alle Komponenten, die useTranslation verwenden, werden automatisch mit der neuen Sprache erneut gerendert.
function LanguageSwitcher() {
  const { i18n } = useTranslation();
  return (
    <div>
      {['en', 'tr', 'fr'].map(lng => (
        <button
          key={lng}
          onClick={() => i18n.changeLanguage(lng)}
          style={{ fontWeight: i18n.language === lng ? 'bold' : 'normal' }}
        >
          {lng.toUpperCase()}
        </button>
      ))}
    </div>
  );
}

Sprachauswahl speichern

Speichern Sie die ausgewählte Sprache in localStorage, damit sie nach dem Neuladen der Seite erhalten bleibt. Das LanguageDetector-Plugin übernimmt dies automatisch mit der Detektor-Reihenfolge `localStorage`.
i18n.init({
  detection: {
    order: ['localStorage', 'navigator'],
    caches: ['localStorage'],
  },
});

Warum Übersetzungen verzögert laden?

Wenn alle Übersetzungen in das JavaScript-Bundle aufgenommen werden, verlängert sich die anfängliche Ladezeit. Beim verzögerten Laden wird zunächst nur die Standardsprache gesendet; andere Sprachen werden erst abgerufen, wenn die Benutzerin oder der Benutzer wechselt.

HTTP-Backend konfigurieren

Das i18next-http-backend-Plugin ruft Übersetzungsdateien anhand eines URL-Musters ab. Die Übersetzungen liegen im Ordner `public/` und werden als statische Assets bereitgestellt — serverseitiger Code ist nicht erforderlich.
import Backend from 'i18next-http-backend';

i18n.use(Backend).init({
  backend: {
    loadPath: '/locales/{{lng}}/{{ns}}.json',
  },
  ns: ['common', 'auth'],
  defaultNS: 'common',
});

Übersetzungsdateien hinzufügen

Erstellen Sie in `public/locales/` für jede Sprache und jeden Namensraum eine JSON-Datei. Das HTTP-Backend ruft sie automatisch ab, sobald die Sprache oder der Namensraum erstmals benötigt wird.
public/locales/
  en/common.json
  en/auth.json
  tr/common.json
  tr/auth.json

Ladezustand beim Sprachwechsel anzeigen

Nach dem Aufruf von changeLanguage() lädt i18next die Dateien der neuen Sprache asynchron. Abonnieren Sie das Ereignis `i18n.on('languageChanged')` oder prüfen Sie `i18n.isInitialized`, um einen Ladeindikator anzuzeigen.
const [switching, setSwitching] = useState(false);

const change = async (lng) => {
  setSwitching(true);
  await i18n.changeLanguage(lng);
  setSwitching(false);
};

Bestimmte Namensräume verzögert laden

Laden Sie einen Namensraum erst, wenn er erstmals benötigt wird, mit `i18n.loadNamespaces(['dashboard'])`. Rufen Sie dies in useEffect auf, wenn eine Dashboard-Route eingebunden wird, damit der Namensraum für nicht authentifizierte Benutzerinnen und Benutzer nicht geladen wird.
useEffect(() => {
  i18n.loadNamespaces('dashboard');
}, []);

CDN für Übersetzungen

Hosten Sie Übersetzungsdateien in der Produktion auf einem CDN (S3 + CloudFront). Aktualisieren Sie `loadPath` auf die CDN-URL. Dadurch werden Übersetzungsaktualisierungen von Codebereitstellungen getrennt.
backend: {
  loadPath: 'https://cdn.example.com/locales/{{lng}}/{{ns}}.json',
}

Locale in der URL

Viele Apps binden die Locale in die URL ein, beispielsweise /en/products oder /tr/products. Kombinieren Sie React Router mit i18n: Lesen Sie die Locale aus dem URL-Parameter, rufen Sie changeLanguage auf und aktualisieren Sie die URL, wenn die Benutzerin oder der Benutzer wechselt.

Kurztest

Was macht das i18next-http-backend-Plugin?

Zusammenfassung

Erstellen Sie mit i18n.changeLanguage() einen Sprachumschalter. Speichern Sie die Auswahl mit dem localStorage-Detektor. Verwenden Sie i18next-http-backend, um Übersetzungsdateien verzögert zu laden. Zeigen Sie beim Sprachwechsel einen Ladezustand an. Hosten Sie die Dateien in der Produktion auf einem CDN.

Kurs abgeschlossen

Herzlichen Glückwunsch! Sie haben **Internationalisierung (i18n) in React** abgeschlossen. Sie können nun react-i18next einrichten, Zeichenfolgen mit Namensräumen übersetzen, Pluralformen und Interpolation behandeln und Übersetzungsdateien verzögert laden.

Häufig gestellte Fragen

Ist die Lektion „Sprachauswahl und Lazy Loading von Übersetzungen“ kostenlos?

Ja — der vollständige Text von „Sprachauswahl und Lazy Loading von Übersetzungen“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des React Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der React Academy-Kurs umfasst insgesamt 4 Lektionen.

Was lerne ich in „Sprachauswahl und Lazy Loading von Übersetzungen“?

Erstellen Sie eine Sprachumschaltung und laden Sie Übersetzungspakete bei Bedarf, um die anfängliche Größe zu reduzieren. Du übst React Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.

Brauche ich Erfahrung, um React Academy zu starten?

Keine Vorkenntnisse erforderlich. React Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 4 von 4.

Wie lange dauert die Lektion „Sprachauswahl und Lazy Loading von Übersetzungen“?

Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.

Kann ich in dieser React Academy-Lektion Code schreiben und ausführen?

Ja. Jede React Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.

Alle Lektionen in diesem Kurs

  1. react-i18next einrichten
  2. Den useTranslation-Hook verwenden
  3. Pluralisierung und Interpolation
  4. Sprachauswahl und Lazy Loading von Übersetzungen
← Zurück zu React Academy