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

Если вы вручную перевели строку, эти переводы имеют приоритет и возвращаются вместо этого.

Использование источников

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

import {TacoTranslate} from 'tacotranslate/react';

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

Происхождения позволяют разделять строки на осмысленные контейнеры. Например, вы можете иметь одно происхождение для документации и другое для вашей маркетинговой страницы.

Для более детального контроля вы можете настроить источники на уровне компонента.

Для достижения этого рассмотрите использование нескольких 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