TacoTranslate
/
ডকুমেন্টেশনমূল্য নির্ধারণ
 
  1. পরিচিতি
  2. শুরু করছি
  3. সেটআপ এবং কনফিগারেশন
  4. TacoTranslate ব্যবহার করা
  5. সার্ভার-সাইড রেন্ডারিং
  6. উন্নত ব্যবহার
  7. সেরা পদ্ধতিসমূহ
  8. এরর হ্যান্ডলিং ও ডিবাগিং
  9. সমর্থিত ভাষাসমূহ

TacoTranslate ব্যবহার করা

স্ট্রিং অনুবাদ করা

বর্তমানে স্ট্রিং অনুবাদের তিনটি উপায় রয়েছে: Translate কম্পোনেন্ট, useTranslation হুক, অথবা translateEntries ইউটিলিটি।


Translate উপাদান ব্যবহার করা হচ্ছে।
অনুবাদগুলি span উপাদানের ভিতরে আউটপুট করে, এবং HTML রেন্ডারিং সমর্থন করে।

import {Translate} from 'tacotranslate/react';

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

উদাহরণ স্বরূপ, আপনি as="p" কম্পোনেন্টে ব্যবহার করে উপাদানের ধরন পরিবর্তন করতে পারেন।


useTranslation হুক ব্যবহার করা হচ্ছে।
অনুবাদগুলি একটি সাদাসিধে স্ট্রিং হিসাবে ফেরত দেয়। উদাহরণস্বরূপ, meta ট্যাগগুলিতে এটি উপযোগী।

import {useEffect} from 'react';
import {useTranslation} from 'tacotranslate/react';

function Page() {
	const helloWorld = useTranslation('Hello, world!');

	useEffect(() => {
		alert(helloWorld);
	}, [helloWorld]);

	return (
		<title>{useTranslation('My page title')}</title>
	);
}

translateEntries ইউটিলিটি ব্যবহার করা।
সার্ভার সাইডে স্ট্রিং অনুবাদ করুন। আপনার OpenGraph ইমেজগুলিকে সুপারচার্জ করুন।

import {createEntry, translateEntries} from 'tacotranslate';

async function generateMetadata(locale = 'es') {
	const title = createEntry({string: 'Hello, world!'});
	const description = createEntry({string: 'TacoTranslate on the server'});

	const translations = await translateEntries(
		tacoTranslate,
		{origin: 'opengraph', locale},
		[title, description]
	);

	return {
		title: translations(title),
		description: translations(description)
	};
}

স্ট্রিংগুলি কীভাবে অনুবাদ করা হয়

যখন স্ট্রিংগুলি আমাদের সার্ভারে পৌঁছায়, আমরা প্রথমে সেগুলি যাচাই করে সংরক্ষণ করি, তারপর সঙ্গে সঙ্গেই একটি মেশিন অনুবাদ ফিরে দিই। যদিও মেশিন অনুবাদগুলি সাধারণত আমাদের AI অনুবাদগুলির তুলনায় কম মানের হয়, তা দ্রুত প্রাথমিক প্রতিক্রিয়া প্রদান করে।

একই সময়ে, আমরা আপনার স্ট্রিংয়ের জন্য উচ্চমানের, আধুনিক AI অনুবাদ তৈরি করতে একটি অ্যাসিঙ্ক্রোনাস অনুবাদ কাজ শুরু করি। একবার AI অনুবাদ প্রস্তুত হলে, এটি মেশিন অনুবাদকে প্রতিস্থাপন করবে এবং যখনই আপনি আপনার স্ট্রিংগুলির জন্য অনুবাদ অনুরোধ করবেন তখন পাঠানো হবে।

যদি আপনি কোনও স্ট্রিং ম্যানুয়ালি অনুবাদ করে থাকেন, তবে সেই অনুবাদগুলি অগ্রাধিকার পাবেন এবং পরিবর্তে সরবরাহ করা হবে।

মূল উৎসগুলি ব্যবহার করা

TacoTranslate প্রকল্পগুলিতে এমন কিছু থাকে যাকে আমরা origins বলি। এগুলোকে আপনার স্ট্রিং এবং অনুবাদের জন্য এন্ট্রি পয়েন্ট, ফোল্ডার বা গ্রুপ হিসাবে ভাবুন।

import {TacoTranslate} from 'tacotranslate/react';

function Menu() {
	return (
		<TacoTranslate origin="application-menu">
			// ...
		</TacoTranslate>
	);
}

Origins আপনাকে স্ট্রিংগুলো অর্থবহ কন্টেইনারে আলাদা করতে দেয়। উদাহরণস্বরূপ, আপনার কাছে ডকুমেন্টেশনের জন্য একটি origin এবং আপনার মার্কেটিং পেজের জন্য আরেকটি origin থাকতে পারে।

আরো সূক্ষ্ম নিয়ন্ত্রণের জন্য, আপনি কম্পোনেন্ট স্তরে origins সেট আপ করতে পারেন।

এটি অর্জন করার জন্য, আপনার প্রকল্পের মধ্যে বহু TacoTranslate সরবরাহকারী ব্যবহার করার কথা বিবেচনা করুন.

দয়া করে লক্ষ্য করুন যে একই স্ট্রিং বিভিন্ন origins-এ ভিন্ন অনুবাদ পেতে পারে।

অবশেষে, আপনি কিভাবে স্ট্রিংগুলোকে অভিজাত উৎসে ভাগ করবেন তা আপনার এবং আপনার প্রয়োজনের ওপর নির্ভর করে। তবে, লক্ষ রাখতে হবে যে, একটি অভিজাত উৎসে অনেক স্ট্রিং থাকার ফলে লোডিং সময় বৃদ্ধি পেতে পারে।

চলকগুলি পরিচালনা করা

আপনাকে সর্বদা ডাইনামিক কন্টেন্টের জন্য ভেরিয়েবল ব্যবহার করা উচিত, যেমন ব্যবহারকারী নাম, তারিখ, ই-মেইল ঠিকানা, এবং আরও অনেক কিছু।

স্ট্রিংগুলিতে ভেরিয়েবলগুলি ডাবল ব্র্যাকেট ব্যবহার করে ঘোষণা করা হয়, যেমন {{variable}}.

import {Translate} from 'tacotranslate/react';

function Greeting() {
	const name = 'Juan';
	return <Translate string="Hello, {{name}}!" variables={{name}} />;
}
import {useTranslation} from 'tacotranslate/react';

function useGreeting() {
	const name = 'Juan';
	return useTranslation('Hello, {{name}}!', {variables: {name}});
}

HTML বিষয়বস্তু পরিচালনা করা

ডিফল্টরূপে, Translate কম্পোনেন্ট HTML বিষয়বস্তু সমর্থন করে এবং তা রেন্ডার করে। তবে, আপনি এই আচরণ থেকে বেরিয়ে আসতে পারেন useDangerouslySetInnerHTML কে false সেট করে।

অবিশ্বস্ত কনটেন্ট, যেমন ব্যবহারকারীর তৈরি করা কনটেন্ট অনুবাদ করার সময় HTML রেন্ডারিং নিষ্ক্রিয় করা কঠোরভাবে সুপারিশ করা হয়।

সমস্ত আউটপুট রেন্ডার করার আগে sanitize-html দ্বারা সবসময় নিরাপদ করা হয়।

import {Translate} from 'tacotranslate/react';

function Page() {
	return (
		<Translate
			string={`
				Welcome to <strong>my</strong> website.
				I’m using <a href="{{url}}">TacoTranslate</a> to translate text.
			`}
			variables={{url: 'https://tacotranslate.com'}}
			useDangerouslySetInnerHTML={false}
		/>
	);
}

উপরের উদাহরণটি প্লেইন টেক্সট হিসেবে রেন্ডার হবে।

সার্ভার-সাইড রেন্ডারিং

Nattskiftet-এর একটি পণ্যনরওয়েতে তৈরি