TacoTranslate
/
DokumentacjaCennik
 
  1. Wprowadzenie
  2. Pierwsze kroki
  3. Konfiguracja i ustawienia
  4. Korzystanie z TacoTranslate
  5. Renderowanie po stronie serwera
  6. Zaawansowane użycie
  7. Najlepsze praktyki
  8. Obsługa błędów i debugowanie
  9. Obsługiwane języki

Zaawansowane użycie

Obsługa języków pisanych od prawej do lewej

TacoTranslate ułatwia obsługę języków zapisywanych od prawej do lewej (RTL), takich jak arabski i hebrajski, w aplikacjach React. Poprawne obsłużenie języków RTL zapewnia, że Twoje treści będą wyświetlane prawidłowo dla użytkowników czytających od prawej do lewej.

import {useTacoTranslate} from 'tacotranslate/react';

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

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

Możesz także użyć dostarczonej funkcji isRightToLeftLocaleCode do sprawdzenia bieżącego języka poza React.

import {isRightToLeftLocaleCode} from 'tacotranslate';

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

Wyłączanie tłumaczenia

Aby wyłączyć tłumaczenie określonych części ciągu lub upewnić się, że niektóre fragmenty zostaną zachowane bez zmian, możesz użyć potrójnych nawiasów kwadratowych. Funkcja ta jest przydatna do zachowania oryginalnego formatu nazw, terminów technicznych lub innych treści, które nie powinny być tłumaczone.

import {Translate} from 'tacotranslate/react';

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

W tym przykładzie słowo „TacoTranslate” pozostanie niezmienione w tłumaczeniu.

Wielu dostawców TacoTranslate

Gorąco zachęcamy do korzystania z wielu TacoTranslate providerów w Twojej aplikacji. Przydaje się to do organizowania tłumaczeń i tekstów w różnych źródłach, takich jak nagłówek, stopka czy określone sekcje.

Możesz przeczytać więcej o korzystaniu z originów tutaj.

TacoTranslate dostawcy dziedziczą ustawienia od dowolnego nadrzędnego dostawcy, więc nie trzeba będzie powtarzać żadnych innych ustawień.

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

Nadpisywanie źródła lub lokalizacji

Oprócz używania wielu TacoTranslate providerów, możesz także nadpisać zarówno origin, jak i locale na poziomie komponentu Translate oraz hooka useTranslation.

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

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

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

Obsługa ładowania

Przy zmianie języka po stronie klienta pobieranie tłumaczeń może potrwać kilka chwil, w zależności od połączenia użytkownika. Możesz wyświetlić wskaźnik ładowania, aby poprawić doświadczenie użytkownika, zapewniając wizualną informację zwrotną podczas przełączania.

import {useTacoTranslate} from 'tacotranslate/react';

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

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

Pluralizacja

Aby poprawnie obsługiwać pluralizację i wyświetlanie etykiet zależnych od liczby w różnych językach, uważa się to za najlepszą praktykę:

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

Wiele języków

Aby obsługiwać jednocześnie wiele języków w tej samej aplikacji, możesz użyć wielu dostawców TacoTranslate z różnymi wartościami locale, jak pokazano poniżej:

Możesz również nadpisać locale na poziomie komponentu lub hooka.

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

Korzystanie z identyfikatorów tłumaczeń

Możesz dodać id do komponentu Translate w celu obsługi różnych tłumaczeń lub znaczeń tej samej frazy. Jest to szczególnie przydatne, gdy ten sam tekst wymaga różnych tłumaczeń w zależności od kontekstu. Przypisując unikatowe identyfikatory, zapewniasz, że każde wystąpienie tej frazy zostanie przetłumaczone dokładnie zgodnie z jej konkretnym znaczeniem.

import {Translate} from 'tacotranslate/react';

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

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

Na przykład, logowanie w nagłówku może zostać przetłumaczone jako “Iniciar sesión”, a logowanie w stopce może zostać przetłumaczone jako “Acceder” po hiszpańsku.

Najlepsze praktyki

Produkt od NattskiftetWyprodukowano w Norwegii