TacoTranslate
/
DocumentazionePrezzi
 
  1. Introduzione
  2. Iniziare
  3. Configurazione e impostazioni
  4. Utilizzo di TacoTranslate
  5. Rendering lato server
  6. Uso avanzato
  7. Migliori pratiche
  8. Gestione degli errori e debugging
  9. Lingue supportate

Uso avanzato

Gestione delle lingue da destra a sinistra

TacoTranslate rende semplice supportare le lingue da destra a sinistra (RTL), come l'arabo e l'ebraico, nelle tue applicazioni React. La corretta gestione delle lingue RTL garantisce che i tuoi contenuti vengano visualizzati correttamente per gli utenti che leggono da destra a sinistra.

import {useTacoTranslate} from 'tacotranslate/react';

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

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

Puoi anche utilizzare la funzione fornita isRightToLeftLocaleCode per verificare la lingua attuale al di fuori di React.

import {isRightToLeftLocaleCode} from 'tacotranslate';

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

Disabilitazione della traduzione

Per disabilitare la traduzione di parti specifiche di una stringa o per assicurarsi che determinati segmenti vengano mantenuti così come sono, è possibile utilizzare le triple parentesi quadre. Questa funzione è utile per mantenere il formato originale di nomi, termini tecnici o qualsiasi altro contenuto che non dovrebbe essere tradotto.

import {Translate} from 'tacotranslate/react';

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

In questo esempio, la parola “TacoTranslate” rimarrà invariata nella traduzione.

Più provider TacoTranslate

Raccomandiamo vivamente di utilizzare più provider TacoTranslate nella tua app. Questo è utile per organizzare le tue traduzioni e stringhe in origini diverse, come l'intestazione, il piè di pagina o sezioni specifiche.

Puoi leggere di più su come utilizzare le origini qui.

I provider di TacoTranslate ereditano le impostazioni da qualsiasi provider genitore, quindi non dovrai ripetere altre configurazioni.

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

Sovrascrivere origin o locale

Oltre a utilizzare più provider TacoTranslate, puoi anche sovrascrivere sia l’origine che la localizzazione nei livelli del componente Translate e del hook useTranslation.

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

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

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

Gestire il caricamento

Quando si cambia lingua sul lato client, il recupero delle traduzioni potrebbe richiedere qualche istante a seconda della connessione dell’utente. Puoi visualizzare un indicatore di caricamento per migliorare l’esperienza utente fornendo un feedback visivo durante la transizione.

import {useTacoTranslate} from 'tacotranslate/react';

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

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

Pluralizzazione

Per gestire correttamente la pluralizzazione e visualizzare le etichette basate sul conteggio nelle diverse lingue, questa è considerata una buona pratica:

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

Più lingue

Per supportare più lingue contemporaneamente all'interno della stessa applicazione, puoi utilizzare più provider TacoTranslate con valori locale diversi come mostrato di seguito:

Puoi anche sovrascrivere la locale a livello di componente o 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>
	);
}

Utilizzo degli ID di traduzione

Puoi aggiungere un id al componente Translate per gestire diverse traduzioni o significati per la stessa stringa. Questo è particolarmente utile quando lo stesso testo richiede traduzioni differenti in base al contesto. Assegnando ID unici, ti assicuri che ogni istanza della stringa venga tradotta accuratamente in base al suo significato specifico.

import {Translate} from 'tacotranslate/react';

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

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

Ad esempio, il login dell'intestazione potrebbe tradursi in “Iniciar sesión”, e il login del piè di pagina potrebbe tradursi in “Acceder” in spagnolo.

Migliori pratiche

Un prodotto di NattskiftetRealizzato in Norvegia