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.
Повертає переклади у вигляді простого рядка. Корисно, наприклад, у 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-переклад буде готовий, він замінить машинний переклад і надсилатиметься щоразу, коли ви запитуєте переклади для ваших рядків.

Якщо ви вручну переклали рядок, ці переклади мають пріоритет і повертаються замість інших.

Використання origins

Проекти TacoTranslate містять те, що ми називаємо джерелами. Розглядайте їх як точки входу, папки або групи для ваших рядків і перекладів.

import {TacoTranslate} from 'tacotranslate/react';

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

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

Для більш деталізованого керування ви можете налаштувати origins на рівні компонента.

Для цього розгляньте можливість використання кількох провайдерів TacoTranslate у вашому проєкті.

Будь ласка, зверніть увагу, що одна й та сама рядок може отримувати різні переклади в різних origins.

Зрештою, як розподіляти рядки по origins — вирішуєте ви відповідно до ваших потреб. Проте зверніть увагу, що наявність багатьох рядків в одному 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