1. اجعل الواجهة كما كانت من قبل، فقط انتبه لاستخدام التسميات لجميع النصوص التي تتطلب واجهة متعددة اللغات
2. بعد الانتهاء، حدد الملف في Solution Explorer وحدد Tools->Generate Local Resource
3. ستجد أنه تم إنشاء دليل App_LocalResources، ويوجد ملف resx إضافي في هذا الدليل. على سبيل المثال، إذا كان ملف aspx الخاص بك هو default.aspx، فسيتم إنشاء ملف يسمى default.aspx.resx.
4. افتح هذا الملف وألق نظرة. كل النص الموجود في الملصق موجود هنا
. افتح ملف aspx الأصلي وانظر إلى المصدر وستجد أن كود المصدر قد تغير:
<%@ لغة الصفحة = "VB" MasterPageFile = "~/MasterPage.master" AutoEventWireup = "false" CodeFile = "Default.aspx.vb" يرث = "Default2" عنوان = "ثقافة صفحة بلا عنوان" = "تلقائي" التعريف: Resourceskey = "PageResource1" UICulture = "auto" %>
…………
<asp:Localize ID = "Localize1" runat = "server" meta:resourcekey = "Localize1Resource1"></asp:Localize>
6. لاحظ هنا: meta:resourcekey = "PageResource1" وmeta: resourcekey = "Localize1Resource1" وهذا يعني أن النص هنا يتم قراءته من المورد.
7. حسنًا، قم الآن بإنشاء ملف المورد للغة أخرى. الأمر بسيط جدًا، انسخ Default.aspx.resx والصقه، ثم أعد تسميته إلى Default.aspx.fr-fr.resx. لاحظ أن fr-fr هو اسم اللغة التي تريد استخدامها. إذا شاهدت DVDrip، فيجب أن تعتقد أنه مشابه جدًا لملف الترجمة، أليس كذلك؟
8. يقول البعض كيف أعرف اسم تلك اللغة؟ الأمر بسيط جدًا، افتح IE، أدوات->خيارات الإنترنت->اللغات->إضافة، إنه موجود في منتصف المربع.
9. ابدأ الآن في تحرير نص الموارد الأخرى. افتح Default.aspx.fr-fr.resx، وقارن المحتوى الأصلي، وقم بتغيير المحتوى إلى اللغة الفرنسية.
10. في هذه المرحلة نكون قد أكملنا المرحلة الأولى. سيختار ASP.Net اللغة المعروضة بناءً على تفضيلات اللغة الخاصة بالمستخدم. قم بتغيير الإعدادات في IE، وقم بتغيير المكان الذي ذكرناه للتو إلى fr-fr، وافتح هذه الصفحة وألق نظرة؟ إذا كانت فرنسية، تهانينا. إذا لم يكن الأمر كذلك، فارجع وافعل ذلك مرة أخرى...
11. حسنًا، بعد ذلك، نريد السماح للمستخدمين باختيار لغتهم الخاصة بدلاً من اختيار اللغة تلقائيًا. نحن نستخدم ملفات تعريف الارتباط لتخزين اختيارات المستخدم. على مستوى التطبيق، نقرأ ملف تعريف الارتباط هذا ونحدد الثقافة وثقافة المستخدم المناسبة. بالطبع، عندما ندخل لأول مرة، لا يزال يتعين علينا قراءة إعدادات المتصفح، والتي يمكن الحصول عليها من Request.UserLanguages.
اللغات المدعومة الخاصة As String() = {"en-us", "fr-fr"}
البنية العامة LANGUAGE_COOKIE_NAME كسلسلة = "لغة المستخدم"
Sub Application_AcquireRequestState(ByVal sender As Object, ByVal e As EventArgs)
Dim languageCookie As HttpCookie = Request.Cookies(LANGUAGE_COOKIE_NAME)
Dim language As String = String.Empty
إذا (languageCookie ليس شيئًا) ثم
Dim userLanguages As String() = Request.UserLanguages
Dim Index As Integer
For i As Integer = 0 إلى userLanguages.Length - 1
Index = Array.IndexOf(SupportedLanguages, userLanguages(i))
إذا كان الفهرس >= 0 ثم
اللغة = SupportedLanguages(index)
قم بالخروج للنهاية
إذا كان
التالي
إذا كانت اللغة = String.Empty ثم _
language = SupportedLanguages(0)
Response.Cookies.Add(New HttpCookie(LANGUAGE_COOKIE_NAME, language))
لغةأخرى
= languageCookie.Value
End If
الثقافة الخافتة مثل CultureInfo = CultureInfo الجديد (لغة)
System.Threading.Thread.CurrentThread.CurrentUICulture = الثقافة
End Sub
12. ثم نحتاج إلى صفحة تسمح للمستخدمين باختيار اللغة، على سبيل المثال، نستخدم زرين للقيام بذلك. بعد النقر على هذا الزر، نريد تعيين ملف تعريف الارتباط هذا على اللغة المناسبة:
الزر الفرعي المحمي2_Click(ByVal sender As Object, ByVal e As System.EventArgs) يعالج Button2.Click
SetLanguage("fr-fr")
End Sub
مجموعة فرعية محمية (لغة ByVal كسلسلة)
Response.Cookies(Global.ASP.global_asax.LANGUAGE_COOKIE_NAME).القيمة =
ثقافة خافتة مثل CultureInfo = ثقافة جديدة (لغة)
System.Threading.Thread.CurrentThread.CurrentUICulture = ثقافة
Server.Transfer( طلب.المسار)
نهاية الفرعية
لاحظ Server.Transfer(Request.Path) في النهاية، وذلك لإعادة قراءة الصفحة بحيث تعرض الصفحة أيضًا اللغة المحددة حديثًا.
13. أخيرًا يتعين علينا إزالة التحديد التلقائي لـ ASP.Net. إزالة من Default.aspx:
الثقافة = "تلقائي" UICulture = "تلقائي"
14. فتحه وإلقاء نظرة!