TacoTranslate
/
DocumentațiePrețuri
 
Articol
04 mai

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

Doriți să extindeți aplicația dvs. Next.js către noi piețe? TacoTranslate face incredibil de ușoară localizarea proiectului dvs. Next.js, permițându-vă să ajungeți la un public global fără bătăi de cap.

De ce să alegi TacoTranslate pentru Next.js?

  • Integrare fără cusur: Creat special pentru aplicațiile Next.js, TacoTranslate se integrează fără efort în fluxul tău de lucru existent.
  • Colectare automată a șirurilor de caractere: Nu mai este nevoie să gestionezi manual fișiere JSON. TacoTranslate colectează automat șirurile din codul tău.
  • Traduceri bazate pe AI: Folosește puterea inteligenței artificiale pentru a oferi traduceri contextuale precise, care se potrivesc tonului aplicației tale.
  • Suport instantaneu pentru limbi noi: Adaugă suport pentru limbi noi cu un singur clic, făcând aplicația ta 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ă poată deservi utilizatori din diferite țări și culturi. Unul dintre modurile esențiale de a realiza acest lucru este prin internaționalizare (i18n), care vă permite să adaptați aplicația la diferite limbi, valute și formate de dată.

În acest tutorial, vom explora cum să adăugați internaționalizare aplicației dumneavoastră React Next.js, cu redare pe partea de server. TL;DR: Vezi exemplul complet aici.

Acest ghid este pentru aplicațiile Next.js care folosesc Pages Router.
Dacă utilizaț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, vom începe prin a 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 în orice limbă folosind AI de ultimă generație și te scapă de gestionarea plictisitoare 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ă să adaugi un card de credit.

În interfața aplicației TacoTranslate, creează un proiect și navighează la fila 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-ai putea 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

Asigură-te că nu dezvălui niciodată cheia secretă read/write API 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 la en pentru engleză.
  • TACOTRANSLATE_ORIGIN: „Folderul” unde vor fi stocate șirurile tale, 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 ta, va trebui să creezi un client folosind cheile API de mai devreme. De exemplu, creează 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 în curând TACOTRANSLATE_API_KEY.

Crearea clientului într-un fișier separat îl face mai ușor de utilizat din nou mai târziu. Acum, folosind un /pages/_app.tsx personalizat, vom adăuga provider-ul 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 pageProps și _app.tsx personalizate, vă rugăm să extindeți definiția cu proprietățile și codul de mai sus.

Pasul 4: Implementarea redării pe partea de server

TacoTranslate permite redarea pe server a traducerilor tale. Acest lucru îmbunătățește considerabil experiența utilizatorului prin afișarea imediată a conținutului tradus, în loc de un scurt moment în care apare conținut netradus. Î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 fișierul /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'),
	});
};

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 aceasta, 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 Next.js. Rețineți că revalidate pe getTacoTranslateStaticProps este setat implicit la 60, astfel încât traducerile dvs. să rămână actualizate.

Pentru a folosi oricare dintre funcții într-o pagină, să presupunem că aveți 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!"/>;
}

Acum ar trebui să puteți utiliza componenta Translate pentru a traduce șirurile de caractere din 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 tradusă automat de acum înainte când adaugi orice stringuri într-un component Translate. Reține că doar mediile cu permisiuni read/write asupra cheii API vor putea crea stringuri noi pentru traducere. Recomandăm să ai un mediu de staging închis și securizat unde poți testa aplicația ta de producție cu o astfel de cheie API, adăugând stringuri noi înainte de lansarea oficială. Acest lucru va preveni ca oricine să îți fure cheia secretă API și, potențial, să umfle proiectul tău de traduceri prin adăugarea de stringuri noi, nesemnificative.

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