TacoTranslate
/
DokimantasyonPri
 
Atik
May 04

Pi bon solisyon pou entènasyonalizasyon (i18n) nan aplikasyon Next.js yo

Èske w ap chèche elaji aplikasyon Next.js ou a nan nouvo mache? TacoTranslate fè li ekstrèmman fasil pou lokalize pwojè Next.js ou a, konsa ou ka rive jwenn yon odyans mondyal san traka.

Poukisa chwazi TacoTranslate pou Next.js?

  • Entègrasyon san pwoblèm: Ki fèt espesyalman pou aplikasyon Next.js, TacoTranslate entegre san efò nan kouran travay ou a.
  • Koleksyon fisèl otomatik: Pa bezwen jere fichye JSON manyèlman ankò. TacoTranslate kolekte fisèl yo otomatikman nan baz kòd ou.
  • Tradiksyon ki mache ak AI: Sèvi ak pouvwa AI pou bay tradiksyon ki presi nan kontèks epi ki adapte ak ton aplikasyon ou a.
  • Sipò Imedyat pou Lang: Ajoute sipò pou nouvo lang ak sèlman yon klik, sa fè aplikasyon ou a aksesib atravè lemond.

Ki jan li fonksyone

Pandan mond lan ap vin pi globalize, li vin pi enpòtan pou devlopè entènèt yo kreye aplikasyon ki ka sèvi itilizatè ki sòti nan diferan peyi ak kilti. Youn nan fason kle pou reyalize sa se atravè entènasyonalizasyon (i18n), ki pèmèt ou adapte aplikasyon ou a pou diferan lang, lajan, ak fòma dat.

NAN tutoryèl sa a, n ap wè kijan pou ajoute entènasyonalizasyon nan aplikasyon React Next.js ou a, ak rann sou bò sèvè. TL;DR: Gade egzanp konplè a isit la.

Gid sa a se pou aplikasyon Next.js ki ap itilize Pages Router.
Si w ap itilize App Router, tanpri konsilte gid sa a olye.

Etap 1: Enstale yon bibliyotèk i18n

Pou aplike entènasyonalizasyon nan aplikasyon Next.js ou a, n ap premye chwazi yon bibliyotèk i18n. Gen plizyè bibliyotèk popilè, enkli next-intl. Sepandan, nan egzanp sa a, n ap itilize TacoTranslate.

TacoTranslate tradui chenn ou yo otomatikman nan nenpòt lang ak entèlijans atifisyèl avanse, epi li delivre ou de jesyon fatigan fichye JSON yo.

Ann enstale li ak npm nan tèminal ou:

npm install tacotranslate

Etap 2: Kreye yon kont TacoTranslate gratis

Kounye a ke ou te enstale modil la, li lè pou kreye kont TacoTranslate ou a, yon pwojè tradiksyon, ak kle API asosye yo. Kreye yon kont isit la. Li gratis, e li pa mande pou w ajoute yon kat kredi.

Nan entèfas aplikasyon TacoTranslate la, kreye yon pwojè, epi ale nan tab kle API li yo. Kreye yon kle read, epi yon kle read/write. N ap sove yo kòm varyab anviwònman. Kle read la se sa nou rele public, epi kle read/write la se secret. Pa egzanp, ou ta ka ajoute yo nan yon fichye .env ki nan rasin pwojè w la.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Asire w pou w pa janm lage kle API sekre read/write la nan anviwònman pwodiksyon bò kliyan an.

N ap ajoute tou de lòt varyab anviwònman: TACOTRANSLATE_DEFAULT_LOCALE ak TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Kòd lokal ranplasman pa defo. Nan egzanp sa a, n ap mete li sou en pou Anglè.
  • TACOTRANSLATE_ORIGIN: “katab” kote tèks ou yo ap estoke, tankou URL sit wèb ou. Li plis sou orijin yo isit la.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

Etap 3: Konfigire TacoTranslate

Pou entegre TacoTranslate nan aplikasyon ou, ou pral bezwen kreye yon client ki itilize kle API yo soti pi bonè. Pa egzanp, kreye yon fichye ki rele /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;

N ap otomatikman defini TACOTRANSLATE_API_KEY byento.

Kreye kliyan an nan yon fichye separe fè li pi fasil pou itilize li ankò pita. Kounye a, lè n ap itilize yon /pages/_app.tsx koutim, n ap ajoute founisè TacoTranslate.

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

Si ou deja gen koutim pageProps ak _app.tsx, tanpri elaji definisyon an ak pwopriyete yo ak kòd ki pi wo a.

Etap 4: Aplike rann sou bò sèvè a

TacoTranslate pèmèt rann tradiksyon ou yo sou bò sèvè a. Sa amelyore anpil eksperyans itilizatè a paske li montre kontni tradui yo imedyatman, olye pou itilizatè a wè an premye yon kout eklat kontni ki poko tradui. Anplis, nou ka evite demann rezo sou kliyan an, paske nou deja gen tout tradiksyon nou bezwen yo.

N ap kòmanse pa kreye oswa modifye /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'),
	});
};

Modifye chèk isProduction la pou l adapte ak konfigirasyon ou. Si true, TacoTranslate pral fè kle API piblik la disponib. Si nou nan yon anviwònman lokal, tès, oswa staging (isProduction is false), n ap itilize kle API sekrè read/write la pou asire nouvo chèn tèks yo voye pou tradiksyon.

Jiskaprezan, nou sèlman te konfigire aplikasyon Next.js la ak yon lis lang ki sipòte yo. Pwochen etap la se rekipere tradiksyon pou tout paj ou yo. Pou fè sa, w ap itilize swa getTacoTranslateStaticProps oswa getTacoTranslateServerSideProps dapre bezwen ou yo.

Fonksyon sa yo pran twa agiman: Youn Next.js Static Props Context objè, konfigirasyon pou TacoTranslate, ak pwopriyete Next.js opsyonèl. Remake ke revalidate sou getTacoTranslateStaticProps mete a 60 pa defo, konsa tradiksyon ou yo rete ajou.

Pou itilize youn nan fonksyon sa yo nan yon paj, ann sipoze ou gen yon fichye paj tankou /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!"/>;
}

Ou ta dwe kounye a kapab sèvi ak konpozan Translate la pou tradui chenn karaktè ki nan tout konpozan React ou yo.

import {Translate} from 'tacotranslate/react';

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

Etap 5: Deplwaye epi teste!

Nou fini! Aplikasyon Next.js ou a pral kounye a tradui otomatikman lè ou ajoute nenpòt chèn nan yon Translate konpozan. Remake ke sèlman anviwònman ki gen pèmisyon read/write sou kle API a ap kapab kreye nouvo chèn pou tradui. Nou rekòmande gen yon anviwònman staging fèmen e sekirize kote ou ka teste aplikasyon pwodiksyon ou a ak yon kle API konsa, epi ajoute nouvo chèn anvan ou pase an dirèk. Sa ap anpeche nenpòt moun vòlè kle API sekrè ou a, epi potansyèlman anfle pwojè tradiksyon ou a pa ajoute nouvo chèn ki pa gen rapò.

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!

Yon pwodwi ki soti nan NattskiftetFè nan Nòvèj