Usando TacoTranslate

Traducción de cadenas

Actualmente hay tres formas de traducir cadenas: El componente Translate, el hook useTranslation o la utilidad translateEntries.


Usando el componente Translate.
Produce traducciones dentro de un elemento span, y soporta 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.


Usando el hook useTranslation.
Devuelve 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>
	);
}

Usando la utilidad translateEntries.
Traduce cadenas en el lado del 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 guardamos, luego devolvemos inmediatamente una traducción automática. Aunque las traducciones automáticas suelen ser de calidad inferior en comparación con nuestras traducciones de IA, proporcionan una respuesta inicial rápida.

Simultáneamente, iniciamos un trabajo de traducción asincrónica para generar una traducción de alta calidad y de vanguardia con IA para tu cadena. Una vez que la traducción con IA esté lista, reemplazará a la traducción automática y se enviará cada vez que solicites traducciones para tus cadenas.

Si ha traducido una cadena manualmente, esas traducciones tienen prioridad y se devuelven en su lugar.

Utilizando orígenes

Los proyectos de TacoTranslate contienen lo que llamamos orígenes. Piénsalos 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 te permiten separar cadenas en contenedores significativos. Por ejemplo, podrías tener un origen para la documentación y otro para tu página de marketing.

Para un control más detallado, podrías configurar los origins a nivel de componente.

Para lograr esto, considere usar múltiples proveedores de TacoTranslate dentro de su proyecto.

Tenga en cuenta que la misma cadena puede recibir traducciones diferentes en distintos orígenes.

En última instancia, cómo separas las cadenas en orígenes depende de ti y de tus necesidades. Sin embargo, ten en cuenta que tener muchas cadenas dentro de un solo origen puede aumentar los tiempos de carga.

Manejo de variables

Siempre debes 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 doble corchete, 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}});
}

Gestión de contenido HTML

Por defecto, el componente Translate soporta y renderiza contenido HTML. Sin embargo, puedes optar por no usar este comportamiento configurando useDangerouslySetInnerHTML a false.

Se recomienda encarecidamente desactivar la renderización de HTML al traducir contenido no confiable, como contenido generado por usuarios.

Todos los resultados siempre se sanitizan 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 renderizará como texto sin formato.

Un producto de NattskiftetHecho en Noruega