TacoTranslate
/
DokumentacijaCenik
 
Članek
04. maj

Najboljša rešitev za internacionalizacijo (i18n) v Next.js aplikacijah

Ali želite razširiti svojo aplikacijo Next.js na nove trge? TacoTranslate naredi lokalizacijo vašega Next.js projekta neverjetno enostavno, kar vam omogoča, da dosežete globalno občinstvo brez zapletov.

Zakaj izbrati TacoTranslate za Next.js?

  • Nemotena integracija: Posebej zasnovano za aplikacije Next.js, se TacoTranslate brez težav vključi v vaš obstoječi delovni tok.
  • Samodejno zbiranje nizov: Nič več ročnega upravljanja JSON datotek. TacoTranslate samodejno zbira nize iz vaše kode.
  • Prevajanje z močjo umetne inteligence: Izkoristite moč AI za zagotavljanje kontekstualno natančnih prevodov, ki se ujemajo s tonom vaše aplikacije.
  • Takojšnja podpora jezikom: Dodajte podporo za nove jezike z enim klikom, zaradi česar je vaša aplikacija globalno dostopna.

Kako deluje

Ko svet postaja bolj globaliziran, postaja za spletne razvijalce vedno pomembneje, da ustvarjajo aplikacije, ki lahko zadovoljujejo uporabnike iz različnih držav in kultur. Eden ključnih načinov za to je internacionalizacija (i18n), ki vam omogoča prilagoditev vaše aplikacije različnim jezikom, valutam in oblikam datumov.

V tem vodniku bomo raziskali, kako dodati internacionalizacijo vaši React Next.js aplikaciji s prikazom na strežniški strani. TL;DR: Oglejte si celoten primer tukaj.

Ta vodič je za Next.js aplikacije, ki uporabljajo Pages Router.
Če uporabljate App Router, si oglejte ta vodič.

1. korak: Namestite i18n knjižnico

Za implementacijo internacionalizacije v vaši Next.js aplikaciji bomo najprej izbrali i18n knjižnico. Obstaja 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 najsodobnejše umetne inteligence in vas osvobodi mučnega upravljanja JSON datotek.

Pojdimo ga namestiti z uporabo npm v vašem terminalu:

npm install tacotranslate

Korak 2: Ustvarite brezplačen račun 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 se pomaknite do zavihka z API ključi. Ustvarite en read ključ in en read/write ključ. Shranili ju bomo kot okoljske spremenljivke. read ključ imenujemo public (javni), medtem ko je read/write ključ secret (zasebni). Na primer, lahko ju dodate v datoteko .env v korenski mapi vašega projekta.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Poskrbite, da nikoli ne razkrijete skrivnega read/write API ključa v produkcijskih okoljih na strani odjemalca.

Dodali bomo še dve okoljski spremenljivki: TACOTRANSLATE_DEFAULT_LOCALE in TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Privzeta koda odzivne jezikovne različice. V tem primeru jo nastavimo na en za angleščino.
  • TACOTRANSLATE_ORIGIN: "Mapa", kjer bodo shranjene vaše besedilne nize, na primer URL vašega spletnega mesta. Več o izvorih preberite tukaj.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

Korak 3: Nastavitev TacoTranslate

Če želite integrirati TacoTranslate s svojo aplikacijo, boste morali ustvariti odjemalca z uporabo prejšnjih ključev API. Ustvarite na primer datoteko z imenom /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;

Kmalu bomo samodejno določili TACOTRANSLATE_API_KEY.

Ustvarjanje klienta v ločeni datoteki olajša ponovno uporabo pozneje. Zdaj bomo z uporabo prilagojene datoteke /pages/_app.tsx dodali ponudnika 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>
	);
}

Če že imate prilagojene pageProps in _app.tsx, prosimo, razširite definicijo z lastnostmi in kodo iz zgornjega.

Korak 4: Implementacija upodabljanja na strani strežnika

TacoTranslate omogoča upodabljanje prevodov na strežniški strani. To bistveno izboljša uporabniško izkušnjo, saj prikaže prevedeno vsebino takoj, namesto da bi najprej prikazal utrinek neprevedene vsebine. Poleg tega lahko na odjemalcu preskočimo omrežne zahtevke, ker že imamo vse potrebne prevode.

Začeli bomo s kreiranjem ali spreminjanjem datoteke /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'),
	});
};

Spremenite preverjanje isProduction tako, da ustreza vaši nastavitvi. Če true, bo TacoTranslate prikazal javni ključ API. Če smo v lokalnem, preskusnem ali pripravljalnem okolju (isProduction is false), bomo uporabili skrivni ključ API read/write , da zagotovimo, da so novi nizi poslani v prevod.

Do zdaj smo v Next.js aplikaciji nastavili le seznam podprtih jezikov. Naslednje, kar bomo storili, je pridobitev prevodov za vse vaše strani. Za to boste uporabili bodisi getTacoTranslateStaticProps ali getTacoTranslateServerSideProps glede na vaše zahteve.

Te funkcije sprejmejo tri argumente: en Next.js Static Props Context objekt, konfiguracijo za TacoTranslate in nekatere opcijske Next.js lastnosti. Upoštevajte, da je revalidate pri getTacoTranslateStaticProps privzeto nastavljen na 60, tako da so vaše prevode vedno posodobljene.

Da uporabite katerokoli funkcijo na strani, predpostavimo, da imate datoteko strani, kot je /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!"/>;
}

Zdaj bi morali biti sposobni uporabljati komponento Translate za prevajanje nizov v vseh vaših React komponentah.

import {Translate} from 'tacotranslate/react';

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

Korak 5: Objavi in preizkusi!

Končali smo! Vaša aplikacija Next.js bo sedaj samodejno prevedena, ko dodate katerikoli niz v komponento Translate. Upoštevajte, da bodo lahko nove nize za prevajanje ustvarila samo okolja s pristojnostmi read/write na API ključu. Priporočamo, da imate zaprto in varno preizkusno okolje, kjer lahko testirate svojo produkcijsko aplikacijo z API ključem te vrste in dodajate nove nize pred objavo. To bo preprečilo, da bi kdo ukradel vaš skrivni API ključ in s tem morebiti napihnil vaš prevajalski projekt z dodajanjem novih, nepovezanih nizov.

Zagotovo si oglejte celoten primer na našem profilu GitHub. Tam boste našli tudi primer, kako to storiti z uporabo App Router! Če naletite na kakršne koli težave, nam prosim pišite, z veseljem vam bomo pomagali.

TacoTranslate vam omogoča hitro samodejno lokalizacijo vaših React aplikacij v katerikoli jezik in iz njega. Začnite danes!

Izdelek podjetja Nattskiftet