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