الاستخدام المتقدم
التعامل مع اللغات من اليمين إلى اليسار
تجعل 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 ومستوى الـ hook 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 على مستوى المكوّن أو الـ hook.
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” بالإسبانية.