TacoTranslate
/
DokumentasjonPriser
 
Veiledning
04. mai 2025

Hvordan implementere internasjonalisering i en Next.js-applikasjon som bruker Pages Router

Gjør React-applikasjonen din mer tilgjengelig og nå nye markeder med internasjonalisering (i18n).

Ettersom verden blir mer globalisert, blir det stadig viktigere for webutviklere å bygge applikasjoner som kan imøtekomme brukere fra forskjellige land og kulturer. En av hovedmåtene å oppnå dette på er gjennom internasjonalisering (i18n), som lar deg tilpasse applikasjonen din til ulike språk, valutaer og datoformater.

I denne veiledningen skal vi se på hvordan du legger til internasjonalisering i din React Next.js-applikasjon, med server-side rendering. TL;DR: Se hele eksemplet her.

Denne veiledningen er for Next.js-applikasjoner som bruker Pages Router.
Hvis du bruker App Router, vennligst se denne veiledningen i stedet.

Trinn 1: Installer et i18n-bibliotek

For å implementere internasjonalisering i Next.js-applikasjonen din, må vi først velge et i18n-bibliotek. Det finnes flere populære biblioteker, inkludert next-intl. I dette eksemplet vil vi derimot bruke TacoTranslate.

TacoTranslate oversetter automatisk strengene dine til alle språk ved hjelp av banebrytende AI, og befrier deg fra det tidkrevende arbeidet med å administrere JSON-filer.

La oss installere det med npm i terminalen din:

npm install tacotranslate

Trinn 2: Opprett en gratis TacoTranslate-konto

Nå som du har installert modulen, er det på tide å opprette TacoTranslate-kontoen din, et oversettelsesprosjekt og tilhørende API-nøkler. Opprett en konto her. Det er gratis, og krever ikke at du oppgir kredittkortopplysninger.

I TacoTranslate-applikasjonens brukergrensesnitt oppretter du et prosjekt og går til fanen for API-nøkler. Opprett en read nøkkel og en read/write nøkkel. Vi vil lagre dem som miljøvariabler. Den read nøkkelen er det vi kaller public og den read/write nøkkelen er secret. For eksempel kan du legge dem til i en .env fil i roten av prosjektet ditt.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Pass på at du aldri lekker den hemmelige read/write API-nøkkelen til produksjonsmiljøer på klientsiden.

Vi legger også til to flere miljøvariabler: TACOTRANSLATE_DEFAULT_LOCALE og TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Standard fallback-lokalkode. I dette eksemplet setter vi den til en for engelsk.
  • TACOTRANSLATE_ORIGIN: “mappen” hvor strengene dine vil bli lagret, for eksempel URL-en til nettstedet ditt. Les mer om origins her.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

Trinn 3: Sette opp TacoTranslate

For å integrere TacoTranslate i applikasjonen din må du opprette en klient som bruker API-nøklene fra tidligere. For eksempel kan du opprette en fil med navnet /tacotranslate-client.js.

/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;

Vi vil automatisk definere TACOTRANSLATE_API_KEY snart.

Å opprette klienten i en egen fil gjør det enklere å bruke den igjen senere. Nå, ved å bruke en tilpasset /pages/_app.tsx, legger vi til TacoTranslate provideren.

/pages/_app.tsx
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>
	);
}

Hvis du allerede har tilpassede pageProps og _app.tsx, vennligst utvid definisjonen med egenskapene og koden ovenfor.

Trinn 4: Implementering av serverside-rendering

TacoTranslate støtter server-side rendering av oversettelsene dine. Dette forbedrer brukeropplevelsen betydelig ved å vise oversatt innhold umiddelbart, i stedet for først å vise uoversatt innhold i et kort øyeblikk. I tillegg kan vi unngå nettverksforespørsler på klientsiden, fordi vi allerede har alle oversettelsene vi trenger.

Vi begynner med å opprette eller endre /next.config.js.

/next.config.js
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'),
	});
};

Tilpass isProductionsjekken til oppsettet ditt. Hvis true, vil TacoTranslate eksponere den offentlige API-nøkkelen. Hvis vi er i et lokalt, test- eller staging-miljø (isProduction is false), vil vi bruke den hemmelige read/write API-nøkkelen for å sørge for at nye strenger sendes for oversettelse.

Hittil har vi bare satt opp Next.js-applikasjonen med en liste over støttede språk. Det neste vi gjør er å hente oversettelser for alle sidene dine. For å gjøre det, vil du bruke enten getTacoTranslateStaticProps eller getTacoTranslateServerSideProps avhengig av kravene dine.

Disse funksjonene tar tre argumenter: et Next.js Static Props Context objekt, konfigurasjon for TacoTranslate, og valgfrie Next.js-egenskaper. Merk at revalidategetTacoTranslateStaticProps er satt til 60 som standard, slik at oversettelsene dine holdes oppdatert.

For å bruke en av funksjonene på en side, la oss anta at du har en sidefil som /pages/hello-world.tsx.

/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!"/>;
}

Du skal nå kunne bruke Translate komponenten til å oversette strenger i alle React-komponentene dine.

import {Translate} from 'tacotranslate/react';

function Component() {
	return <Translate string="Hello, world!"/>
}

Trinn 5: Distribuer og test!

Vi er ferdige! React-applikasjonen din vil nå bli oversatt automatisk når du legger til tekststrenger i en Translate komponent. Merk at kun miljøer med read/write tillatelser på API-nøkkelen vil kunne opprette nye tekststrenger som kan oversettes. Vi anbefaler å ha et lukket og sikret staging-miljø hvor du kan teste produksjonsapplikasjonen din med en slik API-nøkkel, og legge til nye tekststrenger før du går live. Dette vil forhindre at noen noen stjeler din hemmelige API-nøkkel, og potensielt blåse opp oversettelsesprosjektet ditt ved å legge til nye, ikke-relaterte tekststrenger.

Husk å sjekke ut det komplette eksemplet på vår GitHub-profil. Der finner du også et eksempel på hvordan du kan gjøre dette ved bruk av App Router! Hvis du støter på problemer, ta gjerne kontakt, så hjelper vi deg mer enn gjerne.

TacoTranslate lar deg raskt og automatisk lokalisere React-applikasjonene dine til og fra over 75 språk. Kom i gang i dag!

Et produkt fra NattskiftetLaget i Norge