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