TacoTranslate
/
DocumentațiePrețuri
 
Articol
04 mai 2025

Cea mai bună soluție pentru internaționalizare (i18n) în aplicațiile Next.js

Îți dorești să îți extinzi aplicația Next.js către piețe noi? TacoTranslate face extrem de ușoară localizarea proiectului tău Next.js, permițându-ți să ajungi la un public global fără bătăi de cap.

De ce să alegi TacoTranslate pentru Next.js?

  • Integrare perfectă: Conceput special pentru aplicațiile Next.js, TacoTranslate se integrează fără efort în fluxul dvs. de lucru existent.
  • Colectare automată a textelor: Nu mai este necesar să gestionați manual fișiere JSON. TacoTranslate colectează automat textele din codul dvs.
  • Traduceri bazate pe AI: Valorificați puterea AI pentru a oferi traduceri cu acuratețe contextuală, care se potrivesc tonului aplicației dvs.
  • Suport instantaneu pentru limbi: Adăugați suport pentru limbi noi cu doar un clic, făcând aplicația dvs. accesibilă la nivel global.

Cum funcționează

Pe măsură ce lumea devine tot mai globalizată, devine din ce în ce mai important ca dezvoltatorii web să construiască aplicații care să răspundă nevoilor utilizatorilor din diferite țări și culturi. Una dintre modalitățile cheie de a realiza acest lucru este internaționalizarea (i18n), care îți permite să adaptezi aplicația la diferite limbi, monede și formate de dată.

În acest tutorial, vom explora cum să adaugi internaționalizare aplicației tale React Next.js, cu randare pe server. TL;DR: Vezi exemplul complet aici.

Acest ghid se adresează aplicațiilor Next.js care folosesc Pages Router.
Dacă folosiți App Router, vă rugăm să consultați în schimb acest ghid.

Pasul 1: Instalați o bibliotecă i18n

Pentru a implementa internaționalizarea în aplicația dvs. 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 dvs. de text în orice limbă folosind inteligență artificială de ultimă generație și vă scapă de gestionarea plictisitoare a fișierelor JSON.

Să îl instalăm folosind npm în terminalul dvs.:

npm install tacotranslate

Pasul 2: Creați 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ă-ți un cont aici. Este gratuit și nu necesită să adaugi un card de credit.

În interfața aplicației TacoTranslate, creează un proiect și navighează la fila sa de chei 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 poți adăuga într-un fișier .env în rădăcina proiectului tău.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Asigurați-vă că nu divulgați niciodată cheia API secretă read/write în mediile de producție de pe partea clientului.

Vom adăuga, de asemenea, încă două variabile de mediu: TACOTRANSLATE_DEFAULT_LOCALE și TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Codul implicit al localei de rezervă. În acest exemplu, îl vom seta la en pentru engleză.
  • TACOTRANSLATE_ORIGIN: „folderul” în care șirurile tale vor fi stocate, cum ar fi URL-ul site-ului tău. Află mai multe despre origini aici.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

Pasul 3: Configurarea TacoTranslate

Pentru a integra TacoTranslate cu aplicația dvs., va trebui să creați un client folosind cheile API menționate mai sus. De exemplu, creați un fișier numit /tacotranslate-client.js.

/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 TACOTRANSLATE_API_KEY în scurt timp.

Crearea clientului într-un fișier separat îl face mai ușor de folosit mai târziu. Acum, folosind un /pages/_app.tsx personalizat, vom adăuga providerul TacoTranslate.

/pages/_app.tsx
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 proprietăți personalizate pageProps și _app.tsx, vă rugăm să extindeți definiția cu proprietățile și codul de mai sus.

Pasul 4: Implementarea randării pe server

TacoTranslate permite renderizarea traducerilor pe server. Acest lucru îmbunătățește considerabil experiența utilizatorului, afișând conținutul tradus imediat, în loc să apară mai întâi un scurt flash de conținut netradus. În plus, putem evita solicitările de rețea din partea clientului, deoarece avem deja toate traducerile de care avem nevoie.

Vom începe prin crearea sau modificarea /next.config.js.

/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'),
	});
};

Modifică verificarea isProduction pentru a se potrivi configurației tale. Dacă true, TacoTranslate va afișa cheia API publică. Dacă ne aflăm într-un mediu local, de testare sau de staging (isProduction is false), vom folosi cheia API secretă read/write pentru a ne asigura că noile șiruri de caractere sunt trimise pentru traducere.

Până acum, am configurat aplicația Next.js doar cu o listă de limbi acceptate. Următorul lucru pe care îl vom face este să preluăm traducerile pentru toate paginile tale. Pentru a face asta, vei folosi fie getTacoTranslateStaticProps fie getTacoTranslateServerSideProps în funcție de cerințele tale.

Aceste funcții iau trei argumente: un obiect Next.js Static Props Context, configurația pentru TacoTranslate și proprietăți opționale ale Next.js. Reține că revalidate din getTacoTranslateStaticProps este setat la 60 în mod implicit, astfel încât traducerile tale să rămână actualizate.

Pentru a folosi oricare dintre funcții într-o pagină, să presupunem că ai un fișier de pagină precum /pages/hello-world.tsx.

/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!"/>;
}

Ar trebui acum să puteți folosi componenta Translate pentru a traduce texte în toate componentele dvs. React.

import {Translate} from 'tacotranslate/react';

function Component() {
	return <Translate string="Hello, world!"/>
}

Pasul 5: Implementați și testați!

Gata! Aplicația ta Next.js va fi acum tradusă automat atunci când adaugi orice șiruri într-o componentă Translate. Reține că numai mediile care au permisiuni read/write pentru cheia API vor putea crea noi șiruri care să fie traduse. Recomandăm să ai un mediu de staging închis și securizat în care să-ți testezi aplicația de producție cu o astfel de cheie API, adăugând noile șiruri înainte de lansare. Acest lucru va împiedica pe oricine să-ți fure cheia API secretă și, potențial, să umfle proiectul tău de traduceri prin adăugarea de șiruri noi, nerelevante.

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!

Un produs de la NattskiftetFabricat în Norvegia