في الماضي، كتبت مشروع ويب تجريبيًا صغيرًا عندما كنت أعمل في شركة برمجيات أجنبية وكان جزء من المتطلبات هو دعم لغات متعددة (الصينية المبسطة والصينية التقليدية والإنجليزية والكورية واليابانية) للمستخدم. في ذلك الوقت، تم استخدام تقنية القالب لتنفيذ هذا المطلب ويتم حفظ إعدادات المستخدم باستخدام ملفات تعريف الارتباط. ومع ذلك، لا يزال المستخدم بحاجة إلى تحديد اللغة عند تسجيل الدخول لأول مرة (أو بعد حذف ملفات تعريف الارتباط). ). فهل يمكن أن يكون أكثر ملاءمة للمستخدمين؟ هل يمكن استخدام برنامج للمساعدة تلقائيًا في الاختيار؟
الجواب هو نعم، الجميع يستخدم جوجل. إذا كنت تستخدم النظام الصيني لفتح صفحة جوجل الرئيسية، فسيتم فتح الصفحة الرئيسية الصينية بشكل طبيعي، وليس اللغات الأخرى. لأن Google ستحدد تلقائيًا اللغة المفضلة لنظام المستخدم.
كيف يمكننا أن نفعل ذلك مثل جوجل؟ إنه في الواقع بسيط للغاية.
تحتوي معلومات رؤوس HTTP التي يرسلها المتصفح إلى خادم الويب على معلومات مثل قبول-اللغة. هذه المعلومات هي اللغة الموجودة ضمن الأدوات->خيارات الإنترنت->عامة في المتصفح الخادم، والذي يمكن أن يكون قائمة أولويات للغات متعددة مقبولة.
اسمحوا لي أن أتخذ ASP كمثال لأقدم بإيجاز "كيفية تحديد لغة المستخدم تلقائيًا":
<%
الدالة RegExpTest(pattern, strng)
يقوم Dim regEx,Match,Matches بإنشاء متغيرات.
Set regEx = New RegExp' قم بإنشاء تعبير عادي.
regEx.Pattern = patrn' يعين النمط.
regEx.IgnoreCase = True' يحدد ما إذا كانت الأحرف حساسة لحالة الأحرف.
regEx.Global = True'يحدد التوفر العالمي.
تعيين التطابقات = regEx.Execute(strng)'تنفيذ البحث.
يتم تكرار كل مباراة في المباريات من خلال مجموعة التطابقات.
RetStr = RetStr&Match.Value
التالي
RegExpTest = RetStr
وظيفة النهاية
AL = Request.ServerVariables("HTTP_ACCEPT_LANGUAGE")' احصل على معلمات اللغة المقبولة لمتصفح المستخدم
LG = RegExpTest("^[az-]+"،AL)' احصل على تفضيلات اللغة المقبولة لمتصفح المستخدم
حدد حالة LG
حالة "zh-cn"
استجابة.اكتب "中文(中国)"
حالة "zh-tw"
Response.write "الصينية (تايوان)"
حالة "zh-مو"
Response.write "الصينية (منطقة ماكاو الإدارية الخاصة)"
حالة "zh-هك"
Response.write "الصينية (منطقة هونج كونج الإدارية الخاصة)"
الحالة "zh-sg"
Response.write "الصينية (سنغافورة)"
حالة "en-us"
Response.write "الإنجليزية (الولايات المتحدة)"
حالة "جا"
رد: اكتب "باللغة اليابانية"
حالة "كو"
الرد.اكتب "الكورية"
حدد النهاية
%>