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 renderinimą.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}
Elemento tipą galite pakeisti, pavyzdžiui, naudodami as="p"
komponente.
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 eilutes serveryje. Pagerinkite 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 eilutės pasiekia mūsų serverius, mes jas pirmiausia patikriname ir išsaugome, tuomet nedelsdami pateikiame mašininį vertimą. Nors mašininių vertimų kokybė paprastai yra žemesnė nei mūsų dirbtinio intelekto vertimų, jie suteikia greitą pradinį atsakymą.
Tuo pačiu metu mes pradedame asinchroninį vertimo užduotį, kad sugeneruotume aukštos kokybės, pažangų AI vertimą jūsų eilutei. Kai AI vertimas bus paruoštas, jis pakeis mašininį vertimą ir bus siunčiamas kiekvieną kartą, kai prašysite savo eilučių vertimų.
Jei rankiniu būdu išvertėte tekstą, šie vertimai turi pirmenybę ir yra grąžinami vietoj kitų.
Naudojant šaltinius
TacoTranslate projektuose yra tai, ką mes vadiname šaknimis. Galvokite apie jas kaip įėjimo taškus, aplankus ar grupes jūsų tekstams ir vertimams.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}
Originios leidžia jums atskirti tekstus į prasmingas grupes. Pavyzdžiui, galite turėti vieną originą dokumentacijai ir kitą savo rinkodaros puslapiui.
Dėl tikslesnės kontrolės galite nustatyti originus komponento lygyje.
Norint to pasiekti, apsvarstykite galimybę naudoti kelis TacoTranslate teikėjus savo projekte.
Atkreipkite dėmesį, kad tas pats tekstas gali gauti skirtingus vertimus skirtinguose šaltiniuose.
Galutiniame rezultate, kaip jūs atskiriate eilutes į šaltinius, priklauso nuo jūsų ir jūsų poreikių. Tačiau atkreipkite dėmesį, kad daug eilutžių viename šaltinyje gali padidinti įkėlimo laiką.
Kintamųjų tvarkymas
Jūs visada turėtumėte naudoti kintamuosius dinaminei informacijai, pavyzdžiui, vartotojų vardams, datoms, el. pašto adresams ir pan.
Kintamieji eilutėse deklaruojami naudojant dvigubas skliausteles, 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ą Translate
komponentas palaiko ir pateikia HTML turinį. Tačiau galite atsisakyti šio elgesio nustatydami useDangerouslySetInnerHTML
į false
.
HTML atvaizdavimo išjungimas yra labai rekomenduojamas, kai verčiate nepatikimą turinį, pavyzdžiui, vartotojų sukurtą turinį.
Visas išvestis visada yra išvaloma naudojant sanitize-html prieš pateikiant.
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 atvaizduotas kaip paprastas tekstas.