Labākais risinājums internacionalizācijai (i18n) Next.js lietotnēs
Vai vēlaties paplašināt savu Next.js lietojumprogrammu jaunos tirgos? TacoTranslate padara jūsu Next.js projekta lokalizāciju neticami vienkāršu, ļaujot sasniegt globālu auditoriju bez sarežģījumiem.
Kāpēc izvēlēties TacoTranslate priekš Next.js?
- Bezšuvju integrācija: Izstrādāts īpaši Next.js lietojumprogrammām, TacoTranslate viegli integrējas jūsu esošajā darbplūsmā.
- Automātiska virkņu apkopošana: Vairs nav jāapkopo JSON faili manuāli. TacoTranslate automātiski apkopo virknes no jūsu koda bāzes.
- AI balstītas tulkošanas: Izmantojiet mākslīgā intelekta spēku, lai nodrošinātu kontekstam atbilstošas, precīzas tulkošanas, kas atbilst jūsu lietojumprogrammas toni.
- Ātra valodu atbalsts: Pievienojiet atbalstu jaunām valodām ar vienu klikšķi, padarot jūsu lietojumprogrammu globāli pieejamu.
Kā tas darbojas
Pasaule kļūst arvien globalizētāka, un kļūst aizvien svarīgāk tīmekļa izstrādātājiem veidot lietojumprogrammas, kas spēj apkalpot lietotājus no dažādām valstīm un kultūrām. Viens no galvenajiem veidiem, kā to panākt, ir internacionalizācija (i18n), kas ļauj pielāgot jūsu lietojumprogrammu dažādām valodām, valūtām un datumu formātiem.
Šajā apmācībā mēs izpētīsim, kā pievienot internacionalizāciju jūsu React Next.js lietojumprogrammai ar servera puses renderēšanu. TL;DR: Pilnu piemēru skatiet šeit.
Šis ceļvedis ir paredzēts Next.js lietojumprogrammām, kas izmanto Pages Router.
Ja jūs izmantojat App Router, lūdzu, skatiet šo ceļvedi.
1. solis: Instalējiet i18n bibliotēku
Lai ieviestu internacionalizāciju savā Next.js lietotnē, vispirms izvēlēsimies i18n bibliotēku. Ir vairākas populāras bibliotēkas, tostarp next-intl. Tomēr šajā piemērā mēs izmantosim TacoTranslate.
TacoTranslate automātiski pārtulko jūsu virknes jebkurā valodā, izmantojot modernu mākslīgo intelektu, un atbrīvo jūs no nogurdinošas JSON failu pārvaldības.
Instalēsim to, izmantojot npm savā terminālī:
npm install tacotranslate
2. solis: Izveidojiet bezmaksas TacoTranslate kontu
Tagad, kad modulis ir instalēts, ir laiks izveidot savu TacoTranslate kontu, tulkošanas projektu un saistītās API atslēgas. Izveidojiet kontu šeit. Tas ir bez maksas, un nav nepieciešams pievienot kredītkarti.
TacoTranslate lietotāja saskarnē izveidojiet projektu un dodieties uz tā API atslēgu cilni. Izveidojiet vienu read
atslēgu un vienu read/write
atslēgu. Mēs tās saglabāsim kā vides mainīgos. read
atslēgu saucam par public
, bet read/write
atslēgu — par secret
. Piemēram, jūs varat tās pievienot .env
failam jūsu projekta saknes mapē.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010
Pārliecinieties, ka nekad nenopludināt slepeno read/write
API atslēgu klienta puses produkcijas vidēs.
Mēs arī pievienosim vēl divas vides mainīgos: TACOTRANSLATE_DEFAULT_LOCALE
un TACOTRANSLATE_ORIGIN
.
TACOTRANSLATE_DEFAULT_LOCALE
: Noklusējuma rezerves lokalizācijas kods. Šajā piemērā to iestatīsim uzen
— angļu valodu.TACOTRANSLATE_ORIGIN
: "Mape", kurā tiks glabāti jūsu teksti, piemēram, jūsu mājaslapas URL. Lasiet vairāk par izcelsmēm šeit.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
3. solis: TacoTranslate iestatīšana
Lai integrētu TacoTranslate ar jūsu lietotni, jums būs jāizveido klients, izmantojot iepriekš minētās API atslēgas. Piemēram, izveidojiet failu ar nosaukumu /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;
Mēs drīzumā automātiski definēsim TACOTRANSLATE_API_KEY
.
Klienta izveide atsevišķā failā padara tā atkārtotu lietošanu vēl vienkāršāku. Tagad, izmantojot pielāgotu /pages/_app.tsx
, mēs pievienosim TacoTranslate
nodrošinātāju.
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>
);
}
Ja jums jau ir pielāgoti pageProps
un _app.tsx
, lūdzu, paplašiniet definīciju ar augstāk norādītajām īpašībām un kodu.
4. solis: Servera puses renderēšanas īstenošana
TacoTranslate ļauj veikt jūsu tulkojumu servera puses renderēšanu. Tas būtiski uzlabo lietotāja pieredzi, nekavējoties parādot tulkotā saturu, nevis vispirms rādīt nesaturuļa saturu. Turklāt mēs varam izlaist tīkla pieprasījumus klienta pusē, jo mums jau ir visi nepieciešamie tulkojumi.
Mēs sāksim, izveidojot vai modificējot /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'),
});
};
Modificējiet isProduction
pārbaudi atbilstoši jūsu iestatījumam. Ja true
, TacoTranslate parādīs publisko API atslēgu. Ja atrodamies lokālā, testa vai staging vidē (isProduction
is false
), mēs izmantosim slepeno read/write
API atslēgu, lai nodrošinātu, ka jauni teksti tiek nosūtīti tulkošanai.
Līdz šim mēs esam iestatījuši Next.js lietotni tikai ar atbalstīto valodu sarakstu. Nākamais, ko darīsim, ir iegūt tulkojumus visām jūsu lapām. Lai to izdarītu, jūs izmantosiet vai nu getTacoTranslateStaticProps
, vai getTacoTranslateServerSideProps
atkarībā no jūsu prasībām.
Šīm funkcijām ir trīs argumenti: viens Next.js Static Props Context objekts, TacoTranslate konfigurācija un izvēles Next.js īpašības. Ņemiet vērā, ka revalidate
uz getTacoTranslateStaticProps
pēc noklusējuma ir iestatīts uz 60, lai jūsu tulkojumi vienmēr būtu aktuāli.
Lai izmantotu kādu no šīm funkcijām lapā, pieņemsim, ka jums ir lapas fails, piemēram, /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!"/>;
}
Tagad jums vajadzētu būt iespējai izmantot Translate
komponentu, lai tulkotu virknes visos jūsu React komponentos.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}
5. solis: Izvietojiet un testējiet!
Esam pabeiguši! Jūsu Next.js lietotne tagad tiks automātiski tulkota, kad pievienosiet jebkādus tekstus Translate
komponentā. Ņemiet vērā, ka tikai vidi ar read/write
atļaujām API atslēgā varēs izveidot jaunus tekstus tulkošanai. Mēs iesakām izveidot slēgtu un drošu testēšanas vidi, kurā varat pārbaudīt savu ražošanas lietotni ar šādu API atslēgu, pievienojot jaunus tekstus pirms palaišanas. Tas novērsīs jebkādu jūsu slepenās API atslēgas nozagšanu un potenciālu tulkošanas projekta uzpūšanos, pievienojot jaunus, nesaistītus tekstus.
Noteikti apskatiet pilnu piemēru mūsu GitHub profilā. Tur jūs atradīsiet arī piemēru, kā to izdarīt, izmantojot App Router ! Ja rodas kādas problēmas, droši sazinieties, un mēs labprāt palīdzēsim.
TacoTranslate ļauj automātiski lokalizēt jūsu React lietotnes ātri uz jebkuru valodu un no tās. Sāciet jau šodien!