Si të implementoni ndërkombëtarizimin në një aplikacion Next.js që përdor Pages Router
Bëni aplikacionin tuaj React më të aksesueshëm dhe arrini tregje të reja me ndërkombëtarizim (i18n).
Ndërsa bota po globalizohet, bëhet gjithnjë e më e rëndësishme për zhvilluesit e uebit të ndërtojnë aplikacione që mund t'u përgjigjen përdoruesve nga vende dhe kultura të ndryshme. Një nga mënyrat kryesore për ta arritur këtë është ndërkombëtarizimi (i18n), i cili ju lejon të përshtatni aplikacionin tuaj për gjuhë, monedha dhe formate datash të ndryshme.
Në këtë udhëzues, do të shqyrtojmë si të shtoni ndërkombëtarizimin në aplikacionin tuaj React Next.js, me renderim në anën e serverit. TL;DR: Shihni shembullin e plotë këtu.
Ky udhëzues është për aplikacionet Next.js që po përdorin Pages Router.
Nëse po përdorni App Router, ju lutemi shikoni këtë udhëzues.
Hapi 1: Instaloni një bibliotekë i18n
Për të zbatuar ndërkombëtarizimin në aplikacionin tuaj Next.js, së pari do të zgjedhim një bibliotekë i18n. Ekzistojnë disa biblioteka të njohura, përfshirë next-intl. Megjithatë, në këtë shembull do të përdorim TacoTranslate.
TacoTranslate përkthen automatikisht vargjet tuaja në çdo gjuhë duke përdorur intelgjencë artificiale të përparuar, dhe ju çliron nga menaxhimi i lodhshëm i skedarëve JSON.
Ta instalojmë duke përdorur npm në terminalin tuaj:
npm install tacotranslateHapi 2: Krijo një llogari TacoTranslate falas
Tani që keni instaluar modulin, është koha të krijoni llogarinë tuaj në TacoTranslate, një projekt për përkthim dhe çelësat përkatës të API-së. Krijoni një llogari këtu. Është falas, dhe nuk kërkon të shtoni një kartë krediti.
Brenda ndërfaqes së aplikacionit TacoTranslate, krijoni një projekt dhe shkoni te skeda e çelësave të API-së. Krijoni një çelës read dhe një çelës read/write. Ne do t'i ruajmë si variabla mjedisore. Çelësi read është ai që ne e quajmë public dhe çelësi read/write është secret. Për shembull, mund t'i shtoni në një skedar .env në rrënjën e projektit tuaj.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010Sigurohu që të mos rrjedhësh kurrë çelësin sekret read/write të API-së në mjediset e prodhimit në anën e klientit.
Do të shtojmë gjithashtu dy variabla të mjedisit: TACOTRANSLATE_DEFAULT_LOCALE dhe TACOTRANSLATE_ORIGIN.
TACOTRANSLATE_DEFAULT_LOCALE: Kodi i lokalizimit të parazgjedhur. Në këtë shembull, do ta vendosim nëenpër gjuhën angleze.TACOTRANSLATE_ORIGIN: “dosja” ku do të ruhen tekstet tuaja, si p.sh. URL-ja e faqes suaj. Lexoni më shumë rreth origjinave këtu.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.comHapi 3: Konfigurimi i TacoTranslate
Për të integruar TacoTranslate me aplikacionin tuaj, do t'ju duhet të krijoni një klient duke përdorur çelësat e API-së nga më parë. Për shembull, krijoni një skedar me emrin /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;Do ta përcaktojmë automatikisht TACOTRANSLATE_API_KEY së shpejti.
Krijimi i klientit në një skedar të veçantë e bën më të lehtë përdorimin e tij më vonë. Tani, duke përdorur një /pages/_app.tsx të personalizuar, do të shtojmë ofruesin 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>
);
}Nëse tashmë keni pageProps dhe _app.tsx të personalizuara, ju lutemi zgjerojeni përkufizimin me vetitë dhe kodin nga më sipër.
Hapi 4: Implementimi i renderizimit nga ana e serverit
TacoTranslate lejon renderimin në anën e serverit të përkthimeve tuaja. Kjo përmirëson ndjeshëm përvojën e përdoruesit duke shfaqur menjëherë përmbajtjen e përkthyer, në vend të një shfaqjeje të shkurtër të përmbajtjes së papërkthyer. Për më tepër, mund të anashkalojmë kërkesat e rrjetit në klient, sepse tashmë kemi të gjitha përkthimet që na nevojiten.
Do të fillojmë duke krijuar ose modifikuar /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'),
});
};Përshtatni kontrollin isProduction për t'iu përshtatur konfigurimit tuaj. Nëse true, TacoTranslate do të shfaqë çelësin publik të API-së. Nëse jemi në një mjedis lokal, të testimit, ose staging (isProduction is false), do të përdorim çelësin sekret read/write të API-së për t'u siguruar që vargjet e reja dërgohen për përkthim.
Deri tani, kemi konfiguruar aplikacionin Next.js vetëm me një listë të gjuhëve të mbështetura. Hapi tjetër që do të bëjmë është të marrim përkthimet për të gjitha faqet tuaja. Për ta bërë këtë, do të përdorni ose getTacoTranslateStaticProps ose getTacoTranslateServerSideProps sipas kërkesave tuaja.
Këto funksione marrin tre argumente: një objekt Next.js Static Props Context, konfigurimin për TacoTranslate, dhe vetitë opsionale të Next.js. Vini re se revalidate në getTacoTranslateStaticProps është vendosur në 60 si parazgjedhje, në mënyrë që përkthimet tuaja të qëndrojnë të përditësuara.
Për të përdorur secilin prej funksioneve në një faqe, le të supozojmë që keni një skedar faqeje si /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!"/>;
}Tani duhet të jeni në gjendje të përdorni komponentin Translate për të përkthyer vargjet në të gjithë komponentët tuaj React.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}Hapi 5: Publikoni dhe testoni!
Mbaruam! Aplikacioni juaj React tani do të përkthehet automatikisht kur të shtoni ndonjë tekst në një komponent Translate. Kini parasysh se vetëm mjediset me leje read/write mbi çelësin e API-së do të jenë në gjendje të krijojnë vargje të reja për t'u përkthyer. Ne rekomandojmë të keni një mjedis staging të mbyllur dhe të sigurt ku mund të testoni aplikacionin tuaj të prodhimit me një çelës API të tillë, duke shtuar vargje të reja para se ta publikoni. Kjo do të parandalojë që kushdo kushdo të vjedhë çelësin tuaj sekret të API-së, dhe potencialisht të fryjë projektin tuaj të përkthimit duke shtuar vargje të reja, të palidhura.
Sigurohuni që të shikoni shembullin e plotë në profilin tonë në GitHub. Atje, do të gjeni gjithashtu një shembull se si ta bëni këtë duke përdorur App Router! Nëse hasni ndonjë problem, ndihuni të lirë të na kontaktoni, dhe do të jemi mëse të lumtur t'ju ndihmojmë.
TacoTranslate ju lejon të lokalizoni automatikisht aplikacionet tuaja React shpejt nga dhe në mbi 75 gjuhë. Filloni sot!