Най-добри практики
Поставете 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.