كيف أقوم بتكوين التوجيه بناءً على النطاق مع Intlayer بدلاً من مسارات /[locale]/؟
إجابة مختصرة
التوجيه بناءً على النطاق أبسط من التوجيه بناءً على المسار (example.com/[locale]/) لأنه يمكنك تخطي كل تكوين الوسيط والتوجيه. فقط قم بنشر تطبيقك على كل نطاق لغة واضبط متغير بيئة واحد لكل نطاق.
خطوة بخطوة
- انشر مرة واحدة لكل نطاق (
example.com،exemple.fr،ejemplo.es، …). - لكل نشر، قم بتعيين
LOCALE(ومتغيرات بيئة Intlayer المعتادة) إلى اللغة التي يجب أن يخدمها النطاق. - أشر إلى هذا المتغير كـ
defaultLocaleفي ملفintlayer.config.[ts|js]الخاص بك.
ts
نسخ الكود
نسخ الكود إلى الحافظة
هذا كل شيء - يعمل بنفس الطريقة مع Next.js، Vite + React، Vite + Vue، إلخ.
ماذا لو كان كل النطاقات تشير إلى نفس النشر؟
إذا كانت جميع النطاقات تشير إلى نفس حزمة التطبيق، فستحتاج إلى اكتشاف المضيف أثناء وقت التشغيل وتمرير اللغة يدويًا عبر المزود.
لـ Next.js
tsx
نسخ الكود
نسخ الكود إلى الحافظة
لـ Vue
ts
نسخ الكود
نسخ الكود إلى الحافظة
استبدل getLocaleFromHostname() بمنطق البحث الخاص بك.
تحديث مبدل اللغة الخاص بك
عند استخدام التوجيه المعتمد على النطاق، يعني تغيير اللغة التنقل إلى نطاق آخر:
ts
نسخ الكود
نسخ الكود إلى الحافظة
فوائد التوجيه المعتمد على النطاق
- تكوين أبسط: لا حاجة لتكوين
intlayerProxy،generateStaticParams،react-router، أوvue-router - تحسين محركات البحث (SEO): لكل لغة نطاق خاص بها
- عناوين URL أنظف: لا يوجد بادئة للغة في المسار
- صيانة أسهل: كل نشر للغة مستقل