Napredno korištenje
Rukovanje jezicima koji se pišu s desna na lijevo
TacoTranslate olakšava podršku jezicima koji se pišu s desna na lijevo (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 niza znakova ili osigurali da su određeni segmenti sačuvani takvi kakvi jesu, možete koristiti trostruke kvadratne 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 provajdera TacoTranslate
Snažno potičemo korištenje više TacoTranslate provajdera u vašoj aplikaciji. Ovo je korisno za organiziranje vaših prijevoda i stringova u različite izvore, kao što su vaše zaglavlje, podnožje ili određeni odjeljci.
Možete pročitati više o korištenju 'origins' ovdje.
TacoTranslate provajderi nasljeđuju postavke od bilo kojeg roditeljskog provajdera, tako da nećete morati ponavljati ostale 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>
);
}Zamjena izvora ili lokala
Pored korištenja više TacoTranslate provajdera, također možete prebrisati i origin i locale na razinama komponente Translate i hooka useTranslation.
import {Translate, useTranslation} from 'tacotranslate/react';
function Greeting() {
const spanishHello = useTranslation('Hello!', {locale: 'es'});
return (
<>
{spanishHello}
<Translate string="What’s up?" origin="greeting" />
</>
);
}Upravljanje učitavanjem
Pri promjeni jezika na strani klijenta, preuzimanje prijevoda može potrajati nekoliko trenutaka, u zavisnosti od veze korisnika. Možete prikazati indikator učitavanja kako biste poboljšali korisničko iskustvo i dali vizuelnu povratnu informaciju tokom prebacivanja.
import {useTacoTranslate} from 'tacotranslate/react';
function Component() {
const {isLoading} = useTacoTranslate();
return (
isLoading ? 'Translations are loading...' : null
);
}Pluralizacija
Da biste pravilno rukovali pluralizacijom i prikazivali oznake zasnovane na broju u 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
Da biste istovremeno podržali više jezika u istoj aplikaciji, možete koristiti više TacoTranslate provajdera s različitim locale vrijednostima, kako je prikazano u nastavku:
Također možete prebrisati 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-ova prijevoda
Možete dodati id komponenti Translate kako biste upravljali različitim prijevodima ili značenjima iste fraze. Ovo je posebno korisno kada isti tekst zahtijeva različite prijevode ovisno o kontekstu. Dodjeljivanjem jedinstvenih ID-ova osiguravate da je svaki primjerak fraze pravilno preveden u skladu sa svojim specifičnim značenjem.
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 mogla bi se prevesti kao “Iniciar sesión”, a prijava u podnožju mogla bi se prevesti kao “Acceder” na španskom.