intlayer: NPM-Paket zur Verwaltung der mehrsprachigen Inhaltsdeklaration (i18n)

    Intlayer ist eine Suite von Paketen, die speziell für JavaScript-Entwickler entwickelt wurde. Es ist mit Frameworks wie React, Next.js und Express.js kompatibel.

    Das intlayer-Pakets ermöglicht es Ihnen, Ihren Inhalt überall in Ihrem Code zu deklarieren. Es konvertiert mehrsprachige Inhaltsdeklarationen in strukturierte Wörterbücher, die nahtlos in Ihre Anwendung integriert werden. Mit TypeScript verbessert Intlayer Ihre Entwicklung, indem es leistungsstärkere, effizientere Werkzeuge bereitstellt.

    Warum Intlayer integrieren?

    • JavaScript-basiertes Inhaltsmanagement: Nutzen Sie die Flexibilität von JavaScript, um Ihre Inhalte effizient zu definieren und zu verwalten.
    • Typensichere Umgebung: Nutzen Sie TypeScript, um sicherzustellen, dass alle Ihre Inhaltsdefinitionen präzise und fehlerfrei sind.
    • Integrierte Inhaltsdateien: Halten Sie Ihre Übersetzungen in der Nähe ihrer jeweiligen Komponenten, was die Wartbarkeit und Klarheit erhöht.

    Installation

    Installieren Sie das erforderliche Paket mit Ihrem bevorzugten Paketmanager:

    bash
    npm install intlayer

    Konfigurieren Sie Intlayer

    Intlayer bietet eine Konfigurationsdatei, um Ihr Projekt einzurichten. Platzieren Sie diese Datei im Stammverzeichnis Ihres Projekts.

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  internationalization: {    locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH],    defaultLocale: Locales.ENGLISH,  },};export default config;

    Für eine vollständige Liste verfügbarer Parameter, siehe die Konfigurationsdokumentation.

    Beispiel für die Verwendung

    Mit Intlayer können Sie Ihren Inhalt überall in Ihrem Code strukturiert deklarieren.

    Standardmäßig scannt Intlayer nach Dateien mit der Erweiterung .content.{ts,tsx,js,jsx,mjs,cjs}.

    Sie können die Standarderweiterung ändern, indem Sie die contentDir-Eigenschaft in der Konfigurationsdatei festlegen.

    bash
    .├── intlayer.config.ts└── src    ├── ClientComponent    │   ├── index.content.ts    │   └── index.tsx    └── ServerComponent        ├── index.content.ts        └── index.tsx

    Deklarieren Sie Ihren Inhalt

    Hier ist ein Beispiel für die Inhaltsdeklaration:

    tsx
    import { type DeclarationContent, t } from "intlayer";const clientComponentContent = {  key: "client-component",  content: {    myTranslatedContent: t({      en: "Hello World",      fr: "Bonjour le monde",      es: "Hola Mundo",    }),    numberOfCar: enu({      "<-1": "Weniger als minus ein Auto",      "-1": "Minus ein Auto",      "0": "Keine Autos",      "1": "Ein Auto",      ">5": "Einige Autos",      ">19": "Viele Autos",    }),  },} satisfies DeclarationContent;export default clientComponentContent;

    Erstellen Sie Ihre Wörterbücher

    Sie können Ihre Wörterbücher mit dem intlayer-cli erstellen.

    bash
    npx intlayer build

    Dieser Befehl scannt alle *.content.*-Dateien, kompiliert sie und schreibt die Ergebnisse in das Verzeichnis, das in Ihrer intlayer.config.ts angegeben ist (standardmäßig ./.intlayer).

    Eine typische Ausgabe kann folgendermaßen aussehen:

    bash
    .├── .intlayer│   ├── dictionary  # Enthält das Wörterbuch Ihres Inhalts│   │   ├── client-component.json│   │   └── server-component.json│   ├── main  # Enthält den Einstiegspunkt Ihres Wörterbuchs für die Verwendung in Ihrer Anwendung│   │   ├── dictionary.cjs│   │   └── dictionary.mjs│   └── types  # Enthält die automatisch generierten Typdefinitionen Ihres Wörterbuchs│       ├── client-component.d.ts│       └── server-component.d.ts└── types    └── intlayer.d.ts  # Enthält die automatisch generierten Typdefinitionen von Intlayer

    i18next-Ressourcen erstellen

    Intlayer kann so konfiguriert werden, dass Wörterbücher für i18next erstellt werden. Dazu müssen Sie die folgende Konfiguration in Ihre intlayer.config.ts-Datei einfügen:

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  /* ... */  content: {    // Weist Intlayer an, Nachrichten Dateien für i18next zu generieren    dictionaryOutput: ["i18next"],    // Das Verzeichnis, in dem Intlayer Ihre Nachrichten-JSON-Dateien schreiben wird    i18nextResourcesDir: "./i18next/resources",  },};

    Für eine vollständige Liste verfügbarer Parameter, siehe die Konfigurationsdokumentation.

    Ausgabe:

    bash
    .└── i18next    └── resources        ├── en        │   ├── client-component.json        │   └── server-component.json        ├── es        │   ├── client-component.json        │   └── server-component.json        └── fr            ├── client-component.json            └── server-component.json

    Zum Beispiel könnte die en/client-component.json folgendermaßen aussehen:

    json
    {  "myTranslatedContent": "Hello World",  "zero_numberOfCar": "Keine Autos",  "one_numberOfCar": "Ein Auto",  "two_numberOfCar": "Zwei Autos",  "other_numberOfCar": "Einige Autos"}

    i18next oder next-intl Wörterbücher erstellen

    Intlayer kann so konfiguriert werden, dass Wörterbücher für i18next oder next-intl erstellt werden. Dazu müssen Sie die folgende Konfiguration in Ihre intlayer.config.ts-Datei einfügen:

    intlayer.config.ts
    import { Locales, type IntlayerConfig } from "intlayer";const config: IntlayerConfig = {  /* ... */  content: {    // Weist Intlayer an, Nachrichten Dateien für i18next zu generieren    dictionaryOutput: ["next-intl"],    // Das Verzeichnis, in dem Intlayer Ihre Nachrichten-JSON-Dateien schreiben wird    nextIntlMessagesDir: "./i18next/messages",  },};

    Für eine vollständige Liste verfügbarer Parameter, siehe die Konfigurationsdokumentation.

    Ausgabe:

    bash
    .└── intl    └── messages        ├── en        │   ├── client-component.json        │   └── server-component.json        ├── es        │   ├── client-component.json        │   └── server-component.json        └── fr            ├── client-component.json            └── server-component.json

    Zum Beispiel könnte die en/client-component.json folgendermaßen aussehen:

    json
    {  "myTranslatedContent": "Hello World",  "zero_numberOfCar": "Keine Autos",  "one_numberOfCar": "Ein Auto",  "two_numberOfCar": "Zwei Autos",  "other_numberOfCar": "Einige Autos"}

    CLI-Tools

    Intlayer bietet ein CLI-Tool, um:

    • Ihre Inhaltsdeklarationen zu überprüfen und fehlende Übersetzungen zu vervollständigen
    • Wörterbücher aus Ihren Inhaltsdeklarationen zu erstellen
    • entfernte Wörterbücher von Ihrem CMS in Ihr lokales Projekt zu pushen und zu pullen

    Konsultieren Sie intlayer-cli für weitere Informationen.

    Verwenden Sie Intlayer in Ihrer Anwendung

    Sobald Ihr Inhalt deklariert ist, können Sie Ihre Intlayer-Wörterbücher in Ihrer Anwendung konsumieren.

    Intlayer ist als Paket für Ihre Anwendung verfügbar.

    React-Anwendung

    Um Intlayer in Ihrer React-Anwendung zu verwenden, können Sie react-intlayer verwenden.

    Next.js-Anwendung

    Um Intlayer in Ihrer Next.js-Anwendung zu verwenden, können Sie next-intlayer verwenden.

    Express-Anwendung

    Um Intlayer in Ihrer Express-Anwendung zu verwenden, können Sie express-intlayer verwenden.

    Funktionen, die vom intlayer-Paket bereitgestellt werden

    Das intlayer-Paket bietet auch einige Funktionen, um Ihnen zu helfen, Ihre Anwendung zu internationalisieren.

    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