Die beste oplossing vir internasionalisering (i18n) in Next.js-toepassings
Wil jy jou Next.js-toepassing na nuwe markte uitbrei? TacoTranslate maak dit uiters maklik om jou Next.js-projek te lokaliseer, sodat jy 'n wêreldwye gehoor sonder moeite kan bereik.
Waarom TacoTranslate vir Next.js kies?
- Naadlose integrasie: Spesiaal ontwerp vir Next.js-toepassings, integreer TacoTranslate moeiteloos in jou bestaande werkvloei.
- Outomatiese tekenreeksversameling: Geen handmatige hantering van JSON-lêers meer nie. TacoTranslate versamel outomaties tekenreekse uit jou kodebasis.
- KI-aangedrewe vertalings: Benut die krag van KI om kontekstueel akkurate vertalings te lewer wat by die toon van jou toepassing pas.
- Onmiddellike taalondersteuning: Voeg ondersteuning vir nuwe tale by met net 'n klik, wat jou toepassing wêreldwyd toeganklik maak.
Hoe dit werk
Namate die wêreld meer geglobaliseer raak, word dit al hoe belangriker vir webontwikkelaars om toepassings te bou wat gebruikers uit verskillende lande en kulture kan akkommodeer. Een van die sleutels om dit te bereik is deur internasionaalisering (i18n), wat jou toelaat om jou toepassing aan te pas by verskillende tale, geldeenhede en datumformate.
In hierdie tutoriaal gaan ons ondersoek hoe om internasionaalisering by jou React Next.js-toepassing te voeg, met bedienerkant-rendering. TL;DR: Sien die volledige voorbeeld hier.
Hierdie gids is vir Next.js-toepassings wat die Pages Router gebruik.
As u die App Router gebruik, sien asseblief eerder hierdie gids.
Stap 1: Installeer 'n i18n-biblioteek
Om internasionalisering in jou Next.js-toepassing te implementeer, kies ons eers 'n i18n-biblioteek. Daar is verskeie gewilde biblioteke, insluitend next-intl. In hierdie voorbeeld gaan ons egter TacoTranslate.
TacoTranslate vertaal jou stringe outomaties na enige taal met behulp van gevorderde kunsmatige intelligensie, en bevry jou van die moeisame bestuur van JSON-lêers.
Kom ons installeer dit met npm in jou terminal:
npm install tacotranslateStap 2: Maak 'n gratis TacoTranslate-rekening aan.
Nou dat jy die module geïnstalleer het, is dit tyd om jou TacoTranslate-rekening, 'n vertaalprojek en die ooreenstemmende API-sleutels te skep. Skep 'n rekening hier. Dit is gratis, en jy hoef nie 'n kredietkaart by te voeg nie.
Binne die TacoTranslate-toepassing se UI, skep 'n projek en navigeer na die oortjie vir API-sleutels. Skep een read sleutel, en een read/write sleutel. Ons sal hulle as omgewingsveranderlikes stoor. Die read sleutel is wat ons public noem, en die read/write sleutel is secret. Byvoorbeeld, jy kan hulle by 'n .env lêer in die wortel van jou projek voeg.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010Maak seker dat jy nooit die geheime read/write API-sleutel aan die kliëntkant se produksie-omgewings lek nie.
Ons sal ook twee bykomende omgewingsveranderlikes byvoeg: TACOTRANSLATE_DEFAULT_LOCALE en TACOTRANSLATE_ORIGIN.
TACOTRANSLATE_DEFAULT_LOCALE: Die standaard terugval-lokaalkode. In hierdie voorbeeld stel ons dit openvir Engels.TACOTRANSLATE_ORIGIN: Die "gids" waar jou stringe gestoor sal word, soos die URL van jou webwerf. Lees meer oor oorspronge hier.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.comStap 3: Stel TacoTranslate op
Om TacoTranslate in jou toepassing te integreer, moet jy 'n kliënt skep deur die API-sleutels wat vroeër genoem is te gebruik. Byvoorbeeld, skep 'n lêer met die naam /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;Ons sal binnekort outomaties TACOTRANSLATE_API_KEY definieer.
Om die kliënt in 'n aparte lêer te skep, maak dit makliker om dit later weer te gebruik. Nou, met 'n pasgemaakte /pages/_app.tsx, sal ons die TacoTranslate verskaffer byvoeg.
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>
);
}As u reeds pasgemaakte pageProps en _app.tsx het, brei asseblief die definisie uit met die eienskappe en kode van hierbo.
Stap 4: Implementering van bedienerkant-weergawing
TacoTranslate maak bedienerkant-rendering van jou vertalings moontlik. Dit verbeter die gebruikerservaring aansienlik deur vertaalde inhoud onmiddellik te toon, in plaas van eers ’n flits van onvertaalde inhoud. Daarbenewens kan ons netwerkversoeke op die kliënt oorslaan, omdat ons reeds al die nodige vertalings het.
Ons begin deur /next.config.js te skep of te wysig.
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'),
});
};Wysig die isProduction kontrole om by jou opstelling te pas. As true, sal TacoTranslate die openbare API-sleutel openbaar maak. As ons in 'n plaaslike, toets- of staging-omgewing is (isProduction is false), sal ons die geheime read/write API-sleutel gebruik om seker te maak dat nuwe stringe vir vertaling gestuur word.
Tot dusver het ons die Next.js-toepassing slegs opgestel met 'n lys van ondersteunde tale. Die volgende stap is om vertalings vir al jou bladsye te haal. Om dit te doen, sal jy óf getTacoTranslateStaticProps óf getTacoTranslateServerSideProps gebruik, afhangend van jou vereistes.
Hierdie funksies neem drie argumente: 'n Next.js Static Props Context objek, konfigurasie vir TacoTranslate, en opsionele Next.js-eienskappe. Let daarop dat revalidate op getTacoTranslateStaticProps standaard op 60 gestel is, sodat jou vertalings op datum bly.
Om een van die funksies in 'n bladsy te gebruik, laat ons aanneem jy het 'n bladsylêer soos /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!"/>;
}Jy behoort nou die Translate komponent te kan gebruik om stringe in al jou React-komponente te vertaal.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}Stap 5: Ontplooi en toets!
Ons is klaar! Jou Next.js-toepassing sal nou outomaties vertaal word wanneer jy enige stringe by 'n Translate komponent voeg. Let wel dat slegs omgewings met read/write toestemming op die API-sleutel in staat sal wees om nuwe stringe te skep wat vertaal moet word. Ons beveel aan om 'n afgeslote en beveiligde staging-omgewing te hê waarin jy jou produksietoepassing met so 'n API-sleutel kan toets, en nuwe stringe kan byvoeg voordat dit in produksie gaan. Dit sal enigeen enigeen verhinder om jou geheime API-sleutel te steel, en moontlik jou vertaalprojek op te blaas deur nuwe, nie-verwante stringe by te voeg.
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!