Beste praktyke
Sit URL's in veranderlikes
Wanneer stringe vertaal word wat URL's of soortgelyke data bevat, word dit as 'n goeie praktyk beskou om hierdie URL's binne veranderlikes te plaas en dit dan binne jou templates te verwys.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
Gebruik ARIA-etikette
Wanneer jy die teks van interaktiewe elemente soos knoppies vertaal, is dit belangrik om ARIA-etikette in te sluit om toeganklikheid te verseker. ARIA-etikette help skermslesers om beskrywende inligting oor die element se funksie te verskaf.
Byvoorbeeld, as jy ’n knoppie het wat gebruikers toelaat om teks uit ’n kodeblok te kopieer, kan jy die aria-label
attribuut gebruik om ’n duidelike beskrywing te gee:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
Iets hiervan voel regtig baie meta.
Globale oorsprongsreeks en meervoudige komponentoorspronge
Hierdie patroon werk slegs wanneer die Next.js Pages Router gebruik word.
Wanneer jy met groter toepassings werk, is dit voordelig om stringe en vertalings in verskeie, kleiner oorspronge te verdeel. Hierdie benadering help om bondelgroottes en oordragtye te verminder, wat doeltreffende en skaalbare lokalisering verseker.
Terwyl dit eenvoudig is wanneer jy slegs aan die kliëntkant vertoon, word die bestuur van oorspronge vinnig kompleks wanneer vertalings vir bedienerkant-rendering opgevra word. Jy kan egter oorsprongbestuur outomatiseer deur die TacoTranslate kliënt se origins
reeks te gebruik.
Oorweeg hierdie voorbeeld, waarin ons ons komponente en bladsye in afsonderlike lêers geskei het.
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});
}
Sien ons bediener-kant rendering voorbeelde vir meer inligting oor getTacoTranslateStaticProps
.