TacoTranslate
/
DokumentaatioHinnoittelu
 
Opas
04.5.

Kuinka toteuttaa kansainvälistäminen Next.js‑sovelluksessa, joka käyttää Pages Router

Tee React-sovelluksestasi saavutettavampi ja tavoita uusia markkinoita kansainvälistämisen (i18n) avulla.

Maailman globalisoituessa on yhä tärkeämpää, että verkkokehittäjät rakentavat sovelluksia, jotka pystyvät palvelemaan käyttäjiä eri maista ja kulttuureista. Yksi keskeisistä tavoista saavuttaa tämä on kansainvälistäminen (i18n), jonka avulla voit mukauttaa sovelluksesi eri kielille, valuutoille ja päivämäärämuodoille.

Tässä ohjeessa tarkastelemme, kuinka lisätä kansainvälistäminen React Next.js -sovellukseesi palvelinpuolen renderöinnin avulla. TL;DR: Katso koko esimerkki täältä.

Tämä opas koskee Next.js-sovelluksia, jotka käyttävät Pages Router.
Jos käytät App Router, katso sen sijaan tämä opas.

Vaihe 1: Asenna i18n-kirjasto

Jotta voit toteuttaa kansainvälistämisen Next.js‑sovelluksessasi, valitsemme ensin i18n‑kirjaston. Saatavilla on useita suosittuja kirjastoja, esimerkiksi next-intl. Tässä esimerkissä käytämme kuitenkin TacoTranslate.

TacoTranslate kääntää tekstisi automaattisesti mihin tahansa kieleen huipputason tekoälyn avulla ja vapauttaa sinut JSON‑tiedostojen työläästä hallinnoinnista.

Asennetaan se terminaalissasi käyttämällä npm:

npm install tacotranslate

Vaihe 2: Luo ilmainen TacoTranslate-tili

Nyt kun moduuli on asennettu, on aika luoda TacoTranslate-tilisi, käännösprojekti ja siihen liittyvät API-avaimet. Luo tili tästä. Se on ilmaista, eikä vaadi luottokortin lisäämistä.

TacoTranslate-sovelluksen käyttöliittymässä luo projekti ja siirry sen API-avaimet‑välilehdelle. Luo yksi read‑avain ja yksi read/write‑avain. Tallennamme ne ympäristömuuttujiin. read‑avain on niin sanottu public, ja read/write‑avain on secret. Esimerkiksi voit lisätä ne projektisi juurihakemistossa olevaan .env‑tiedostoon.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Varmista, ettet koskaan vuoda salaista read/write API-avainta asiakaspuolen tuotantoympäristöihin.

Lisäämme myös kaksi ympäristömuuttujaa: TACOTRANSLATE_DEFAULT_LOCALE ja TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Oletusvarakielen koodi. Tässä esimerkissä asetamme sen en-arvoksi (englanniksi).
  • TACOTRANSLATE_ORIGIN: The “folder” where your strings will be stored, such as the URL of your website. Lue lisää originista täältä.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

Vaihe 3: TacoTranslaten käyttöönotto

Integroidaksesi TacoTranslaten sovellukseesi sinun pitää luoda client käyttämällä aiemmin mainittuja API-avaimia. Esimerkiksi luo tiedosto nimeltä /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;

Määrittelemme automaattisesti TACOTRANSLATE_API_KEY pian.

Clientin luominen erilliseen tiedostoon tekee sen uudelleenkäytöstä helpompaa myöhemmin. Nyt käytämme mukautettua /pages/_app.tsx ja lisäämme TacoTranslate providerin.

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

Jos sinulla on jo mukautetut pageProps ja _app.tsx, ole hyvä ja laajenna määrittelyä yllä olevilla ominaisuuksilla ja koodilla.

Vaihe 4: Palvelinpuolen renderöinnin toteuttaminen

TacoTranslate tukee käännösten palvelinpuolen renderöintiä. Tämä parantaa käyttäjäkokemusta merkittävästi näyttämällä käännetyn sisällön välittömästi sen sijaan, että käyttäjä näkisi ensin hetken kääntymätöntä sisältöä. Lisäksi voimme jättää asiakaspuolen verkkopyynnöt väliin, koska meillä on jo kaikki tarvitsemamme käännökset.

Aloitamme luomalla tai muokkaamalla /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'),
	});
};

Muokkaa isProduction -tarkistusta vastaamaan asetuksiasi. Jos true, TacoTranslate näyttää julkisen API-avaimen. Jos olemme paikallisessa, testi- tai staging-ympäristössä (isProduction is false), käytämme salaista read/write API-avainta varmistaaksemme, että uudet merkkijonot lähetetään käännettäviksi.

Tähän mennessä olemme määrittäneet Next.js‑sovellukselle vain tuettujen kielten luettelon. Seuraavaksi haemme käännökset kaikille sivuillesi. Tätä varten käytät joko getTacoTranslateStaticProps tai getTacoTranslateServerSideProps tarpeidesi mukaan.

Nämä funktiot ottavat kolme argumenttia: yhden Next.js Static Props Context objektin, TacoTranslatea koskevan konfiguraation ja valinnaiset Next.js-ominaisuudet. Huomaa, että revalidate kohdassa getTacoTranslateStaticProps on oletuksena asetettu arvoon 60, jotta käännöksesi pysyvät ajan tasalla.

Käyttääksesi kumpaakin funktiota sivulla, oletetaan, että sinulla on sivutiedosto kuten /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!"/>;
}

Voit nyt käyttää Translate-komponenttia merkkijonojen kääntämiseen kaikissa React-komponenteissasi.

import {Translate} from 'tacotranslate/react';

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

Vaihe 5: Ota käyttöön ja testaa!

Olemme valmiit! React-sovelluksesi käännetään nyt automaattisesti, kun lisäät merkkijonoja Translate -komponenttiin. Huomaa, että vain ympäristöt, joilla API-avaimella on read/write -oikeudet, voivat luoda uusia käännettäviä merkkijonoja. Suosittelemme pitämään suljetun ja suojatun staging-ympäristön, jossa voit testata tuotantosovellustasi tällaisella API-avaimella ja lisätä uusia merkkijonoja ennen julkaisua. Tämä estää ketään varastamasta salaista API-avaintasi ja mahdollisesti paisuttamasta käännösprojektiasi lisäämällä uusia, asiaankuulumattomia merkkijonoja.

Muista katsoa täydellinen esimerkki GitHub-profiilissamme. Sieltä löydät myös esimerkin siitä, miten tämä tehdään käyttäen App Routeria! Jos kohtaat ongelmia, ota rohkeasti yhteyttä, autamme mielellämme.

TacoTranslate mahdollistaa React-sovellustesi automaattisen lokalisoimisen nopeasti yli 75 kielelle ja takaisin. Aloita jo tänään!

Tuote yritykseltä NattskiftetValmistettu Norjassa