Uso de TacoTranslate
Traducción de cadenas
Actualmente hay tres formas de traducir cadenas: el componente Translate
, el hook useTranslation
, o la utilidad translateEntries
.
Uso del componente Translate
.
Muestra las traducciones dentro de un elemento span
y admite el renderizado de HTML.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}
Puede cambiar el tipo de elemento usando, por ejemplo, as="p"
en el componente.
Uso del useTranslation
hook.
Devuelve las traducciones como una cadena de texto simple. Útil, por ejemplo, en etiquetas 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>
);
}
Uso de la utilidad translateEntries
.
Traduce cadenas en el servidor. Potencia tus imágenes 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)
};
}
Cómo se traducen las cadenas
Cuando las cadenas llegan a nuestros servidores, primero las validamos y las guardamos, y luego devolvemos inmediatamente una traducción automática. Si bien las traducciones automáticas suelen ser de menor calidad en comparación con nuestras traducciones generadas por IA, ofrecen una respuesta inicial rápida.
Simultáneamente, iniciamos un trabajo de traducción asíncrono para generar una traducción de IA de alta calidad y de última generación para tu cadena. Una vez que la traducción de IA esté lista, reemplazará a la traducción automática y se enviará cada vez que solicites traducciones para tus cadenas.
Si ha traducido manualmente una cadena, esas traducciones tienen prioridad y se devolverán en su lugar.
Uso de orígenes
Los proyectos de TacoTranslate contienen lo que llamamos orígenes. Considéralos como puntos de entrada, carpetas o grupos para tus cadenas y traducciones.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}
Los orígenes le permiten separar cadenas en contenedores significativos. Por ejemplo, puede tener un origen para la documentación y otro para su página de marketing.
Para un control más granular, puede configurar orígenes a nivel de componente.
Para lograr esto, considera usar varios proveedores de TacoTranslate en tu proyecto.
Tenga en cuenta que la misma cadena puede recibir traducciones distintas en distintos orígenes.
En última instancia, cómo separes las cadenas en orígenes depende de ti y de tus necesidades. Sin embargo, ten en cuenta que tener muchas cadenas dentro de un mismo origen puede aumentar los tiempos de carga.
Manejo de variables
Siempre debe usar variables para contenido dinámico, como nombres de usuario, fechas, direcciones de correo electrónico y más.
Las variables en las cadenas se declaran usando corchetes dobles, como {{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}});
}
Administrar contenido HTML
Por defecto, el componente Translate
admite y renderiza contenido HTML. Sin embargo, puedes optar por no usar este comportamiento estableciendo useDangerouslySetInnerHTML
en false
.
Se recomienda encarecidamente desactivar el renderizado HTML al traducir contenido no confiable, como el generado por usuarios.
Toda la salida siempre se sanitiza con sanitize-html antes de mostrarse.
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}
/>
);
}
El ejemplo anterior se mostrará como texto plano.