TacoTranslate
/
مستنداتبیې
 
لارښود
غویی ۱۴

څنګه په Next.js غوښتنلیک کې چې د Pages Router کاروي، نړیوالېتوب (i18n) پلي کړو

خپله React غوښتنلیک د نړیوالې ژبې ملاتړ (i18n) سره ډیرې اسانه کړئ او نوو بازارونو ته ورسیږئ.

لکه څنګه چې نړۍ نړيواله کېږي، دا د ويب پراختياکوونکو لپاره ورځ تر بله مهمه کېږي چې داسې تطبيقونه جوړ کړي چې د مختلفو هېوادونو او کلتورونو کاروونکو ته خدمت وکړي. د دې اهدافو ترلاسه کولو يو مهمه لاره د نړيواليزېشن (i18n) له لارې ده، کوم چې تاسو ته اجازه درکوي خپل تطبيق مختلفو ژبو، اسعارو، او نېټو بڼو سره سم عیار کړئ.

په دې ښوونه کې، موږ به وګورو چې څنګه خپل React Next.js تطبيق ته د سرور اړخ رڼا اچولو سره نړيوالیزیشن اضافه کړو. TL;DR: دلته بشپړ مثال وګورئ.

دا لارښود د Next.js هغو غوښتنلیکونو لپاره دی چې د Pages Router کاروي.
که تاسو د App Router کاروئ، نو مهرباني وکړئ پر ځای یې دې لارښود ته مراجعه وکړئ.

ګام 1: د i18n کتابتون نصب کړئ

د خپل Next.js غوښتنلیک کې د نړیوالوالي (i18n) د پلي کولو لپاره، لومړی به موږ یو i18n کتابتون وټاکو. څو مشهور کتابتونونه شته، چې پکې next-intl هم شامل دی. خو، په دې مثال کې به موږ TacoTranslate وکاروو.

TacoTranslate ستاسو متنونه په اوتومات ډول د پرمختللي AI په کارولو سره هرې ژبې ته وژباړي، او تاسو له د JSON فایلونو د ستړي کوونکي مدیریت څخه خلاصوي.

راځئ چې دا په خپل ټرمینل کې د npm په کارولو سره نصب کړو:

npm install tacotranslate

ګام 2: یو وړیا TacoTranslate حساب جوړ کړئ

اوس چې تاسو ماډل نصب کړ، د دې وخت دی چې خپل TacoTranslate حساب جوړ کړئ، د ژباړې پروژه، او اړوند API کیلي ګانې. دلته حساب جوړ کړئ. دا وړیا دی، او تاسو ته د کریډیټ کارت د اضافه کولو اړتیا نشته.

په TacoTranslate غوښتنلیک UI کې یو پروژه جوړه کړئ، او د هغې د API keys ټب ته لاړ شئ. یو read کیلي جوړه کړئ، او یو read/write کیلي. موږ به هغوی د چاپیریال متغیرونو په توګه وساتو. د read کیلي هغه څه دي چې موږ ورته public وایو او د read/write کیلي secret. د بېلګې په توګه، تاسو کولی شئ هغوی د خپل پروژې په ریښه کې په یوه .env فایل کې اضافه کړئ.

.env
TACOTRANSLATE_PUBLIC_API_KEY=123456
TACOTRANSLATE_SECRET_API_KEY=789010

ډاډ ترلاسه کړئ چې هېڅکله پټ read/write API کیلي د کلاینت اړخ تولیدي چاپېریال ته مه افشا کوئ.

موږ به دوه نور د چاپیریال متغیرونه هم اضافه کړو: TACOTRANSLATE_DEFAULT_LOCALE او TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: د ډیفالټ بدیل سیمه ییز کوډ. په دې بېلګه کې، موږ به دا د انګلیسي لپاره en ته وټاکو.
  • TACOTRANSLATE_ORIGIN: هغه "فولډر" چیرې چې ستاسو لیکنې به زیرمه شي، لکه د ستاسو ویب سایټ URL. دلته د اصلي ځایونو په اړه نور ولولئ.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

ګام ۳: د TacoTranslate تنظیمول

د TacoTranslate د خپل غوښتنلیک سره د یوځای کولو لپاره، تاسو باید د مخکېنیو API کیليو په کارولو سره یو کلاینت جوړ کړئ. د بېلګې په توګه، یو فایل جوړ کړئ چې نوم یې /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;

موږ به ډېر ژر TACOTRANSLATE_API_KEY په اوتومات ډول تعریف کړو.

په یو جلا فایل کې د کلاینت جوړول وروسته یې بیا کارول اسانه کوي. اوس، د یو دودیز /pages/_app.tsx د کارولو په ترڅ کې، موږ به 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>
	);
}

که تاسو دمخه دودیز pageProps او _app.tsx لرئ، مهرباني وکړئ د پورته یادو شویو ملکیتونو او کوډ سره یې تعریف پراخ کړئ.

ګام ۴: د سرور-طرف رینډرینګ پلي کول

TacoTranslate ستاسو د ژباړو لپاره د سرور-خوا رینډرینګ اجازه ورکوي. دا د کاروونکي تجربه په پراخه کچه ښه کوي، ځکه چې ژباړل شوې مینځپانګه سمدستي ښودل کیږي، پر ځای د دې چې لومړی د نه‌ژباړل شوې مینځپانګې یوه لنډه څرګندونه وشي. سربېره پردې، موږ کولی شو په کلاینت کې د شبکې غوښتنو څخه ډډه وکړو، ځکه چې موږ لا دمخه ټولې اړینې ژباړې لرو.

موږ به د /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'),
	});
};

د isProduction چک خپل ترتیب ته مطابق کړئ. که true وي، TacoTranslate به د عامه API کیلي ښکاره کړي. که موږ په محلي، ازموینې، یا سټیجینګ چاپیریال کې یو (isProduction is false)، موږ به د پټ read/write API کیلي وکاروو څو ډاډ ترلاسه کړو چې نوي تارونه د ژباړې لپاره لیږل کیږي.

تر اوسه پورې، موږ یوازې د Next.js غوښتنلیک لپاره د ملاتړ شویو ژبو لیست ترتیب کړی دی. بل کار چې به یې وکړو دا دی چې د خپلو ټولو پاڼو لپاره ژباړې ترلاسه کړو. د دې لپاره تاسو به د خپلو اړتیاوو پر بنسټ یا getTacoTranslateStaticProps یا getTacoTranslateServerSideProps وکاروئ.

د دې دندو درې آرګومنټونه اخلي: یو Next.js Static Props Context شی، د TacoTranslate ترتیب، او اختیاري Next.js ځانګړتیاوې. یادونه: په getTacoTranslateStaticProps کې revalidate په افتراضي ډول ۶۰ ته ټاکل شوی دی، تر څو ستاسو ژباړې تازه پاتې شي.

د یوې پاڼې په فایل کې د هرې دې دندې د کارولو لپاره، فرض کړئ چې تاسو د پاڼې یو فایل لرئ لکه /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!"/>;
}

تاسو اوس باید وکولای شئ د Translate کمپوننټ وکاروئ تر څو په خپلو ټولو React کمپوننټونو کې متنونه وژباړئ.

import {Translate} from 'tacotranslate/react';

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

ګام ۵: ځای پر ځای کړئ او ازموینه وکړئ!

موږ پای ته ورسېدو! ستاسو React غوښتنلیک به اوس په اوتومات ډول وژباړل شي کله چې تاسو هر متن د Translate کمپوننټ ته اضافه کړئ. یادونه: یوازې هغه چاپیریالونه چې د API کیلي باندې د read/write اجازې لري، کولی شي نوې متنونه رامنځته کړي تر څو وژباړل شي. موږ سپارښتنه کوو چې یو تړلی او خوندي سټیجینګ چاپیریال ولرئ، چېرته چې تاسو کولی شئ خپل تولیدي غوښتنلیک د داسې یوې API کیلي سره وازمویئ او نوې متنونه مخکې له دې چې ژوندۍ یې کړئ، اضافه کړئ. دا به مخه ونیسي چې هر څوک ستاسو پټه API کیلي غلا کړي، او په همدې توګه ستاسو د ژباړې پروژه د نوو، غیر اړونده متنونو په اضافه کولو سره بې‌ځایه غټه نشي.

حتماً زموږ په GitHub پروفایل کې بشپړ مثال وګورئ. هلته به تاسو د دې د ترسره کولو یو بل مثال هم ومومئ چې د App Router څخه کار اخلي! که کومه ستونزه مو پیدا شوه، مهرباني وکړئ له موږ سره په اړیکه کې شئ، او موږ به په خوښۍ سره مرسته وکړو.

TacoTranslate تاسو ته اجازه درکوي چې ستاسو د React غوښتنلیکونه په اوتومات ډول او په چټکۍ سره له 75 څخه زیاتو ژبو ته او له هغو ژبو څخه محلي کړي. همدا نن پیل کړئ!

د Nattskiftet محصولپه ناروې کې جوړ شوی