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 преводът е готов, той ще замени машинния превод и ще бъде изпращан всеки път, когато поискате преводи за вашите низове.

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

Използване на източници

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

import {TacoTranslate} from 'tacotranslate/react';

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

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

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

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

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

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

Работа с променливи

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

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