TacoTranslate
/
DogfennaethPrisiau
 
Erthygl
04 Mai

Y datrysiad gorau ar gyfer rhyngwladoli (i18n) mewn apiau Next.js

Ydych chi'n chwilio i estyn eich cais Next.js i farchnadoedd newydd? Mae TacoTranslate yn ei gwneud hi'n hynod o hawdd i leoleiddio eich prosiect Next.js, gan eich galluogi i gyrraedd cynulleidfa fyd-eang heb y drafferth.

Pam dewis TacoTranslate ar gyfer Next.js?

  • Integreiddio Di-dor: Wedi’i ddylunio’n benodol ar gyfer ceisiadau Next.js, mae TacoTranslate yn integreiddio’n ddidrafferth i’ch llif gwaith presennol.
  • Casglu Llinynnau’n Awtomatig: Dim mwy o reoli ffeiliau JSON â llaw. Mae TacoTranslate yn casglu llinynnau o’ch cod yn awtomatig.
  • Cyfieithiadau Powered gan AI: Defnyddiwch rym AI i ddarparu cyfieithiadau cywir yn gyd-destunol sy’n cyd-fynd â thôn eich cais.
  • Cefnogaeth Iaith Ar Unwaith: Ychwanegwch gefnogaeth i ieithoedd newydd gyda dim ond clic, gan wneud eich cais yn hygyrch yn fyd-eang.

Sut mae'n gweithio

Wrth i'r byd ddod yn fwy rhyngwladol, mae’n dod yn fwyfwy pwysig i ddatblygwyr gwe adeiladu cymwysiadau sy’n gallu diwallu anghenion defnyddwyr o wledydd a diwylliannau gwahanol. Un o’r ffyrdd allweddol o gyflawni hyn yw drwy rhyngwladoli (i18n), sy’n caniatáu i chi addasu eich cymhwysiad i ieithoedd, arianarthau, a fformatau dyddiad gwahanol.

Mewn ymarferoldeb hwn, byddwn yn archwilio sut i ychwanegu rhyngwladoli i'ch cymhwysiad React Next.js, gyda rendro ochr y gweinydd. TL;DR: Gweler y enghraifft lawn yma.

Mae'r canllaw hwn ar gyfer ceisiadau 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

I weithredu rhyngwladoli yn eich cais Next.js, byddwn yn dewis llyfrgell i18n yn gyntaf. Mae sawl llyfrgell boblogaidd, gan gynnwys next-intl. Fodd bynnag, yn y ddolen hon, byddwn yn defnyddio TacoTranslate.

Mae TacoTranslate yn cyfieithu eich llinynnau'n awtomatig i unrhyw iaith gan ddefnyddio AI arloesol, ac yn eich rhyddhau rhag rheoli blinedig ffeiliau JSON.

Gadewch i ni ei osod gan ddefnyddio npm yn eich termynell:

npm install tacotranslate

Cam 2: Creu cyfrif TacoTranslate am ddim

Nawr eich bod wedi gosod y modiwl, mae'n amser creu eich cyfrif TacoTranslate, prosiect cyfieithu, a allweddi API cysylltiedig. Creu cyfrif yma. Mae'n rhad ac am ddim, ac nid oes angen ichi ychwanegu cerdyn credyd.

O fewn UI’r cais TacoTranslate, creu prosiect, a llywio i’r tab allweddi API. Creu un allwedd read, a un allwedd read/write. Byddwn yn eu cadw fel amgylchedd newidynnau. Yr allwedd read yw’r hyn a galwn yn public, a’r allwedd read/write yw’r secret. Er enghraifft, gallech eu hychwanegu at ffeil .env yng nghwrs eich prosiect.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

Gwnewch yn siŵr na fyddwch byth yn rhyddhau’r allwedd API gyfrinachol read/write i amgylcheddau cynhyrchu ochr cleient.

Byddwn hefyd yn ychwanegu dau newidyn amgylcheddol arall: TACOTRANSLATE_DEFAULT_LOCALE a TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: Cod iaith drefnus diofyn. Yn yr enghraifft hon, byddwn yn ei osod i en ar gyfer Saesneg.
  • TACOTRANSLATE_ORIGIN: Y “ffolder” lle bydd eich llinynnau’n cael eu storio, megis URL eich gwefan. Darllen mwy am darddiadau yma.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

Cam 3: Gosod TacoTranslate

I integreiddio TacoTranslate gyda’ch cais, bydd angen i chi greu cleient gan ddefnyddio’r allweddi API o’r blaen. Er enghraifft, creu ffeil o’r enw /tacotranslate-client.js.

/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 yn diffinio TACOTRANSLATE_API_KEY yn awtomatig cyn bo hir.

Creu’r cleient mewn ffeil ar wahân mae’n gwneud hi’n haws i’w ddefnyddio eto yn ddiweddarach. Nawr, gan ddefnyddio /pages/_app.tsx wedi'i addasu, byddwn yn ychwanegu’r darparwr TacoTranslate.

/pages/_app.tsx
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 chi eisoes pageProps a _app.tsx wedi'u haddasu, gwnewch estyniad o'r diffiniad gyda'r eiddo a'r cod uchod.

Cam 4: Gweithredu rendro ochr y gweinydd

Mae TacoTranslate yn caniatáu ar gyfer rendro ochr y gweinydd o’ch cyfieithiadau. Mae hyn yn gwella profiad y defnyddiwr yn fawr 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, oherwydd bod gennym eisoes yr holl gyfieithiadau sydd eu hangen arnom.

Byddwn yn dechrau trwy greu neu addasu /next.config.js.

/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 weddu i’ch gosodiad. Os yw true, bydd TacoTranslate yn arddangos y bysell API cyhoeddus. Os ydym mewn amgylchedd lleol, prawf, neu brif gynllun (isProduction is false), byddwn yn defnyddio’r allwedd API gyfrinachol read/write i sicrhau bod llythyrau newydd yn cael eu hanfon i gyfieithu.

Hyd yn hyn, rydym wedi gosod y cais Next.js gyda rhestr o ieithoedd a gefnogir yn unig. Y cam nesaf fydd tynnu cyfieithiadau ar gyfer eich holl dudalennau. I wneud hynny, byddwch yn defnyddio naill ai getTacoTranslateStaticProps neu getTacoTranslateServerSideProps yn seiliedig ar eich gofynion.

Mae’r swyddogaethau hyn yn cael tri dadleuon: Un gwrthrych Next.js Static Props Context, ffurfweddiad ar gyfer TacoTranslate, a phriodweddau dewisol Next.js. Nodwch fod revalidate ar getTacoTranslateStaticProps wedi ei osod i 60 yn ddiofyn, er mwyn i’ch cyfieithiadau aros yn gyfredol.

I ddefnyddio un o’r swyddogaethau ar mewn tudalen, rhagdybiaf fod gennych ffeil dudalen fel /pages/hello-world.tsx.

/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 o fewn pob un o'ch cydrannau React.

import {Translate} from 'tacotranslate/react';

function Component() {
	return <Translate string="Hello, world!"/>
}

Cam 5: Ymgynnull a phrofi!

Rydyn ni wedi gorffen! Bydd eich cais Next.js yn cael ei gyfieithu'n awtomatig nawr pan fyddwch chi'n ychwanegu unrhyw linynnau i gydran Translate. Sylwch mai dim ond amgylcheddau gyda chodau caniatâd read/write ar y allwedd API fydd yn gallu creu linynnau newydd i'w cyfieithu. Rydym yn argymell cael amgylchedd staged clo ac wedi'i ddiogelu lle gallwch chi brofi eich cais cynhyrchu gyda allwedd API fel yna, gan ychwanegu linynnau newydd cyn mynd yn fyw. Bydd hyn yn atal unrhywun rhag dwyn eich allwedd API gyfrinachol, ac yn gallu cynyddu maint eich prosiect cyfieithu drwy ychwanegu linynnau newydd, sydd ddim yn gysylltiedig.

Gwnewch yn siŵr i weld y enghraifft gynhwysfawr ar ein proffil GitHub. Yno, fe welwch hefyd enghraifft o sut i wneud hyn gan ddefnyddio’r App Router ! Os byddwch yn cael unrhyw broblemau, peidiwch ag oedi i cysylltu, a byddwn yn fwy na pharod i helpu.

Mae TacoTranslate yn caniatáu ichi leololi eich cymwysiadau React yn awtomatig yn gyflym i ac o unrhyw iaith. Dechreuwch heddiw!

Cynnyrch gan NattskiftetWedi'i wneud yn Norwy