TacoTranslate
/
ලේඛනමිල ගණන්
 
ලිපිය
මැයි 04

Next.js යෙදුම්වලට ජාත්‍යන්තරීකරණය (i18n) සඳහා හොඳම විසඳුම

ඔබගේ Next.js යෙදුම නව වෙළඳපලවලට පුළුල් කිරීමට බලාපොරොත්තුද? TacoTranslate ඔබගේ Next.js ව්‍යාපෘතිය ප්‍රදේශීකරණය කිරීම ඉතා පහසු කරයි, ඒ ඔබට බාධාවකින් තොරව ගෝලීය පිරිසකට ළඟා වීමට ඉඩ සලසයි.

Next.js සඳහා TacoTranslate තෝරන්නේ ඇයි?

  • සහජ ඒකාබද්ධකම: Next.js යෙදුම් සඳහා විශේෂයෙන් නිර්මාණය කර ඇති TacoTranslate ඔබේ දැනට පවතින වැඩපිළිවෙලට පහසුවෙන් ඒකාබද්ධ වේ.
  • ස්වයංක්‍රීය පෙළ එකතුව: JSON ගොනු මැනුවල්ව කළමනාකරණය කිරීම අවශ්‍ය නැත. TacoTranslate ඔබගේ කේත පදනමෙන් ස්වයංක්‍රීයව පෙළ එකතු කර ගනී.
  • AI-ශක්තිමත් පරිවර්තන: AI ශක්තිය උපයෝගී කරගෙන, ඔබගේ යෙදුමේ සංදර්භයට අනුකූලව නිවැරදි සහ සුදුසු පරිවර්තන ලබා දේ.
  • ක්ෂණික භාෂා සහය: නව භාෂා සඳහා එක ක්ලික් කිරීමකින් සහය එක් කර ඔබගේ යෙදුම ගෝලීය පරිශීලකයින්ට ප්‍රවේශීය කරයි.

එය කෙසේ ක්‍රියා කරයි

ලෝකය වඩාත් ගෝලීකරණය වනにつ, විවිධ රටවල සහ සංස්කෘතික පසුබැඳි පරිශීලකයන්ට ගැලපෙන යෙදුම් සැකසීම වෙබ් සංවර්ධකයන් සඳහා වඩාත් වැදගත් වේ. මෙය සැබෑ කර ගැනීමේ ප්‍රධාන ක්‍රමයන්ගෙන් එකක් වන්නේ ජාත්‍යන්තරකරණය (i18n) වන අතර, එය ඔබට ඔබගේ යෙදුම විවිධ භාෂා, මුදල් සහ දිනය ආකෘති සඳහා ගැලපිය හැකි ලෙස සකස් කිරීමට ඉඩ සලසයි.

මෙම මඟපෙන්වීම තුළ, අපි සේවාදායක‑පැති රෙන්ඩරින් සමඟ ඔබගේ React Next.js යෙදුමට ජාත්‍යන්තරකරණය කෙසේ එක් කරන්නේදැයි සොයා බලන්නෙමු. TL;DR: මෙහි සම්පූර්ණ උදාහරණය බලන්න.

මෙම මාර්ගෝපදේශය Pages Router භාවිත කරන Next.js යෙදුම් සඳහායි.
ඔබ App Router භාවිත करන්නේ නම්, කරුණාකර වෙනුවට මෙම මාර්ගෝපදේශය බලන්න.

පියවර 1: i18n පුස්තකාලයක් ස්ථාපනය කරන්න

ඔබගේ Next.js යෙදුමට ජාත්‍යන්තරීකරණය ක්‍රියාත්මක කිරීමට, අපි මුලින්ම i18n පුස්තකාලයක් තෝරනවා. පොදු ලෙස භාවිතා වන කිහිපයක් තිබේ, ඒ අතර next-intl ද එකක් වේ. කෙසේ වෙතත්, මෙම උදාහරණයේදී, අපි TacoTranslate භාවිතා කරන්නෙමු.

TacoTranslate නව්‍ය AI තාක්ෂණය භාවිතයෙන් ඔබගේ strings ඕනෑම භාෂාවකට ස්වයංක්‍රීයව පරිවර්තනය කරයි, සහ 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 යතුර කිසිසේත්ම client-side නිෂ්පාදන පරිසරවලට හෙළි නොකරන්න.

අපි තවත් පරිසර චර දෙකක් එක් කරනු ඇත: TACOTRANSLATE_DEFAULT_LOCALE සහ TACOTRANSLATE_ORIGIN.

  • TACOTRANSLATE_DEFAULT_LOCALE: පෙරනිමියෙන් භාවිතා වන පසුබැසීම් (fallback) ස්ථානික භාෂා කේතය. මෙම උදාහරණයේ, අපි එය en ලෙස ඉංග්‍රීසි සඳහා සකස් කරමු.
  • TACOTRANSLATE_ORIGIN: ඔබගේ පෙළ (strings) ගබඩා වන "ෆෝල්ඩරය", උදාහරණයක් ලෙස ඔබේ වෙබ් අඩවියේ URL එක. Origins පිළිබඳව මෙතැනින් වැඩිදුර කියවන්න.
.env
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com

පියවර 3: TacoTranslate සැකසීම

TacoTranslate ඔබගේ යෙදුම සමඟ ඒකාබද්ධ කිරීමට, පෙර ලබාදුන් API යතුරු භාවිතයෙන් client එකක් සාදා ගත යුතුය. උදාහරණයක් ලෙස, /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 ස්වයංක්‍රීයව නිර්වචනය කරනු ඇත.

client එක වෙනම ගොනුවකට සාදීම එය පසුව නැවත භාවිතයට ගන්න පහසු කරයි. දැන්, අභිරුචි /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 තිබේ නම්, කරුණාකර ඉහත සඳහන් ගුණාංග සහ කේතය සමඟ එම නිර්වචනය පුළුල් කරන්න.

පියවර 4: සේවාදායක පැත්තේ රෙන්ඩරින් ක්‍රියාත්මක කිරීම

TacoTranslate ඔබගේ පරිවර්තන සේවාදායක පැත්තෙන් රෙන්ඩර කිරීම සඳහා ඉඩ සලසයි. මේによって පරිවර්තිත අන්තර්ගතය වහාම පෙන්වෙයි, පළමුව පරිවර්තනය නොකළ අන්තර්ගතයේ කෙටි දසුනකට (flash) මුහුණපාන අවස්ථාවක් වෙනුවට, ඒ නිසා පරිශීලක අත්දැකීම විශාල ලෙස වැඩි වේ. අතිරේකව, අපට client පැත්තෙන් ජාල ඉල්ලීම් මගහැරිමට හැකි වේ, මක්නිසාද අපට අවශ්‍ය සියලු පරිවර්තන දැනටමත් ඇත.

අපි /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 යතුර ප්‍රදර්ශනය කරයි. අපි local, test, හෝ staging පරිසරයක (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!"/>;
}

ඔබ දැන් සියලුම React කොම්පෝනන්ට් තුළ ඇති පෙළ පරිවර්තනය කිරීමට Translate කොම්පෝනන්ට් භාවිත කළ හැක.

import {Translate} from 'tacotranslate/react';

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

5 වන පියවර: නිකුත් කර පරීක්ෂා කරන්න!

අපි අවසන් වුණා! ඔබ Translate කොම්පොනන්ට් එකට ඕනෑම පෙළක් එක් කළහොත් ඔබගේ Next.js යෙදුම දැන් ස්වයංක්‍රීයව පරිවර්තනය වේ. සලකන්න: API යතුර සඳහා read/write අවසර තිබෙන පරිසරවලට පමණක් පරිවර්තනය සඳහා නව පෙළ නිර්මාණය කළ හැක. අපි නිර්දේශ කරන්නේ, එවැනි API යතුරක් භාවිතයෙන් ඔබගේ ප්‍රොඩක්ෂන් යෙදුම පරීක්ෂා කළ හැකි වසාගත් සහ ආරක්ෂිත staging පරිසරයක් තිබීමයි — සජීවී කිරීමට පෙර එහි නව පෙළ එක් කරන්න. මෙය ඔබගේ රහස් 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 වෙතින් නිෂ්පාදනයක්නෝර්වේහි නිෂ්පාදිත