Ang pinakamahusay na solusyon para sa internasyonal na pag-aangkop (i18n) ng mga Next.js app
Naghahanap ka ba ng paraan para palawakin ang iyong Next.js application sa mga bagong merkado? Ginagawang napakadali ng TacoTranslate ang pag-localize ng iyong Next.js na proyekto, kaya maaari mong maabot ang pandaigdigang audience nang walang abala.
Bakit piliin ang TacoTranslate para sa Next.js?
- Walang-putol na Integrasyon: Dinisenyo partikular para sa mga aplikasyon ng Next.js, ang TacoTranslate ay madaling isinasama sa iyong umiiral na 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 Pagsasalin na Pinapagana ng AI: Samantalahin ang kapangyarihan ng AI upang maghatid ng mga pagsasaling tama sa konteksto na tumutugma sa tono ng iyong aplikasyon.
- Agad na Suporta sa Wika: Magdagdag ng suporta para sa mga bagong wika sa isang pag-click lamang, na ginagawang naa-access ang iyong aplikasyon sa buong mundo.
Paano ito gumagana
Habang patuloy na nagiging mas global ang mundo, lalong nagiging mahalaga para sa mga web developer na bumuo ng mga aplikasyon na makakaangkop 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 iangkop ang iyong aplikasyon sa iba't ibang wika, mga uri ng pera, at mga format ng petsa.
Sa tutorial na ito, tatalakayin namin kung paano magdagdag ng internationalization sa iyong React Next.js na aplikasyon, na may 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 ang gabay na ito sa halip.
Hakbang 1: Mag-install ng isang i18n na library
Upang ipatupad ang internationalization sa iyong Next.js application, una nating pipiliin ang isang i18n library. Mayroong ilang mga tanyag na library, kabilang ang next-intl. Gayunpaman, sa halimbawang ito, gagamitin natin ang TacoTranslate.
Awtomatikong isinasalin ng TacoTranslate ang iyong mga string sa anumang wika gamit ang makabagong AI, at pinapalaya ka mula sa nakakapagod na pamamahala ng mga JSON na file.
I-install natin ito gamit ang npm sa iyong terminal:
npm install tacotranslate
Step 2: Lumikha ng libreng account sa TacoTranslate
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 key. Gumawa ng account dito. Libre ito, at hindi mo kailangang magbigay ng credit card.
Sa UI ng TacoTranslate application, gumawa ng proyekto at pumunta sa tab na 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 ilagay sa isang .env
file sa root ng iyong proyekto.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010
Siguraduhing huwag kailanman ilantad ang lihim na read/write
API key sa mga kapaligiran ng produksyon sa panig ng kliyente.
Idadagdag din namin ang dalawang karagdagang environment variable: TACOTRANSLATE_DEFAULT_LOCALE
at TACOTRANSLATE_ORIGIN
.
TACOTRANSLATE_DEFAULT_LOCALE
: Ang default na code para sa fallback na locale. 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 pinagmulan dito.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
Hakbang 3: Pagsasaayos ng TacoTranslate
Upang isama ang TacoTranslate sa iyong aplikasyon, kailangan mong lumikha ng isang client gamit ang mga API key na binanggit kanina. 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 namin ang TACOTRANSLATE_API_KEY
sa lalong madaling panahon.
Ang paggawa ng client sa isang hiwalay na file ay nagpapadali ng muling paggamit nito sa hinaharap. Ngayon, gamit ang 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 server-side rendering
Pinapayagan ng TacoTranslate ang server-side rendering para sa iyong mga pagsasalin. Malaki ang naitutulong nito sa karanasan ng gumagamit dahil agad na ipinapakita ang isinaling nilalaman, sa halip na magkaroon muna ng sandaling pagpapakita ng 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'),
});
};
Baguhin ang isProduction
check upang umangkop sa iyong setup. Kung true
, ipapakita ng TacoTranslate ang pampublikong API key. Kung tayo ay nasa lokal, test, o staging na kapaligiran (isProduction
is false
), gagamitin namin ang lihim na read/write
API key upang matiyak na ang mga bagong string ay ipapadala para sa pagsasalin.
Hanggang ngayon, naitakda na lamang natin 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. Para gawin iyon, gagamitin mo alinman sa 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 objekto, 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 nang 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: I-deploy at subukan!
Tapos na kami! Awtomatikong isasalin ngayon 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
na pahintulot sa API key ang makakalikha ng mga bagong string na maisasalin. Inirerekomenda namin na magkaroon ng sarado at ligtas na staging environment kung saan maaari mong subukan ang iyong aplikasyon sa production gamit ang ganoong uri ng API key, at magdagdag ng mga bagong string bago ilunsad. Pipigilan nito ang sinumang sinumang magnakaw ng iyong sekretong API key, at posibleng palakihin ang 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!