أساسيات تجهيز مشروع Next.js

by | Uncategorized

Recent Comments

لا توجد تعليقات للعرض.

المكتبات الأساسية المستخدمة في مشروع Next.js

ترتيب المجلدات داخل المشروع

المجلدات من الأعلى إلى الأسفل

  • messages : ويحتوي على ملفات JSON الخاصة ببرنامج ترجمة المشروع next-intl
  • public : ويحتوي على كافة الملفات الخارجية المختصة بالمشروع والمقصود بذلك ملفات ( الصور – الفيديو – وحتى قاعدة البينات SQLite3 ) كل هذه الملفات مرتبطة بالمشروع ولكن ليس هناك داعي لأن تكون داخل المشروع أثناء إنشائه
  • src : مجلد المشروع الرئيسي الذي يحتوي باقي المجلداد داخله:
    • app : مجلد المشروع الأساسي الذي يظهر في المتصفح
    • components : مجلد تحتوي على كل الملفات التي يمكن استخدامها داخل الشروع وبأكثر من موقع
    • i18n : مجلد خاص بملفات مكتبة next-intl المتعلقة بترجمة المشروغ
    • lib : مجلد يشبه مجلد components ولكن تحتوي على ملفات خاصة قد تكون بك ويمكن استخدامها بأكثر من مشروع

المكتبات الأساسية لأي مشروع يجب أن تتضمن على الأقل ما يلي:

  • shadcn/ui : مكتبة تضيف components يمكن استخدامها في بناء الموقع.
  • next-intl : وهي مكتبة مختضة بالغات وترجمة الموقع للغات مختلفة.

Next-intel

Internationalization (i18n) for Next.js

تستخدم هذه المكتبة لترجمة الموقع وسهولة التنقل بين اللغات وهي بسيطة في التعامل

بالنسبة للنسخة الحالية next-intl v3.26.3 فترتيب المجلدات والملفات كالتالي:

مجلد messages : ويحتوي على ملفات JSON الخاصة بالمشروع ويكون اسم الملف هو رمز اللغة كمثال على ذلك (en.json) ويحتوي على كافة الكلمات المفتاحية المراد استبدالها في صفحات المشروع

مجلد i8n : مساره src/i8n وهو المجلد الذي يحتوي على الملفين الرئيسيين لهذه المكتبة والتي يحدد بها ما اللغات المستخدمة وكيفية التعامل مع لغات الموقع وماهي اللغة الافتراضية وكيفية تبديل اسم الروابط لتلائم seo والمجلدان هما request.ts / routing.ts

ملف middleware.ts : مسار src/middleware.ts هو ملف يغلف الموقع وهو جد هام حيث أنه من الملفات التي تقراء ويتفاعل معه Next.js من ناحية server-side rendering قبل إرسال المحتوى إلى المتصفح.

ويجب تعديل ملف next.config.ts لكي يستطيع أن يتعامل مع مكتبة الترجمة ليصبح كالتالي:

مجلد [locale] : وهو المجلد الذي سوف تحتوي المشروع كامل


Shadcn/ui

Beautifully designed components that you can copy and paste into your apps.

مكتبة تحتوي على قوالب جاهزة ينمت استخدامها مباشرة داخل المشروع


مكتبات مضافة تساعد في تنسيق المحتوى داخل VS Code

هذه المكتبات ليس لها علاقة مباشرة في عمل المشروع لذى تضاف في package.json بحالة devDependencies وبعد إضافتها ننشئ ونعدل على الملفات التالية:

prettier.config.js ويحتوي على:

eslint.config.mjs