TacoTranslate
/
DocumentațieTarifare
 
Articol
04 mai

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

Doriți să vă extindeți aplicația Next.js pe noi piețe? TacoTranslate face incredibil de ușoară localizarea proiectului dumneavoastră 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ă probleme: Creat special pentru aplicațiile Next.js, TacoTranslate se integrează fără efort în fluxul tău de lucru existent.
  • Colectare automată a șirurilor: Nu mai este nevoie să gestionezi manual fișiere JSON. TacoTranslate colectează automat șirurile din codul tău.
  • Traduceri alimentate de AI: Folosește puterea AI pentru a oferi traduceri contextual corecte care se potrivesc tonului aplicației tale.
  • Suport instantaneu pentru limbi: Adaugă suport pentru limbi noi cu doar un click, făcând aplicația ta accesibilă la nivel global.

Cum funcționează

Pe măsură ce lumea devine tot mai globalizată, devine din ce în ce mai important pentru dezvoltatorii web să construiască aplicații care să răspundă nevoilor utilizatorilor din diferite țări și culturi. Una dintre cele mai importante modalități de a realiza acest lucru este prin internaționalizare (i18n), care vă permite să vă adaptați aplicația pentru 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 server. TL;DR: Vezi exemplul complet aici.

Acest ghid este pentru aplicațiile Next.js care folosesc Pages Router.
Dacă folosești App Router, te rugăm să consulți acest ghid.

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 textele tale în orice limbă folosind AI de ultimă generație și te eliberează 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 API keys. 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

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

De asemenea, vom adăuga două variabile de mediu în plus: TACOTRANSLATE_DEFAULT_LOCALE și TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Codul implicit al limbii de rezervă. În acest exemplu, îl vom seta la en pentru Engleză.
  • TACOTRANSLATE_ORIGIN: „folderul” în care vor fi stocate șirurile tale, cum ar fi URL-ul site-ului tău. Citește 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 de mai devreme. 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 î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 renderizării pe partea de server

TacoTranslate permite redarea pe partea de 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 o scurtă clipă de conținut netradus la început. În plus, putem sărim peste cererile de rețea pe client, deoarece avem deja toate traducerile necesare.

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 lucru pe care îl vom face 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 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 utiliza 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 șiruri de caractere în toate componentele voastre React.

import {Translate} from 'tacotranslate/react';

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

Pasul 5: Deploy și testează!

Am terminat! Aplicația ta Next.js va fi acum tradusă automat când adaugi orice șiruri de caractere într-un component Translate. Reține că numai mediile cu permisiuni read/write asupra cheii API vor putea crea noi șiruri de caractere 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, posibil, să suprasolicite proiectul tău de traduceri prin adăugarea de șiruri noi, nelegate.

Asigurați-vă că verificați exemplul complet de pe profilul nostru GitHub. Acolo veți găsi, de asemenea, un exemplu despre cum să faceți acest lucru folosind App Router ! Dacă întâmpinați probleme, nu ezitați să ne contactați, și vom fi mai mult decât bucuroși să vă ajutăm.

TacoTranslate vă permite să localizați automat aplicațiile React rapid în și din orice limbă. Începeți astăzi!

Un produs de la Nattskiftet