Найкращі практики
Зберігайте 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.