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

د Next.js اپلیکیشنونو لپاره د نړیوالولو (i18n) غوره حل

ایا تاسو غواړئ خپل Next.js غوښتنلیک نوو بازارونو ته پراخ کړئ؟ TacoTranslate ستاسو د Next.js پروژې محلي کول خورا اسانه کوي، او تاسو ته اجازه درکوي پرته له کومې ستونزې نړیوالو مخاطبینو ته ورسېږئ.

ولې د Next.js لپاره TacoTranslate غوره کړئ؟

  • بې‌خنډه ادغام: په ځانګړې توګه د Next.js غوښتنلیکونو لپاره ډیزاین شوی، TacoTranslate ستاسو په اوسني کاري بهیر کې په اسانۍ سره یوځای کېږي.
  • د متنونو اتوماتيک راټولول: نور د JSON فایلونو لاسي مدیریت ته اړتیا نشته. TacoTranslate ستاسو د کوډبیس څخه متنونه په اوتومات ډول راټولوي.
  • د مصنوعي ځیرکتیا په مرسته ژباړې: د مصنوعي ځیرکتیا ځواک وکاروئ څو په سیاق کې دقیقې او د ستاسو د غوښتنلیک د لهجې سره سمې ژباړې برابرې کړئ.
  • فوري ژبنی ملاتړ: د نوو ژبو ملاتړ یوازې په یوه کلیک سره اضافه کړئ، او خپل غوښتنلیک د نړۍ له ګوټ ګوټ څخه لاسرسی وړ کړئ.

څنګه کار کوي

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

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

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

لومړی ګام: یو i18n کتابتون نصب کړئ

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

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

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

npm install tacotranslate

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

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

د TacoTranslate د غوښتنلیک UI کې یوه پروژه جوړه کړئ، او د هغې د API کیليو ټب ته لاړ شئ. یو 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: د ډیفالټ بېرته راستنیدونکي (fallback) محلي کوډ. په دې مثال کې به موږ دا د انګرېزۍ لپاره 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 ستاسو د ژباړو لپاره د سرور-خوا رینډرینګ (server-side rendering) اجازه ورکوي. دا د کارونکي تجربه په پراخه توګه ښه کوي، ځکه چې ژباړل شوې منځپانګه سمدلاسه ښودل کېږي، پر ځای د دې چې لومړی د بې‌ژباړې منځپانګې یوه لنډه څرګندېدل وښيي. سربېره پر دې، موږ کولی شو په کلاینت کې د شبکې غوښتنې پریږدو، ځکه چې ټولې اړینې ژباړې مو له مخکې شته.

موږ به د /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 په ډیفالټ ډول 60 ته ټاکل شوی، څو ستاسو ژباړې تازه پاتې شي.

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

ګام ۵: پلې کړئ او آزموینه وکړئ!

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

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!

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