Beste Praktiken
URLs in Variablen legen
Beim Übersetzen von Strings, die URLs oder ähnliche Daten enthalten, gilt es als gute Praxis, diese URLs in Variablen zu speichern und sie dann innerhalb Ihrer Templates zu referenzieren.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
ARIA-Labels verwenden
Beim Übersetzen des Textes von interaktiven Elementen wie Schaltflächen ist es wichtig, ARIA-Labels einzufügen, um die Barrierefreiheit zu gewährleisten. ARIA-Labels helfen Bildschirmlesern dabei, eine aussagekräftige Beschreibung der Funktion des Elements zu liefern.
Zum Beispiel, wenn Sie eine Schaltfläche haben, mit der Benutzer Text aus einem Codeblock kopieren können, können Sie das Attribut aria-label
verwenden, um eine klare Beschreibung bereitzustellen:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
Irgendetwas daran fühlt sich sehr meta an.
Globale Origins-Array und mehrere Komponenten-Origins
Dieses Muster funktioniert nur bei Verwendung des Next.js Pages Router.
Bei der Arbeit mit größeren Anwendungen ist es vorteilhaft, Strings und Übersetzungen in mehrere, kleinere Origins aufzuteilen. Dieser Ansatz hilft, die Bundle-Größen und Übertragungszeiten zu reduzieren und sorgt so für eine effiziente und skalierbare Lokalisierung.
Während dies bei der ausschließlichen Client-seitigen Darstellung unkompliziert ist, wird das Verwalten der Origins schnell komplex, wenn Übersetzungen für das serverseitige Rendering abgerufen werden. Allerdings können Sie die Verwaltung der Origins automatisieren, indem Sie das TacoTranslate Client-Array origins
nutzen.
Betrachten Sie dieses Beispiel, bei dem wir unsere Komponenten und Seiten in separate Dateien aufgeteilt haben.
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});
}
Siehe unsere Beispiele für serverseitiges Rendering für weitere Informationen zu getTacoTranslateStaticProps
.