بهترین شیوهها
آدرسهای 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
, به مثالهای رندر سمت سرور ما مراجعه کنید.