Erweiterte Verwendung
Umgang mit rechts-nach-links-Sprachen
TacoTranslate erleichtert die Unterstützung von Sprachen mit Schreibrichtung von rechts nach links (RTL), wie Arabisch und Hebräisch, in Ihren React-Anwendungen. Eine korrekte Handhabung von RTL‑Sprachen sorgt dafür, dass Ihre Inhalte für Nutzer, die von rechts nach links lesen, korrekt dargestellt werden.
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 bestimmter Teile eines Strings zu deaktivieren oder 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 anderen Inhalten beizubehalten, die nicht übersetzt werden sollen.
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, in Ihrer App mehrere TacoTranslate Provider zu verwenden. Das ist nützlich, um Ihre Übersetzungen und Strings in verschiedene Origins zu organisieren, z. B. Ihre Kopfzeile, Fußzeile oder bestimmte Abschnitte.
Sie können hier mehr darüber lesen, wie man Origins verwendet.
TacoTranslate Provider übernehmen Einstellungen von jedem übergeordneten Provider, sodass Sie keine weiteren 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>
);
}Origin oder Locale überschreiben
Zusätzlich zur Verwendung mehrerer TacoTranslate Provider können Sie außerdem sowohl origin als auch locale auf Komponenten- und Hook-Ebene von Translate und useTranslation überschreiben.
import {Translate, useTranslation} from 'tacotranslate/react';
function Greeting() {
const spanishHello = useTranslation('Hello!', {locale: 'es'});
return (
<>
{spanishHello}
<Translate string="What’s up?" origin="greeting" />
</>
);
}Umgang mit dem Ladevorgang
Beim Wechsel der Sprache auf der Client-Seite kann das Laden der Übersetzungen je nach Verbindung des Nutzers einige Augenblicke dauern. Sie können eine Ladeanzeige einblenden, um die Nutzererfahrung zu verbessern, indem Sie während des Wechsels visuelles Feedback geben.
import {useTacoTranslate} from 'tacotranslate/react';
function Component() {
const {isLoading} = useTacoTranslate();
return (
isLoading ? 'Translations are loading...' : null
);
}Pluralisierung
Um die Pluralisierung 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 wie unten gezeigt verwenden:
Sie können auch das 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 der Translate Komponente eine id hinzufügen, um unterschiedliche Übersetzungen oder Bedeutungen desselben Strings zu ermöglichen. Das ist besonders nützlich, wenn derselbe Text je nach Kontext unterschiedlich übersetzt werden muss. Indem Sie eindeutige IDs zuweisen, sorgen Sie dafür, 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" />
);
}Beispielsweise könnte der Login im Header als „Iniciar sesión“ und der Login im Footer als „Acceder“ ins Spanische übersetzt werden.