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

Как переводятся строки

Когда строки поступают на наши серверы, мы сначала проверяем и сохраняем их, затем немедленно возвращаем машинный перевод. Хотя машинные переводы обычно по качеству уступают нашим ИИ-переводам, они обеспечивают быстрый первоначальный ответ.

Одновременно мы инициируем асинхронную задачу перевода, чтобы сгенерировать высококачественный, передовой ИИ-перевод для вашей строки. Как только ИИ-перевод будет готов, он заменит машинный перевод и будет отправляться всякий раз, когда вы запрашиваете переводы ваших строк.

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

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

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

import {TacoTranslate} from 'tacotranslate/react';

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

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

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

Чтобы добиться этого, рассмотрите возможность использования нескольких провайдеров 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Сделано в Норвегии