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