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