Parim lahendus rahvusvahelistumiseks (i18n) Next.js rakendustes
Kas soovite laiendada oma Next.js rakendust uutele turgudele? TacoTranslate teeb teie Next.js projekti lokaliseerimise uskumatult lihtsaks, võimaldades teil jõuda globaalse publikuni ilma keerukusteta.
Miks valida TacoTranslate Next.js jaoks?
- Sisematu integreerimine: Spetsiaalselt Next.js rakendustele loodud TacoTranslate ühildub sujuvalt teie olemasoleva töövooga.
- Automaatne stringide kogumine: JavaScripti failide käsitsi haldamine jääb minevikku. TacoTranslate kogub teie koodibaasist stringid automaatselt.
- Tehisintellekti toel tõlked: Kasutage tehisintellekti jõudu, et pakkuda teie rakenduse toonile vastavaid kontekstipõhiseid täpseid tõlkeid.
- Viipeal keeltoetus: Lisage uute keelte tugi vaid ühe klõpsuga, muutes oma rakenduse globaalselt ligipääsetavaks.
Kuidas see töötab
Maailma globaliseerudes muutub web-arendajate jaoks üha olulisemaks ehitada rakendusi, mis suudavad teenindada kasutajaid erinevatest riikidest ja kultuuridest. Üks peamisi viise selle saavutamiseks on rahvusvahelistumine (i18n), mis võimaldab kohandada oma rakendust erinevatele keeltele, valuutadele ja kuupäevavormingutele.
Selles õpetuses uurime, kuidas lisada rahvusvahelistumine oma React Next.js rakendusele, kasutades serveripoolset renderdamist. TL;DR: Vaata täispikka näidet siit.
See juhend on mõeldud Next.js rakendustele, mis kasutavad Pages Router.
Kui kasutate App Router, vaadake selle asemel palun seda juhendit.
Samm 1: Paigalda i18n teek
Et rakendada oma Next.js rakenduses rahvusvahelistamist, valime esmalt i18n teegi. On mitu populaarset teeki, sealhulgas next-intl. Kuid selles näites kasutame TacoTranslate.
TacoTranslate tõlgib teie tekstid automaatselt mis tahes keelde, kasutades tipptasemel tehisintellekti, ning vabastab teid JSON-failide tüütust haldamisest.
Paigaldame selle terminalis kasutades npm:
npm install tacotranslate
2. samm: Loo tasuta TacoTranslate konto
Nüüd, kui sul on moodul paigaldatud, on aeg luua oma TacoTranslate konto, tõlkeprojekt ja sellega seotud API-võtmed. Loo konto siit. See on tasuta ja ei nõua krediitkaardi lisamist.
TacoTranslate rakenduse kasutajaliideses loo projekt ja liigu selle API võtmete vahekaardile. Loo üks read
võti ja üks read/write
võti. Salvestame need keskkonnamuutujatena. read
võtme nimetame public
ja read/write
võti on secret
. Näiteks võid need lisada oma projekti juurkausta .env
faili.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010
Veenduge, et te kunagi ei lekita salajast read/write
API võtit kliendipoolsetesse tootmiskeskkondadesse.
Lisame ka kaks keskkonnamuutujat: TACOTRANSLATE_DEFAULT_LOCALE
ja TACOTRANSLATE_ORIGIN
.
TACOTRANSLATE_DEFAULT_LOCALE
: Vaikimisi varu keelekood. Selles näites määrame selle väärtuseksen
ehk inglise keel.TACOTRANSLATE_ORIGIN
: Kaust, kuhu teie tekstid salvestatakse, näiteks teie veebisaidi URL. Loe siit originate kohta rohkem.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
3. samm: TacoTranslate seadistamine
TacoTranslate'i integreerimiseks oma rakendusega peate looma kliendi, kasutades eelnevalt saadud API-võtmeid. Näiteks looge fail nimega /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;
Me määrame automaatselt peagi TACOTRANSLATE_API_KEY
.
Kliendi loomine eraldi failis teeb selle hiljem uuesti kasutamise lihtsamaks. Nüüd lisame kohandatud /pages/_app.tsx
abil TacoTranslate
pakkuja.
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>
);
}
Kui sul on juba kohandatud pageProps
ja _app.tsx
, siis palun lisa definitsioonile ülaltoodud omadused ja kood.
Samm 4: Serveripoolse renderdamise rakendamine
TacoTranslate võimaldab teie tõlgete serveripoolset renderdamist. See parandab oluliselt kasutajakogemust, kuvades kohe tõlgitud sisu, mitte esmalt tõlkimata sisu vilksatust. Lisaks saame kliendi võrgupäringuid vahele jätta, kuna meil on juba kõik vajalikud tõlked olemas.
Alustame /next.config.js
faili loomise või muutmisega.
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'),
});
};
Muutke isProduction
kontrolli vastavalt oma seadistusele. Kui true
, toob TacoTranslate välja avaliku API võtme. Kui oleme kohalikus, test- või lavastuskeskkonnas (isProduction
is false
), kasutame salajase read/write
API-võtit, et veenduda, et uued stringid saadetakse tõlkimiseks.
Senini oleme seadistanud Next.js rakenduse ainult toetatud keeltest koosneva nimekirjaga. Järgmine samm on hankida tõlked kõigile teie lehtedele. Selleks kasutate kas getTacoTranslateStaticProps
või getTacoTranslateServerSideProps
, sõltuvalt teie vajadustest.
Need funktsioonid võtavad kolm argumenti: ühe Next.js Static Props Context objekti, TacoTranslate konfiguratsiooni ja valikulisi Next.js omadusi. Pange tähele, et revalidate
väärtus getTacoTranslateStaticProps
puhul on vaikimisi seatud 60-le, et teie tõlked oleksid ajakohased.
Et kasutada ühte neist funktsioonidest lehel, oletame, et teil on lehefail nagu /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!"/>;
}
Nüüd peaks teil olema võimalik kasutada Translate
komponenti, et tõlkida stringe kõigis teie Reacti komponentides.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}
Samm 5: Kasuta ja testi!
Oleme valmis! Teie Next.js rakendus tõlgitakse nüüd automaatselt, kui lisate mõne stringi Translate
komponendile. Pange tähele, et ainult keskkonnad, millel on API-võtme puhul read/write
õigused, saavad luua uusi stringe tõlkimiseks. Soovitame kasutada suletud ja turvalist staging-keskkonda, kus saate oma tootmisrakendust sellise API-võtmega testida ning enne kasutuselevõttu uusi stringe lisada. See takistab kellegi varastamast teie salajast API-võtit ja vältida potentsiaalselt tõlkeprojekti paisumist uute, mitteseotud stringide lisamisega.
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!