Nejlepší postupy
Ukládejte adresy URL do proměnných
Při překladu řetězců obsahujících URL nebo podobná data je považováno za dobrou praxi umístit tyto URL do proměnných a v šablonách na ně odkazovat.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>Použijte popisky ARIA
Při překladu textu interaktivních prvků, jako jsou tlačítka, je důležité zahrnout ARIA popisky, aby byla zajištěna přístupnost. ARIA popisky pomáhají čtečkám obrazovky poskytovat popisné informace o funkci prvku.
Například pokud máte tlačítko, které umožňuje uživatelům zkopírovat text z bloku kódu, můžete použít atribut aria-label k poskytnutí jasného popisu:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>Na tom je něco velmi meta.
Globální pole originů a více originů pro komponenty
Tento vzor funguje pouze při použití Next.js Pages Router.
Při práci s většími aplikacemi je výhodné rozdělit řetězce a překlady do několika menších originů. Tento přístup pomáhá snížit velikost balíčků a dobu přenosu, což zajišťuje efektivní a škálovatelnou lokalizaci.
Zatímco je to jednoduché při renderování pouze na klientovi, správa originů se při načítání překladů pro renderování na straně serveru rychle stává složitou. Nicméně správu originů můžete automatizovat pomocí pole origins klienta TacoTranslate.
Podívejte se na tento příklad, kde jsme komponenty a stránky rozdělili do samostatných souborů.
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});
}Podívejte se na naše příklady vykreslování na straně serveru pro více informací o getTacoTranslateStaticProps.