TacoTranslate
/
ДокументацияЦени
 
  1. Въведение
  2. Първи стъпки
  3. Настройка и конфигурация
  4. Използване на TacoTranslate
  5. Сървърно рендериране
  6. Разширено използване
  7. Най-добри практики
  8. Обработка на грешки и отстраняване на грешки
  9. Поддържани езици

Разширено използване

Работа с езици, които се пишат отдясно наляво

TacoTranslate улеснява поддръжката на езици, които се четат от дясно на ляво (RTL), като арабски и иврит, във вашите React приложения. Правилната обработка на RTL езици гарантира, че съдържанието ви се показва правилно на потребителите, които четат от дясно на ляво.

import {useTacoTranslate} from 'tacotranslate/react';

function Document() {
	const {locale, isRightToLeft} = useTacoTranslate();

	return (
		<html lang={locale} dir={isRightToLeft ? 'rtl' : 'ltr'}>
			<body>
				// ...
			</body>
		</html>
	);
}

Можете също така да използвате предоставената функция isRightToLeftLocaleCode за да проверите текущия език извън React.

import {isRightToLeftLocaleCode} from 'tacotranslate';

function foo(locale = 'es') {
	const direction = isRightToLeftLocaleCode(locale) ? 'rtl' : 'ltr';
	// ...
}

Деактивиране на превода

За да изключите превода на определени части от низ или да гарантирате, че някои сегменти ще се запазят без промяна, можете да използвате тройни квадратни скоби. Тази функция е полезна за запазване на оригиналния формат на имена, технически термини или всяко друго съдържание, което не бива да се превежда.

import {Translate} from 'tacotranslate/react';

function Component() {
	return (
		<Translate string="Hello, [[[TacoTranslate]]]!" />
	);
}

В този пример думата “TacoTranslate” ще остане непроменена в превода.

Няколко доставчици на TacoTranslate

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

Можете да прочетете повече за използването на източници тук.

Провайдърите на TacoTranslate наследяват настройките от всеки родителски провайдър, така че няма да се налага да повтаряте други настройки.

import createTacoTranslateClient from 'tacotranslate';
import {TacoTranslate} from 'tacotranslate/react';

const tacoTranslateClient = createTacoTranslateClient({apiKey: 'YOUR_API_KEY'});

function Header() {
	return (
		<TacoTranslate origin="header">
			// ...
		</TacoTranslate>
	);
}

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

export default function App() {
	return (
		<TacoTranslate client={tacoTranslateClient} origin="page" locale="es">
			<Header />
			<Menu />
		</TacoTranslate>
	);
}

Презаписване на origin или locale

Освен използването на множество TacoTranslate доставчици, можете също да презапишете както произхода, така и локала на ниво компонент Translate и ниво хук useTranslation.

import {Translate, useTranslation} from 'tacotranslate/react';

function Greeting() {
	const spanishHello = useTranslation('Hello!', {locale: 'es'});

	return (
		<>
			{spanishHello}
			<Translate string="What’s up?" origin="greeting" />
		</>
	);
}

Управление на зареждането

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

import {useTacoTranslate} from 'tacotranslate/react';

function Component() {
	const {isLoading} = useTacoTranslate();

	return (
		isLoading ? 'Translations are loading...' : null
	);
}

Плюрализиране

За да се обработват правилно множествените форми и да се показват етикети, базирани на брой, на различни езици, това се счита за най-добра практика:

import {Translate, useLocale} from 'tacotranslate/react';

function PhotoCount() {
	const locale = useLocale();
	const count = 1;

	return count === 0 ? (
		<Translate string="You have no photos." />
	) : count === 1 ? (
		<Translate string="You have 1 photo." />
	) : (
		<Translate
			string="You have {{count}} photos."
			variables={{count: count.toLocaleString(locale)}}
		/>
	);
}

Множество езици

За да поддържате няколко езика едновременно в едно и също приложение, можете да използвате няколко доставчика на TacoTranslate с различни locale стойности, както е показано по-долу:

Можете също да презапишете locale на ниво компонент или hook.

import createTacoTranslateClient from 'tacotranslate';
import {TacoTranslate, Translate} from 'tacotranslate/react';

const tacoTranslateClient = createTacoTranslateClient({apiKey: 'YOUR_API_KEY'});

function Spanish() {
	return (
		<TacoTranslate locale="es">
			<Translate string="Hello, world in Spanish!" />
		</TacoTranslate>
	);
}

function Norwegian() {
	return (
		<TacoTranslate locale="no">
			<Translate string="Hello, world in Norwegian!" />
		</TacoTranslate>
	);
}

export default function App() {
	return (
		<TacoTranslate client={tacoTranslateClient} origin="page" locale="es">
			<Spanish />
			<Norwegian />
		</TacoTranslate>
	);
}

Използване на идентификатори за превод

Можете да добавите id към компонента Translate, за да обработвате различни преводи или значения за един и същи текст. Това е особено полезно, когато един и същи текст изисква различни преводи в зависимост от контекста. Чрез присвояване на уникални идентификатори гарантирате, че всяко отделно появяване на текста се превежда точно според конкретното му значение.

import {Translate} from 'tacotranslate/react';

function Header() {
	return (
		<Translate id="header" string="Login" />
	);
}

function Footer() {
	return (
		<Translate id="footer" string="Login" />
	);
}

Например надписът за вход в хедъра може да се преведе като “Iniciar sesión”, а надписът за вход във футъра може да се преведе като “Acceder” на испански.

Най-добри практики

Продукт от NattskiftetПроизведено в Норвегия