Die beste Lösung für Internationalisierung (i18n) in Next.js-Anwendungen
Suchen Sie nach Möglichkeiten, Ihre Next.js-Anwendung auf neue Märkte auszuweiten? TacoTranslate macht es unglaublich einfach, Ihr Next.js-Projekt zu lokalisieren und ermöglicht es Ihnen, ein weltweites Publikum ohne Aufwand zu erreichen.
Warum TacoTranslate für Next.js wählen?
- Nahtlose Integration: Speziell für Next.js-Anwendungen entwickelt, fügt sich TacoTranslate mühelos in Ihren bestehenden Arbeitsablauf ein.
- Automatische Erfassung von Strings: Keine manuelle Verwaltung von JSON-Dateien mehr. TacoTranslate sammelt automatisch Strings aus Ihrer Codebasis.
- KI-gestützte Übersetzungen: Nutzen Sie die Leistungsfähigkeit der KI, um kontextuell genaue Übersetzungen zu liefern, die zum Ton Ihrer Anwendung passen.
- Sofortige Sprachunterstützung: Fügen Sie mit nur einem Klick Unterstützung für neue Sprachen hinzu und machen Sie Ihre Anwendung global zugänglich.
So funktioniert es
Da die Welt immer globalisierter wird, ist es für Webentwickler zunehmend wichtig, Anwendungen zu erstellen, die Nutzer aus verschiedenen Ländern und Kulturen ansprechen können. Eine der wichtigsten Möglichkeiten, dies zu erreichen, ist die Internationalisierung (i18n), mit der Sie Ihre Anwendung an verschiedene Sprachen, Währungen und Datumsformate anpassen können.
In diesem Tutorial zeigen wir, wie Sie Internationalisierung zu Ihrer React Next.js-Anwendung mit Server-Side-Rendering hinzufügen. TL;DR: Sehen Sie sich hier das vollständige Beispiel an.
Diese Anleitung gilt für Next.js-Anwendungen, die den Pages Router verwenden.
Wenn Sie den App Router verwenden, lesen Sie stattdessen diese Anleitung.
Schritt 1: Installieren Sie eine i18n-Bibliothek
Um Internationalisierung in deiner Next.js-Anwendung zu implementieren, wählen wir zunächst eine i18n-Bibliothek. Es gibt mehrere beliebte Bibliotheken, darunter next-intl. In diesem Beispiel werden wir jedoch TacoTranslate.
TacoTranslate übersetzt deine Strings automatisch in jede Sprache mithilfe modernster KI und befreit dich von der mühsamen Verwaltung von JSON-Dateien.
Installieren wir es mit npm in deinem Terminal:
npm install tacotranslate
Schritt 2: Erstellen Sie ein kostenloses TacoTranslate‑Konto
Jetzt, da Sie das Modul installiert haben, ist es an der Zeit, Ihr TacoTranslate-Konto, ein Übersetzungsprojekt und die zugehörigen API-Schlüssel zu erstellen. Erstellen Sie hier ein Konto. Es ist kostenlos und erfordert keine Angabe einer Kreditkarte.
Erstellen Sie in der TacoTranslate-Anwendungsoberfläche ein Projekt und wechseln Sie zur Registerkarte mit den API-Schlüsseln. Erstellen Sie einen read
Schlüssel und einen read/write
Schlüssel. Wir speichern sie als Umgebungsvariablen. Der read
Schlüssel ist das, was wir public
nennen, und der read/write
Schlüssel ist secret
. Zum Beispiel könnten Sie sie in einer Datei .env
im Stammverzeichnis Ihres Projekts ablegen.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010
Achten Sie darauf, dass der geheime read/write
API-Schlüssel niemals in clientseitige Produktionsumgebungen offengelegt wird.
Wir fügen außerdem zwei weitere Umgebungsvariablen hinzu: TACOTRANSLATE_DEFAULT_LOCALE
und TACOTRANSLATE_ORIGIN
.
TACOTRANSLATE_DEFAULT_LOCALE
: Der Standard-Fallback-Locale-Code. In diesem Beispiel setzen wir ihn aufen
für Englisch.TACOTRANSLATE_ORIGIN
: Der "Ordner", in dem Ihre Strings gespeichert werden, z. B. die URL Ihrer Website. Erfahren Sie hier mehr über Origins.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
Schritt 3: TacoTranslate einrichten
Um TacoTranslate in Ihre Anwendung zu integrieren, müssen Sie einen Client erstellen, der die zuvor genannten API-Schlüssel verwendet. Erstellen Sie zum Beispiel eine Datei namens /tacotranslate-client.js
.
const {default: createTacoTranslateClient} = require('tacotranslate');
const tacoTranslate = createTacoTranslateClient({
apiKey:
process.env.TACOTRANSLATE_SECRET_API_KEY ??
process.env.TACOTRANSLATE_PUBLIC_API_KEY ??
process.env.TACOTRANSLATE_API_KEY ??
'',
projectLocale: process.env.TACOTRANSLATE_DEFAULT_LOCALE ?? '',
});
module.exports = tacoTranslate;
Wir werden in Kürze automatisch TACOTRANSLATE_API_KEY
definieren.
Das Erstellen des Clients in einer separaten Datei erleichtert die spätere Wiederverwendung. Nun fügen wir unter Verwendung einer benutzerdefinierten /pages/_app.tsx
den TacoTranslate
Provider hinzu.
import React from 'react';
import {type AppProps} from 'next/app';
import {type Origin, type Locale, type Localizations} from 'tacotranslate';
import TacoTranslate from 'tacotranslate/react';
import TacoTranslateHead from 'tacotranslate/next/head';
import tacoTranslate from '../tacotranslate-client';
type PageProperties = {
origin: Origin;
locale: Locale;
locales: Locale[];
localizations: Localizations;
};
export default function App({Component, pageProps}: AppProps<PageProperties>) {
const {origin, locale, locales, localizations} = pageProps;
return (
<TacoTranslate
client={tacoTranslate}
origin={origin}
locale={locale}
localizations={localizations}
>
<TacoTranslateHead rootUrl="https://your-website.com" locales={locales} />
<Component {...pageProps} />
</TacoTranslate>
);
}
Falls Sie bereits benutzerdefinierte pageProps
und _app.tsx
haben, erweitern Sie bitte die Definition um die oben aufgeführten Eigenschaften und den oben gezeigten Code.
Schritt 4: Implementierung des serverseitigen Renderings
TacoTranslate ermöglicht das serverseitige Rendern Ihrer Übersetzungen. Das verbessert die Benutzererfahrung erheblich, da übersetzte Inhalte sofort angezeigt werden, statt dass zuerst ein kurzer Augenblick nicht übersetzter Inhalte zu sehen ist. Außerdem können wir Netzwerkanfragen auf der Client-Seite überspringen, weil wir bereits alle benötigten Übersetzungen haben.
Wir beginnen damit, /next.config.js
zu erstellen oder zu ändern.
const withTacoTranslate = require('tacotranslate/next/config').default;
const tacoTranslateClient = require('./tacotranslate-client');
module.exports = async () => {
const config = {};
return withTacoTranslate(config, {
client: tacoTranslateClient,
isProduction:
process.env.TACOTRANSLATE_ENV === 'production' ||
process.env.VERCEL_ENV === 'production' ||
(!(process.env.TACOTRANSLATE_ENV || process.env.VERCEL_ENV) &&
process.env.NODE_ENV === 'production'),
});
};
Passen Sie die Prüfung isProduction
an Ihre Konfiguration an. Wenn true
, zeigt TacoTranslate den öffentlichen API‑Schlüssel an. Befinden wir uns in einer lokalen, Test‑ oder Staging‑Umgebung (isProduction
is false
), verwenden wir den geheimen read/write
API‑Schlüssel, um sicherzustellen, dass neue Zeichenfolgen zur Übersetzung gesendet werden.
Bis jetzt haben wir die Next.js-Anwendung nur mit einer Liste unterstützter Sprachen eingerichtet. Als Nächstes werden wir die Übersetzungen für alle Ihre Seiten abrufen. Dazu verwenden Sie je nach Ihren Anforderungen entweder getTacoTranslateStaticProps
oder getTacoTranslateServerSideProps
.
Diese Funktionen nehmen drei Argumente entgegen: ein Next.js Static Props Context Objekt, die Konfiguration für TacoTranslate und optionale Next.js-Eigenschaften. Beachten Sie, dass revalidate
bei getTacoTranslateStaticProps
standardmäßig auf 60 gesetzt ist, damit Ihre Übersetzungen aktuell bleiben.
Um eine der beiden Funktionen auf einer Seite zu verwenden, nehmen wir an, Sie haben eine Datei wie /pages/hello-world.tsx
.
import {Translate} from 'tacotranslate/react';
import getTacoTranslateStaticProps from 'tacotranslate/next/get-static-props';
import tacoTranslateClient from '../tacotranslate-client';
export async function getStaticProps(context) {
return getTacoTranslateStaticProps(context, {client: tacoTranslateClient});
}
export default function Page() {
return <Translate string="Hello, world!"/>;
}
Sie sollten nun die Translate
Komponente verwenden können, um Strings in allen Ihren React-Komponenten zu übersetzen.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}
Schritt 5: Bereitstellen und testen!
Wir sind fertig! Ihre Next.js-Anwendung wird nun automatisch übersetzt, wenn Sie Strings zu einer Translate
Komponente hinzufügen. Beachten Sie, dass nur Umgebungen mit read/write
Berechtigungen für den API-Schlüssel neue zu übersetzende Strings erstellen können. Wir empfehlen, eine geschlossene und gesicherte Staging-Umgebung zu haben, in der Sie Ihre Produktionsanwendung mit einem solchen API-Schlüssel testen und neue Strings hinzufügen können, bevor Sie live gehen. Dies verhindert, dass jemand Ihren geheimen API-Schlüssel stiehlt und möglicherweise Ihr Übersetzungsprojekt aufbläht, indem neue, nicht zusammenhängende Strings hinzugefügt werden.
Be sure to check out the complete example over at our GitHub profile. There, you’ll also find an example of how to do this using the App Router! If you encounter any problems, feel free to reach out, and we’ll be more than happy to help.
TacoTranslate lets you automatically localize your React applications quickly to and from over 75 languages. Get started today!