Napredna upotreba
Rukovanje jezicima s desna na lijevo
TacoTranslate olakšava podršku jezika koji se čitaju zdesna nalijevo (RTL), kao što su arapski i hebrejski, u vašim React aplikacijama. Ispravno rukovanje RTL jezicima osigurava da se vaš sadržaj pravilno prikazuje korisnicima koji čitaju s desna na lijevo.
import {useTacoTranslate} from 'tacotranslate/react';
function Document() {
const {locale, isRightToLeft} = useTacoTranslate();
return (
<html lang={locale} dir={isRightToLeft ? 'rtl' : 'ltr'}>
<body>
// ...
</body>
</html>
);
}
Također možete koristiti ponuđenu funkciju isRightToLeftLocaleCode
za provjeru trenutnog jezika izvan React.
import {isRightToLeftLocaleCode} from 'tacotranslate';
function foo(locale = 'es') {
const direction = isRightToLeftLocaleCode(locale) ? 'rtl' : 'ltr';
// ...
}
Onemogućavanje prevođenja
Da biste onemogućili prevođenje određenih dijelova stringa ili osigurali da određeni segmenti ostanu nepromijenjeni, možete koristiti trostruke uglaste zagrade. Ova funkcija je korisna za održavanje originalnog formata imena, tehničkih termina ili bilo kojeg drugog sadržaja koji ne bi trebao biti preveden.
import {Translate} from 'tacotranslate/react';
function Component() {
return (
<Translate string="Hello, [[[TacoTranslate]]]!" />
);
}
U ovom primjeru, riječ “TacoTranslate” ostat će nepromijenjena u prijevodu.
Više TacoTranslate provajdera
Toplo preporučujemo korištenje više TacoTranslate
provajdera u vašoj aplikaciji. Ovo je korisno za organiziranje vaših prijevoda i nizova u različite izvore, poput zaglavlja, podnožja ili određenih sekcija.
Možete pročitati više o korištenju origina ovdje.
Pružatelji usluga TacoTranslate
nasljeđuju postavke od bilo kojeg nadređenog pružatelja, tako da nećete morati ponavljati druge postavke.
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>
);
}
Prepisivanje izvora ili lokaliteta
Pored korištenja više TacoTranslate
provajdera, takođe možete nadjačati i origin i locale na nivoima Translate
komponente i useTranslation
hook-a.
import {Translate, useTranslation} from 'tacotranslate/react';
function Greeting() {
const spanishHello = useTranslation('Hello!', {locale: 'es'});
return (
<>
{spanishHello}
<Translate string="What’s up?" origin="greeting" />
</>
);
}
Rukovanje učitavanjem
Prilikom promjene jezika na strani klijenta, preuzimanje prijevoda može potrajati nekoliko trenutaka, ovisno o vezi korisnika. Možete prikazati indikator učitavanja kako biste poboljšali korisničko iskustvo pružajući vizualnu povratnu informaciju tokom promjene.
import {useTacoTranslate} from 'tacotranslate/react';
function Component() {
const {isLoading} = useTacoTranslate();
return (
isLoading ? 'Translations are loading...' : null
);
}
Pluralizacija
Za pravilno rukovanje množinom i prikaz oznaka zasnovanih na brojanju na različitim jezicima, ovo se smatra najboljom praksom:
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)}}
/>
);
}
Više jezika
Za podršku više jezika istovremeno unutar iste aplikacije, možete koristiti više TacoTranslate
provajdera sa različitim vrijednostima locale
kao što je prikazano ispod:
Možete također nadjačati locale
na nivou komponente ili hooka.
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>
);
}
Korištenje ID-jeva za prijevod
Možete dodati id
komponenti Translate
da biste upravljali različitim prijevodima ili značenjima za isti niz. Ovo je posebno korisno kada isti tekst zahtijeva različite prijevode u zavisnosti od konteksta. Dodjeljivanjem jedinstvenih ID-eva osiguravate da je svaki primjerak niza tačno preveden prema svom specifičnom značenju.
import {Translate} from 'tacotranslate/react';
function Header() {
return (
<Translate id="header" string="Login" />
);
}
function Footer() {
return (
<Translate id="footer" string="Login" />
);
}
Na primjer, prijava u zaglavlju može se prevesti kao “Iniciar sesión”, a prijava u podnožju može se prevesti kao “Acceder” na španskom.