استفاده پیشرفته
مدیریت زبانهای راستبهچپ
TacoTranslate پشتیبانی از زبانهای راستبهچپ (RTL)، مانند عربی و عبری، را در برنامههای React شما ساده میکند. مدیریت صحیح زبانهای راستبهچپ تضمین میکند که محتوای شما برای کاربرانی که از راست به چپ میخوانند، بهدرستی نمایش داده شود.
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» ترجمه شود.