Розширене використання
Обробка мов, що пишуться справа наліво
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>
);
}
Перевизначення origin або locale
На додаток до використання кількох провайдерів 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
для обробки різних перекладів або значень одного й того самого рядка. Це особливо корисно, коли один і той самий текст вимагає різних перекладів залежно від контексту. Присвоюючи унікальні ID, ви забезпечуєте точний переклад кожного екземпляра рядка відповідно до його конкретного значення.
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” іспанською мовою.