Naudojant TacoTranslate
Vertimas eilutėmis
Šiuo metu yra trys būdai versti eilutes: Translate
komponentas, useTranslation
kabliukas arba translateEntries
įrankis.
Naudojant Translate
komponentą.
Išveda vertimus span
elemente ir palaiko HTML atvaizdavimą.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}
Galite pakeisti elemento tipą naudodami, pavyzdžiui, as="p"
komponentą.
Naudojant useTranslation
kabliuką.
Grąžina vertimus kaip paprastą tekstą. Naudinga, pavyzdžiui, meta
žymėse.
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>
);
}
Naudojant translateEntries
įrankį.
Išverskite tekstus serveryje. Patobulinkite savo OpenGraph vaizdus.
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)
};
}
Kaip verčiami tekstai
Kai tekstai pasiekia mūsų serverius, mes juos pirmiausia patikriname ir išsaugome, tada iš karto grąžiname mašininį vertimą. Nors mašininių vertimų kokybė paprastai yra žemesnė nei mūsų dirbtinio intelekto vertimų, jie suteikia greitą pradininį atsaką.
Vienu metu mes paleidžiame asinchroninį vertimo užduotį, kad sugeneruotume aukštos kokybės, modernų AI vertimą jūsų tekstui. Kai AI vertimas bus paruoštas, jis pakeis mašininį vertimą ir bus siunčiamas kiekvieną kartą, kai prašysite savo tekstų vertimų.
Jei rankiniu būdu išvertėte tekstą, šie vertimai turi pirmenybę ir yra grąžinami vietoje to.
Naudojant šaltinius
TacoTranslate projektuose yra tai, ką mes vadiname šaltiniais. Galvokite apie juos kaip įėjimo taškus, aplankus arba grupes jūsų eilutėms ir vertimams.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}
Originais leidžia atskirti tekstus į prasmingas talpyklas. Pavyzdžiui, galite turėti vieną originą dokumentacijai ir kitą – savo rinkodaros puslapiui.
Dėl tikslesnės kontrolės, galite sukonfigūruoti origins komponento lygyje.
Norėdami tai pasiekti, apsvarstykite galimybę naudoti kelis TacoTranslate tiekėjus jūsų projekte.
Atkreipkite dėmesį, kad ta pati eilutė gali turėti skirtingus vertimus skirtingose origin vietose.
Galų gale, kaip jūs atskirsite tekstines eilutes į originus, priklauso nuo jūsų ir jūsų poreikių. Tačiau atkreipkite dėmesį, kad daug tekstinių eilučių viename origine gali padidinti įkėlimo laiką.
Kintamųjų tvarkymas
Jūs visada turėtumėte naudoti kintamuosius dinamiškai turiniui, pvz., vartotojų vardams, datoms, el. pašto adresams ir kt.
Kintamieji eilutėse deklaruojami naudojant dvigubas skliaustus, pavyzdžiui {{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 turinio valdymas
Pagal nutylėjimą, komponentas Translate
palaiko ir atvaizduoja HTML turinį. Tačiau galite atsisakyti šio elgesio nustatydami useDangerouslySetInnerHTML
į false
.
HTML atvaizdavimą išjungti labai rekomenduojama verčiant nepataikytą turinį, pavyzdžiui, naudotojų sukurtą turinį.
Visa išvestis visada yra išvaloma naudojant sanitize-html prieš pateikiant ją.
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}
/>
);
}
Aukščiau pateiktas pavyzdys bus pateiktas kaip paprastas tekstas.