Ang pinakamahusay na solusyon para sa internationalization (i18n) sa mga Next.js app
Nais mo bang palawakin ang iyong Next.js application sa mga bagong merkado? Pinapadali ng TacoTranslate ang pag-localize ng iyong Next.js proyekto, na nagpapahintulot sa iyo na maabot ang pandaigdigang madla nang walang abala.
Bakit piliin ang TacoTranslate para sa Next.js?
- Makinis na Integrasyon: Dinisenyo partikular para sa mga Next.js na aplikasyon, ang TacoTranslate ay madaling maisama sa iyong kasalukuyang daloy ng trabaho.
- 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 Pagsasaling Pinapagana ng AI: Samantalahin ang kapangyarihan ng AI para magbigay ng mga pagsasaling kontekstwal at tumpak na akma sa tono ng iyong aplikasyon.
- Agad na Suporta sa Wika: Magdagdag ng suporta para sa mga bagong wika sa isang pag-click lang, kaya magiging accessible ang iyong aplikasyon sa buong mundo.
Paano ito gumagana
Habang lalo pang nagiging global ang mundo, lalong nagiging mahalaga para sa mga web developer na bumuo ng mga aplikasyon na makakatugon sa mga gumagamit mula sa iba't ibang bansa at kultura. Isa sa mga pangunahing paraan upang makamit ito ay ang internationalization (i18n), na nagpapahintulot sa iyo na iakma ang iyong aplikasyon sa iba't ibang wika, pera, at mga format ng petsa.
Sa tutorial na ito, tatalakayin 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 isang i18n library
Upang ipatupad ang internasyonalasyon sa iyong Next.js na aplikasyon, unang pipiliin natin ang isang i18n na library. May ilang mga kilalang library, kabilang ang next-intl. Gayunpaman, sa halimbawang ito, gagamitin natin ang TacoTranslate.
TacoTranslate ay awtomatikong isinasalin ang iyong mga string sa anumang wika gamit ang makabagong AI, at pinapalaya ka mula sa nakakapagod na pamamahala ng mga JSON file.
I-install natin ito gamit ang npm sa iyong terminal:
npm install tacotranslateHakbang 2: Lumikha ng libreng TacoTranslate account
Ngayon na naka-install na ang module, oras na para gumawa ng iyong TacoTranslate account, isang proyektong pagsasalin, at mga kaugnay na API key. Gumawa ng account dito. Libre ito, at hindi kinakailangan mong magdagdag ng credit card.
Sa loob ng UI ng TacoTranslate application, 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 ang mga ito bilang mga environment variable. Ang read key ang tinatawag nating public, at ang read/write key ay secret. Halimbawa, maaari mo silang idagdag sa isang .env file sa root ng iyong proyekto.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010Siguraduhing huwag kailanman ibunyag ang lihim na read/write API key sa client-side na production na mga environment.
Magdaragdag din tayo ng dalawang karagdagang environment variable: TACOTRANSLATE_DEFAULT_LOCALE at TACOTRANSLATE_ORIGIN.
TACOTRANSLATE_DEFAULT_LOCALE: Ang default na fallback na locale code. Sa halimbawang ito, itatakda namin ito saenpara sa Ingles.TACOTRANSLATE_ORIGIN: Ang “folder” kung saan itatago ang iyong mga string, gaya ng URL ng iyong website. Basahin pa ang tungkol sa mga origin dito.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.comHakbang 3: Pagsasaayos ng TacoTranslate
Upang isama ang TacoTranslate sa iyong aplikasyon, kailangan mong gumawa ng isang 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 itatakda natin ang TACOTRANSLATE_API_KEY sandali.
Ang paglikha ng client sa isang hiwalay na file ay nagpapadali na magamit muli ito sa hinaharap. Ngayon, gamit ang isang custom /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 pasadyang pageProps at _app.tsx, palawakin ang depinisyon gamit ang mga katangian at code mula sa itaas.
Hakbang 4: Pagpapatupad ng rendering sa server
Pinapayagan ng TacoTranslate ang pag-render sa server ng iyong mga pagsasalin. Malaki ang napapabuti nito sa karanasan ng gumagamit dahil agad na naipapakita ang isinaling nilalaman, imbis na magpakita muna ng sandaling hindi pa naisaling nilalaman. Bukod pa rito, maaari nating laktawan ang mga network request sa client dahil hawak na natin ang lahat ng kinakailangang pagsasalin.
Magsisimula tayo sa pamamagitan ng paglikha 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'),
});
};Iakma ang pagsusuri ng isProduction sa iyong pagsasaayos. Kung true, ipapakita ng TacoTranslate ang pampublikong API key. Kung tayo ay nasa 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 ipinapadala para sa pagsasalin.
Hanggang ngayon, naitakda lamang namin ang Next.js application na may listahan ng mga sinusuportahang wika. Ang susunod na gagawin natin ay kunin ang mga pagsasalin para sa lahat ng iyong mga pahina. Upang gawin iyon, gagamitin mo alinman 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 objeto, konfigurasyon para sa TacoTranslate, at mga opsyonal na property 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 alinmang function 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 maaari mo na ngayong gamitin ang Translate component upang isalin ang mga string sa lahat ng iyong mga React component.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}Hakbang 5: Ilunsad at subukan!
Tapos na kami! Awtomatikong maisasalin ang iyong Next.js application kapag nagdagdag ka ng anumang mga string sa isang Translate component. Tandaan na tanging ang mga environment na may read/write pahintulot sa API key ang makakalikha ng mga bagong string na isasalin. Inirerekomenda namin na magkaroon ng isang sarado at ligtas na staging environment kung saan maaari mong subukan ang iyong production application gamit ang ganoong API key, at magdagdag ng mga bagong string bago ito ilunsad. Mapipigilan nito ang sinumang sinumang magnakaw ng iyong lihim na API key, at potensyal na magdulot ng paglobo sa iyong proyekto ng pagsasalin sa pamamagitan ng pagdaragdag ng mga bagong, hindi kaugnay na string.
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!