TacoTranslate'i kasutamine
Stringide tõlkimine
Praegu on olemas kolm võimalust stringide tõlkimiseks: Translate
komponent, useTranslation
konks või translateEntries
utiliit.
Translate
komponendi kasutamine.
Tagastab tõlked span
elemendis ning toetab HTML-i renderdamist.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}
Elementi tüüpi saate muuta, kasutades näiteks as="p"
komponendil.
useTranslation
konksu kasutamine.
Tagastab tõlgitud teksti tavalise stringina. Kasulik näiteks meta
siltides.
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>
);
}
translateEntries
utiliidi kasutamine.
Translateeri stringid serveripoolselt. Tugevda oma OpenGraph pilte.
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)
};
}
Kuidas stringe tõlgitakse
Kui stringid jõuavad meie serveritesse, valideerime ja salvestame need esmalt ning tagastame seejärel kohe masina tõlke. Kuigi masina tõlked on üldiselt madalama kvaliteediga võrreldes meie tehisintellekti tõlgetega, pakuvad need kiiret esmase vastuse.
Samas alustame asünkroonset tõlketööd, et luua teie stringile kvaliteetne ja tipptasemel tehisintellekti tõlge. Kui tehisintellekti tõlge on valmis, asendab see masintõlget ja saadetakse iga kord, kui te küsitlete oma stringide tõlkeid.
Kui olete sõna käsitsi tõlkinud, siis need tõlked on eelisjärjekorras ja tagastatakse selle asemel.
Päritolu kasutamine
TacoTranslate projektid sisaldavad seda, mida me nimetame päritoludeks. Mõelge neile kui sisenemispunktidele, kaustadele või gruppidele teie tekstide ja tõlgete jaoks.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}
Originaalid võimaldavad teil eraldada stringid mõtestatud konteineriteks. Näiteks võiksite ühe originaali kasutada dokumentatsiooni jaoks ja teist turunduslehe jaoks.
Täpsema kontrolli saavutamiseks võiksite määrata originid komponendi tasemel.
Selle saavutamiseks kaaluge oma projektis mitme TacoTranslate pakkuja kasutamist.
Pange tähele, et sama string võib erinevates päritolukohtades saada erinevaid tõlkeid.
Lõppkokkuvõttes sõltub stringide jagamine originiteks sinust ja sinu vajadustest. Kuid pane tähele, et ühe originiga seotud stringide hulga kasv võib suurendada laadimisaegu.
Muutujate käsitlemine
Dünaamilise sisu jaoks, nagu kasutajanimed, kuupäevad, e-posti aadressid ja muud, peaksite alati kasutama muutujaid.
Muutujad stringides deklareeritakse kasutades topeltlõike, näiteks {{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}});
}
HTML-sisu haldamine
Vaikimisi toetab ja renderdab Translate
komponent HTML-sisu. Kuid saate sellest käitumisest loobuda, määrates useDangerouslySetInnerHTML
väärtuseks false
.
HTML-i renderdamise keelamine on tungivalt soovitatav, kui tõlgite usaldusväärsust mitteomavaid sisufragmente, nagu kasutajate loodud sisu.
Kõik väljundid puhastatakse enne kuvamist alati sanitize-html abil.
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}
/>
);
}
Ülaltoodud näide kuvatakse tavalise tekstina.