استفاده پیشرفته
مدیریت زبانهای راست به چپ
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
را در برنامه خود توصیه میکنیم. این کار برای سازماندهی ترجمهها و رشتههای شما در مبداهای مختلف، مانند سربرگ، پاورقی یا بخشهای خاص، مفید است.
شما میتوانید برای اطلاعات بیشتر در مورد استفاده از origins اینجا بخوانید.
ارائهدهندگان 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» در زبان اسپانیایی ترجمه شود.