Кращі практики
Поміщення URL у змінні
При перекладі рядків, що містять URL-адреси або подібні дані, вважається доброю практикою розміщувати ці URL-адреси у змінних, а потім посилатися на них у ваших шаблонах.
<Translate
string={`Click <a href="{{url}}">here</a>`}
variables={{url: 'https://tacotranslate.com'}}
/>
Використовуйте ARIA-мітки
При перекладі тексту інтерактивних елементів, таких як кнопки, важливо додавати ARIA-мітки для забезпечення доступності. ARIA-мітки допомагають програмам екранного зчитування надавати описову інформацію про функцію елемента.
Наприклад, якщо у вас є кнопка, яка дозволяє користувачам копіювати текст з блоку коду, ви можете використати атрибут aria-label
для чіткого опису:
<Translate
aria-label={useTranslation('Copy to clipboard')}
string="Copy"
/>
Щось у цьому відчувається дуже мета.
Глобальний масив джерел та кілька джерел компонентів
Цей шаблон працює тільки при використанні Next.js Pages Router.
При роботі з більшими застосунками корисно розділяти рядки та переклади на кілька менших origins
. Такий підхід допомагає зменшити розмір бандлів і час передачі даних, забезпечуючи ефективну та масштабовану локалізацію.
Хоча це просто при рендерингу лише на боці клієнта, управління origins
швидко ускладнюється при отриманні перекладів для серверного рендерингу. Однак ви можете автоматизувати управління origins
за допомогою масиву клієнта TacoTranslate origins
.
Розгляньте цей приклад, де ми розділили наші компоненти та сторінки у окремі файли.
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});
}
Дивіться наші приклади серверного рендерингу для отримання додаткової інформації про getTacoTranslateStaticProps
.