TacoTranslate
/
DokumentáciaCenník
 
Článok
04. 5.

Najlepšie riešenie pre internacionalizáciu (i18n) v Next.js aplikáciách

Chcete rozšíriť svoju aplikáciu Next.js na nové trhy? TacoTranslate vám neuveriteľne uľahčí lokalizáciu vášho Next.js projektu, čo vám umožní osloviť globálne publikum bez problémov.

Prečo si vybrať TacoTranslate pre Next.js?

  • Bezproblémová integrácia: Navrhnuté špeciálne pre aplikácie Next.js, TacoTranslate sa bez námahy integruje do vášho existujúceho pracovného procesu.
  • Automatický zber reťazcov: Už žiadne manuálne spravovanie JSON súborov. TacoTranslate automaticky zbiera reťazce z vášho kódu.
  • Preklady poháňané AI: Využite silu umelej inteligencie na poskytovanie kontextovo presných prekladov, ktoré zodpovedajú tónu vašej aplikácie.
  • Okamžitá podpora jazykov: Pridajte podporu nových jazykov jediným kliknutím a sprístupnite tak vašu aplikáciu globálne.

Ako to funguje

Ako sa svet stáva viac globalizovaným, je čoraz dôležitejšie, aby vývojári webových aplikácií vytvárali aplikácie, ktoré dokážu vyhovieť používateľom z rôznych krajín a kultúr. Jedným z kľúčových spôsobov, ako to dosiahnuť, je internacionalizácia (i18n), ktorá vám umožňuje prispôsobiť vašu aplikáciu rôznym jazykom, menám a formátom dátumov.

V tomto návode si ukážeme, ako pridať internacionalizáciu do vašej React Next.js aplikácie s podporou server-side renderingu. TL;DR: Kompletný príklad nájdete tu.

Tento návod je určený pre aplikácie Next.js, ktoré používajú Pages Router.
Ak používate App Router, pozrite si radšej tento návod.

Krok 1: Nainštalujte i18n knižnicu

Na implementáciu internacionalizácie vo vašej aplikácii Next.js si najprv vyberieme knižnicu i18n. Existuje niekoľko populárnych knižníc, vrátane next-intl. V tomto príklade však použijeme TacoTranslate.

TacoTranslate automaticky prekladá vaše reťazce do akéhokoľvek jazyka pomocou špičkovej AI a ušetrí vás od zdĺhavého spravovania JSON súborov.

Nainštalujme ho pomocou npm vo vašom termináli:

npm install tacotranslate

Krok 2: Vytvorte si bezplatný účet TacoTranslate

Teraz, keď máte modul nainštalovaný, je čas vytvoriť si účet TacoTranslate, prekladateľský projekt a príslušné API kľúče. Vytvorte si účet tu. Je to zadarmo a nevyžaduje zadanie kreditnej karty.

V používateľskom rozhraní aplikácie TacoTranslate vytvorte projekt a prejdite na kartu API kľúče. Vytvorte jeden read kľúč a jeden read/write kľúč. Uložíme ich ako premenné prostredia. read kľúč nazývame public a read/write kľúč je secret. Napríklad ich môžete pridať do súboru .env v koreňovom adresári vášho projektu.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Uistite sa, že nikdy neprezradíte tajný read/write API kľúč do produkčného prostredia na strane klienta.

Pridáme tiež ďalšie dve premenné prostredia: TACOTRANSLATE_DEFAULT_LOCALE a TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Predvolený záložný kód lokality. V tomto príklade ho nastavíme na en pre angličtinu.
  • TACOTRANSLATE_ORIGIN: „Zložka“, kde budú uložené vaše reťazce, napríklad URL vašej webovej stránky. Prečítajte si viac o pôvodoch tu.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

Krok 3: Nastavenie TacoTranslate

Na integráciu TacoTranslate s vašou aplikáciou budete potrebovať vytvoriť klienta pomocou API kľúčov z predchádzajúceho kroku. Napríklad vytvorte súbor s názvom /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;

Kratko automaticky nastavíme TACOTRANSLATE_API_KEY.

Vytvorenie klienta v samostatnom súbore zjednodušuje jeho opätovné použitie neskôr. Teraz, pomocou vlastného /pages/_app.tsx, pridáme poskytovateľa 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>
	);
}

Ak už máte vlastné pageProps a _app.tsx, prosím, rozšírte definíciu o vlastnosti a kód uvedené vyššie.

Krok 4: Implementácia serverového renderovania

TacoTranslate umožňuje serverové renderovanie vašich prekladov. Toto výrazne zlepšuje používateľský zážitok tým, že okamžite zobrazí preložený obsah namiesto krátkeho zobrazenia nepřeloženého obsahu. Navyše môžeme vynechať sieťové požiadavky na klientovi, pretože už máme všetky potrebné preklady.

Začneme vytvorením alebo úpravou /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'),
	});
};

Upravte kontrolu isProduction tak, aby vyhovovala vášmu nastaveniu. Ak true, TacoTranslate zobrazí verejný kľúč API. Ak sa nachádzame v lokálnom, testovacom alebo prípravnom prostredí (isProduction is false), použijeme tajný kľúč rozhrania API read/write , aby sme sa uistili, že nové reťazce sa odosielajú na preklad.

Doteraz sme v aplikácii Next.js nastavili iba zoznam podporovaných jazykov. Ďalšia vec, ktorú urobíme, je získanie prekladov pre všetky vaše stránky. Na to použijete buď getTacoTranslateStaticProps, alebo getTacoTranslateServerSideProps podľa vašich požiadaviek.

Tieto funkcie prijímajú tri argumenty: jeden objekt Next.js Static Props Context, konfiguráciu pre TacoTranslate a voliteľné vlastnosti Next.js. Všimnite si, že revalidate v getTacoTranslateStaticProps je predvolene nastavený na 60, aby boli vaše preklady aktuálne.

Na použitie ktorejkoľvek funkcie na stránke predpokladajme, že máte súbor stránky ako /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!"/>;
}

Teraz by ste už mali byť schopní použiť komponent Translate na preklad reťazcov vo všetkých vašich React komponentoch.

import {Translate} from 'tacotranslate/react';

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

Krok 5: Nasadiť a otestovať!

Sme hotoví! Vaša aplikácia Next.js bude teraz automaticky prekladaná vždy, keď pridáte akékoľvek reťazce do komponentu Translate. Upozorňujeme, že vytvárať nové reťazce na preklad môžu iba prostredia s oprávneniami read/write pre API kľúč. Odporúčame mať uzavreté a zabezpečené testovacie prostredie (staging), kde môžete testovať svoju produkčnú aplikáciu s takýmto API kľúčom, pridávať nové reťazce pred spustením do produkcie. Týmto spôsobom zabránite komukoľvek odcudziť váš tajný API kľúč a potenciálne nafúknuť váš prekladateľský projekt pridaním nových, nesúvisiacich reťazcov.

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!

Produkt od NattskiftetVyrobené v Nórsku