Uporaba TacoTranslate
Prevajanje nizov
Trenutno so na voljo trije načini za prevajanje nizov: komponenta Translate
, hook useTranslation
, ali pripomoček translateEntries
.
Uporaba komponente Translate
.
Prikaže prevode znotraj elementa span
, in podpira upodabljanje HTML-a.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}
Vrsto elementa lahko spremenite, na primer z uporabo as="p"
na komponenti.
Uporaba hooka useTranslation
.
Vrne prevode kot navaden niz. Uporaben je na primer v meta
oznakah.
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>
);
}
Uporaba pripomočka translateEntries
.
Prevajajte nize na strežniški strani. Izboljšajte vaše OpenGraph slike.
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 prevajajo nizi
Ko nizi prispejo na naše strežnike, jih najprej preverimo in shranimo, nato pa takoj vrnemo strojni prevod. Čeprav so strojni prevodi na splošno manj kakovostni v primerjavi z našimi AI-prevodi, zagotavljajo hiter začetni odziv.
Vzporedno sprožimo asinhrono prevajalsko opravilo, da za vaš niz ustvarimo visokokakovosten, najsodobnejši prevod z umetno inteligenco. Ko bo AI-prevod pripravljen, bo nadomestil strojni prevod in bo poslan vsakič, ko boste zahtevali prevode svojih nizov.
Če ste niz ročno prevedli, imajo ti prevodi prednost in bodo namesto tega vrnjeni.
Uporaba izvorov
Projekti TacoTranslate vsebujejo tisto, čemur pravimo izhodišča. Lahko si jih zamislite kot vstopne točke, mape ali skupine za vaše nize in prevode.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}
Viri vam omogočajo, da nize ločite v smiselne skupine. Na primer, lahko imate en vir za dokumentacijo in drugega za vašo marketinško stran.
Za bolj natančen nadzor lahko na ravni komponente nastavite origins.
Če želite to doseči, razmislite o uporabi več ponudnikov TacoTranslate v vašem projektu.
Upoštevajte, da lahko isti niz prejme različne prevode v različnih izvorih.
V končni fazi je razdelitev nizov v izvore prepuščena vam in vašim potrebam. Vendar upoštevajte, da lahko veliko število nizov znotraj enega izvora poveča čas nalaganja.
Ravnanje s spremenljivkami
Vedno bi morali uporabljati spremenljivke za dinamično vsebino, kot so uporabniška imena, datumi, e-poštni naslovi in še več.
Spremenljivke v nizih se deklarirajo z uporabo dvojnih zavitih oklepajev, na primer {{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 vsebine
Privzeto komponenta Translate
podpira in prikazuje HTML vsebino. Vendar lahko to vedenje onemogočite tako, da nastavite useDangerouslySetInnerHTML
na false
.
Močno priporočamo onemogočanje upodabljanja HTML pri prevajanju nezaupanja vredne vsebine, kot je uporabniško ustvarjena vsebina.
Vsi izhodi so vedno očiščeni z sanitize-html pred prikazom.
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}
/>
);
}
Zgornji primer bo prikazan kot navadno besedilo.