TacoTranslate'i kasutamine
Stringide tõlkimine
Hetkel on olemas kolm võimalust stringide tõlkimiseks: Translate
komponent, useTranslation
konks või translateEntries
utiliit.
Translate
komponendi kasutamine.
Tõlked kuvatakse span
elemendi sees ning toetatakse HTML-i renderdamist.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}
Saate komponendil muuta elemendi tüüpi, kasutades näiteks as="p"
.
useTranslation
hook’i kasutamine.
Tagastab tõlked 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.
Stringide tõlkimine serveripoolselt. Anna oma OpenGraph piltidele lisajõud.
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 esmajärjekorras ning tagastame kohe masintõlke. Kuigi masintõlked on üldiselt madalama kvaliteediga võrreldes meie tehisintellekti tõlgetega, pakuvad need kiiret algvastust.
Samal ajal alustame asünkroonset tõlketööd, et genereerida teie stringi jaoks kõrgekvaliteediline, tipptasemel tehisintellekti tõlge. Kui tehisintellekti tõlge on valmis, asendab see masintõlget ja seda edastatakse alati, kui te palute oma stringidele tõlkeid.
Kui olete käsitsi stringi tõlkinud, siis need tõlked on esmatähtsad ja tagastatakse selle asemel.
Päritolude kasutamine
TacoTranslate projektid sisaldavad seda, mida nimetame allikateks. Mõelge neile kui sisendpunktidele, kaustadele või rühmadele teie stringide ja tõlgete jaoks.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}
Originaadid võimaldavad teil eraldada stringid tähenduslikesse konteineritesse. Näiteks võiksite omada ühte originaadi dokumentatsiooni jaoks ja teist oma turunduslehe jaoks.
Täpsustama juhtimise jaoks võite määrata päritolud komponente tasandil.
Selle saavutamiseks kaalu oma projektis mitme TacoTranslate pakkuja kasutamist.
Palun pange tähele, et sama string võib eri allikates saada erinevaid tõlkeid.
Lõppkokkuvõttes sõltub stringide jagamine originiteks sinust ja sinu vajadustest. Siiski tasub märkida, et ühe originiga paljude stringide olemasolu võib suurendada laadimisaegu.
Muutujate käsitlemine
Dünaamilise sisu jaoks, näiteks kasutajanimed, kuupäevad, e-posti aadressid ja muu, peaksite alati kasutama muutujad.
Muudujad stringides deklareeritakse kahekordsete sulgude abil, 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 kuvab Translate
komponent HTML-sisu. Kuid saate sellest käitumisest loobuda, seades useDangerouslySetInnerHTML
väärtuseks false
.
HTML-i renderdamise keelamine on tungivalt soovitatav, kui tõlgite usaldamatut sisu, näiteks kasutajate loodud sisu.
Kõik väljundid puhastatakse alati enne kuvamist, kasutades sanitize-html.
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 renderdatakse tavalisena tekstina.