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, pèmèt ou rive jwenn yon odyans mondyal san tèt chaje.
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 ki deja egziste.
- Rasanbleman tèks otomatik: Pa bezwen ankò jere fichye JSON manyèlman. TacoTranslate rasanble otomatikman tèks yo nan baz kòd ou.
- Tradiksyon ki itilize AI: Sèvi ak pouvwa AI pou bay tradiksyon ki kòrèk selon kontèks la epi ki adapte ak ton aplikasyon ou a.
- Sipò imedyat pou lang: Ajoute sipò pou nouvo lang avèk yon sèl klik, sa fè aplikasyon ou aksesib atravè lemond.
Ki jan li mache
Kòm mond la vin pi globalize, li vin pi enpòtan pou devlopè entènèt yo bati aplikasyon ki ka satisfè itilizatè ki sòti nan diferan peyi ak kilti. Yonn nan fason kle pou reyalize sa se atravè entènasyonalizasyon (i18n), ki pèmèt ou adapte aplikasyon ou a pou plizyè lang, lajan, ak fòma dat diferan.
NAN tutoryèl sa a, n ap eksplore kijan pou ajoute entènasyonalizasyon nan aplikasyon React Next.js ou a, ak rann sou sèvè. TL;DR: Gade egzanp konplè a isit la.
Gid sa a pou aplikasyon Next.js ki itilize Pages Router.
Si w ap itilize App Router, tanpri konsilte gid sa a pito.
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 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 ou anba jesyon fatigan fichye JSON yo.
Ann enstale li ak npm nan tèminal ou:
npm install tacotranslateEtap 2: Kreye yon kont TacoTranslate gratis
Kounye a ke ou gen modil la enstale, li lè pou kreye kont TacoTranslate ou, yon pwojè tradiksyon, ak kle API ki asosye yo. Kreye yon kont isit la. Li gratis, epi li pa mande ou ajoute yon kat kredi.
Nan entèfas aplikasyon TacoTranslate la, kreye yon pwojè, epi navige 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è ou a.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010Asire ou pa janm revele kle API sekrè 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 defo ki sèvi kòm ranplasman. Nan egzanp sa a, n ap mete li souenpou Anglè.TACOTRANSLATE_ORIGIN: Katab kote 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.comEtap 3: Mete kanpe TacoTranslate
Pou entegre TacoTranslate nan aplikasyon ou a, ou pral bezwen kreye yon kliyan lè w itilize kle API yo ke ou te kreye 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 apa fè li pi fasil pou itilize ankò pita. Kounye a, lè w ap itilize yon /pages/_app.tsx koutim, 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 yon pageProps ak yon _app.tsx pèsonalize, tanpri elaji definisyon an ak pwopriyete yo ak kòd ki anwo a.
Etap 4: Aplike rann sou sèvè a
TacoTranslate pèmèt rann tradiksyon ou yo sou bò sèvè. Sa anpil amelyore eksperyans itilizatè a paske li montre kontni tradui yo imedyatman, olye pou gen yon ti flash kontni ki pa tradui anvan. Anplis, nou ka evite 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 verifikasyon isProduction la pou li anfòm ak konfigirasyon ou. Si true, TacoTranslate ap ekspoze 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 strings 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: Youn 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, konsa tradiksyon ou yo rete ajou.
Pou itilize nenpòt 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 Translate konpozan an pou tradui tèks 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 tèks nan yon Translate konpozan. Sonje ke se sèlman anviwònman ki gen pèmisyon read/write sou kle API a ki pral kapab kreye nouvo tèks pou tradui. Nou rekòmande pou gen yon anviwònman staging fèmen ak sekirize kote ou ka teste aplikasyon pwodiksyon ou ak yon kle API konsa, epi ajoute nouvo tèks anvan ou mete li an pwodiksyon. Sa ap anpeche nenpòt moun vòlè kle API sekrè ou a, epi potansyèlman gonfle pwojè tradiksyon ou a pa ajoute nouvo tèks 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!