Erweiterte Nutzung
Umgang mit Sprachen von rechts nach links
TacoTranslate erleichtert die Unterstützung von Rechts-nach-Links-Sprachen (RTL), wie Arabisch und Hebräisch, in Ihren React-Anwendungen. Die korrekte Handhabung von RTL-Sprachen stellt sicher, dass Ihre Inhalte korrekt für Benutzer angezeigt werden, die von rechts nach links lesen.
import {useTacoTranslate} from 'tacotranslate/react';
function Document() {
const {locale, isRightToLeft} = useTacoTranslate();
return (
<html lang={locale} dir={isRightToLeft ? 'rtl' : 'ltr'}>
<body>
// ...
</body>
</html>
);
}
Sie können auch die bereitgestellte Funktion isRightToLeftLocaleCode
verwenden, um die aktuelle Sprache außerhalb von React zu überprüfen.
import {isRightToLeftLocaleCode} from 'tacotranslate';
function foo(locale = 'es') {
const direction = isRightToLeftLocaleCode(locale) ? 'rtl' : 'ltr';
// ...
}
Übersetzung deaktivieren
Um die Übersetzung für bestimmte Teile eines Strings zu deaktivieren oder um sicherzustellen, dass bestimmte Segmente unverändert bleiben, können Sie dreifache eckige Klammern verwenden. Diese Funktion ist nützlich, um das ursprüngliche Format von Namen, Fachbegriffen oder anderem Inhalt beizubehalten, der nicht übersetzt werden soll.
import {Translate} from 'tacotranslate/react';
function Component() {
return (
<Translate string="Hello, [[[TacoTranslate]]]!" />
);
}
In diesem Beispiel bleibt das Wort „TacoTranslate“ in der Übersetzung unverändert.
Mehrere TacoTranslate-Anbieter
Wir empfehlen dringend, mehrere TacoTranslate
Provider in Ihrer App zu verwenden. Dies ist nützlich, um Ihre Übersetzungen und Strings in verschiedene Ursprünge wie Kopfzeile, Fußzeile oder bestimmte Abschnitte zu organisieren.
Sie können hier mehr über die Nutzung von Origins lesen.
TacoTranslate
Provider erben Einstellungen von jedem übergeordneten Provider, sodass Sie keine anderen Einstellungen wiederholen müssen.
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>
);
}
Überschreiben von Ursprung oder Gebietsschema
Zusätzlich zur Verwendung mehrerer TacoTranslate
Provider können Sie auch sowohl Origin als auch Locale auf der Ebene der Translate
Komponente und des useTranslation
Hooks überschreiben.
import {Translate, useTranslation} from 'tacotranslate/react';
function Greeting() {
const spanishHello = useTranslation('Hello!', {locale: 'es'});
return (
<>
{spanishHello}
<Translate string="What’s up?" origin="greeting" />
</>
);
}
Laden handhaben
Beim Wechseln der Sprache auf der Client-Seite kann das Laden der Übersetzungen je nach Verbindung des Nutzers einige Augenblicke dauern. Sie können einen Ladeindikator anzeigen, um die Benutzererfahrung zu verbessern, indem Sie während des Wechsels visuelles Feedback bereitstellen.
import {useTacoTranslate} from 'tacotranslate/react';
function Component() {
const {isLoading} = useTacoTranslate();
return (
isLoading ? 'Translations are loading...' : null
);
}
Pluralisierung
Um Pluralformen zu handhaben und zahlenabhängige Bezeichnungen in verschiedenen Sprachen korrekt anzuzeigen, gilt dies als bewährte Praxis:
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)}}
/>
);
}
Mehrere Sprachen
Um mehrere Sprachen gleichzeitig innerhalb derselben Anwendung zu unterstützen, können Sie mehrere TacoTranslate
Provider mit unterschiedlichen locale
Werten verwenden, wie unten gezeigt:
Sie können auch die locale
auf Komponenten- oder Hook-Ebene überschreiben.
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>
);
}
Verwendung von Übersetzungs-IDs
Sie können dem Translate
Komponenten ein id
hinzufügen, um unterschiedliche Übersetzungen oder Bedeutungen für denselben Textstring zu verwalten. Dies ist besonders nützlich, wenn derselbe Text je nach Kontext unterschiedlich übersetzt werden muss. Durch die Vergabe einzigartiger IDs stellen Sie sicher, dass jede Instanz des Strings entsprechend ihrer spezifischen Bedeutung korrekt übersetzt wird.
import {Translate} from 'tacotranslate/react';
function Header() {
return (
<Translate id="header" string="Login" />
);
}
function Footer() {
return (
<Translate id="footer" string="Login" />
);
}
Zum Beispiel könnte der Header-Login mit „Iniciar sesión“ und der Footer-Login mit „Acceder“ auf Spanisch übersetzt werden.