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

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

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

لکه څنګه چې نړۍ نړيواله کېدونکې ده، د ويب پراختياکوونکو لپاره دا تر هر وخت ډېر مهمه شوې چې داسې تطبيقونه جوړ کړي چې د بېلابېلو هېوادونو او کلتورونو کاروونکو ته خدمت وړاندې کولی شي.

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

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

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

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

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

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

npm install tacotranslate

ګام 2: یو وړیا 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 ستاسو د ژباړو د سرور اړخ رینډرنګ ته اجازه ورکوي. دا د کارونکي تجربه په ډېر ډول ښه کوي، ځکه چې ژباړل شوې منځپانګه سمدستي ښودل کېږي، پر ځای د دې چې لومړی د بې‌ژباړې منځپانګې لنډه څرګندېدنه وشي. سربېره پردې، موږ کولی شو په کلاینت کې د شبکې غوښتنې له منځه یوسو، ځکه چې ټولې اړینې ژباړې مو له مخکې موجودې دي.

موږ به د /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!"/>
}

ګام 5: خپروئ او ازموینه وکړئ!

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

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

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

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