Cele mai bune practici
Pune 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 referențiați în cadrul șabloanelor dumneavoastră.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
Utilizați etichete ARIA
Atunci 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 descriptive despre funcția elementului.
De exemplu, dacă aveți un buton care permite utilizatorilor să copieze text dintr-un bloc de cod, puteți folosi atributul aria-label
pentru a furniza o descriere clară:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
Ceva în legătură cu asta pare foarte meta.
Array global de origini și multiple origini de componente
Acest tipar funcționează numai 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 origini 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 face redarea doar pe partea clientului, gestionarea originilor devine rapid complexă atunci când se preiau traduceri pentru redarea pe partea serverului. Totuși, puteți automatiza gestionarea originilor utilizând array-ul origins
al clientului TacoTranslate.
Luați în considerare acest exemplu, unde am separat componentele și paginile în fișiere distincte.
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 de redare pe partea de server pentru mai multe informații despre getTacoTranslateStaticProps
.