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 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 låter användare kopiera text från en kodruta 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 ursprung för komponenter
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. Detta tillvägagångssätt hjälper till att minska paketstorlekar och överföringstider, vilket säkerställer effektiv och skalbar lokalisering.
Medan detta är enkelt när man renderar endast på klientsidan blir hanteringen av ursprung snabbt komplex när man hämtar översättningar för serversidig rendering. Men du kan automatisera hanteringen av ursprung genom att använda TacoTranslate-klientens origins array.
Titta på det här exemplet, 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.