استفاده پیشرفته
مدیریت زبانهای راستبهچپ
TacoTranslate پشتیبانی از زبانهای راستبهچپ (RTL) مانند عربی و عبری را در برنامههای React شما آسان میکند. مدیریت صحیح زبانهای RTL تضمین میکند که محتوای شما به درستی برای کاربران که از راست به چپ میخوانند نمایش داده شود.
import {useTacoTranslate} from 'tacotranslate/react';
function Document() {
const {locale, isRightToLeft} = useTacoTranslate();
return (
<html lang={locale} dir={isRightToLeft ? 'rtl' : 'ltr'}>
<body>
// ...
</body>
</html>
);
}
شما همچنین میتوانید از تابع isRightToLeftLocaleCode
ارائه شده برای بررسی زبان فعلی خارج از React استفاده کنید.
import {isRightToLeftLocaleCode} from 'tacotranslate';
function foo(locale = 'es') {
const direction = isRightToLeftLocaleCode(locale) ? 'rtl' : 'ltr';
// ...
}
غیرفعال کردن ترجمه
برای غیرفعال کردن ترجمه در بخشهای خاصی از یک رشته یا برای اطمینان از حفظ بخشهایی به همان شکل اصلی، میتوانید از براکتهای سهگانه مربعی استفاده کنید. این ویژگی برای حفظ قالب اصلی نامها، اصطلاحات فنی، یا هر محتوای دیگری که نباید ترجمه شود، مفید است.
import {Translate} from 'tacotranslate/react';
function Component() {
return (
<Translate string="Hello, [[[TacoTranslate]]]!" />
);
}
در این مثال، کلمه “TacoTranslate” در ترجمه بدون تغییر باقی خواهد ماند.
چندین ارائهدهنده TacoTranslate
ما قویاً استفاده از چندین ارائهدهنده TacoTranslate
را در برنامه شما توصیه میکنیم. این کار برای سازماندهی ترجمهها و رشتههای شما به منابع مختلف، مانند سربرگ، پاورقی، یا بخشهای خاص مفید است.
شما میتوانید اینجا بیشتر در مورد استفاده از منشأها بخوانید.
ارائهدهندگان TacoTranslate
تنظیمات را از هر ارائهدهنده والد به ارث میبرند، بنابراین نیازی به تکرار هیچ تنظیمات دیگری نخواهید داشت.
import createTacoTranslateClient from 'tacotranslate';
import {TacoTranslate} from 'tacotranslate/react';
const tacoTranslateClient = createTacoTranslateClient({apiKey: 'YOUR_API_KEY'});
function Header() {
return (
<TacoTranslate origin="header">
// ...
</TacoTranslate>
);
}
function Menu() {
return (
<TacoTranslate origin="menu">
// ...
</TacoTranslate>
);
}
export default function App() {
return (
<TacoTranslate client={tacoTranslateClient} origin="page" locale="es">
<Header />
<Menu />
</TacoTranslate>
);
}
بازنویسی مبدأ یا محل
در کنار استفاده از چندین ارائهدهنده TacoTranslate
, شما همچنین میتوانید هم منبع و هم زبان محلی را در سطوح کامپوننت Translate
و هوک useTranslation
تغییر دهید.
import {Translate, useTranslation} from 'tacotranslate/react';
function Greeting() {
const spanishHello = useTranslation('Hello!', {locale: 'es'});
return (
<>
{spanishHello}
<Translate string="What’s up?" origin="greeting" />
</>
);
}
رسیدگی به بارگیری
زمانی که زبانها در سمت مشتری تغییر میکنند، بارگذاری ترجمهها ممکن است بسته به اتصال کاربر چند لحظه طول بکشد. شما میتوانید یک نشانگر بارگذاری نمایش دهید تا تجربه کاربری را با ارائه بازخورد بصری در هنگام تغییر، بهبود بخشید.
import {useTacoTranslate} from 'tacotranslate/react';
function Component() {
const {isLoading} = useTacoTranslate();
return (
isLoading ? 'Translations are loading...' : null
);
}
جمع بستن
برای مدیریت جمعگرایی و نمایش برچسبهای مبتنی بر شمارش بهطور صحیح در زبانهای مختلف، این بهترین رویه محسوب میشود:
import {Translate, useLocale} from 'tacotranslate/react';
function PhotoCount() {
const locale = useLocale();
const count = 1;
return count === 0 ? (
<Translate string="You have no photos." />
) : count === 1 ? (
<Translate string="You have 1 photo." />
) : (
<Translate
string="You have {{count}} photos."
variables={{count: count.toLocaleString(locale)}}
/>
);
}
چندین زبان
برای پشتیبانی همزمان از چندین زبان در داخل همان برنامه، میتوانید از چندین فراهمکننده TacoTranslate
استفاده کنید با مقادیر مختلف locale
همانطور که در زیر نشان داده شده است:
شما همچنین میتوانید locale
را در سطح کامپوننت یا هوک بازنویسی کنید.
import createTacoTranslateClient from 'tacotranslate';
import {TacoTranslate, Translate} from 'tacotranslate/react';
const tacoTranslateClient = createTacoTranslateClient({apiKey: 'YOUR_API_KEY'});
function Spanish() {
return (
<TacoTranslate locale="es">
<Translate string="Hello, world in Spanish!" />
</TacoTranslate>
);
}
function Norwegian() {
return (
<TacoTranslate locale="no">
<Translate string="Hello, world in Norwegian!" />
</TacoTranslate>
);
}
export default function App() {
return (
<TacoTranslate client={tacoTranslateClient} origin="page" locale="es">
<Spanish />
<Norwegian />
</TacoTranslate>
);
}
استفاده از شناسههای ترجمه
شما میتوانید یک id
را به کامپوننت Translate
اضافه کنید تا ترجمهها یا معانی مختلف برای همان رشته را مدیریت کنید. این امر به ویژه زمانی مفید است که همان متن بر اساس زمینه نیاز به ترجمههای متفاوت داشته باشد. با اختصاص شناسههای یکتا، اطمینان حاصل میکنید که هر نمونه از رشته بهطور دقیق متناسب با معنای خاص خود ترجمه شود.
import {Translate} from 'tacotranslate/react';
function Header() {
return (
<Translate id="header" string="Login" />
);
}
function Footer() {
return (
<Translate id="footer" string="Login" />
);
}
برای مثال، ورود به سیستم در هدر ممکن است به «Iniciar sesión» ترجمه شود، و ورود به سیستم در فوتر ممکن است به «Acceder» به زبان اسپانیایی ترجمه شود.