Най-добри практики
Поставяне на 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
на клиента TacoTranslate.
Разгледайте този пример, в който сме разделили компонентите и страниците си в отделни файлове.
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
.