TacoTranslate
/
DokumentasjonPrisar
 
  1. Innleiing
  2. Kom i gang
  3. Oppsett og konfigurasjon
  4. Bruke TacoTranslate
  5. Rendering på serversida
  6. Avansert bruk
  7. Beste praksis
  8. Feilhandsaming og feilsøking
  9. Støtta språk

Avansert bruk

Handsaming av språk som skrivast frå høgre til venstre

TacoTranslate gjer det enkelt å støtte språk som skrivast frå høgre til venstre (RTL), som arabisk og hebraisk, i React-applikasjonane dine. Riktig handsaming av RTL-språk sørgjer for at innhaldet ditt blir vist korrekt for brukarar som les frå høgre til venstre.

import {useTacoTranslate} from 'tacotranslate/react';

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

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

Du kan òg bruke den medfølgjande isRightToLeftLocaleCode funksjonen for å sjekke det gjeldande språket utanfor React.

import {isRightToLeftLocaleCode} from 'tacotranslate';

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

Slå av omsetjing

For å deaktivere omsetjing for bestemte delar av ein tekststreng, eller for å sikre at visse delar blir verande uendra, kan du bruke trippel hakeparentesar. Denne funksjonen er nyttig for å bevare den originale formateringa av namn, faguttrykk eller anna innhald som ikkje skal omsetjast.

import {Translate} from 'tacotranslate/react';

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

I dette eksempelet vil ordet “TacoTranslate” halde seg uendra i omsetjinga.

Fleire tilbydarar av TacoTranslate

Vi oppmodar sterkt om å bruke fleire TacoTranslate tilbydarar i appen din. Dette er nyttig for å organisere omsetjingane og tekstane dine i ulike opprinnelsar, som toppteksten, bunnteksten eller bestemte seksjonar.

Du kan lese meir om å nytte originar her.

TacoTranslate tilbydarar arvar innstillingane frå ein overordna tilbydar, så du slepp å gjenta andre innstillingar.

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

Overstyring av opphav eller lokalisering

I tillegg til å bruke fleire TacoTranslate tilbydarar, kan du òg overstyre både origin og locale på Translate komponent- og useTranslation hook-nivå.

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

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

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

Handsaming av innlasting

Når du bytar språk på klientsida, kan det ta nokre augeblikk å hente omsetjingar, avhengig av brukarens tilkopling. Du kan vise ein lastingsindikator for å forbetre brukaropplevinga ved å gi visuell tilbakemelding under språkbytet.

import {useTacoTranslate} from 'tacotranslate/react';

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

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

Fleirtalsformer

For å handtere fleirtalsformer og vise tellebaserte etikettar korrekt på ulike språk, er dette å rekne som god praksis:

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

Fleire språk

For å støtte fleire språk samstundes i den same applikasjonen, kan du bruke fleire TacoTranslate-tilbydarar med ulike locale verdiar som vist nedanfor:

Du kan òg overstyre locale på komponent- eller hook-nivå.

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

Bruk av omsetjings-ID-ar

Du kan legge til ein idTranslate komponenten for å handsame ulike omsetjingar eller tydingar for den same strengen. Dette er særleg nyttig når same tekst krev ulike omsetjingar utifrå konteksten. Ved å tilordne unike ID-ar sørgjer du for at kvar førekomst av strengen blir omsett nøyaktig i samsvar med den spesifikke tydinga.

import {Translate} from 'tacotranslate/react';

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

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

Til dømes kan påloggingen i toppteksten omsetjast til “Iniciar sesión”, og påloggingen i bunnteksten omsetjast til “Acceder” på spansk.

Beste praksis

Eit produkt frå NattskiftetLaga i Noreg