بهترین شیوهها
آدرسهای 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 کار میکند.
هنگامی که با برنامههای بزرگتر کار میکنید، مفید است که رشتهها و ترجمهها را به مبداهای متعدد و کوچکتر تقسیم کنید. این روش به کاهش اندازهٔ بستهها و زمانهای انتقال کمک میکند و محلیسازی کارآمد و قابل مقیاس را تضمین میکند.
در حالی که این کار هنگام رندر شدن تنها در سمت مشتری ساده است، مدیریت مبداها هنگام بازیابی ترجمهها برای رندر سمت سرور به سرعت پیچیده میشود. با این حال، میتوانید مدیریت مبدا را با استفاده از آرایهٔ کلاینت 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, به مثالهای رندر سمت سرور ما مراجعه کنید.