Next.js යෙදුම් සඳහා ජාත්යන්තරීකරණය (i18n) සඳහා හොඳම විසඳුම
ඔබේ Next.js යෙදුම නව වෙළඳපොළවල් වෙත විහිදුවීමට බලාපොරොත්තු වෙයිද? TacoTranslate ඔබගේ Next.js ව්යාපෘතිය දේශීයකරණය කිරීමට අතිශය පහසු කරයි, එවිට ඔබට අසැළඹු ගෝලීය පිරිසක් වෙත පැන නැගීමට හැකිවේ.
Next.js සඳහා TacoTranslate තෝරාගන්නේ 为什么?
- සංවාදාත්මක ඒකාබද්ධ කිරීම: විශේෂයෙන්ම Next.js යෙදුම් සඳහා නිර්මාණය කරන ලද TacoTranslate ඔබේ පවතින වැඩමුළුවට පහසුවෙන් ඒකාබද්ධ වේ.
- ස්වයංක්රීය ස්ට්රිං එකතුව: JSON ගොනු අතින් කළමනාකරණය කිරීම අවසන්. TacoTranslate ඔබේ කේතගොනුවෙන් ස්ට්රිං ස්වයංක්රීයව එකතු කර ගනී.
- AI බලගැන්වූ සිංහල පරිවර්තන: ඔබේ යෙදුමේ ශෛලියට අනුකූලව පරිවර්තන ලබාදීමට AI බලය භාවිතා කරන්න.
- ක්ෂණික භාෂා සහාය: නව භාෂා සඳහා එක් ක්ලික් එකකින් සහාය එක්කර, ඔබේ යෙදුම ලෝකයට ප්රවේශමාර්ගයා කරයි.
මෙම ක්රමය ක්රියාත්මක වන ආකාරය
ලෝකය වඩාත් ගෝලීය වීමත් සමඟ, වෙබ් සංවර්ධකයින්ට විවිධ රටවල් හා සංස්කෘතික පසුබැසීම් වලින් පිරිපුන් පරිශීලකයන්ට අනුකූල වන යෙදුම් සාදන එක වඩාත් වැදගත් වේ. මේ සඳහා ප්රධාන ක්රමයන්ගෙන් එකක් තමයි අන්ත්ර්ජාතිකරණය (i18n), එයින් ඔබට ඔබේ යෙදුම විවිධ භාෂා, මුදල්, දිනය ආකෘති අනුව සකස් කර ගත හැකිය.
මෙම පරීක්ෂණික පාඩම තුළ, අපි ඔබගේ React Next.js යෙදුමට අන්ත්ර්ජාතිකරණය කොහොම එකතු කරන්නේද කියලා, සේවාදායක පැත්තේ rendering සමඟ පරීක්ෂා කරනවා. TL;DR: මූලික උදාහරණය මෙතන බලන්න.
මෙම මාර්ගෝපදේශය Pages Router භාවිතා කරන Next.js යෙදුම් සඳහා වන අතරයි.
ඔබ App Router භාවිතා කරනවානම්, කරුණාකර වෙනත් මෙම මාර්ගෝපදේශය බලන්න.
පියවර 1: i18n පුස්තකාලයක් ස්ථාපනය කරන්න
ඔබේ Next.js යෙදුමේ අන්තර්ජාතිකරණය (internationalization) ක්රියාත්මක කිරීමට, අපවළ පහළම i18n පුස්තකාලයක් තෝරා ගමු. ජනප්රිය පුස්තකාල කිහිපයක් තිබේ, ඒ අතර next-intl එකක් වේ. කෙසේ වෙතත්, මෙම උදාහරණය සඳහා අපි TacoTranslate භාවිතා කරන්නෙමු.
TacoTranslate ඔබේ strings ඕනෑම භාෂාවකට කටර්-එජ් AI ක්රමවේදයක් භාවිතා කර ස්වයංක්රීයව පරිවර්තනය කරයි, JSON ගොනු කළමනාකරණයේ කාර්යබහුලතාවයෙන් ඔබව නිදහස් කරයි.
අපි එය ඔබේ ටර්මිනලයේ npm භාවිතයෙන් ස්ථාපනය කරමු:
npm install tacotranslate
පියවර 2: නොමිලේ TacoTranslate ගිණුමක් සාදන්න
දැන් ඔබට මොඩියුලය ස්ථාපිත කර ඇති බැවින්, ඔබේ TacoTranslate ගිණුමක්, පරිවර්තන ව්යාපෘතියක් සහ සම්බන්ධ API යතුරු සෑදීමට කාලයයි. මෙතැනින් ගිණුමක් සෑදන්න. එය නිදහස්이며, ක්රෙඩිට් කාඩ්පතක් එකතු කිරීම අවශ්ය නොවේ.
TacoTranslate යෙදුම් UI තුළ, ව්යාපෘතියක් සෑදීමෙන් පසු එහි API යතුරු ටැබ් වෙත ගොස් නවයක් read
යතුරක් සහ නවයක් read/write
යතුරක් සෑදන්න. අපි ඒවා පරිසර විචල්ය ලෙස සුරැකීමට යොදා ගනිමු. read
යතුර අපි කියන්නේ public
යැයි, සහ read/write
යතුර secret
ය. උදාහරණයක් ලෙස, ඔබට ඒවා ඔබගේ ව්යාපෘතියේ මූලික ෆෝල්ඩරයේ .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 එකක්. මෙහි හෙවත් origins පිළිබඳ වැඩි විස්තර කියවන්න.
TACOTRANSLATE_DEFAULT_LOCALE=en
TACOTRANSLATE_ORIGIN=your-website-url.com
පියවර 3: TacoTranslate සකස් කිරීම
ඔබේ යෙදුම සමඟ TacoTranslate ඒකතු කිරීමට, පෙර ලබා දුන් API යතුරු භාවිතා කර client එකක් නිර්මාණය කළ යුතුය. උදාහරණයක් ලෙස, /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
සපයන්නා එක් කරමු.
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 ඔබගේ පරිවර්තන සඳහා සේවාදායක පැත්තේ rendering කිරීම සඳහා අවස්ථාව සපයයි. මෙය පරිශීලක අත්දැකීම විශාල ලෙස වැඩිදියුණු කරයි, පළමුව පරිවර්තනය නොකළ අන්තර්ගතයක් පිළිබඳ කෙටි පෙනුමක් වෙනුවට වහාම පරිවර්තන අන්තර්ගතය පෙන්වීමෙන්. තවම, අපට පාරිභෝගික පාර්ශ්වයේ ජාල අයදුම් පැනවීම එල්ල නොකිරීමට හැකිවෙයි, මන්ද අපට අවශ්ය සියලු පරිවර්තන ද 이미 තිබේ.
අපි /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
යැයි හිතමු.
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 කොම්පෝනන්ට් තුළ තිබෙන string වලට පරිවර්තනය කිරීමට Translate
කොම්පෝනන්ට් භාවිතා කළ හැකිව ඇත.
import {Translate} from 'tacotranslate/react';
function Component() {
return <Translate string="Hello, world!"/>
}
පියවර 5: මුදා හැරීම සහ පරීක්ෂා කිරීම!
අපි අවසන් වුනා! ඔබගේ 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!