Cele mai bune practici
Puneți URL-urile în variabile
Când traduceți șiruri care conțin URL-uri sau date similare, este considerată o bună practică să plasați aceste URL-uri în variabile și apoi să le referiți în cadrul șabloanelor dvs.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
Folosește etichete ARIA
Când traduceți textul elementelor interactive precum butoanele, este important să includeți etichete ARIA pentru a asigura accesibilitatea. Etichetele ARIA ajută cititoarele de ecran să ofere informații descrptive despre funcția elementului.
De exemplu, dacă aveți un buton care permite utilizatorilor să copieze textul dintr-un bloc de cod, puteți folosi atributul aria-label
pentru a oferi o descriere clară:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
Ceva despre asta pare foarte meta.
Array global de origini și multiple origini de componente
Acest model funcționează doar atunci când se utilizează Next.js Pages Router.
Când lucrați cu aplicații mai mari, este benefic să împărțiți șirurile și traducerile în mai multe originare mai mici. Această abordare ajută la reducerea dimensiunii pachetelor și a timpilor de transfer, asigurând o localizare eficientă și scalabilă.
Deși acest lucru este simplu atunci când se redă doar pe partea clientului, gestionarea originilor devine rapid complexă atunci când se preiau traduceri pentru redarea pe partea serverului. Cu toate acestea, puteți automatiza gestionarea originilor utilizând array-ul clientului TacoTranslate origins
.
Luați în considerare acest exemplu, unde am separat componentele și paginile în fișiere separate.
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});
}
Vezi exemplele noastre de randare pe partea de server pentru mai multe informații despre getTacoTranslateStaticProps
.