Migration

Erfahren Sie, wie Sie ein Projekt zu gt-next migrieren

Übersicht

In diesem Leitfaden werden die notwendigen Schritte erläutert, um ein Projekt, das bereits eine i18n-Bibliothek verwendet, auf gt-next zu migrieren.

Wir geben außerdem einige Tipps und Empfehlungen, wie die Migration so reibungslos wie möglich gestaltet werden kann.

Voraussetzungen

  • Ein Projekt, das derzeit eine andere i18n-Bibliothek verwendet.
  • Ein grundlegendes Verständnis der gt-next-Bibliothek.

Warum migrieren?

Es gibt viele Gründe, warum du dein Projekt zu gt-next migrieren möchtest.

Hier sind nur einige davon:

  • Keine JSON-Dateien mehr: Nie wieder Übersetzungen in JSON-Dateien verwalten. Dein gesamter Inhalt befindet sich direkt im Code, wo er hingehört.
  • Automatische Übersetzungen: Erzeuge hochwertige, kontextbezogene Übersetzungen mit unserem CLI-Tool. Du musst nie wieder auf Übersetzungen warten.
  • Experimentieren in der Entwicklung: Experimentiere ganz einfach mit Übersetzungen in der Entwicklungsumgebung dank Hot-Reloading für Übersetzungen.

Einrichtung

Installieren Sie gt-next und das gtx-cli CLI-Tool.

npm i gt-next
npm i --save-dev gtx-cli
yarn add gt-next
yarn add --dev gtx-cli
bun add gt-next
bun add --dev gtx-cli
pnpm add gt-next
pnpm add --save-dev gtx-cli

Erstellen Sie eine gt.config.json Datei im Stammverzeichnis Ihres Projekts, die eine defaultLocale Eigenschaft und ein locales Array enthält.

gt.config.json
{
  "defaultLocale": "en",
  "locales": ["en", "fr", "es"]
}

Fügen Sie dann die <GTProvider> Komponente zum Root-Layout Ihrer App hinzu.

app/layout.tsx
import { GTProvider } from 'gt-next'

export default function RootLayout({ children }) {
  return (
    <html>
      <body>
        <GTProvider>
          {children}
        </GTProvider>
      </body>
    </html>
  )
}

Als nächstes fügen Sie withGTConfig zu Ihrer next.config.js Datei hinzu.

next.config.ts
import withGTConfig from 'gt-next/config'
const nextConfig = {
  // Your next.config.ts options
}
export default withGTConfig(nextConfig, {
  // Your GT configuration
})

Für detailliertere Schritte siehe den Schnellstart-Leitfaden.

An diesem Punkt haben Sie 3 Optionen:

  1. Migrieren Sie Ihr gesamtes Projekt vollständig zu gt-next und entfernen Sie die alte i18n-Bibliothek.
  2. Migrieren Sie Ihr Projekt vollständig, aber verwenden Sie weiterhin Wörterbücher aus der alten i18n-Bibliothek.
  3. Verwenden Sie vorerst weiterhin die alte i18n-Bibliothek und migrieren Sie nur einen Teil Ihres Projekts zu gt-next.

Für weitere Details zu jeder Option siehe den Abschnitt Migrationsstrategien.

Migrationsstrategien

Option 1: Vollständige Migration Ihres gesamten Projekts

Diese Option ist die einfachste und erfordert gleichzeitig die meisten Codeänderungen auf einmal.

Nachdem Sie Ihr Projekt eingerichtet haben, müssen Sie nach allen Instanzen Ihrer alten i18n-Bibliothek suchen und diese durch gt-next ersetzen.

Wenn Ihre App React Hooks wie useTranslations verwendet, suchen Sie nach allen Instanzen von useTranslations in Ihrer Codebasis und ersetzen Sie diese durch useGT.

Dann müssen Sie alle String-Schlüssel durch ihre tatsächlichen String-Werte ersetzen.

Wenn Ihr alter Code beispielsweise so aussieht:

dictionary.json
{
  "hello": {
    "description": "Hello, world!"
  }
}
export default function MyComponent() {
  const { t } = useTranslation()
  return <div>{t('hello.description')}</div>
}

Müssen Sie ihn durch folgendes ersetzen:

export default function MyComponent() {
  const t = useGT()
  return <div>{t('Hello, world!')}</div>
}
// ODER
export default function MyComponent() {
  return <T>Hello, world!</T>
}

Tun Sie dies für alle Instanzen Ihrer alten i18n-Bibliothek.

Option 2: Vollständige Migration Ihres Projekts, aber weiterhin Verwendung von Wörterbüchern aus der alten i18n-Bibliothek

Nehmen wir an, Sie möchten Ihr Projekt zu gt-next migrieren, aber Sie möchten weiterhin Wörterbücher aus der alten i18n-Bibliothek verwenden und GT-Inline-Features nur für neue Inhalte nutzen.

In diesem Fall können Sie etwas Ähnliches wie Option 1 tun:

Finden Sie alle Instanzen Ihrer alten i18n-Bibliothek, wie useTranslations Hooks, und ersetzen Sie diese durch useTranslations Hooks von gt-next.

Der useTranslations Hook verhält sich sehr ähnlich zu useTranslations Hooks in anderen i18n-Bibliotheken, und Sie können ihn auf die gleiche Weise verwenden.

import { useTranslation } from 'react-i18next'
export default function MyComponent() {
  const { t } = useTranslation()
  return <div>{t('hello.description')}</div>
}
import { useTranslations } from 'gt-next'
export default function MyComponent() {
  const t = useTranslations()
  return <div>{t('hello.description')}</div>
}

In Bezug auf die Konfiguration müssen Sie eine dictionary.[js|ts|json] Datei in Ihrem Projektverzeichnis oder src Verzeichnis erstellen. Kopieren Sie den Inhalt Ihrer alten Wörterbuchdatei in diese neue Datei.

Die Initialisierungsfunktion withGTConfig in next.config.js wird automatisch die Wörterbuchdatei in Ihrem Projektverzeichnis oder src Verzeichnis erkennen.

Siehe den Wörterbücher Leitfaden für weitere Details.

Option 3: Weiterhin die alte i18n-Bibliothek verwenden und nur einen Teil Ihres Projekts zu gt-next migrieren

Diese Option ist die flexibelste und erfordert die wenigsten Codeänderungen auf einmal.

In diesem Fall können Sie etwas Ähnliches wie Option 2 tun, aber nur einen Teil Ihres Projekts zu gt-next migrieren.

Zum Beispiel können Sie die alte i18n-Bibliothek für einige Komponenten weiterhin verwenden und gt-next nur für andere und für neue Inhalte nutzen.

Diese Option wird nicht empfohlen, da Sie zwei verschiedene i18n-Bibliotheken in Ihrem Projekt verwalten müssen, was komplex sein und zu Fehlern führen kann.

Migrationstipps

1. Verwenden Sie den useGT Hook oder die <T> Komponente so oft wie möglich

Wo immer möglich, empfehlen wir die Verwendung des useGT Hooks oder der <T> Komponente.

Dies wird die Bearbeitung Ihrer Inhalte in Zukunft viel einfacher machen und Ihre Codebasis viel lesbarer gestalten.

2. Verwenden Sie den useTranslations Hook für bestehende Inhalte

Der useTranslations Hook ist eine großartige Möglichkeit, Ihre bestehenden Wörterbücher weiter zu verwenden.

Wir bieten ihn als Möglichkeit an, die Migration zu erleichtern, aber wir empfehlen nicht, ihn für neue Inhalte zu verwenden.

3. Verwendung von KI

Wenn Sie KI verwenden, um bei der Migration Ihres Projekts zu helfen, haben wir eine LLMs.txt und LLMs-full.txt verfügbar unter:

Diese Dateien enthalten den vollständigen Inhalt dieser Dokumentation, sodass Ihr KI-Tool Zugang zu allen Informationen hat, die es benötigt, um Ihnen bei der Migration Ihres Projekts zu helfen.

Wie ist dieser Leitfaden?