Cea mai bună soluție pentru internaționalizare (i18n) în aplicațiile Next.js
Doriți să vă extindeți aplicația Next.js pe piețe noi? TacoTranslate face incredibil de ușor să localizați proiectul vostru Next.js, permițându-vă să ajungeți la o audiență globală fără niciun efort.
De ce să alegi TacoTranslate pentru Next.js?
- Integrare fluidă: Proiectat special pentru aplicațiile Next.js, TacoTranslate se integrează fără efort în fluxul dvs. de lucru existent.
- Colectare automată a șirurilor: Nu mai este nevoie să gestionați manual fișiere JSON. TacoTranslate colectează automat șirurile din baza dvs. de cod.
- Traduceri alimentate de AI: Valorificați puterea AI pentru a oferi traduceri contextuale și precise, care se potrivesc tonului aplicației dvs.
- Suport instant pentru limbi: Adăugați suport pentru limbi noi printr-un singur clic, făcând aplicația dvs. accesibilă la nivel global.
Cum funcționează
Pe măsură ce lumea devine tot mai globalizată, este din ce în ce mai important pentru dezvoltatorii web să creeze aplicații care să se adreseze utilizatorilor din diferite țări și culturi. Una dintre metodele principale pentru a realiza acest lucru este prin internaționalizare (i18n), care vă permite să adaptați aplicația la diferite limbi, monede și formate de dată.
În acest tutorial, vom explora cum să adăugați internaționalizare aplicației dvs. React Next.js, cu redare pe partea serverului. TL;DR: Vezi exemplul complet aici.
Acest ghid este destinat aplicațiilor Next.js care folosesc Pages Router.
Dacă folosiți App Router, vă rugăm să consultați acest ghid în schimb.
Pasul 1: Instalează o bibliotecă i18n
Pentru a implementa internaționalizarea în aplicația ta Next.js, mai întâi vom alege o bibliotecă i18n. Există mai multe biblioteci populare, inclusiv next-intl. Totuși, în acest exemplu, vom folosi TacoTranslate.
TacoTranslate traduce automat șirurile tale de caractere în orice limbă folosind AI de ultimă generație și te eliberează de gestionarea obositoare a fișierelor JSON.
Hai să îl instalăm folosind npm în terminalul tău:
npm install tacotranslate
Pasul 2: Creează un cont gratuit TacoTranslate
Acum că ai instalat modulul, este timpul să îți creezi contul TacoTranslate, un proiect de traducere și cheile API asociate. Creează un cont aici. Este gratuit și nu necesită adăugarea unui card de credit.
În interfața aplicației TacoTranslate, creează un proiect și navighează la fila cu cheia API. Creează o cheie read
și o cheie read/write
. Le vom salva ca variabile de mediu. Cheia read
este ceea ce numim public
iar cheia read/write
este secret
. De exemplu, le-ai putea adăuga într-un fișier .env
în rădăcina proiectului tău.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010
Asigurați-vă că nu dezvăluiți niciodată cheia secretă API read/write
către mediile de producție pe partea clientului.
De asemenea, vom adăuga încă două variabile de mediu: TACOTRANSLATE_DEFAULT_LOCALE
și TACOTRANSLATE_ORIGIN
.
TACOTRANSLATE_DEFAULT_LOCALE
: Codul implicit pentru limba de rezervă. În acest exemplu, îl vom seta laen
pentru engleză.TACOTRANSLATE_ORIGIN
: „Folderul” unde vor fi stocate șirurile tale de text, cum ar fi URL-ul site-ului tău. Citește mai multe despre origini aici.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
Pasul 3: Configurarea TacoTranslate
Pentru a integra TacoTranslate cu aplicația ta, va trebui să creezi un client folosind cheile API menționate anterior. De exemplu, creează un fișier numit /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;
Vom defini automat în curând TACOTRANSLATE_API_KEY
.
Crearea clientului într-un fișier separat face mai ușoară reutilizarea acestuia ulterior. Acum, folosind un /pages/_app.tsx
personalizat, vom adăuga provider-ul 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>
);
}
Dacă aveți deja pageProps
și _app.tsx
personalizate, vă rugăm să extindeți definiția cu proprietățile și codul de mai sus.
Pasul 4: Implementarea rendering-ului pe partea de server
TacoTranslate permite redarea pe partea de server a traducerilor tale. Acest lucru îmbunătățește foarte mult experiența utilizatorului prin afișarea imediată a conținutului tradus, în loc de o clipă cu conținut netradus la început. În plus, putem evita cererile de rețea pe client, deoarece avem deja toate traducerile de care avem nevoie.
Vom începe prin a crea sau modifica /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'),
});
};
Modificați verificarea isProduction
pentru a se potrivi configurației dvs. Dacă true
, TacoTranslate va afișa cheia API publică. Dacă ne aflăm într-un mediu local, de testare sau de pregătire (isProduction
is false
), vom folosi secretul read/write
cheia API pentru a ne asigura că noile șiruri sunt trimise pentru traducere.
Până acum, am configurat aplicația Next.js doar cu o listă de limbi suportate. Următorul pas este să preluăm traducerile pentru toate paginile tale. Pentru asta, vei folosi fie getTacoTranslateStaticProps
, fie getTacoTranslateServerSideProps
în funcție de cerințele tale.
Aceste funcții primesc trei argumente: un obiect Next.js Static Props Context, configurația pentru TacoTranslate și proprietăți opționale Next.js. Rețineți că revalidate
la getTacoTranslateStaticProps
este setat implicit la 60, astfel încât traducerile dvs. să rămână actualizate.
Pentru a folosi oricare dintre aceste funcții într-o pagină, să presupunem că aveți un fișier de pagină precum /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!"/>;
}
Acum ar trebui să puteți folosi componenta Translate
pentru a traduce șiruri de caractere în toate componentele voastre React.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}
Pasul 5: Publică și testează!
Am terminat! Aplicația ta Next.js va fi acum tradusă automat atunci când adaugi orice șiruri în componenta Translate
. Reține că doar mediile cu permisiuni read/write
asupra cheii API vor putea crea șiruri noi pentru traducere. Recomandăm să ai un mediu de testare închis și securizat unde poți testa aplicația de producție cu o astfel de cheie API, adăugând șiruri noi înainte de lansare. Acest lucru va preveni ca oricine să îți fure cheia API secretă și, potențial, să umfle proiectul tău de traducere prin adăugarea de șiruri noi, nerelevante.
Asigură-te că verifici exemplul complet pe profilul nostru de GitHub. Acolo vei găsi și un exemplu despre cum să faci asta folosind App Router ! Dacă întâmpini orice problemă, nu ezita să ne contactezi, și vom fi mai mult decât fericiți să te ajutăm.
TacoTranslate îți permite să localizezi automat aplicațiile tale React rapid către și din orice limbă. Începe astăzi!