Ang pinakamahusay na solusyon para sa internationalization (i18n) sa mga Next.js na app
Nais mo bang palawakin ang iyong Next.js application sa mga bagong merkado? Pinapadali ng TacoTranslate ang pag-localize ng iyong Next.js na proyekto, na nagpapahintulot sa iyo na maabot ang isang pandaigdigang audience nang walang kahirap-hirap.
Bakit piliin ang TacoTranslate para sa Next.js?
- Walang putol na Integrasyon: Dinisenyo partikular para sa mga Next.js na aplikasyon, ang TacoTranslate ay mabilis na isinasama sa iyong umiiral na workflow.
- Awtomatikong Pagkolekta ng Mga String: Hindi mo na kailangang mano-manong pamahalaan ang mga JSON file. Awtomatikong kinokolekta ng TacoTranslate ang mga string mula sa iyong codebase.
- Mga Pagsasalin na Pinapagana ng AI: Gamitin ang kapangyarihan ng AI para magbigay ng mga pagsasaling akma sa konteksto at tono ng iyong aplikasyon.
- Agad na Suporta sa Wika: Magdagdag ng suporta para sa mga bagong wika sa isang click lamang, na ginagawang globally accessible ang iyong aplikasyon.
Paano ito gumagana
Habang nagiging mas globalisado ang mundo, lalong nagiging mahalaga para sa mga web developer na gumawa ng mga aplikasyon na maaaring tugunan ang mga gumagamit mula sa iba't ibang bansa at kultura. Isa sa mga pangunahing paraan upang makamit ito ay sa pamamagitan ng internationalization (i18n), na nagpapahintulot sa iyo na iangkop ang iyong aplikasyon sa iba't ibang wika, pera, at mga format ng petsa.
Sa tutorial na ito, susuriin natin kung paano magdagdag ng internationalization sa iyong React Next.js na aplikasyon, gamit ang server side rendering. TL;DR: Tingnan ang buong halimbawa dito.
Ang gabay na ito ay para sa mga Next.js na aplikasyon na gumagamit ng Pages Router.
Kung gumagamit ka ng App Router, pakitingnan na lamang ang gabay na ito.
Hakbang 1: Mag-install ng i18n library
Para maipatupad ang internationalization sa iyong Next.js application, pipiliin muna natin ang isang i18n library. Mayroong ilang mga tanyag na library, kabilang ang next-intl. Gayunpaman, sa halimbawang ito, gagamitin natin ang TacoTranslate.
Ang TacoTranslate ay awtomatikong isinasalin ang iyong mga string sa anumang wika gamit ang makabagong AI, at inilalaya ka mula sa nakakapagod na pamamahala ng mga JSON file.
I-install natin ito gamit ang npm sa iyong terminal:
npm install tacotranslate
Hakbang 2: Gumawa ng libreng TacoTranslate account
Ngayon na na-install mo na ang module, oras na para gumawa ng iyong TacoTranslate account, isang proyekto sa pagsasalin, at mga kaugnay na API keys. Gumawa ng account dito. Libre ito, at hindi nangangailangan ng pagdagdag ng credit card.
Sa loob ng TacoTranslate application UI, gumawa ng isang proyekto, at pumunta sa tab ng API keys nito. Gumawa ng isang read
key, at isang read/write
key. Ise-save natin ito bilang mga environment variables. Ang read
key ang tinatawag nating public
, at ang read/write
key naman ay secret
. Halimbawa, maaari mo itong idagdag sa isang .env
file sa root ng iyong proyekto.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010
Tiyaking huwag kailanman ilantad ang lihim na read/write
API key sa client side production environments.
Magdadagdag din tayo ng dalawang environment variables: TACOTRANSLATE_DEFAULT_LOCALE
at TACOTRANSLATE_ORIGIN
.
TACOTRANSLATE_DEFAULT_LOCALE
: Ang default na fallback locale code. Sa halimbawang ito, itatakda natin ito saen
para sa Ingles.TACOTRANSLATE_ORIGIN
: Ang “folder” kung saan itatago ang iyong mga string, tulad ng URL ng iyong website. Basahin pa tungkol sa mga origin dito.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
Hakbang 3: Pagsasaayos ng TacoTranslate
Para i-integrate ang TacoTranslate sa iyong aplikasyon, kailangan mong gumawa ng client gamit ang mga API key mula sa naunang hakbang. Halimbawa, gumawa ng isang file na pinangalanang /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;
Awtomatikong natin itatakda ang TACOTRANSLATE_API_KEY
sa lalong madaling panahon.
Ang paggawa ng client sa isang hiwalay na file ay nagpapadali upang magamit muli ito sa hinaharap. Ngayon, gamit ang isang custom na /pages/_app.tsx
, idaragdag natin ang TacoTranslate
provider.
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>
);
}
Kung mayroon ka nang sariling pageProps
at _app.tsx
, pakipahaba ang depinisyon gamit ang mga katangian at code mula sa itaas.
Hakbang 4: Pagpapatupad ng server side rendering
Pinapayagan ng TacoTranslate ang server side rendering ng iyong mga pagsasalin. Malaki ang naitutulong nito sa pagpapabuti ng karanasan ng gumagamit sa pamamagitan ng agarang pagpapakita ng isinaling nilalaman, sa halip na ipakita muna ang hindi pa naisaling nilalaman nang panandalian. Bukod pa rito, maaari nating laktawan ang mga network request sa kliyente, dahil hawak na natin ang lahat ng kinakailangang pagsasalin.
Magsisimula tayo sa paggawa o pagbabago ng /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'),
});
};
Baguhin ang isProduction
check upang umangkop sa iyong setup. Kung true
, ipapakita ng TacoTranslate ang pampublikong API key. Kung kami ay nasa isang lokal, pagsubok, o staging na kapaligiran (isProduction
is false
), gagamitin namin ang lihim na read/write
API key upang matiyak na ang mga bagong string ay ipinadala para sa pagsasalin.
Hanggang ngayon, na-set up lamang namin ang Next.js application na may listahan ng mga sinusuportahang wika. Ang susunod nating gagawin ay kunin ang mga pagsasalin para sa lahat ng iyong mga pahina. Upang gawin iyon, gagamitin mo ang getTacoTranslateStaticProps
o getTacoTranslateServerSideProps
batay sa iyong mga pangangailangan.
Ang mga function na ito ay tumatanggap ng tatlong argumento: Isang Next.js Static Props Context na object, konfigurasyon para sa TacoTranslate, at opsyonal na mga katangian ng Next.js. Tandaan na ang revalidate
sa getTacoTranslateStaticProps
ay nakatakda sa 60 bilang default, upang manatiling napapanahon ang iyong mga pagsasalin.
Upang gamitin ang alinman sa mga function na ito sa isang pahina, ipagpalagay natin na mayroon kang isang file ng pahina tulad ng /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!"/>;
}
Dapat ay kaya mo nang gamitin ang Translate
na component upang isalin ang mga string sa loob ng lahat ng iyong mga React components.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}
Hakbang 5: I-deploy at subukan!
Tapos na tayo! Ang iyong Next.js application ay awtomatikong maisasalin tuwing magdadagdag ka ng anumang mga string sa isang Translate
component. Tandaan na tanging ang mga environment na may read/write
na permiso sa API key lamang ang makakalikha ng mga bagong string na isasalin. Inirerekomenda naming magkaroon ng isang sarado at ligtas na staging environment kung saan maaari mong subukan ang iyong production application gamit ang isang ganoong API key, upang makapagdagdag ng mga bagong string bago ito ilunsad. Ito ay makakaiwas sa sinuman na magnakaw ng iyong lihim na API key, at posibleng maiwasan ang pagdami ng hindi kaugnay na mga string sa iyong translation project.
Tiyaking tingnan ang kumpletong halimbawa sa aming GitHub profile. Dito, makikita mo rin ang isang halimbawa kung paano ito gawin gamit ang App Router! Kung makaranas ka ng anumang problema, huwag mag-atubiling makipag-ugnayan, at ikalulugod naming tumulong.
Pinapahintulutan ka ng TacoTranslate na awtomatikong i-localize ang iyong mga React application nang mabilis papunta at mula sa anumang wika. Magsimula na ngayon!