Najboljša rešitev za internacionalizacijo (i18n) v aplikacijah Next.js
Ali želite razširiti svojo aplikacijo Next.js na nove trge? TacoTranslate izjemno olajša lokalizacijo vašega Next.js projekta, kar vam omogoča, da dosežete globalno občinstvo brez zapletov.
Zakaj izbrati TacoTranslate za Next.js?
- Brezhibna integracija: Zasnovan posebej za aplikacije Next.js, se TacoTranslate brez napora integrira v vaš obstoječi delovni tok.
- Samodejno zbiranje nizov: Ni vam več treba ročno upravljati JSON datotek. TacoTranslate samodejno zbira nize iz vaše kode.
- Prevodi, podprti z umetno inteligenco: Izkoristite moč umetne inteligence za zagotavljanje kontekstualno natančnih prevodov, ki ustrezajo tonu vaše aplikacije.
- Takojšnja podpora jezikom: Z enim klikom dodajte podporo za nove jezike in s tem omogočite, da je vaša aplikacija dostopna po vsem svetu.
Kako deluje
Ker se svet vse bolj globalizira, postaja za spletne razvijalce vse pomembneje ustvarjati aplikacije, ki lahko zadovoljijo uporabnike iz različnih držav in kultur. Ena ključnih poti za to je internacionalizacija (i18n), ki vam omogoča prilagoditi aplikacijo različnim jezikom, valutam in formatom datumov.
V tem vodiču bomo predstavili, kako dodati internacionalizacijo vaši React Next.js aplikaciji s strežnim upodabljanjem. TL;DR: Oglejte si celoten primer tukaj.
Ta vodič je namenjen Next.js aplikacijam, ki uporabljajo Pages Router.
Če uporabljate App Router, si namesto tega oglejte ta vodič.
Korak 1: Namestite knjižnico i18n
Za implementacijo internacionalizacije v vaši Next.js aplikaciji bomo najprej izbrali i18n knjižnico. Na voljo je več priljubljenih knjižnic, vključno z next-intl. Vendar pa bomo v tem primeru uporabili TacoTranslate.
TacoTranslate samodejno prevede vaše nize v kateri koli jezik z uporabo najnaprednejše umetne inteligence in vas osvobodi zamudnega upravljanja JSON datotek.
Namestimo ga z uporabo npm v terminalu:
npm install tacotranslateKorak 2: Ustvarite brezplačen račun na TacoTranslate
Zdaj, ko imate modul nameščen, je čas, da ustvarite svoj račun TacoTranslate, prevajalski projekt in pripadajoče API ključe. Ustvarite račun tukaj. Je brezplačno in ne zahteva vnosa kreditne kartice.
V uporabniškem vmesniku aplikacije TacoTranslate ustvarite projekt in pojdite na zavihek API ključev. Ustvarite en read ključ in en read/write ključ. Shranili jih bomo kot okoljske spremenljivke. read ključ je to, čemur rečemo public in read/write ključ je secret. Na primer, lahko jih dodate v .env datoteko v korenu vašega projekta.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010Poskrbite, da skrivnega read/write API ključa nikoli ne razkrijete v produkcijskih odjemalskih okoljih.
Dodali bomo še dve spremenljivki okolja: TACOTRANSLATE_DEFAULT_LOCALE in TACOTRANSLATE_ORIGIN.
TACOTRANSLATE_DEFAULT_LOCALE: Privzeta koda rezervne lokalizacije. V tem primeru jo nastavimo naenza angleščino.TACOTRANSLATE_ORIGIN: “mapa”, kjer bodo shranjeni vaši nizi, na primer URL vašega spletnega mesta. Preberite več o izvorih tukaj.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.comKorak 3: Nastavitev TacoTranslate
Za integracijo TacoTranslate v vašo aplikacijo boste morali ustvariti odjemalca z uporabo prej omenjenih API ključev. Na primer, ustvarite datoteko z imenom /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;Kmalu bomo samodejno definirali TACOTRANSLATE_API_KEY.
Ustvarjanje odjemalca v ločeni datoteki olajša njegovo poznejšo uporabo. Zdaj bomo v prilagojeni /pages/_app.tsx dodali ponudnika 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>
);
}Če že imate prilagojene pageProps in _app.tsx, razširite definicijo z lastnostmi in kodo iz zgoraj navedenega.
Korak 4: Izvajanje upodabljanja na strežniku
TacoTranslate omogoča strežniško upodabljanje vaših prevodov. To močno izboljša uporabniško izkušnjo, saj prikaže prevedeno vsebino takoj, namesto da bi se najprej pojavil kratek utrip neprevedene vsebine. Poleg tega lahko na odjemalcu preskočimo omrežne zahteve, saj že imamo vse potrebne prevode.
Začeli bomo z ustvarjanjem ali spreminjanjem /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'),
});
};Prilagodite preverjanje isProduction glede na vašo konfiguracijo. Če je true, bo TacoTranslate prikazal javni API ključ. Če smo v lokalnem, testnem ali staging okolju (isProduction is false), bomo uporabili skrivni read/write API ključ, da bodo novi nizi poslani v prevod.
Do zdaj smo v aplikaciji Next.js nastavili le seznam podprtih jezikov. Naslednje, kar bomo storili, je pridobiti prevode za vse vaše strani. Za to boste uporabili bodisi getTacoTranslateStaticProps ali getTacoTranslateServerSideProps glede na vaše zahteve.
Te funkcije sprejmejo tri argumente: en objekt Next.js Static Props Context, konfiguracijo za TacoTranslate in neobvezne Next.js lastnosti. Upoštevajte, da je revalidate na getTacoTranslateStaticProps privzeto nastavljen na 60, tako da bodo vaši prevodi ažurni.
Če želite katero od funkcij uporabiti na strani, predpostavimo, da imate datoteko strani, kot je /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!"/>;
}Zdaj bi morali biti sposobni uporabiti komponento Translate za prevajanje nizov v vseh svojih React komponentah.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}Korak 5: Razmestite in preizkusite!
Končali smo! Vaša aplikacija Next.js bo zdaj samodejno prevedena, ko v komponento Translate dodate katerikoli niz. Upoštevajte, da bodo lahko nova besedila za prevod ustvarjala le okolja z dovoljenji read/write na API ključu. Priporočamo, da imate zaprto in zavarovano testno (staging) okolje, kjer lahko s takšnim API ključem preizkusite svojo produkcijsko aplikacijo in dodate nove nize pred objavo. To bo preprečilo, da bi kdorkoli kdorkoli ukradel vaš skrivni API ključ in s tem morebiti napihnil vaš prevajalski projekt z dodajanjem novih, nepovezanih nizov.
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!