اللغات
كيف يعمل الموقع بالإنجليزية والعربية، وأين يوجد كل نص، وما الذي تغيّره لإضافة لغة.
اللغات المتوفرة
| اللغة | العنوان | الاتجاه | الخطوط |
|---|---|---|---|
| الإنجليزية، اللغة الافتراضية | /en | من اليسار إلى اليمين | DM Sans، مع Clash Display للعناوين |
| العربية | /ar | من اليمين إلى اليسار | Noto Sans Arabic، مع Almarai للعناوين |
كل نص وعنوان زر ووصف صورة ورسالة نموذج وعنوان صفحة موجود باللغتين.
كيف تُختار اللغة
- اللغة هي الجزء الأول من كل عنوان:
/en/pricingو/ar/pricing. - الزائر الذي يفتح
/يُوجَّه إلى/arعندما يفضّل متصفحه العربية، وإلى/enفي غير ذلك. يقوم بذلكsrc/proxy.ts. - قائمة اللغة في الترويسة تنقل الزائر إلى اللغة الأخرى وتبقيه في الصفحة نفسها.
- لكل لغة عنوانها ووصفها وعنوانها الأساسي الخاص، وكل صفحة تخبر محركات البحث بمكان اللغة الأخرى.
من اليمين إلى اليسار
في /ar، يضبط src/app/[locale]/layout.tsx الخاصيتين lang="ar" وdir="rtl" على الصفحة، فيتعكس التخطيط كله: القائمة والبطاقات والأسهم والجداول تُقرأ من اليمين إلى اليسار.
تستخدم المكوّنات أصناف Tailwind المنطقية التي تتبع الاتجاه، مثل ms-2 وpe-4 وstart-0 وtext-start. عندما تضيف عناصر، استخدم هذه بدلًا من ml-* أو pr-* أو left-* أو text-left، وإلا ظهرت الصفحة العربية بشكل خاطئ.
تبقى معاينة لوحة التحكم في القسم الرئيسي من اليسار إلى اليمين بكلتا اللغتين، كما تكون لقطة شاشة منتج حقيقي. وتسمياتها مترجمة.
أين توجد النصوص
تُقسَّم النصوص بحسب الصفحة في سبعة مجلدات داخل messages/، في كل منها en.json وar.json:
| المجلد | ما الذي يحتويه |
|---|---|
messages/home/ | أقسام الصفحة الرئيسية ومعاينة لوحة التحكم |
messages/layout/ | الترويسة والتذييل وصفحات الأخطاء واسم الموقع وعنوانه ووصفه |
messages/pricing/ | صفحة الأسعار |
messages/blog/ | صفحات المدونة والمقالات نفسها |
messages/contact/ | صفحة التواصل |
messages/auth/ | صفحات تسجيل الدخول وإنشاء الحساب ونسيان كلمة المرور |
messages/legal/ | صفحات الشروط والخصوصية وملفات تعريف الارتباط وGDPR |
غيّر نصًا
- غيّر القيمة في الملف الإنجليزي وما يقابلها في الملف العربي. أبقِ المفاتيح نفسها في الملفين.
- المفتاح المفقود من أحد الملفين يظهر اسمه بدل النص في صفحة تلك اللغة.
- الكلمات بين الأقواس المعقوفة، مثل
{year}و{count}و{planName}، يملؤها الموقع. أبقِها كما هي.
تسميات الموقع بالعربية
عندما تكتب عن الموقع بالعربية، استخدم التسميات التي يعرضها:
| الإنجليزية | العربية |
|---|---|
Pricing | الأسعار |
Blog | المدونة |
Contact | اتصل بنا |
Sign Up Now | سجّل الآن |
Get Started Free | ابدأ مجانًا |
Most Popular | الأكثر شعبية |
Frequently Asked Questions | الأسئلة الشائعة |
Send Message | إرسال الرسالة |
Sign In | تسجيل الدخول |
Subscribe | اشترك |
أضف لغة
أضف رمزها إلى التوجيه
أضف رمز اللغة إلى
localesفيsrc/i18n/routing.ts، وإلىLocaleوlocalesوlocaleNamesفيsrc/config/i18n.ts. مثلًا للفرنسية:src/i18n/routing.tslocales: ["en", "ar", "fr"],أضف ملفات رسائلها
في كل مجلد من المجلدات السبعة داخل
messages/، انسخen.jsonبرمز اللغة الجديدة وترجم القيم. أبقِ كل مفتاح وكل كلمة بين أقواس معقوفة. لمجلد الصفحة الرئيسية:الطرفيةفيNextjs-landing-page-template-2cp messages/home/en.json messages/home/fr.jsonأضفها إلى قائمة اللغة
أضفها إلى قائمة
languagesفيsrc/components/LanguageSwitcher.tsx، مع بلد العلم الذي تعرضه، مثل{ code: "fr", country: "FR" }.اضبط اتجاهها وخطها، إذا احتاجت إليهما
تُعامل العربية وحدها على أنها من اليمين إلى اليسار. للغة أخرى بهذا الاتجاه، وسّع فحوص
locale === "ar"فيsrc/app/[locale]/layout.tsxوsrc/hooks/locale/useDirection.tsوsrc/features/home/TestimonialsSection/hooks/useTestimonialsCarousel.tsوsrc/features/auth/forgot-password/components/ForgotPasswordForm/components/BackToSignInLink.tsx. ولكتابة لا يغطيها خط DM Sans، أضف خطًا بـnext/fontفيlayout.tsx.
أعد تشغيل yarn dev أو ابنِ من جديد، فتعمل اللغة الجديدة على عنوانها، وهو هنا /fr. وتلتقطها الروابط الأساسية وروابط اللغات وخريطة الموقع تلقائيًا.