Najbolje prakse
Stavite URL-ove u promenljive
Prilikom prevođenja nizova koji sadrže URL-ove ili slične podatke, smatra se dobrom praksom smestiti te URL-ove u promenljive i zatim ih pozivati unutar šablona.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
Koristite ARIA oznake
Pri prevođenju teksta interaktivnih elemenata kao što su dugmad, važno je uključiti ARIA oznake kako bi se obezbedila pristupačnost. ARIA oznake pomažu čitačima ekrana da pruže opisne informacije o funkciji elementa.
Na primer, ako imate dugme koje omogućava korisnicima da kopiraju tekst iz bloka koda, možete koristiti aria-label
atribut da pružite jasan opis:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
Nešto u vezi ovoga deluje veoma meta.
Globalni niz originova i više originova po komponenti
Ovaj obrazac radi samo kada se koristi Next.js Pages Router.
Kada radite na većim aplikacijama, korisno je podeliti stringove i prevode na više manjih izvora. Ovakav pristup pomaže u smanjenju veličine bundla i vremena prenosa, obezbeđujući efikasnu i skalabilnu lokalizaciju.
Iako je ovo jednostavno kada se renderuje samo na klijentskoj strani, upravljanje izvorima brzo postaje složeno kada se prevodi preuzimaju za renderovanje na serverskoj strani. Međutim, možete automatizovati upravljanje izvorima koristeći niz origins
u TacoTranslate klijentu.
Razmotrite ovaj primer, u kome smo komponente i stranice razdvojili u zasebne fajlove.
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});
}
Pogledajte naše primere renderovanja na strani servera za više informacija o getTacoTranslateStaticProps
.