Najlepšie riešenie pre internacionalizáciu (i18n) v aplikáciách Next.js
Chcete rozšíriť svoju aplikáciu Next.js na nové trhy? TacoTranslate vám nesmierne uľahčí lokalizáciu vášho Next.js projektu, čo vám umožní osloviť globálne publikum bez starostí.
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 postupu.
- Automatické zhromažďovanie reťazcov: Už žiadne manuálne spravovanie JSON súborov. TacoTranslate automaticky zhromažďuje 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 pre nové jazyky jediným kliknutím, čo urobí vašu aplikáciu globálne prístupnou.
Ako to funguje
Ako sa svet stáva viac globalizovaným, je čoraz dôležitejšie, aby weboví vývojári vytvárali aplikácie, ktoré môžu vyhovieť používateľom z rôznych krajín a kultúr. Jedným z kľúčových spôsobov, ako toho 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 preskúmame, ako pridať internacionalizáciu do vašej React Next.js aplikácie pomocou server side renderingu. TL;DR: See the full example here.
Tento návod je určený pre aplikácie Next.js, ktoré používajú Pages Router.
Ak používate App Router, pozrite si namiesto toho tento návod.
Krok 1: Nainštalujte knižnicu i18n
Na implementáciu internacionalizácie vo vašej aplikácii Next.js si najskôr 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 umelej inteligencie a oslobodzuje 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 jeho API kľúčov. 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.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010
Nikdy nezverejňujte tajný read/write
API kľúč v produkčných prostrediach na strane klienta.
Pridáme tiež dve ďalšie premenné prostredia: TACOTRANSLATE_DEFAULT_LOCALE
a TACOTRANSLATE_ORIGIN
.
TACOTRANSLATE_DEFAULT_LOCALE
: Predvolený kód rezervnej locale. V tomto príklade ho nastavíme naen
pre angličtinu.TACOTRANSLATE_ORIGIN
: „Zložka“, v ktorej budú uložené vaše reťazce, napríklad URL vašej webovej stránky. Viac o pôvodoch si prečítajte tu.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
Krok 3: Nastavenie TacoTranslate
Ak chcete integrovať TacoTranslate s vašou aplikáciou, budete musieť vytvoriť klienta pomocou kľúčov API z predchádzajúceho obdobia. Vytvorte napríklad súbor s názvom /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;
Čoskoro automaticky definujeme TACOTRANSLATE_API_KEY
.
Vytvorenie klienta v samostatnom súbore umožňuje jeho jednoduchšie opätovné použitie neskôr. Teraz, pomocou vlastného /pages/_app.tsx
, pridáme poskytovateľa TacoTranslate
.
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
, rozšírte definíciu o vlastnosti a kód uvedené vyššie.
Krok 4: Implementácia renderovania na strane servera
TacoTranslate umožňuje renderovanie prekladov na strane servera. To výrazne zlepšuje používateľský zážitok tým, že okamžite zobrazí preložený obsah namiesto najprv zobrazenia nepreneseného obsahu. Okrem toho môžeme preskočiť sieťové požiadavky na klientovi, pretože už máme všetky potrebné preklady.
Začneme vytvorením alebo úpravou súboru /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 nastavili aplikáciu Next.js len so zoznamom podporovaných jazykov. Ďalším krokom bude získavanie 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 hodnota revalidate
vo getTacoTranslateStaticProps
je predvolene nastavená na 60, aby vaše preklady zostávali aktuálne.
Ak chcete použiť ktorúkoľvek z týchto funkcií na stránke, predpokladajme, že máte súbor stránky ako /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 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: Nasadenie a testovanie!
Sme hotoví! Vaša aplikácia Next.js bude teraz automaticky prekladaná, keď pridáte akékoľvek reťazce do komponentu Translate
. Všimnite si, že len prostredia s oprávneniami read/write
na API kľúč budú môcť vytvárať nové reťazce na preklad. Odporúčame mať uzavreté a zabezpečené staging prostredie, kde môžete testovať vašu produkčnú aplikáciu s takýmto API kľúčom, pričom pridávate nové reťazce pred uvedením do prevádzky. Toto zabráni tomu, aby niekto ukradol váš tajný API kľúč a potenciálne nafúkol váš prekladateľský projekt pridávaním nových, nesúvisiacich reťazcov.
Nezabudnite si pozrieť kompletný príklad na našom profile GitHub. Tam nájdete aj príklad, ako to urobiť pomocou App Router! Ak narazíte na nejaké problémy, neváhajte nás kontaktovať, radi vám pomôžeme.
TacoTranslate vám umožňuje automaticky lokalizovať vaše React aplikácie rýchlo do a z akéhokoľvek jazyka. Začnite dnes!