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