Разширено използване
Обработка на езици, пишещи се отдясно наляво
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
доставчика във вашето приложение. Това е полезно за организиране на вашите преводи и низове в различни източници, като вашия хедър, футър или конкретни секции.
Можете да прочетете повече за използването на origin-и тук.
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
hook.
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-та за превод
Можете да добавите 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“ на испански.