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