TacoTranslate
/
سندونهبیه ورکول
 
لارښود
غویی ۱۴

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

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

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

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

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

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

د خپل Next.js ایپلیکیشن کې د نړیوالۍ پلي کولو لپاره، موږ لومړی به د 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: د اصلي پرځای د کلي کوډ. په دې مثال کې، موږ به یې د انګلیسي لپاره 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 key ښکاره کړي. که موږ په محلي، ټسټ یا سټيجنګ چاپیریال کې یو (isProduction is false)، موږ به د پټ read/write API key وکاروو ترڅو ډاډ ترلاسه کړو چې نوې لړۍ ژباړې ته لیږل کیږي.

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

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

د دې دندو څخه په یوه پاڼه کې د کارولو لپاره، فرض کړئ چې تاسو د /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 غوښتنلیکونه په اتوماتيک ډول ژر تر ژره هرې ژبې ته او له هغې ژبې څخه محلي کړئ. نن پیل وکړئ!

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