استخدم مساعدك المفضل للملخص واستخدم هذه الصفحة والموفر AI الذي تريده
تاريخ الإصدارات
- "تحديث استخدام واجهة برمجة تطبيقات useIntlayer في Solid للوصول المباشر إلى الخصائص"v8.9.04/5/2026
- "إضافة أمر init"v7.5.930/12/2025
- "تحديث الوثيقة"v6.1.53/10/2025
- "أضيف دعم React Router v7"v5.8.24/9/2025
تمت ترجمة محتوى هذه الصفحة باستخدام الذكاء الاصطناعي.
اعرض آخر نسخة المحتوى الأصلي باللغة الإنكليزيةإذا كان لديك فكرة لتحسين هذه الوثيقة، فلا تتردد في المساهمة من خلال تقديم طلب سحب على GitHub.
رابط GitHub للتوثيقنسخ الـ Markdown من المستند إلى الحافظة
ترجم React Router v7 باستخدام Intlayer | التدويل (i18n)
يوضح هذا الدليل كيفية دمج Intlayer لتحقيق التدويل السلس في مشاريع React Router v7 مع توجيه يدعم اللغة المحلية، ودعم TypeScript، وممارسات تطوير حديثة.
للحصول على التوجيه من جانب العميل، راجع دليل Intlayer مع React Router v7.
Table of Contents
لماذا Intlayer على البدائل؟
بالمقارنة مع الحلول الرئيسية مثل react-i18next أو i18next، يعد Intlayer حلاً يأتي مزودًا بتحسينات متكاملة مثل:
تغطية كاملة لجهاز التوجيه React
تم تحسين Intlayer للعمل بشكل مثالي مع React Router من خلال تقديم توجيه مدرك للإعدادات المحلية، برامج وسيطة للكشف عن الإعدادات المحلية، وجميع الميزات اللازمة لتوسيع نطاق التدويل (i18n).
حجم البندل
بدلاً من تحميل ملفات JSON ضخمة إلى صفحاتك، قم بتحميل المحتوى الضروري فقط. يساعد Intlayer في تقليل أحجام البندل وصفحاتك بنسبة تصل إلى 50%.
الصيانة
يؤدي تحديد نطاق محتوى تطبيقك إلى تسهيل الصيانة للتطبيقات واسعة النطاق. يمكنك تكرار أو حذف مجلد ميزات واحد دون العبء العقلي لمراجعة قاعدة بيانات المحتوى بالكامل. بالإضافة إلى ذلك، تتم كتابة Intlayer بالكامل لضمان دقة المحتوى الخاص بك.
وكيل الذكاء الاصطناعي
يؤدي تحديد موقع المحتوى المشترك إلى تقليل السياق المطلوب بواسطة نماذج اللغات الكبيرة (LLMs). يأتي Intlayer أيضًا مزودًا بمجموعة من الأدوات، مثل CLI لاختبار الترجمات المفقودة،LSP، MCP وagent skills، لجعل تجربة المطور (DX) أكثر سلاسة للذكاء الاصطناعي وكلاء.
الأتمتة
استخدم الأتمتة للترجمة في مسار CI/CD الخاص بك باستخدام LLM من اختيارك على حساب مزود الذكاء الاصطناعي الخاص بك. يقدم Intlayer أيضًا مترجمًا لأتمتة استخراج المحتوى، بالإضافة إلى منصة ويب للمساعدة في الترجمة في الخلفية.
أداء
يمكن أن يؤدي ربط ملفات JSON الضخمة بالمكونات إلى حدوث مشكلات في الأداء والتفاعل. يعمل Intlayer على تحسين تحميل المحتوى الخاص بك في وقت الإنشاء.
التحجيم مع عدم وجود مطور
أكثر من مجرد حل i18n، يوفر Intlayer [محررًا مرئيًا] مستضافًا ذاتيًا](/ar/doc/concept/editor) وكامل CMS لمساعدتك في إدارة المحتوى متعدد اللغات في الوقت الفعلي، مما يجعل التعاون مع المترجمين ومؤلفي النصوص وأعضاء الفريق الآخرين سلسًا. يمكن تخزين المحتوى محليًا و/أو عن بعد.
</Accordion>
دليل خطوة بخطوة لإعداد Intlayer في تطبيق React Router v7
تثبيت التبعيات
قم بتثبيت الحزم اللازمة باستخدام مدير الحزم المفضل لديك:
bashنسخ الكودنسخ الكود إلى الحافظة
علامة
--interactiveاختيارية. استخدمintlayer-cli initإذا كنت وكيل ذكاء اصطناعي.سيقوم هذا الأمر باكتشاف بيئتك وتثبيت الحزم المطلوبة. على سبيل المثال:
bashنسخ الكودنسخ الكود إلى الحافظة
قم بتثبيت الحزم الضرورية باستخدام مدير الحزم المفضل لديك:
- intlayer
الحزمة الأساسية التي توفر أدوات التدويل لإدارة التكوين، والترجمة، وإعلان المحتوى، والترجمة البرمجية، وأوامر CLI.
react-intlayer الحزمة التي تدمج Intlayer مع تطبيق React. توفر موفري السياق وخطافات للتدويل في React.
vite-intlayer تتضمن إضافة Vite لدمج Intlayer مع مجمّع Vite، بالإضافة إلى وسيط للكشف عن اللغة المفضلة للمستخدم، وإدارة الكوكيز، والتعامل مع إعادة توجيه URL.
@react-router/fs-routes الحزمة التي تفعّل التوجيه القائم على نظام الملفات لـ React Router v7.
تكوين مشروعك
أنشئ ملف config لتكوين لغات تطبيقك:
intlayer.config.tsنسخ الكودنسخ الكود إلى الحافظة
import { type IntlayerConfig, Locales } from "intlayer"; const config: IntlayerConfig = { internationalization: { defaultLocale: Locales.ENGLISH, locales: [Locales.ENGLISH, Locales.FRENCH, Locales.SPANISH], }, }; export default config;من خلال ملف الإعدادات هذا، يمكنك إعداد عناوين URL المترجمة، إعادة توجيه Middleware، أسماء ملفات تعريف الارتباط، موقع وامتداد إعلانات المحتوى الخاصة بك، تعطيل سجلات Intlayer في وحدة التحكم، والمزيد. للحصول على قائمة كاملة بالمعاملات المتاحة، راجع وثائق الإعدادات.
دمج Intlayer في تكوين Vite الخاص بك
أضف مكون intlayer إلى إعدادك:
vite.config.tsنسخ الكودنسخ الكود إلى الحافظة
إضافة
intlayer()Vite تُستخدم لدمج Intlayer مع Vite. وهي تضمن بناء ملفات إعلان المحتوى ومراقبتها في وضع التطوير. كما تعرّف متغيرات بيئة Intlayer داخل تطبيق Vite. بالإضافة إلى ذلك، توفر بدائل لتحسين الأداء.تكوين مسارات نظام الملفات في React Router v7
قم بإعداد تكوين التوجيه الخاص بك لاستخدام المسارات المستندة إلى نظام الملفات مع
flatRoutes:app/routes.tsنسخ الكودنسخ الكود إلى الحافظة
تمكّن دالة
flatRoutesمن@react-router/fs-routesالتوجيه القائم على نظام الملفات، حيث يحدد هيكل الملفات في مجلدroutes/مسارات التطبيق الخاص بك. يضمن خيارignoredRouteFilesعدم معاملة ملفات إعلان محتوى Intlayer (.content.ts، إلخ) كملفات توجيه.إنشاء مكونات التخطيط
مع توجيه نظام الملفات، تستخدم اتفاقية تسمية مسطحة حيث تمثل النقاط (
.) مقاطع المسار والأقواس()تدل على المقاطع الاختيارية.قم بإنشاء الملفات التالية في دليل
app/routes/الخاص بك:بنية الملفات
bashنسخ الكودنسخ الكود إلى الحافظة
اتفاقيات التسمية:
($locale)- مقطع ديناميكي اختياري لمعامل اللغة_layout- مسار التخطيط الذي يغلف المسارات الفرعية_index- مسار الفهرس (يتم عرضه في مسار العنصر الأب).(نقطة) - فاصل مقاطع المسار (مثال:($locale).about→/:locale?/about)
مكون التخطيط
app/root.tsxنسخ الكودنسخ الكود إلى الحافظة
التخطيط الجذري
app/components/localized-link.tsxنسخ الكودنسخ الكود إلى الحافظة
الصفحة الرئيسية المترجمة
app/routes/[lang]/page.tsxنسخ الكودنسخ الكود إلى الحافظة
أعلن عن المحتوى الخاص بك
قم بإنشاء وإدارة تصريحات المحتوى الخاصة بك لتخزين الترجمات. ضع ملفات المحتوى بجانب ملفات المسارات الخاصة بك:
app/routes/($locale)._index.content.tsنسخ الكودنسخ الكود إلى الحافظة
app/routes/($locale).about.content.tsنسخ الكودنسخ الكود إلى الحافظة
يمكن تعريف إعلانات المحتوى الخاصة بك في أي مكان في التطبيق الخاص بك طالما تم تضمينها في دليل
contentDir(افتراضياً،./app). وتطابق امتداد ملف إعلان المحتوى (افتراضياً،.content.{json,ts,tsx,js,jsx,mjs,cjs,md,mdx,yaml,yml}).لمعرفة المزيد عن الخطاف
useIntlayer، راجع التوثيق.إذا كان تطبيقك موجودًا بالفعل، يمكنك استخدام مترجم Intlayer، بالإضافة إلى أمر الاستخراج، لتحويل آلاف المكونات في ثانية واحدة.
إنشاء مكونات تدرك اللغة
أنشئ مكون
LocalizedLinkللملاحة الموجهة حسب اللغة:app/components/localized-link.tsxنسخ الكودنسخ الكود إلى الحافظة
في حالة رغبتك في التنقل إلى المسارات المحلية، يمكنك استخدام hook
useLocalizedNavigate:app/hooks/useLocalizedNavigate.tsنسخ الكودنسخ الكود إلى الحافظة
إنشاء مكون لتبديل اللغة
قم بإنشاء مكون يسمح للمستخدمين بتغيير اللغات:
app/components/locale-switcher.tsxنسخ الكودنسخ الكود إلى الحافظة
لمعرفة المزيد عن الخطاف
useLocale، راجع التوثيق.إضافة إدارة سمات HTML
أنشئ خطافًا لإدارة سمات lang و dir في HTML:
app/hooks/useI18nHTMLAttributes.tsxنسخ الكودنسخ الكود إلى الحافظة
هذا الـ hook يتم استخدامه بالفعل في مكون التخطيط (
($locale)._layout.tsx) الموضح في الخطوة 5.استخراج محتوى مكوناتك
اختياريإذا كان لديك قاعدة بيانات كود موجودة، فقد يكون تحويل آلاف الملفات مستهلكًا للوقت.
لتسهيل هذه العملية، يقترح Intlayer مترجمًا / مستخرجًا لتحويل مكوناتك واستخراج المحتوى.
لإعداده، يمكنك إضافة قسم
compilerفي ملفintlayer.config.tsالخاص بك:intlayer.config.tsنسخ الكودنسخ الكود إلى الحافظة
import { type IntlayerConfig } from "intlayer"; const config: IntlayerConfig = { // ... بقية التكوين الخاص بك compiler: { /** * يشير إلى ما إذا كان يجب تمكين المترجم. */ enabled: true, /** * يحدد مسار ملفات المخرجات */ output: ({ fileName, extension }) => `./${fileName}${extension}`, /** * يشير إلى ما إذا كان يجب حفظ المكونات بعد تحويلها. بهذه الطريقة، يمكن تشغيل المترجم مرة واحدة فقط لتحويل التطبيق، ثم يمكن إزالته. */ saveComponents: false, /** * بادئة مفتاح القاموس */ dictionaryKeyPrefix: "", }, }; export default config;قم بتشغيل المستخرج لتحويل مكوناتك واستخراج المحتوى
bashنسخ الكودنسخ الكود إلى الحافظة
Since v9, the
intlayerCompileris included in theintlayerplugin. So you don't need to add it manually.قم بتحديث
vite.config.tsلتضمين مكونintlayerCompilerالإضافي:vite.config.tsنسخ الكودنسخ الكود إلى الحافظة
bashنسخ الكودنسخ الكود إلى الحافظة
ثم استخدمه في مكون الجذر الخاص بك:
يمكنك أيضًا استخدام intlayerProxy لإضافة التوجيه من جانب الخادم إلى تطبيقك. سيكتشف هذا البرنامج الإضافي تلقائيًا اللغة الحالية بناءً على عنوان URL وتعيين ملف تعريف الارتباط اللغة المناسب. إذا لم تُحدد لغة، فسيحدد البرنامج الإضافي اللغة الأنسب بناءً على تفضيلات اللغة في متصفح المستخدم. إذا لم يتم اكتشاف أي لغة، فسيعيد التوجيه إلى اللغة الافتراضية.
لاحظ أنه لاستخدامintlayerProxyفي الإنتاج، يجب عليك نقل حزمةvite-intlayerمنdevDependenciesإلىdependencies.
منذ Intlayer v9، يتم دمجintlayerProxy()مباشرة في pluginintlayer()ويتم تفعيله بشكل افتراضي من خلال خيارrouting.enableProxy(trueبشكل افتراضي). تسجيله بشكل منفصل كما هو موضح أدناه أصبح اختياريًا الآن — يتم الاحتفاظ به لأسباب التوافقية العكسية والإعدادات التي تحتاج للتحكم في ترتيب plugins. قم بتعيينrouting.enableProxy: falseللانسحاب. اطلع على ملاحظات الإصدار v9.
نسخ الكود إلى الحافظة
</Step>
Configure TypeScript
Intlayer uses module augmentation to get benefits of TypeScript and make your codebase stronger.
Ensure your TypeScript configuration includes the autogenerated types:
نسخ الكود إلى الحافظة
Git Configuration
It is recommended to ignore the files generated by Intlayer. This allows you to avoid committing them to your Git repository.
To do this, you can add the following instructions to your .gitignore file:
نسخ الكود إلى الحافظة
VS Code Extension
To improve your development experience with Intlayer, you can install the official Intlayer VS Code Extension.
Install from the VS Code Marketplace
This extension provides:
- Autocompletion for translation keys.
- Real-time error detection for missing translations.
- Inline previews of translated content.
- Quick actions to easily create and update translations.
For more details on how to use the extension, refer to the Intlayer VS Code Extension documentation.
Go Further
To go further, you can implement the visual editor or externalize your content using the CMS.
مراجع التوثيق
يوفر هذا الدليل الشامل كل ما تحتاجه لدمج Intlayer مع React Router v7 لتطبيق دولي بالكامل مع توجيه مدرك للغة ودعم TypeScript.
