Best practice
Metti gli URL nelle variabili
Quando si traducono stringhe che contengono URL o dati simili, è considerata una buona pratica inserire questi URL all'interno di variabili e quindi fare riferimento a esse all'interno dei vostri template.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
Usa le etichette ARIA
Quando si traduce il testo di elementi interattivi come i pulsanti, è importante includere le etichette ARIA per garantire l’accessibilità. Le etichette ARIA aiutano i lettori di schermo a fornire informazioni descrittive sulla funzione dell’elemento.
Ad esempio, se hai un pulsante che permette agli utenti di copiare testo da un blocco di codice, puoi usare l’attributo aria-label
per fornire una descrizione chiara:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
C'è qualcosa di molto meta in questo.
Array globale di origini e origini multiple dei componenti
Questo modello funziona solo quando si utilizza Next.js Pages Router.
Quando si lavora con applicazioni di grandi dimensioni, è utile suddividere le stringhe e le traduzioni in più origini, più piccole. Questo approccio aiuta a ridurre le dimensioni dei bundle e i tempi di trasferimento, garantendo una localizzazione efficiente e scalabile.
Se da un lato ciò è semplice quando il rendering avviene solo sul client, la gestione delle origini diventa rapidamente complessa quando si recuperano le traduzioni per il rendering lato server. Tuttavia, è possibile automatizzare la gestione delle origini utilizzando l’array origins
del client TacoTranslate.
Considera questo esempio, in cui abbiamo separato i nostri componenti e pagine in file distinti.
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});
}
Consulta i nostri esempi di rendering lato server per maggiori informazioni su getTacoTranslateStaticProps
.