أفضل الممارسات
ضع عناوين URL في المتغيرات
عند ترجمة السلاسل التي تحتوي على روابط URLs أو بيانات مماثلة، يُعتبر من الممارسات الجيدة وضع هذه الروابط داخل متغيرات ثم الإشارة إليها داخل القوالب الخاصة بك.
<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
.