Creation:2025-04-18Last update:2025-06-29

    Deklaration von Per-Locale Inhaltsdeklaration in Intlayer

    Intlayer unterstützt zwei Möglichkeiten, mehrsprachige Inhalte zu deklarieren:

    • Eine einzelne Datei mit allen Übersetzungen
    • Eine Datei pro Gebietsschema (Per-Locale-Format)

    Diese Flexibilität ermöglicht:

    • Einfache Migration von anderen i18n-Tools
    • Unterstützung für automatisierte Übersetzungs-Workflows
    • Klare Organisation der Übersetzungen in separate, gebietsschema-spezifische Dateien

    Einzelne Datei mit mehreren Übersetzungen

    Dieses Format ist ideal für:

    • Schnelle Iteration im Code.
    • Nahtlose Integration mit dem CMS.

    Dies ist der empfohlene Ansatz für die meisten Anwendungsfälle. Es zentralisiert die Übersetzungen, was die Iteration und Integration mit dem CMS erleichtert.

    hello-world.content.ts
    import { t, type Dictionary } from "intlayer";
    
    const helloWorldContent = {
      key: "hello-world",
      content: {
        multilingualContent: t({
          en: "Title of my component",
          es: "Título de mi componente",
        }),
      },
    } satisfies Dictionary;
    
    export default helloWorldContent;
    Empfohlen: Dieses Format ist am besten geeignet, wenn Sie den visuellen Editor von Intlayer verwenden oder Übersetzungen direkt im Code verwalten.

    Globale Konfiguration für Per-Locale-Dateien

    Sie können die globale Konfiguration für Per-Locale-Dateien festlegen, indem Sie Folgendes zu Ihrer intlayer.config.ts-Datei hinzufügen:

    ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  dictionary: {    locale: Locales.ENGLISH,  },};export default config;

    Mit dieser Konfiguration werden alle Per-Locale-Dateien mit der Standard-Locale Englisch generiert. Dies beinhaltet auch die Generierung von .content-Dateien unter Verwendung des extract-Befehls und des Compilers. (Siehe Compiler oder Extract für weitere Informationen.)

    Pro-Locale-Format

    Dieses Format ist nützlich, wenn:

    • Sie Übersetzungen unabhängig versionieren oder überschreiben möchten.
    • Sie maschinelle oder menschliche Übersetzungs-Workflows integrieren.

    Sie können Übersetzungen auch in einzelne Lokalisierungsdateien aufteilen, indem Sie das Feld locale angeben:

    hello-world.es.content.ts
    import { t, Locales, type Dictionary } from "intlayer";
    
    const helloWorldContent = {
      key: "hello-world",
      locale: Locales.SPANISH, // Wichtig
      content: { multilingualContent: "Título de mi componente" },
    } satisfies Dictionary;
    
    export default helloWorldContent;
    Wichtig: Stellen Sie sicher, dass das Feld locale definiert ist. Es teilt Intlayer mit, welche Sprache die Datei repräsentiert.
    Hinweis: In beiden Fällen muss die Inhaltsdeklarationsdatei dem Namensmuster *.content.{ts,tsx,js,jsx,mjs,cjs,json} folgen, damit sie von Intlayer erkannt wird. Der Suffix .[locale] ist optional und wird nur als Namenskonvention verwendet.

    Formate mischen

    Sie können beide Deklarationsansätze für denselben Content-Schlüssel kombinieren. Zum Beispiel:

    • Deklarieren Sie Ihren Basisinhalt statisch in einer Datei wie index.content.ts.
    • Fügen Sie spezifische Übersetzungen in separaten Dateien hinzu oder überschreiben Sie sie, z. B. index.fr.content.ts oder index.content.json.

    Diese Konfiguration ist besonders nützlich, wenn:

    • Sie die anfängliche Inhaltsstruktur im Code definieren möchten.
    • Sie planen, Übersetzungen später mithilfe eines CMS oder automatisierter Tools zu erweitern oder zu vervollständigen.
    bash
    .└── Components    └── MyComponent        ├── index.content.ts        ├── index.content.json        └── index.ts

    Beispiel

    Hier eine mehrsprachige Inhaltsdeklarationsdatei:

    Components/MyComponent/index.content.ts
    import { t, type Dictionary } from "intlayer";const helloWorldContent = {  key: "hello-world",  locale: Locales.ENGLISH,  content: {    multilingualContent: "Titel meiner Komponente",    projectName: "Mein Projekt",  },} satisfies Dictionary;export default helloWorldContent;
    Components/MyComponent/index.content.json
    {  "$schema": "https://intlayer.org/schema.json",  "key": "hello-world",  "content": {    "multilingualContent": {      "nodeType": "translation",      "translation": {        "fr": "Titre de mon composant",        "es": "Título de mi componente"      }    }  }}

    Intlayer führt automatisch eine Zusammenführung von mehrsprachigen und sprachspezifischen Dateien durch.

    Components/MyComponent/index.ts
    import { getIntlayer, Locales } from "intlayer";const intlayer = getIntlayer("hello-world"); // Standard-Sprache ist ENGLISCH, daher wird der ENGLISCHE Inhalt zurückgegebenconsole.log(JSON.stringify(intlayer, null, 2));// Ergebnis:// {//  "multilingualContent": "Titel meiner Komponente",//  "projectName": "Mein Projekt"// }const intlayer = getIntlayer("hello-world", Locales.SPANISH);console.log(JSON.stringify(intlayer, null, 2));// Ergebnis:// {//  "multilingualContent": "Título de mi componente",//  "projectName": "Mein Projekt"// }const intlayer = getIntlayer("hello-world", Locales.FRENCH);console.log(JSON.stringify(intlayer, null, 2));// Ergebnis:// {//  "multilingualContent": "Titre de mon composant",//  "projectName": "Mein Projekt"// }

    Automatische Übersetzungserstellung

    Verwenden Sie die intlayer CLI, um fehlende Übersetzungen basierend auf Ihren bevorzugten Diensten automatisch zu ergänzen.