Korištenje TacoTranslate
Prevođenje nizova
Trenutno postoje tri načina za prevođenje nizova: komponenta Translate
, kuk useTranslation
ili utilitarna funkcija translateEntries
.
Korištenje Translate
komponente.
Prikazuje prijevode unutar span
elementa i podržava prikaz HTML-a.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}
Možete promijeniti tip elementa koristeći, na primjer, as="p"
na komponenti.
Korištenje useTranslation
hook-a.
Vraća prijevode kao običan tekst. Korisno, na primjer, u meta
tagovima.
import {useEffect} from 'react';
import {useTranslation} from 'tacotranslate/react';
function Page() {
const helloWorld = useTranslation('Hello, world!');
useEffect(() => {
alert(helloWorld);
}, [helloWorld]);
return (
<title>{useTranslation('My page title')}</title>
);
}
Korištenje translateEntries
alata.
Prevodi stringove na strani servera. Dajte dodatnu snagu svojim OpenGraph slikama.
import {createEntry, translateEntries} from 'tacotranslate';
async function generateMetadata(locale = 'es') {
const title = createEntry({string: 'Hello, world!'});
const description = createEntry({string: 'TacoTranslate on the server'});
const translations = await translateEntries(
tacoTranslate,
{origin: 'opengraph', locale},
[title, description]
);
return {
title: translations(title),
description: translations(description)
};
}
Kako se prevode stringovi
Kada nizovi stignu na naše servere, prvo ih provjerimo i sačuvamo, zatim odmah vratimo mašinski prijevod. Iako su mašinski prijevodi općenito lošijeg kvaliteta u usporedbi sa našim AI prijevodima, oni pružaju brzi početni odgovor.
Istovremeno, pokrećemo asinkroni zadatak prevođenja kako bismo generisali visokokvalitetan, vrhunski AI prijevod za vaš tekst. Kada AI prijevod bude spreman, zamijenit će mašinski prijevod i biće poslan svaki put kada zatražite prijevode za vaše tekstove.
Ako ste ručno preveli string, ti prijevodi imaju prednost i umjesto toga se vraćaju.
Korištenje izvora
TacoTranslate projekti sadrže ono što nazivamo origins. Zamislite ih kao ulazne tačke, foldere ili grupe za vaše stringove i prijevode.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}
Origins vam omogućavaju da odvojite nizove u smislenije kontejnere. Na primjer, mogli biste imati jedan origin za dokumentaciju i drugi za vašu marketing stranicu.
Za precizniju kontrolu, možete postaviti origins na nivou komponente.
Da biste to postigli, razmotrite korištenje više TacoTranslate provajdera unutar vašeg projekta.
Molimo imajte na umu da ista fraza može dobiti različite prevode u različitim izvorima.
Na kraju, kako ćete razdvojiti stringove u origem je na vama i vašim potrebama. Međutim, imajte na umu da veliki broj stringova unutar jednog origina može povećati vrijeme učitavanja.
Rukovanje varijablama
Uvijek biste trebali koristiti varijable za dinamički sadržaj, kao što su imena korisnika, datumi, e-mail adrese i slično.
Varijable u stringovima se deklarišu koristeći dvostruke zagrade, kao {{variable}}
.
import {Translate} from 'tacotranslate/react';
function Greeting() {
const name = 'Juan';
return <Translate string="Hello, {{name}}!" variables={{name}} />;
}
import {useTranslation} from 'tacotranslate/react';
function useGreeting() {
const name = 'Juan';
return useTranslation('Hello, {{name}}!', {variables: {name}});
}
Upravljanje HTML sadržajem
Po defaultu, Translate
komponenta podržava i prikazuje HTML sadržaj. Međutim, možete isključiti ovo ponašanje postavljanjem useDangerouslySetInnerHTML
na false
.
Isključivanje prikaza HTML-a se toplo preporučuje prilikom prevođenja nepouzdanog sadržaja, poput sadržaja koji generišu korisnici.
Sav sav izlaz se uvijek sanitizira pomoću sanitize-html prije prikaza.
import {Translate} from 'tacotranslate/react';
function Page() {
return (
<Translate
string={`
Welcome to <strong>my</strong> website.
I’m using <a href="{{url}}">TacoTranslate</a> to translate text.
`}
variables={{url: 'https://tacotranslate.com'}}
useDangerouslySetInnerHTML={false}
/>
);
}
Gornji primjer će biti prikazan kao običan tekst.