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 zbytočných komplikácií.
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ý 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é ladia s tónom vašej aplikácie.
- Okamžitá podpora jazykov: Pridajte podporu nových jazykov jedným kliknutím, čím sprístupníte vašu aplikáciu celosvetovo.
Ako to funguje
Ako sa svet čoraz viac globalizuje, je pre webových vývojárov čoraz dôležitejšie vytvárať 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 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 tutoriáli sa pozrieme na to, ako pridať internacionalizáciu do vašej React Next.js aplikácie, s podporou server-side renderingu. TL;DR: Pozrite si celý príklad tu.
Tento návod je určený pre Next.js aplikácie, ktoré používajú Pages Router.
Ak používate App Router, pozrite si prosím namiesto toho tento návod.
Krok 1: Nainštalujte knižnicu i18n
Na implementáciu internacionalizácie vo vašej Next.js aplikácii si najprv vyberieme i18n knižnicu. 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 ľubovoľného jazyka pomocou špičkovej AI a zbavuje vás zdĺhavého manažmentu JSON súborov.
Nainštalujme ho pomocou npm vo vašom termináli:
npm install tacotranslate
Krok 2: Vytvorte si bezplatný účet na TacoTranslate
Teraz, keď máte modul nainštalovaný, je čas vytvoriť si účet TacoTranslate, prekladateľský projekt a súvisiace API kľúče. Vytvorte si účet tu. Je to zadarmo a nevyžaduje sa zadanie kreditnej karty.
V užívateľskom rozhraní aplikácie TacoTranslate vytvorte projekt a prejdite na kartu 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
Uistite sa, že nikdy neprezradíte tajný read/write
API kľúč do produkčného prostredia na strane klienta.
Pridáme tiež dve ďalšie 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 naen
pre angličtinu.TACOTRANSLATE_ORIGIN
: „Zložka“, kde budú uložené vaše reťazce, napríklad URL vašej webovej stránky. Viac informácií o pôvodoch nájdete tu.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
Krok 3: Nastavenie TacoTranslate
Aby ste integrovali TacoTranslate do svojej aplikácie, budete si musieť vytvoriť klienta pomocou API kľúčov z predchádzajúceho kroku. Napríklad vytvorte 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 uľahčuje jeho 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
, prosím rozšírte definíciu o vlastnosti a kód z vyššie uvedeného.
Krok 4: Implementácia server-side renderovania
TacoTranslate umožňuje serverové vykresľovanie vašich prekladov. To výrazne zlepšuje používateľský zážitok tým, že okamžite zobrazí preložený obsah, namiesto toho, aby sa najprv objavil záblesk nepreloženého obsahu. Navyše 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 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
.
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 vedieť 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á, keď pridáte akékoľvek reťazce do komponentu Translate
. Upozorňujeme, že len prostredia s právami read/write
na API kľúč budú môcť vytvárať nové reťazce na preklad. Odporúčame mať uzavreté a zabezpečené stagingové prostredie, kde môžete testovať vašu produkčnú aplikáciu s takýmto API kľúčom a pridávať nové reťazce pred spustením do prevádzky. Týmto zabránite komukoľvek ukradnúť váš tajný API kľúč a potenciálne nafukovaniu vášho prekladového projektu pridávaní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!