بهترین شیوهها
آدرسهای 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"
/>چیزی دربارهٔ این خیلی متا به نظر میرسد.
آرایهٔ origins سراسری و origins متعدد برای کامپوننتها
این الگو فقط هنگام استفاده از 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, به نمونههای رندر سمت سرور ما مراجعه کنید.