أفضل الممارسات
ضع عناوين 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
.