Bonnes pratiques
Placez les URL dans des variables
Lors de la traduction de chaînes contenant des URL ou des données similaires, il est recommandé de placer ces URL dans des variables puis de les référencer dans vos templates.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
Utiliser les attributs ARIA
Lors de la traduction du texte d'éléments interactifs tels que les boutons, il est important d'inclure des labels ARIA pour garantir l'accessibilité. Les labels ARIA aident les lecteurs d'écran à fournir des informations descriptives sur la fonction de l'élément.
Par exemple, si vous avez un bouton qui permet aux utilisateurs de copier du texte depuis un bloc de code, vous pouvez utiliser l'attribut aria-label
pour fournir une description claire :
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
Il y a quelque chose de très méta dans tout ça.
Tableau global d'origines et origines multiples pour les composants
Ce modèle ne fonctionne que lorsque vous utilisez le Next.js Pages Router.
Lorsqu'on travaille sur des applications plus importantes, il est utile de répartir les chaînes et leurs traductions en plusieurs origines plus petites. Cette approche permet de réduire la taille des bundles et les temps de transfert, garantissant une localisation efficace et évolutive.
Si cela est simple lors d'un rendu uniquement côté client, la gestion des origines devient rapidement complexe lorsqu'il s'agit de récupérer les traductions pour le rendu côté serveur. Cependant, vous pouvez automatiser la gestion des origines en utilisant le tableau origins
du client TacoTranslate.
Considérez cet exemple, où nous avons séparé nos composants et nos pages en fichiers distincts.
import TacoTranslate, {Translate} from 'tacotranslate/react';
import tacoTranslate from '../tacotranslate-client';
// Set an origin name for this component
const origin = 'components/pricing-table';
// Push the origin into the origins array as this file is imported
tacoTranslate.origins.push(origin);
export default function PricingTable() {
return (
<TacoTranslate origin={origin}>
<Translate string="Pricing table" />
// ...
</TacoTranslate>
);
}
import TacoTranslate, {Translate} from 'tacotranslate/react';
import getTacoTranslateStaticProps from 'tacotranslate/next/get-static-props';
import tacoTranslateClient from '../tacotranslate-client';
import PricingTable from '../components/pricing-table';
const origin = 'pages/pricing';
tacoTranslateClient.origins.push(origin);
export default function PricingPage() {
return (
<TacoTranslate origin={origin}>
<Translate string="Pricing page" />
<PricingTable />
</TacoTranslate>
);
}
// We will now fetch translations for all imported components and their origins automatically
export async function getStaticProps(context) {
return getTacoTranslateStaticProps(context, {client: tacoTranslateClient});
}
Consultez nos exemples de rendu côté serveur pour plus d'informations sur getTacoTranslateStaticProps
.