Найкращі практики
Помістіть 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.
При роботі з великими додатками корисно розбивати рядки та переклади на кілька менших джерел. Цей підхід допомагає зменшити розмір бандлів і час передачі даних, забезпечуючи ефективну та масштабовану локалізацію.
Хоча це просто при рендерингу лише на боці клієнта, керування джерелами швидко ускладнюється під час отримання перекладів для серверного рендерингу. Проте ви можете автоматизувати керування джерелами, використовуючи масив клієнта 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
.