استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةإذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ الـ Markdown من المستند إلى الحافظة
ترجمة موقع Next.js 15 باستخدام next-intl مع Intlayer | التدويل (i18n)
يرشدك هذا الدليل خلال أفضل الممارسات لاستخدام next-intl في تطبيق Next.js 15 (App Router)، ويُظهر كيفية إضافة Intlayer فوقه لإدارة الترجمة بشكل قوي وأتمتة العمليات.
اطلع على المقارنة في next-i18next مقابل next-intl مقابل Intlayer.
- للمبتدئين: اتبع الأقسام خطوة بخطوة للحصول على تطبيق متعدد اللغات يعمل.
- للمطورين المتوسطين: انتبه إلى تحسين الحمولة وفصل الخادم/العميل.
- للمطورين المتقدمين: لاحظ التوليد الثابت، والوسيط (middleware)، وتكامل SEO، وخطافات الأتمتة.
ما سنغطيه:
- الإعداد وهيكل الملفات
- تحسين كيفية تحميل الرسائل
- استخدام مكونات العميل والخادم
- البيانات الوصفية، خريطة الموقع، والروبوتات لتحسين محركات البحث (SEO)
- الوسيط لتوجيه اللغة
- إضافة Intlayer فوق ذلك (CLI والأتمتة)
إعداد تطبيقك باستخدام next-intl
قم بتثبيت تبعيات next-intl -
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
الإعداد وتحميل المحتوى
قم بتحميل فقط مساحات الأسماء التي تحتاجها مساراتك وتحقق من صحة اللغات مبكرًا. اجعل مكونات الخادم متزامنة عندما يكون ذلك ممكنًا وادفع فقط الرسائل المطلوبة إلى العميل.
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
الاستخدام في مكون العميل
لنأخذ مثالاً على مكون عميل يعرض عدادًا.
الترجمات (الشكل معاد استخدامه؛ قم بتحميلها في رسائل next-intl كما تفضل)
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
مكون العميل
نسخ الكود إلى الحافظة
لا تنسَ إضافة رسالة "about" في رسالة عميل الصفحة (قم بتضمين مساحات الأسماء التي يحتاجها عميلك فقط).
الاستخدام في مكون الخادم
هذا المكون الخاص بواجهة المستخدم هو مكون خادم ويمكن عرضه تحت مكون عميل (صفحة → عميل → خادم). حافظ عليه متزامنًا عن طريق تمرير سلاسل محسوبة مسبقًا.
نسخ الكود إلى الحافظة
ملاحظات:
- قم بحساب
formattedCountعلى جانب الخادم (مثلاً،const initialFormattedCount = format.number(0)). - تجنب تمرير الدوال أو الكائنات غير القابلة للتسلسل إلى مكونات الخادم.
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
نسخ الكود إلى الحافظة
وسيط التوجيه للغة (Middleware for locale routing)
أضف وسيطًا للتعامل مع اكتشاف اللغة والتوجيه:
نسخ الكود إلى الحافظة
أفضل الممارسات
- تعيين html
langوdir: فيsrc/app/[locale]/layout.tsx، احسبdirعبرgetLocaleDirection(locale)وقم بتعيين<html lang={locale} dir={dir}>. - تقسيم الرسائل حسب النطاق: نظم ملفات JSON لكل لغة ونطاق (مثل
common.json،about.json). - تقليل حمولة العميل: في الصفحات، أرسل فقط النطاقات المطلوبة إلى
NextIntlClientProvider(مثلًا،pick(messages, ['common', 'about'])). - تفضيل الصفحات الثابتة: صدّر
export const dynamic = 'force-static'وقم بإنشاء معلمات ثابتة لجميعlocales. - مكونات الخادم المتزامنة: مرّر سلاسل محسوبة مسبقًا (تسميات مترجمة، أرقام منسقة) بدلاً من استدعاءات غير متزامنة أو دوال غير قابلة للتسلسل.
تنفيذ Intlayer فوق next-intl
قم بتثبيت تبعيات intlayer:
نسخ الكود إلى الحافظة
أنشئ ملف تكوين intlayer:
نسخ الكود إلى الحافظة
أضف سكريبتات package.json:
نسخ الكود إلى الحافظة
ملاحظات:
intlayer fill: يستخدم مزود الذكاء الاصطناعي الخاص بك لملء الترجمات المفقودة بناءً على اللغات التي قمت بتكوينها.intlayer test: يتحقق من الترجمات المفقودة أو غير الصالحة (استخدمه في بيئة التكامل المستمر CI).
يمكنك تكوين الوسائط والمزودين؛ راجع Intlayer CLI.