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-перекладами, вони забезпечують швидку початкову відповідь.

Одночасно ми запускаємо асинхронне завдання перекладу, щоб згенерувати високоякісний, найсучасніший ШІ-переклад для вашого рядка. Як тільки ШІ-переклад буде готовий, він замінить машинний переклад і надсилатиметься щоразу, коли ви запитуєте переклади своїх рядків.

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

Використання джерел

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

import {TacoTranslate} from 'tacotranslate/react';

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

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

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

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

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

Зрештою, як ви розподілите рядки між 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Зроблено в Норвегії