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 queste all'interno dei propri modelli.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
Usa le etichette ARIA
Quando si traducono i testi di elementi interattivi come i pulsanti, è importante includere le etichette ARIA per garantire l'accessibilità. Le etichette ARIA aiutano i lettori screen a fornire informazioni descrittive sulla funzione dell'elemento.
Ad esempio, se hai un pulsante che consente agli utenti di copiare il 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"
/>
Qualcosa di questo sembra molto meta.
Array di origini globali e multiple origini dei componenti
Questo modello funziona solo quando si utilizza Next.js Pages Router.
Quando si lavora con applicazioni più grandi, è utile suddividere le stringhe e le traduzioni in molteplici origini più piccole. Questo approccio aiuta a ridurre le dimensioni del bundle e i tempi di trasferimento, garantendo una localizzazione efficiente e scalabile.
Questo è semplice da realizzare quando si effettua il rendering solo sul lato client, ma la gestione delle origini diventa rapidamente complessa quando si recuperano 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 le 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
.