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