Utilizando o TacoTranslate
A traduzir cadeias de caracteres
Existem atualmente três formas de traduzir strings: o componente Translate
, o hook useTranslation
ou a utilidade translateEntries
.
Usar o componente Translate
.
Apresenta traduções dentro de um elemento span
, e suporta a renderização de HTML.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}
Pode alterar o tipo de elemento utilizando, por exemplo, as="p"
no componente.
Usar o hook useTranslation
.
Devolve traduções como uma string simples. Útil, por exemplo, em 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>
);
}
Usar a ferramenta translateEntries
.
Traduza cadeias de caracteres no lado do servidor. Turbine as suas imagens 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)
};
}
Como as strings são traduzidas
Quando as strings chegam aos nossos servidores, primeiro validamo-las e guardamo-las, depois retornamos imediatamente uma tradução automática. Embora as traduções automáticas sejam geralmente de qualidade inferior em comparação com as nossas traduções por IA, elas fornecem uma resposta inicial rápida.
Simultaneamente, iniciamos um trabalho de tradução assíncrono para gerar uma tradução de IA de alta qualidade e state-of-the-art para a sua string. Assim que a tradução por IA estiver pronta, substituirá a tradução automática e será enviada sempre que solicitar traduções para as suas strings.
Se tiver traduzido manualmente uma string, essas traduções têm precedência e são retornadas em vez disso.
Utilizar origens
Os projetos TacoTranslate contêm o que chamamos de origens. Pense nelas como pontos de entrada, pastas ou grupos para as suas strings e traduções.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}
As origens permitem-lhe separar as strings em recipientes significativos. Por exemplo, pode ter uma origem para a documentação e outra para a sua página de marketing.
Para um controlo mais detalhado, pode configurar origens ao nível do componente.
Para conseguir isto, considere usar vários fornecedores TacoTranslate no seu projeto.
Por favor, note que a mesma string pode receber traduções diferentes em origens diferentes.
Em última análise, a forma como separa as strings em origens depende de si e das suas necessidades. No entanto, note que ter muitas strings numa única origem pode aumentar os tempos de carregamento.
Gestão de variáveis
Deve usar sempre variáveis para conteúdo dinâmico, como nomes de utilizadores, datas, endereços de e-mail e mais.
As variáveis nas strings são declaradas usando colchetes duplos, 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}});
}
Gestão de conteúdo HTML
Por omissão, o componente Translate
suporta e renderiza conteúdo HTML. No entanto, pode desistir deste comportamento definindo useDangerouslySetInnerHTML
como false
.
Desativar a renderização de HTML é fortemente recomendado ao traduzir conteúdo não confiável, como conteúdo gerado pelos utilizadores.
Toda a saída é sempre sanitizada com sanitize-html antes de ser exibida.
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}
/>
);
}
O exemplo acima será apresentado como texto simples.