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