StartseiteSandboxShowcaseAppDokumentBlog
    • EnglishEnglisch
      EN
    • русскийRussisch
      RU
    • 日本語Japanisch
      JA
    • françaisFranzösisch
      FR
    • 한국어Koreanisch
      KO
    • 中文Chinesisch
      ZH
    • españolSpanisch
      ES
    • DeutschDeutsch
      DE
    • العربيةArabisch
      AR
    • italianoItalienisch
      IT
    • British EnglishEnglisch (Vereinigtes Königreich)
      EN-GB
    • portuguêsPortugiesisch
      PT
    • हिन्दीHindi
      HI
    • TürkçeTürkisch
      TR
    • polskiPolnisch
      PL
    • IndonesiaIndonesisch
      ID
    • Tiếng ViệtVietnamesisch
      VI
    • українськаUkrainisch
      UK
    /
    Dokumentation nach Framework filtern
    Alt+←
    Warum Intlayer?
    Anfangen
    Konzept
    • Wie Intlayer funktioniert
    • Konfiguration
    • TestFillBuildWatchExtractLoginPushPullConfigurationListVersionEditorLiveDebugDoc ReviewDoc TranslateSDK
    • Visueller Editor
    • CMS
    • CI/CD-Integration
    • ÜbersetzungPluralAufzählungBedingungGeschlechtEinfügungDateiVerschachtelungMarkdownHTMLFunktionsabruf
    • Datei pro Locale
    • Compiler
    • Automatisches Ausfüllen
    • Testen
    • Bundle-Optimierung
    Umwelt
    • Next.js 14 und App Router
      Next.js 15
      Next.js ohne Locale URL
      Next.js und Page Router
      Compiler
    • Tanstack Start Solid
    • Astro und React
      Astro und Svelte
      Astro und Vue
      Astro und Solid
      Astro und Preact
      Astro und Lit
      Astro und Vanilla JS
    • React Router v7
      React Router v7 (fs-routes)
      Compiler
    • Nuxt und Vue
    • Vite und Solid
    • SvelteKit
    • Vite und Preact
    • Vite und Vanilla JS
    • Vite und Lit
    • Angular 19 (Webpack)
      Analog
    • React CRA
    • React Native und Expo
    • Express.js
      NestJS
      Fastify
      Hono
      Adonis
    • Lynx und React
    Plugins
    • JSON
    • gettext (.po)
    VS Code-Erweiterung
    Agent
    • MCP-Server
    • Agenten-Fähigkeiten
    Versionen
    • v8
    • v7
    • v6
    Benchmark
    • Next.js
    • TanStack
    • Vue
    • Solid
    • Svelte
    Blog
    Frage stellen
    1. Documentation
    2. Testing
    Erstellung:2025-03-01Letzte Aktualisierung:2025-09-20
    Referenzieren Sie diese Dokumentation mit Ihrem bevorzugten AI-Assistenten
    ChatGPT
    Claude
    DeepSeek
    Google AI mode
    Gemini
    Perplexity
    Mistral
    Grok

    Stellen Sie Ihre Frage und erhalten Sie einen Resümee des Dokuments, indem Sie diese Seite und den AI-Anbieter Ihrer Wahl referenzieren

    Dieses Dokument ist veraltet, die Basisversion wurde aktualisiert am 5. Oktober 2025.

    Zur englischen Doku gehen

    Versionshistorie

    1. "Einführung von Tests"
      v6.0.020.9.2025

    Der Inhalt dieser Seite wurde mit einer KI übersetzt.

    Den englischen Originaltext ansehen
    Diese Dokumentation bearbeiten

    Wenn Sie eine Idee haben, um diese Dokumentation zu verbessern, zögern Sie bitte nicht, durch das Einreichen eines Pull-Requests auf GitHub beizutragen.

    GitHub-Link zur Dokumentation
    Kopieren

    Markdown des Dokuments in die Zwischenablage kopieren

    Testen Ihres Inhalts

    Dieser Leitfaden zeigt, wie Sie automatisch überprüfen können, ob Ihre Wörterbücher vollständig sind, fehlende Übersetzungen vor der Veröffentlichung erkennen und die lokalisierte Benutzeroberfläche in Ihrer App testen.


    Was Sie testen können

    • Fehlende Übersetzungen: CI schlägt fehl, wenn für ein Wörterbuch erforderliche Sprachversionen fehlen.
    • Lokalisierte UI-Darstellung: Komponenten mit einem bestimmten Sprachprovider rendern und sichtbaren Text/Attribute überprüfen.
    • Build-Zeit Prüfungen: Führen Sie lokal eine schnelle Prüfung über die CLI durch.

    Schnellstart: Prüfung über CLI

    Führen Sie die Prüfung vom Projektstammverzeichnis aus durch:

    bash
    Code kopieren

    Kopieren Sie den Code in die Zwischenablage

    npx intlayer content test

    Nützliche Optionen:

    • --env-file [Pfad]: lädt Umgebungsvariablen aus einer Datei.
    • -e, --env [Name]: wählt ein Umgebungsprofil aus.
    • --base-dir [Pfad]: legt das Basisverzeichnis der App für die Auflösung fest.
    • --verbose: zeigt ausführliche Protokolle an.
    • --prefix [Label]: fügt den Protokollzeilen ein Präfix hinzu.

    Hinweis: Die CLI gibt einen detaillierten Bericht aus, beendet sich jedoch bei Fehlern nicht mit einem Fehlercode. Für CI-Gates fügen Sie einen Unit-Test (siehe unten) hinzu, der sicherstellt, dass keine erforderlichen Sprachversionen fehlen.


    Programmatischer Test (Vitest/Jest)

    Verwenden Sie die Intlayer CLI API, um sicherzustellen, dass keine Übersetzungen für Ihre erforderlichen Sprachversionen fehlen.

    Code kopieren

    Kopieren Sie den Code in die Zwischenablage

    /* @vitest-environment node */import { listMissingTranslations } from "intlayer/cli";import { describe, expect, it } from "vitest";describe("Übersetzungen", () => {  it("hat keine fehlenden erforderlichen Sprachversionen", () => {    const result = listMissingTranslations();    if (result.missingRequiredLocales.length > 0) {      // Hilfreich, wenn der Test lokal oder in CI fehlschlägt      console.log(result.missingTranslations);    }    expect(result.missingRequiredLocales).toHaveLength(0);  });});

    Jest-Äquivalent:

    Code kopieren

    Kopieren Sie den Code in die Zwischenablage

    import { listMissingTranslations } from "intlayer/cli";test("hat keine fehlenden erforderlichen Sprachversionen", () => {  const result = listMissingTranslations();  if (result.missingRequiredLocales.length > 0) {    console.log(result.missingTranslations);  }  expect(result.missingRequiredLocales).toHaveLength(0);});

    Wie es funktioniert:

    • Intlayer liest Ihre Konfiguration (locales, requiredLocales) und deklarierte Wörterbücher aus und meldet dann:
      • missingTranslations: pro Schlüssel, welche Sprachversionen fehlen und aus welcher Datei.
      • missingLocales: Vereinigung aller fehlenden Sprachversionen.
      • missingRequiredLocales: Teilmenge beschränkt auf requiredLocales (oder alle Sprachversionen, wenn requiredLocales nicht gesetzt ist).

    Testen der lokalisierten Benutzeroberfläche (React / Next.js)

    Rendern Sie Komponenten unter einem Intlayer-Provider und prüfen Sie den sichtbaren Inhalt.

    React-Beispiel (Testing Library):

    tsx
    Code kopieren

    Kopieren Sie den Code in die Zwischenablage

    import { IntlayerProvider } from "react-intlayer/client";import { render, screen } from "@testing-library/react";import { MyComponent } from "./MyComponent";test("renders localized title in English", () => {  render(    <IntlayerProvider locale="en-US">      <MyComponent />    </IntlayerProvider>  );  expect(screen.getByText("Erwarteter englischer Titel")).toBeInTheDocument();});

    Next.js (App Router) Beispiel: Verwenden Sie den Framework-Wrapper:

    tsx
    Code kopieren

    Kopieren Sie den Code in die Zwischenablage

    import { IntlayerClientProvider } from "next-intlayer/client";import { render, screen } from "@testing-library/react";import { MyPage } from "./MyPage";test("rendert lokalisierten Überschrift auf Französisch", () => {  render(    <IntlayerClientProvider locale="fr-FR">      <MyPage />    </IntlayerClientProvider>  );  expect(    screen.getByRole("heading", { name: "Titre attendu" })  ).toBeInTheDocument();});

    Tipps:

    • Wenn Sie rohe Zeichenkettenwerte für Attribute benötigen (z. B. aria-label), greifen Sie auf das .value-Feld zu, das von useIntlayer in React zurückgegeben wird.
    • Behalten Sie Wörterbücher in der Nähe der Komponenten für einfachere Unit-Tests und Bereinigung bei.

    Kontinuierliche Integration

    Fügen Sie einen Test hinzu, der den Build fehlschlagen lässt, wenn erforderliche Übersetzungen fehlen.

    package.json:

    json
    Code kopieren

    Kopieren Sie den Code in die Zwischenablage

    {  "scripts": {    "test:i18n": "vitest run -c"  }}

    GitHub Actions Beispiel:

    yaml
    Code kopieren

    Kopieren Sie den Code in die Zwischenablage

    name: CIon: [push, pull_request]jobs:  test:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: actions/setup-node@v4        with:          node-version: 20      - run: npm ci      - run: npm run test:i18n

    Optional: Führen Sie die CLI-Prüfung für eine menschenlesbare Zusammenfassung neben den Tests aus:

    bash
    Code kopieren

    Kopieren Sie den Code in die Zwischenablage

    npx intlayer content test --verbose

    Fehlerbehebung

    • Stellen Sie sicher, dass Ihre Intlayer-Konfiguration locales und (optional) requiredLocales definiert.
    • Wenn Ihre Anwendung dynamische oder entfernte Wörterbücher verwendet, führen Sie die Tests in einer Umgebung aus, in der die Wörterbücher verfügbar sind.
    • Für gemischte Monorepos verwenden Sie --base-dir, um die CLI auf das richtige Anwendungs-Stammverzeichnis zu verweisen.

    Automatisches Ausfüllen
    Bundle-Optimierung
    Alt+→

    Auf dieser Seite

      Diskussionen sind anonym und werden regelmäßig überprüft, um häufige Probleme zu behandeln. Teilen Sie gerne Feature-Ideen, Feedback zur Dokumentation oder alles rund um Intlayer, wir nutzen diese Eingaben, um unsere Roadmap zu gestalten und das Produkt zu verbessern.

      npx intlayer content test
      /* @vitest-environment node */import { listMissingTranslations } from "intlayer/cli";import { describe, expect, it } from "vitest";describe("Übersetzungen", () => {  it("hat keine fehlenden erforderlichen Sprachversionen", () => {    const result = listMissingTranslations();    if (result.missingRequiredLocales.length > 0) {      // Hilfreich, wenn der Test lokal oder in CI fehlschlägt      console.log(result.missingTranslations);    }    expect(result.missingRequiredLocales).toHaveLength(0);  });});
      import { listMissingTranslations } from "intlayer/cli";test("hat keine fehlenden erforderlichen Sprachversionen", () => {  const result = listMissingTranslations();  if (result.missingRequiredLocales.length > 0) {    console.log(result.missingTranslations);  }  expect(result.missingRequiredLocales).toHaveLength(0);});
      import { IntlayerProvider } from "react-intlayer/client";import { render, screen } from "@testing-library/react";import { MyComponent } from "./MyComponent";test("renders localized title in English", () => {  render(    <IntlayerProvider locale="en-US">      <MyComponent />    </IntlayerProvider>  );  expect(screen.getByText("Erwarteter englischer Titel")).toBeInTheDocument();});
      import { IntlayerClientProvider } from "next-intlayer/client";import { render, screen } from "@testing-library/react";import { MyPage } from "./MyPage";test("rendert lokalisierten Überschrift auf Französisch", () => {  render(    <IntlayerClientProvider locale="fr-FR">      <MyPage />    </IntlayerClientProvider>  );  expect(    screen.getByRole("heading", { name: "Titre attendu" })  ).toBeInTheDocument();});
      {  "scripts": {    "test:i18n": "vitest run -c"  }}
      name: CIon: [push, pull_request]jobs:  test:    runs-on: ubuntu-latest    steps:      - uses: actions/checkout@v4      - uses: actions/setup-node@v4        with:          node-version: 20      - run: npm ci      - run: npm run test:i18n
      npx intlayer content test --verbose