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