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