TacoTranslate
/
ДокументацияЦени
 
  1. Въведение
  2. Започване
  3. Настройка и конфигурация
  4. Използване на TacoTranslate
  5. Рендиране от страна на сървъра
  6. Разширено използване
  7. Най-добри практики
  8. Обработка на грешки и дебъгване
  9. Поддържани езици

Използване на TacoTranslate

Превеждане на низове

В момента има три начина за превод на низове: компонента Translate, кукичката useTranslation или помощната програма translateEntries.


Използване на компонента Translate.
Извежда преводите в елемент span, и поддържа рендиране на HTML.

import {Translate} from 'tacotranslate/react';

function Page() {
	return <Translate string="Hello, world!" />;
}

Можете да смените типа на елемента, като използвате например as="p" върху компонента.


Използване на useTranslation hook.
Връща преводите като обикновен низ. Полезно, например, в 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>
	);
}

Използване на инструмента translateEntries.
Превежда низове на страна на сървъра. Подсилете вашите 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)
	};
}

Как се превеждат низовете

Когато низовете достигнат нашите сървъри, първо ги валидираме и запазваме, след което незабавно връщаме машинен превод. Въпреки че машинните преводи обикновено са с по-ниско качество в сравнение с нашите AI преводи, те осигуряват бърз първоначален отговор.

Едновременно с това стартираме асинхронна задача за превод, за да генерираме висококачествен, съвременен AI превод на вашия низ. След като AI преводът е готов, той ще замени машинния превод и ще бъде изпращан всеки път, когато поискате преводи за вашите низове.

Ако сте превели низ ръчно, тези преводи имат предимство и се връщат вместо това.

Използване на origins

Проектите на TacoTranslate съдържат това, което наричаме origins. Можете да ги разглеждате като входни точки, папки или групи за вашите низове и преводи.

import {TacoTranslate} from 'tacotranslate/react';

function Menu() {
	return (
		<TacoTranslate origin="application-menu">
			// ...
		</TacoTranslate>
	);
}

Origins ви позволяват да разделяте низове в смислени контейнери. Например, можете да имате един origin за документация и друг за вашата маркетингова страница.

За по-прецизен контрол, можете да настроите origins на ниво компонент.

За да постигнете това, обмислете използването на няколко TacoTranslate доставчика във вашия проект.

Моля, имайте предвид, че един и същ низ може да получи различни преводи в различни източници.

В крайна сметка, как разделяте низовете в източници зависи от вас и вашите нужди. Въпреки това, имайте предвид, че наличието на много низове в един източник може да увеличи времето за зареждане.

Обработка на променливи

Винаги трябва да използвате променливи за динамично съдържание, като потребителски имена, дати, имейл адреси и други.

Променливите в низовете се декларират с двойни скоби, като {{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 съдържание

По подразбиране компонентът Translate поддържа и изобразява HTML съдържание. Въпреки това, можете да се откажете от това поведение, като зададете useDangerouslySetInnerHTML на false.

Препоръчва се силно да изключите рендирането на HTML при превод на ненадеждно съдържание, като например съдържание, генерирано от потребители.

Целият изход винаги се почиства с помощта на sanitize-html преди да бъде изобразен.

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}
		/>
	);
}

Горното примерче ще бъде изобразено като обикновен текст.

Рендиране от страна на сървъра

Продукт от NattskiftetПроизведено в Норвегия