Ús de TacoTranslate
Traducció de cadenes
Actualment hi ha tres maneres de traduir cadenes: el component Translate
, el hook useTranslation
, o la utilitat translateEntries
.
Ús del component Translate
.
Mostra les traduccions dins d'un element span
, i admet el renderitzat d'HTML.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}
Pots canviar el tipus d'element utilitzant, per exemple, as="p"
al component.
Ús del useTranslation
hook.
Retorna les traduccions com una cadena de text simple. Útil, per exemple, en etiquetes meta
.
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>
);
}
Ús de la utilitat translateEntries
.
Traduir cadenes al servidor. Potencia les teves imatges OpenGraph.
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)
};
}
Com es tradueixen les cadenes
Quan les cadenes arriben als nostres servidors, primer les validem i les desem, i després retornem immediatament una traducció automàtica. Tot i que les traduccions automàtiques generalment són de qualitat inferior respecte a les nostres traduccions d'IA, proporcionen una resposta inicial ràpida.
Simultàniament, iniciem una tasca de traducció asíncrona per generar una traducció d'IA d'alta qualitat i d'última generació per a la teva cadena. Un cop la traducció d'IA estigui llesta, substituirà la traducció automàtica i s'enviarà cada vegada que sol·licitis traduccions per a les teves cadenes.
Si heu traduït manualment una cadena, aquestes traduccions tenen preferència i són les que es retornen.
Utilitzar orígens
Els projectes de TacoTranslate contenen allò que anomenem orígens. Considereu-los com punts d'entrada, carpetes o grups per a les vostres cadenes i traduccions.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}
Els orígens us permeten separar les cadenes en contenidors significatius. Per exemple, podríeu tenir un origen per a la documentació i un altre per a la vostra pàgina de màrqueting.
Per a un control més granular, podries configurar orígens a nivell del component.
Per aconseguir-ho, considereu utilitzar diversos TacoTranslate proveïdors dins del vostre projecte.
Tingueu en compte que la mateixa cadena pot tenir traduccions diferents segons l'origen.
En última instància, com separis les cadenes en orígens depèn de tu i de les teves necessitats. Tot i això, tingues en compte que tenir moltes cadenes dins d'un mateix origen pot augmentar els temps de càrrega.
Gestió de variables
Sempre cal utilitzar variables per al contingut dinàmic, com ara els noms d'usuari, les dates, les adreces de correu electrònic i més.
Les variables dins de les cadenes es declaren amb dobles claudàtors, com {{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}});
}
Gestió del contingut HTML
Per defecte, el component Translate
admet i mostra contingut HTML. Tot i això, pots desactivar aquest comportament establint useDangerouslySetInnerHTML
a false
.
Es recomana fermament desactivar la renderització HTML quan es tradueix contingut no fiable, com ara contingut generat per usuaris.
Tota la sortida sempre està sanejada amb sanitize-html abans de ser renderitzada.
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}
/>
);
}
L'exemple anterior es mostrarà com a text pla.