Utilisation avancée
Prise en charge des langues de droite à gauche
TacoTranslate facilite la prise en charge des langues s'écrivant de droite à gauche (RTL), comme l'arabe et l'hébreu, dans vos applications React. Une gestion adéquate des langues RTL garantit que votre contenu s'affiche correctement pour les utilisateurs qui lisent de droite à gauche.
import {useTacoTranslate} from 'tacotranslate/react';
function Document() {
const {locale, isRightToLeft} = useTacoTranslate();
return (
<html lang={locale} dir={isRightToLeft ? 'rtl' : 'ltr'}>
<body>
// ...
</body>
</html>
);
}Vous pouvez également utiliser la fonction fournie isRightToLeftLocaleCode pour vérifier la langue courante en dehors de React.
import {isRightToLeftLocaleCode} from 'tacotranslate';
function foo(locale = 'es') {
const direction = isRightToLeftLocaleCode(locale) ? 'rtl' : 'ltr';
// ...
}Désactivation de la traduction
Pour désactiver la traduction de parties spécifiques d'une chaîne ou pour garantir que certains segments soient conservés tels quels, vous pouvez utiliser des crochets carrés triples. Cette fonctionnalité est utile pour préserver le format original des noms, des termes techniques ou de tout autre contenu qui ne doit pas être traduit.
import {Translate} from 'tacotranslate/react';
function Component() {
return (
<Translate string="Hello, [[[TacoTranslate]]]!" />
);
}Dans cet exemple, le mot “TacoTranslate” restera inchangé dans la traduction.
Plusieurs fournisseurs de TacoTranslate
Nous recommandons fortement d'utiliser plusieurs TacoTranslate fournisseurs dans votre application. Cela permet d'organiser vos traductions et vos chaînes de caractères en différentes origines, comme votre en-tête, votre pied de page ou des sections spécifiques.
Vous pouvez en savoir plus sur l'utilisation des origines ici.
Les fournisseurs TacoTranslate héritent des paramètres de leur fournisseur parent, vous n'aurez donc pas à répéter ces paramètres.
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>
);
}Remplacer l'origine ou la locale
En plus d'utiliser plusieurs fournisseurs TacoTranslate, vous pouvez également remplacer à la fois l'origine et la locale aux niveaux du composant Translate et du 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" />
</>
);
}Gestion du chargement
Lors du changement de langue côté client, le chargement des traductions peut prendre quelques instants en fonction de la connexion de l’utilisateur. Vous pouvez afficher un indicateur de chargement pour améliorer l’expérience utilisateur en offrant un retour visuel durant la transition.
import {useTacoTranslate} from 'tacotranslate/react';
function Component() {
const {isLoading} = useTacoTranslate();
return (
isLoading ? 'Translations are loading...' : null
);
}Pluralisation
Pour gérer la pluralisation et afficher correctement des étiquettes basées sur le nombre dans différentes langues, il est recommandé de procéder ainsi :
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)}}
/>
);
}Plusieurs langues
Pour prendre en charge plusieurs langues simultanément dans la même application, vous pouvez utiliser plusieurs fournisseurs TacoTranslate avec différentes valeurs de locale comme indiqué ci-dessous :
Vous pouvez également remplacer le locale au niveau du composant ou du 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>
);
}Utilisation des identifiants de traduction
Vous pouvez ajouter un id au composant Translate pour gérer différentes traductions ou significations d'une même chaîne. Ceci est particulièrement utile lorsque le même texte nécessite des traductions différentes selon le contexte. En attribuant des identifiants uniques, vous vous assurez que chaque occurrence de la chaîne est traduite avec précision selon sa signification spécifique.
import {Translate} from 'tacotranslate/react';
function Header() {
return (
<Translate id="header" string="Login" />
);
}
function Footer() {
return (
<Translate id="footer" string="Login" />
);
}Par exemple, la connexion de l'en-tête pourrait se traduire par «Iniciar sesión», et la connexion du pied de page pourrait se traduire par «Acceder» en espagnol.