Y datrysiad gorau ar gyfer rhyngwladoli (i18n) mewn apiau Next.js
Ydych chi'n edrych i ehangu eich cais Next.js i farchnadoedd newydd? Mae TacoTranslate yn gwneud leoleiddio eich prosiect Next.js yn hynod o hawdd, gan eich galluogi i gyrraedd cynulleidfa fyd-eang heb unrhyw drafferth.
Pam dewis TacoTranslate ar gyfer Next.js?
- Integreiddio Di-dor: Wedi’i gynllunio’n benodol ar gyfer cymwysiadau Next.js, mae TacoTranslate yn integreiddio’n ddi-dor i’ch llif gwaith presennol.
- Casglu Llinynnau Awtomatig: Dim mwy o reoli ffeiliau JSON â llaw. Mae TacoTranslate yn casglu llinynnau o’ch cod yn awtomatig.
- Cyfieithiadau a ddarperir gan AI: Manteisiwch ar rym AI i ddarparu cyfieithiadau sy’n gywir o ran cyd-destun ac sy’n gweddu i naws eich cais.
- Cefnogaeth Iaith Ar Unwaith: Ychwanegwch gefnogaeth ar gyfer ieithoedd newydd gyda chlic yn unig, gan wneud eich cais yn hygyrch yn fyd-eang.
Sut mae'n gweithio
Wrth i'r byd ddod yn fwy byd-eang, mae'n dod yn fwyfwy pwysig i ddatblygwyr gwe adeiladu ceisiadau sy'n gallu darparu ar gyfer defnyddwyr o wledydd a diwylliannau gwahanol. Un o'r ffyrdd allweddol i gyflawni hyn yw rhyngwladoli (i18n), sy'n caniatáu i chi addasu eich cais i wahanol ieithoedd, arianau, a fformatau dyddiad.
Yn yr tiwtorial hwn, byddwn yn archwilio sut i ychwanegu rhyngwladoli i'ch cais React Next.js, gyda rendro ar ochr y gweinydd. TL;DR: Gweler yr enghraifft lawn yma.
Mae'r canllaw hwn ar gyfer cymwysiadau Next.js sy'n defnyddio'r Pages Router.
Os ydych chi'n defnyddio'r App Router, gweler y canllaw hwn yn lle hynny.
Cam 1: Gosod llyfrgell i18n
Er mwyn gweithredu rhyngwladoli yn eich cais Next.js, byddwn yn dewis llyfrgell i18n yn gyntaf. Mae sawl llyfrgell boblogaidd, gan gynnwys next-intl. Fodd bynnag, yn yr enghraifft hon, byddwn yn defnyddio TacoTranslate.
Mae TacoTranslate yn cyfieithu eich llinynnau'n awtomatig i unrhyw iaith gan ddefnyddio AI blaengar, ac yn eich rhyddhau rhag y gwaith diflas o reoli ffeiliau JSON.
Gadewch i ni ei osod gan ddefnyddio npm yn eich terfynell:
npm install tacotranslateCam 2: Creu cyfrif TacoTranslate am ddim
Nawr eich bod wedi gosod y modiwl, mae'n amser i greu eich cyfrif TacoTranslate, prosiect cyfieithu a'r allweddion API cysylltiedig. Creu cyfrif yma. Mae'n rhad ac am ddim, ac nid yw'n gofyn i chi ychwanegu cerdyn credyd.
Yn rhyngwyneb y cymhwysiad TacoTranslate, creu prosiect a llywio at dab allweddi API. Creu un allwedd read, a un allwedd read/write. Byddwn yn eu cadw fel newidynnau amgylcheddol. Y allwedd read yw’r hyn a elwir gennym yn public, a’r allwedd read/write yw secret. Er enghraifft, gallech eu hychwanegu at ffeil .env yng nghwraidd eich prosiect.
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010Gwnewch yn siŵr na fyddwch byth yn datgelu'r allwedd API gyfrinachol read/write i amgylcheddau cynhyrchu ar ochr y cleient.
Byddwn hefyd yn ychwanegu dau newidyn amgylcheddol ychwanegol: TACOTRANSLATE_DEFAULT_LOCALE a TACOTRANSLATE_ORIGIN.
TACOTRANSLATE_DEFAULT_LOCALE: Y cod locale diofyn a ddefnyddir fel 'fallback'. Yn yr enghraifft hon, byddwn yn ei osod ienar gyfer Saesneg.TACOTRANSLATE_ORIGIN: Y “ffolder” lle bydd eich cyfresi testun yn cael eu storio, er enghraifft URL eich gwefan. Darllenwch ragor am darddiadau yma.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.comCam 3: Sefydlu TacoTranslate
Er mwyn integreiddio TacoTranslate gyda’ch cymhwysiad, bydd angen i chi greu cleient gan ddefnyddio’r allweddi API a roddwyd yn gynharach. Er enghraifft, creu ffeil o’r enw /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;Byddwn ni'n diffinio TACOTRANSLATE_API_KEY yn awtomatig yn fuan.
Mae creu'r cleient mewn ffeil ar wahân yn ei gwneud yn haws i'w ddefnyddio eto yn ddiweddarach. Nawr, gan ddefnyddio /pages/_app.tsx, byddwn yn ychwanegu'r darparwr 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>
);
}Os oes gennych eisoes pageProps a _app.tsx wedi'u haddasu, estynnwch y diffiniad gyda'r eiddo a'r cod uchod, os gwelwch yn dda.
Cam 4: Gweithredu rendro ar ochr y gweinydd
Mae TacoTranslate yn caniatáu rendro ar ochr y gweinydd ar gyfer eich cyfieithiadau. Mae hyn yn gwella profiad y defnyddiwr yn sylweddol trwy ddangos cynnwys wedi'i gyfieithu ar unwaith, yn hytrach na fflach o gynnwys heb ei gyfieithu yn gyntaf. Yn ogystal, gallwn hepgor ceisiadau rhwydwaith ar y cleient, gan ein bod eisoes wedi cael yr holl gyfieithiadau sydd eu hangen arnom.
Byddwn yn dechrau trwy greu neu addasu /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'),
});
};Addaswch y gwiriad isProduction i gyd-fynd â’ch gosodiad. Os true, bydd TacoTranslate yn arddangos yr allwedd API cyhoeddus. Os ydym mewn amgylchedd lleol, prawf, neu staging (isProduction is false), byddwn yn defnyddio’r allwedd API gyfrinachol read/write i sicrhau bod llinynnau newydd yn cael eu hanfon i’w cyfieithu.
Hyd yn hyn, rydym ond wedi sefydlu'r cais Next.js gyda rhestr o ieithoedd a gefnogir. Y peth nesaf a wnawn yw nôl cyfieithiadau ar gyfer eich holl dudalennau. I wneud hynny, byddwch yn defnyddio naill ai getTacoTranslateStaticProps neu getTacoTranslateServerSideProps yn dibynnu ar eich anghenion.
Mae'r swyddogaethau hyn yn derbyn tair dadleuon: Un gwrthrych Next.js Static Props Context, cyfluniad ar gyfer TacoTranslate, a phriodweddau Next.js dewisol. Sylwch fod revalidate ar getTacoTranslateStaticProps wedi'i osod i 60 yn ddiofyn, fel y bydd eich cyfieithiadau'n aros yn gyfredol.
I ddefnyddio un neu'r llall o'r swyddogaethau hyn mewn tudalen, tybiwch fod gennych ffeil tudalen fel /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!"/>;
}Dylech nawr allu defnyddio'r cydran Translate i gyfieithu llinynnau ym mhob un o'ch cydrannau React.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}Cam 5: Rhoi ar waith a phrofi!
Rydym wedi gorffen! Bydd eich cymhwysiad Next.js bellach yn cael ei gyfieithu'n awtomatig pan fyddwch yn ychwanegu unrhyw gadwyni testun i gydran Translate. Sylwch mai dim ond amgylcheddau sydd â chaniatâd read/write ar y allwedd API fydd yn gallu creu cadwyni newydd i'w cyfieithu. Rydym yn argymell cael amgylchedd paratoi caeedig a diogel lle gallwch brofi eich cais cynhyrchiol gyda allwedd API o'r fath, gan ychwanegu cadwyni newydd cyn mynd yn fyw. Bydd hyn yn atal neb neb rhag dwyn eich allwedd API gyfrinachol, a allai, o bosibl, chwyddo eich prosiect cyfieithu trwy ychwanegu cadwyni newydd nad ydynt yn gysylltiedig.
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!