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 tèlman fasil pou lokalize pwojè Next.js ou a, sa pèmèt ou rive jwenn yon odyans mondyal san traka.
Poukisa chwazi TacoTranslate pou Next.js?
- Entegrasyon san pwoblèm: Ki fèt espesyalman pou aplikasyon Next.js, TacoTranslate entegre san efò nan kouran travay ou genyen deja.
- Koleksyon chenn tèks otomatik: Pa gen plis bezwen jere fichye JSON manyèlman. TacoTranslate otomatikman ranmase chenn tèks ki nan baz kòd ou a.
- Tradiksyon ki mache ak AI: Sèvi ak pouvwa AI pou bay tradiksyon ki presi selon kontèks epi ki adapte ak ton aplikasyon ou.
- Sipò lang imedya: Ajoute sipò pou nouvo lang ak yon sèl klik, sa fè aplikasyon ou vin aksesib atravè lemond.
Kijan li fonksyone
Pandan mond lan ap vin pi globalize, li vin pi enpòtan pou devlopè entènèt yo kreye aplikasyon ki kapab satisfè itilizatè ki soti 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 EKSPLÒRE KIJAN POU AJOUTE ENTÈNANSYONALIZASYON NAN APLIKASYON REACT NEXT.JS OU A, AK RANN SOU 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 gade gid sa a pito.
Etap 1: Enstale yon bibliyotèk i18n
Pou aplike entènasyonalizasyon nan aplikasyon Next.js ou a, nou pral premye chwazi yon bibliyotèk i18n. Gen plizyè bibliyotèk popilè, tankou next-intl. Sepandan, nan egzanp sa a, n ap itilize TacoTranslate.
TacoTranslate tradui otomatikman chèn tèks ou yo nan nenpòt lang lè l sèvi avèk entèlijans atifisyèl dènye kri, epi li libere w anba jesyon fatigan dosye JSON yo.
Ann enstale li avèk npm nan tèminal ou:
npm install tacotranslate
Etap 2: Kreye yon kont TacoTranslate gratis
Kounye a ke ou gen modil la enstale, li lè pou w kreye kont TacoTranslate ou, yon pwojè tradiksyon, ak kle API ki asosye yo. Kreye yon kont isit la. Li gratis, epi li pa mande w mete yon kat kredi.
Nan koòdone aplikasyon TacoTranslate la, kreye yon pwojè, epi ale sou tab kle API li yo. Kreye yon kle read
ak 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è ou a.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010
Asire w pou w pa janm revele kle API sekrè read/write
la nan anviwònman pwodiksyon bò kliyan an.
N ap ajoute de lòt varyab anviwònman tou: TACOTRANSLATE_DEFAULT_LOCALE
ak TACOTRANSLATE_ORIGIN
.
TACOTRANSLATE_DEFAULT_LOCALE
: Kòd lokal de baz ki sèvi kòm ranplasman (fallback). Nan egzanp sa a, n ap mete li souen
pou Anglè.TACOTRANSLATE_ORIGIN
: “dosye” kote chenn tèks ou yo pral estoke, tankou URL sit entènèt ou. Li plis sou orijin yo isit la.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
Etap 3: Konfigire TacoTranslate
Pou entegre TacoTranslate nan aplikasyon ou a, ou pral bezwen kreye yon kliyan ki itilize kle API yo te bay pi bonè. Pa egzanp, kreye yon dosye ki rele /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 ankò pita. Kounye a, lè w ap itilize yon /pages/_app.tsx
, n ap ajoute founisè TacoTranslate
.
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 pwòp pageProps
ak _app.tsx
, tanpri elaji definisyon an ak pwopriyete yo ak kòd ki pi wo a.
Etap 4: Aplike randerizasyon sou bò sèvè
TacoTranslate pèmèt rann tradiksyon ou yo sou bò sèvè. Sa amelyore anpil eksperyans itilizatè a paske li montre kontni tradui a touswit, olye pou kontni ki poko tradui parèt yon ti tan anvan. Anplis, nou ka evite fè demann rezo sou bò kliyan an, paske nou deja gen tout tradiksyon nou bezwen yo.
N ap kòmanse pa kreye oswa modifye /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 tcheke isProduction
la pou l adapte ak konfigirasyon ou. Si true
, TacoTranslate ap montre kle API piblik la. 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 chenn yo voye pou tradiksyon.
Jiska kounye a, nou sèlman te konfigire aplikasyon Next.js la ak yon lis lang ki sipòte yo. Pwochen bagay nou pral fè se rekipere tradiksyon pou tout paj ou yo. Pou fè sa, w ap itilize swa getTacoTranslateStaticProps
oswa getTacoTranslateServerSideProps
selon bezwen ou.
Fonksyon sa yo pran twa agiman: yon objè Next.js Static Props Context, konfigirasyon pou TacoTranslate, ak pwopriyete Next.js opsyonèl. Remake ke revalidate
sou getTacoTranslateStaticProps
mete sou 60 pa defo, pou 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
.
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!"/>;
}
Kounye a, ou ta dwe kapab itilize konpozan Translate
la pou tradui chenn karaktè 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 tèks 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 yo tradui. Nou rekòmande pou gen yon anviwònman staging fèmen epi an sekirite kote ou ka teste aplikasyon pwodiksyon ou a ak yon kle API konsa, ajoute nouvo chèn anvan ou lanse li. Sa ap anpeche nenpòt moun vòlè kle API sekrè ou a, epi posibman 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!