Pi bon solisyon pou entènasyonalizasyon (i18n) nan aplikasyon Next.js
È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, sa pèmèt ou rive jwenn yon odyans mondyal san okenn tèt chaje.
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 ki egziste deja.
- Koleksyon Tèks Otomatik: Pa bezwen jere fichye JSON manyèlman ankò. TacoTranslate kolekte otomatikman chenn tèks yo soti nan baz kòd ou.
- Tradiksyon ki mache ak Entèlijans Atifisyèl: Sèvi ak pouvwa Entèlijans Atifisyèl pou bay tradiksyon ki egzak selon kontèks la epi ki adapte ak ton aplikasyon ou a.
- Sipò Lang Imedya: Ajoute sipò pou nouvo lang ak yon sèl klik, sa fè aplikasyon ou aksesib atravè lemond.
Kijan sa mache
Pandan mond lan vin pi globalize, li vin pi enpòtan pou devlopè entènèt yo kreye aplikasyon ki kapab satisfè itilizatè ki soti nan divès peyi ak kilti. Youn nan fason kle pou reyalize sa se 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 eksplore 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 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è, tankou next-intl. Sepandan, nan egzanp sa a, n ap itilize TacoTranslate.
TacoTranslate otomatikman tradui chenn karaktè ou yo nan nenpòt lang lè l sèvi avèk entèlijans atifisyèl avanse, e li libere ou de jesyon fatigan dosye JSON yo.
Ann enstale li lè l sèvi avèk npm nan terminal ou:
npm install tacotranslateEtap 2: Kreye yon kont TacoTranslate gratis
Kounye a ke ou fin enstale modil la, li lè pou w kreye kont TacoTranslate ou a, yon pwojè tradiksyon, ak kle API ki asosye yo. Kreye yon kont isit la. Li gratis, e li pa mande pou ou ajoute yon kat kredi.
Nan entèfas aplikasyon TacoTranslate la, kreye yon pwojè, epi ale nan onglet 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 nan rasin pwojè w la.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010Asire w pa janm fè kle API sekrè read/write la koule nan anviwònman pwodiksyon bò kliyan an.
Nou pral ajoute tou de lòt varyab anviwònman: TACOTRANSLATE_DEFAULT_LOCALE ak TACOTRANSLATE_ORIGIN.
TACOTRANSLATE_DEFAULT_LOCALE: Kòd lokal default pou ranplasman. Nan egzanp sa a, n ap mete li souenpou Angle.TACOTRANSLATE_ORIGIN: “katab” kote tèks ou yo ap estoke, tankou URL sit entènèt ou. Li plis sou orijin yo isit la.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.comEtap 3: Konfigire TacoTranslate
Pou entegre TacoTranslate ak aplikasyon w lan, w ap bezwen kreye yon kliyan ki itilize kle API yo 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è n ap itilize yon /pages/_app.tsx koutim, nou pral 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 pageProps ak _app.tsx pèsonalize, tanpri elaji definisyon an pou enkli pwopriyete yo ak kòd ki pi wo a.
Etap 4: Enplemante rann sou bò sèvè
TacoTranslate pèmèt rann tradiksyon ou yo sou bò sèvè a. Sa amelyore anpil eksperyans itilizatè a paske li montre kontni tradui a imedyatman, olye pou gen yon moman kote kontni ki pa tradui parèt an premye. Anplis, nou ka evite demann rezo sou bò kliyan an, paske nou deja genyen tout tradiksyon nou bezwen yo.
Nou pral 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 chèk isProduction la pou li anfòm ak konfigirasyon ou. Si true, TacoTranslate pral 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 te sèlman konfigire aplikasyon Next.js la ak yon lis lang ki sipòte. Pwochen etap la 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: 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 oswa lòt fonksyon an 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 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 pou genyen yon anviwònman staging fèmen epi sekirize kote ou ka teste aplikasyon pwodiksyon ou a ak yon kle API konsa, ajoute nouvo chèn anvan ou pibliye. 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!