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 লাইব্রেরি বেছে নেব। কয়েকটি জনপ্রিয় লাইব্রেরি আছে, যার মধ্যে next-intl. তবে, এই উদাহরণে আমরা ব্যবহার করব TacoTranslate.
TacoTranslate আধুনিক AI ব্যবহার করে স্বয়ংক্রিয়ভাবে আপনার স্ট্রিংগুলো যেকোনো ভাষায় অনুবাদ করে এবং JSON ফাইলগুলোর ক্লিষ্ট ব্যবস্থাপনা থেকে আপনাকে মুক্তি দেয়।
চলুন এটি আপনার টার্মিনালে npm ব্যবহার করে ইনস্টল করি:
npm install tacotranslate
ধাপ ২: একটি বিনামূল্যে TacoTranslate অ্যাকাউন্ট তৈরি করুন
এখন যেহেতু আপনি মডিউলটি ইনস্টল করে ফেলেছেন, এখন আপনার TacoTranslate অ্যাকাউন্ট, একটি অনুবাদ প্রকল্প এবং সংশ্লিষ্ট API কী তৈরি করার সময় হয়েছে। এখানে একটি অ্যাকাউন্ট তৈরি করুন। এটি বিনামূল্যে, এবং আপনাকে ক্রেডিট কার্ড যোগ করতে হবে না।
TacoTranslate অ্যাপ্লিকেশন UI-র মধ্যে একটি প্রকল্প তৈরি করুন এবং এর API keys ট্যাবে যান। একটি 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
ধাপ ৩: TacoTranslate সেটআপ করা
আপনার অ্যাপলিকেশনের সাথে TacoTranslate একীভূত করতে, আগে তৈরি করা API কী ব্যবহার করে আপনাকে একটি ক্লায়েন্ট তৈরি করতে হবে। উদাহরণস্বরূপ, /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
থাকে, তাহলে অনুগ্রহ করে উপরের প্রপার্টি এবং কোড দিয়ে সংজ্ঞাটি সম্প্রসারিত করুন।
ধাপ ৪: সার্ভার-সাইড রেন্ডারিং বাস্তবায়ন
TacoTranslate আপনার অনুবাদগুলির সার্ভার-সাইড রেন্ডারিং সক্ষম করে। এটি ব্যবহারকারীর অভিজ্ঞতা নানাভাবে উন্নত করে কারণ অনুবাদিত বিষয়বস্তু সঙ্গেsঙ্গে প্রদর্শিত হয়, প্রথমে অনুবাদহীন বিষয়বস্তুর ঝলক দেখানোর পরিবর্তে। এছাড়াও, ক্লায়েন্টে নেটওয়ার্ক অনুরোধগুলি আমরা বাঁচাতে পারি, কারণ আমাদের কাছে ইতিমধ্যেই প্রয়োজনীয় সব অনুবাদ রয়েছে।
আমরা /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 প্রোপার্টি। লক্ষ্য করুন যে revalidate
getTacoTranslateStaticProps
এ ডিফল্টভাবে 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 কম্পোনেন্টের মধ্যে থাকা স্ট্রিংগুলো অনুবাদ করতে Translate
কম্পোনেন্টটি ব্যবহার করতে পারবেন।
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!