Bästa praxis
Lägg URL:er i variabler
När du översätter strängar som innehåller URL:er eller liknande data är det god praxis att placera dessa URL:er i variabler och sedan referera till dem i dina mallar.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
Använd ARIA-etiketter
När du översätter texten i interaktiva element som knappar är det viktigt att inkludera ARIA-etiketter för att säkerställa tillgänglighet. ARIA-etiketter hjälper skärmläsare att ge beskrivande information om elementets funktion.
Till exempel, om du har en knapp som låter användare kopiera text från ett kodblock, kan du använda attributet aria-label
för att ge en tydlig beskrivning:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
Något med det här känns väldigt meta.
Global origins-array och flera komponent-origins
Detta mönster fungerar endast när du använder Next.js Pages Router.
När du arbetar med större applikationer är det fördelaktigt att dela upp strängar och översättningar i flera, mindre källor. Detta tillvägagångssätt hjälper till att minska paketstorlekar och överföringstider, vilket säkerställer effektiv och skalbar lokalisering.
Även om detta är enkelt när du endast renderar på klientsidan, blir hanteringen av källor snabbt komplex när du hämtar översättningar för rendering på serversidan. Du kan dock automatisera hanteringen av källor genom att använda TacoTranslate-klientens origins
array.
Se detta exempel, där vi har delat upp våra komponenter och sidor i separata filer.
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});
}
Se våra exempel på server-side-rendering för mer information om getTacoTranslateStaticProps
.