استفاده پیشرفته
مدیریت زبانهای راستبهچپ
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
, شما همچنین میتوانید هر دو مقدار origin و locale را در سطوح کامپوننت 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» به زبان اسپانیایی ترجمه شود.