Bästa praxis
Sätt URL:er i variabler
När du översätter strängar som innehåller URL:er eller liknande data anses det vara en god praxis att placera dessa URL:er i variabler och sedan referera till dem inom 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 för 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 gör det möjligt för användare att kopiera text från en kodblock, kan du använda aria-label
attributet för att ge en tydlig beskrivning:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
Något med detta känns väldigt meta.
Global origins-array och flera komponentoriginer
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 ursprung. Denna metod hjälper till att minska paketstorlekar och överföringstider, vilket säkerställer effektiv och skalbar lokalisering.
Även om detta är enkelt när rendering endast sker på klientsidan, blir hanteringen av ursprung snabbt komplex när översättningar hämtas för serverside-rendering. Du kan dock automatisera hanteringen av ursprung genom att använda TacoTranslate-klientens origins
array.
Titta på detta exempel, där vi har separerat 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
.