TacoTranslate gebruiken
Strings vertalen
Er zijn momenteel drie manieren om strings te vertalen: de Translate component, de useTranslation hook, of het translateEntries hulpprogramma.
Het gebruik van de Translate component.
Toont vertalingen binnen een span element en ondersteunt het renderen van HTML.
import {Translate} from 'tacotranslate/react';
function Page() {
return <Translate string="Hello, world!" />;
}Je kunt het elementtype wijzigen door bijvoorbeeld as="p" op de component te gebruiken.
Gebruik van de useTranslation hook.
Geeft vertalingen terug als een gewone string. Handig in bijvoorbeeld meta tags.
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>
);
}Het gebruik van de translateEntries hulpprogramma.
Vertaal strings op de server. Geef je OpenGraph afbeeldingen een boost.
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)
};
}Hoe strings worden vertaald
Wanneer strings onze servers bereiken, valideren en slaan we ze eerst op, en geven we vervolgens onmiddellijk een machinevertaling terug. Hoewel machinevertalingen over het algemeen van lagere kwaliteit zijn dan onze AI-vertalingen, bieden ze een snelle eerste reactie.
Tegelijkertijd starten we een asynchrone vertaaltaak om een hoogwaardige, geavanceerde AI-vertaling voor uw string te genereren. Zodra de AI-vertaling klaar is, vervangt deze de machinevertaling en wordt ze verzonden telkens wanneer u vertalingen voor uw strings opvraagt.
Als je een string handmatig hebt vertaald, krijgen die vertalingen voorrang en worden ze in plaats daarvan teruggegeven.
Origins gebruiken
TacoTranslate-projecten bevatten wat we origins noemen. Beschouw ze als toegangspunten, mappen of groepen voor uw strings en vertalingen.
import {TacoTranslate} from 'tacotranslate/react';
function Menu() {
return (
<TacoTranslate origin="application-menu">
// ...
</TacoTranslate>
);
}Origins stelt u in staat om strings in betekenisvolle containers te scheiden. U kunt bijvoorbeeld één origin hebben voor de documentatie en een andere voor uw marketingpagina.
Voor meer fijnmazige controle kun je origins op componentniveau instellen.
Om dit te bereiken, overweeg het gebruik van meerdere TacoTranslate aanbieders binnen uw project.
Houd er rekening mee dat dezelfde string in verschillende origins verschillende vertalingen kan krijgen.
Uiteindelijk bepaal je zelf hoe je strings in origins indeelt, afhankelijk van je behoeften. Houd er echter rekening mee dat veel strings in één origin de laadtijden kunnen verhogen.
Werken met variabelen
Je moet altijd variabelen gebruiken voor dynamische inhoud, zoals gebruikersnamen, datums, e-mailadressen en meer.
Variabelen in strings worden gedeclareerd met dubbele accolades, zoals {{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-inhoud beheren
Standaard ondersteunt en rendert de Translate component HTML-inhoud. U kunt dit gedrag echter uitschakelen door useDangerouslySetInnerHTML op false te zetten.
Het uitschakelen van HTML-rendering wordt ten zeerste aanbevolen bij het vertalen van niet-vertrouwde inhoud, zoals door gebruikers gegenereerde inhoud.
Alle uitvoer wordt altijd geschoond met sanitize-html voordat het wordt weergegeven.
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}
/>
);
}Het bovenstaande voorbeeld wordt als platte tekst weergegeven.