قضايا العولمة في آسيا والمحيط الهادئ و ASP.NET


عمود الصوت دعم ASP.NET


لتخصيص هذا العمود إلى احتياجاتك، نحن ندعوك لإرسال الأفكار حول المواضيع التي تهمك ومعالجة المسائل التي تريد مشاهدتها في المستقبل مقالات قاعدة المعارف والأعمدة "الصوتية دعم". يمكنك إرسال الأفكار والملاحظات الخاصة بك باستخدام نموذج طلب لذلك . يوجد أيضا ارتباط إلى النموذج في أسفل هذا العمود.

مقدمة


اهلا وسهلا! هذا هو خاري سوكيش مع فريق دعم المطور Microsoft ASP.NET. هذه هي المرة الأولى قمت أنا كتابة عمود "الصوت دعم". أنني أتطلع إلى كتابة المزيد من هذه الأعمدة في الأشهر القادمة.

العمود هذا الشهر، سوف تناقش قضايا العولمة في صفحات الملقم النشطة (ASP) و ASP.NET، المشاكل التي نواجهها في آسيا والمحيط الهادئ وكيف تغيرت الأمور في ASP.NET س 1 ما هو مع ASP.NET 2.0 على صعيد العولمة.

ملاحظة: إذا كنت تصادف مصطلح لا أفهم، راجع قسم المصطلحات في أسفل هذا العمود.

قضايا العولمة في آسيا والمحيط الهادئ

قبل ASP.NET، ليس هناك أي دعم منظم لتطوير تطبيقات لمستخدمين عموميين. أثناء التطوير المبكر لآسيا والمحيط الهادئ، المطورين مثل العثور على نفسي فقط متناثرة في دعم العولمة في أنظمة التشغيل وبرامج الاستعراض مزودو والأنظمة الخلفية. ومع ذلك، نادراً ما لاحظنا أي الاتصال التلقائي عبر هذه التطبيقات. ولحسن الحظ، أننا نفهم مفاهيم مثل مجموعات الأحرف وصفحات الرموز، المستعرض اللغات والخطوط التي نحن يستغلها لتطوير تطبيقات لمستخدمين عموميين.

سيكون صعباً جداً لفصل في كل من العولمة مشكلات لنا في ASP.NET شهدت فئات. بدلاً من ذلك، أنا قائمة سلسلة من المفاهيم التي تتعلق بالعديد من هذه المسائل.

مجموعات الأحرف ومخططات شفرة

نعلم جميعا أن الأحرف على شاشة الكمبيوتر مجرد سلسلة من وحدات البايت. يمكن إنشاء سلسلة البايت وتفسيرها بأي عدد من الطرق. إذا كان التفسير يستخدم الترميز الذي يختلف عن إنشاء صفيف البايت مع الترميز، سيعرض التفسير كالبيانات المهملة. ترميز مجموعة الأحرف (تشارسيتس) التنسيقات المستخدمة عادة من قبل المستعرضات. خاصية مخطط الشفرة ، وأكثر قابلية للتطبيق لتحويلات جانب الخادم، هو جدول تحويل التي تحدد كيف يتم تشفير الحروف فقط.

المستعرضات ترميز بيانات نشر النموذج وفقا لمجموعة الأحرف الحالية. إذا كانت مجموعة الأحرف الحالية "windows 1256"، ثم إرسال بايت إلى الخادم أيضا ترميز ك "windows-1256."

عندما يتم يتم تفسير آسيا والمحيط الهادئ، غير مبنية مجموعة سلسلة استعلام مواقع المعلومات و النموذج حتى يتم الرجوع إليها في التعليمات البرمجية. عندما يتم يتم بناؤها، تحويل بيانات السلسلة إلى Unicode وفقا لصفحة الترميز اللغوي الحالية. (بشكل افتراضي، كل من آسيا والمحيط الهادئ و ASP.NET معالجة المحتوى باستخدام تنسيق Unicode). من المهم جداً أن تقوم بتعيين صفحة الترميز اللغوي الصحيح قبل الرجوع إلى المجموعات؛ وإلا، لن يكون تمثيل Unicode في الذاكرة الصحيح.

لتعيين صفحة الترميز اللغوي، استخدم Session.Codepage أو Response.Codepage. Response.Codepage تتوفر فقط في إصدارات Microsoft إنترنت خدمات معلومات (IIS) 5.1 أو إصدار أحدث. للحصول على معلومات حول قيم الإعداد الصحيحة (التي تتوافق مع مجموعة الأحرف) نحن ستحدد هذه الخصائص قم بزيارة موقع Microsoft التالي على الويب:
مجموعة الأحرف التعرف
http://msdn2.microsoft.com/en-us/library/Aa752010.aspx
على سبيل المثال، لتعيين مخطط الشفرة للغة العربية، استخدم التعليمات البرمجية التالية:
Session.Codepage = 1256
سيؤثر Response.Codepage الاستجابة الحالية. ومع ذلك، سيؤثر Session.Codepage كافة الاستجابات بواسطة المستخدم الحالي. عند تعيين صفحة الترميز اللغوي باستخدام أحد هذه الخصائص ويتم إنشاء مجموعات نموذج و Querystring ، يؤدي هذا التغيير في صفحة الترميز اللغوي الحالية طريقة استجابة لتحويل Unicode في الذاكرة لصفحة الترميز اللغوي الحالية. لمزيد من المعلومات حول هذا الموضوع، قم بزيارة موقع Msdn التالي:
تعيين صفحة الرموز لسلسلة تحويلات (ASP)http://msdn2.microsoft.com/en-us/library/ms525789.aspx
أسفل الخط عندما يتعلق الأمر بالمسائل المتصلة تشارسيتس ومخططات شفرة محارف هذا العميل ويجب أن يتطابق مع مخطط الشفرة الخادم.

قبول اللغات

إذا أراد مطور ASP إلى معرفة اللغات التي تم إعداد مستخدم في المستعرض له، المطور استخدام متغير Request.ServerVariables ("HTTP_ACCEPT_LANGUAGE") للبحث عن قائمة اللغات التي يرغب المستخدم قراءة الاستجابة في، (مثل الإنجليزية أو الألمانية أو الهندية) وترتيب تفضيل المستخدم تود أن ترى هذه اللغات في. في ASP.NET, معلومات مشابهة موجودة في خاصية Request.UserLanguages كمصفوفة.
لمزيد من المعلومات حول كيفية استخدام هذه المعلومات في التعليمات البرمجية ل ASP، انقر فوق رقم المقالة التالي لعرضها في "قاعدة المعارف ل Microsoft":
229690 كيفية تعيين "معرف الإعدادات المحلية لآسيا والمحيط الهادئ" كل إعدادات اللغة في المستعرض

عرض الأحرف متعددة البايت يعين في برنامج Internet Explorer

تنسيق الترميز فقط إظهار مجموعة أحرف متعددة بايت هو Unicode (utf-8). باستخدام utf-8 إلى، يمكننا عرض السيريلية والهندية واليابانية الكل على نفس الصفحة. إذا لم نستخدم UTF 8، نحن فقط إظهار إحدى هذه اللغات في كل مرة. لتعيين مجموعة أحرف المستعرض، استخدم الخاصية Response.CharSet .

أحرف متعددة البايت ثابتة على صفحة

لعرض الأحرف متعددة البايت تخزينها مباشرة في الصفحة، ونحن يجب أولاً حفظ الصفحة باستخدام ترميز محدد. سيتم utf-8 إلى أفضل ولكن ستعمل صفحة الترميز اللغوي محددة (مطابقة لترميز الأحرف) أيضا.

حفظ ملف ASP باستخدام مواقع ويب Microsoft لا يساعد هنا، حيث يمكنك حفظ "مواقع ويب" فقط الإنكليزية ANSI أو Unicode. أي صفحة ASP حفظها ك Unicode غير معتمدة من قبل ASP.

في Microsoft Visual Studio.NET, يمكنك حفظ ملفات باستخدام ترميز. هناك طريقتان للقيام بذلك. الافتراضي طريقة لحفظ الملف باستخدام صفحة الترميز اللغوي الحالية للمستخدم. طريقة أخرى لحفظ ملف باستخدام الترميز كما يلي:
من القائمة ملف ، انقر فوق حفظ باسم. ضمن علامة التبويب
مربع الحوار حفظ باسم ، انقر فوق سهم القائمة المنسدلة في
الزر حفظ . عند النقر فوق السهم، تكون الخيارات
حفظ و حفظ بترميز. عند النقر فوق
يظهر حفظ مع ترميز، مربع الحوار خيارات الحفظ المتقدمة حيث يمكنك تحديد نوع الترميز الذي تريد تطبيقه من قائمة مخططات شفرة المثبتة على الكمبيوتر.


ملاحظة: يؤدي هذا إلى تغيير الترميز للحفظ العملية، لكن يتم لمرة واحدة فقط. سيتم تعيين التالي الحفظ الافتراضي.

لتغيير صفحة الترميز اللغوي الافتراضية، انقر فوق خيارات متقدمة لحفظ
القائمة " ملف ". في مربع الحوار خيارات الحفظ المتقدمة ، يمكنك تعيين الترميز الافتراضي لحفظ عمليات لصفحة الترميز اللغوي من اختيارك.

ترتبط هذه الطرق كيفية حفظ الملف على القرص. ومع ذلك، للتحكم بالإخراج لآسيا والمحيط الهادئ، كما سبقت مناقشته، نحتاج إلى تعيين خصائص Response.CharSet و Session.CodePage . باستخدام IIS 5.1 أو الإصدارات الأحدث، نحن أيضا استخدام الخاصية Response.CodePage .

شكل افتراضي صفحة الترميز اللغوي على الخادم

تعتمد الإعدادات المحلية الافتراضية ومخطط الشفرة الافتراضي للصفحة على إعدادات التسجيل. المستخدم الافتراضي. يمكننا العثور على المفتاح الدولي في خلية التسجيل HKEY_USERS\. افتراضي Panel\International. ونحن أيضا تغيير سلوك الإعدادات المحلية التي يتم اختيارها من قبل IIS. لمزيد من المعلومات، راجع المقطع "IIS 5.0" في مقالة "قاعدة المعارف" التالية:
306044 يختلف سلوك للتاريخ/الوقت عند الوصول إليها من "صفحات الملقم النشطة"

إذا كان المستخدم قام بتسجيل الدخول نفس الإعدادات المحلية تعيين كافتراضي النظام أو مفتاح أعلاه، يتقدم الإعداد المستخدم.

على سبيل المثال: الإعدادات المحلية الافتراضية بتاريخ بتنسيق تاريخ 11/1/2004 بتعيين تنسيق ك 11.1.2004، على حين أن المستخدم قام بتسجيل الدخول (باستخدام نفس مجموعة الإعدادات المحلية). سوف تسري الإعداد 11/1/2004 لآسيا والمحيط الهادئ.

(ل ASP.NET، وهذا يمكن أن تختلف. في بعض عمليات التثبيت، سيكون المستخدم ASPNET الشخصية الخاصة به سوف تظهر ضمن HKEY_USERS عند تحميله. وفي حالات أخرى، فإنه يستخدم. ملف التعريف الافتراضي. ونحن أيضا استخدام سمة مخطط الشفرة في إعلان < % % >. يجب استخدام هذا عند حفظ الملف باستخدام ترميز مختلف ثم الافتراضية، مثل مخطط الشفرة 932 (اليابانية)).

مشكلات مخطط الشفرة مقابل مشاكل تحويل الخط: ما هو؟

في بعض الأحيان، قد ترى حرف علامة الاستفهام (؟) أو مربع حيث من المفترض طابع أن تظهر.
مشاكل تحويل مخطط الشفرة
عندما يتم استبدال حرف بحرف علامة الاستفهام (؟)، عبارة عن إشارة إلى حدوث مشكلة تحويل مخطط الشفرة،. هو حرف لتحويل مخطط الشفرة افتراضي علامة الاستفهام (؟) ويعني أن نظام التشغيل لا تعرف كيفية التعامل مع قيمة الحرف وتحويلها. فإنه يستبدل قيمة الحرف بعلامة استفهام (؟). أن هذا يعني أن الحرف على قيمة غير صحيحة لمخطط الشفرة أو لم يتم تثبيت صفحة الترميز اللغوي المطلوبة للتحويل.
مشاكل تحويل الخط
عندما يتم استبدال حرف بواسطة مربع، عبارة عن إشارة إلى حدوث مشكلة تحويل خط. يحدث هذا على جانب العميل عندما لم يكن العميل بالخط الصحيح مثبت لعرض هذه الأحرف بشكل صحيح. على سبيل المثال، عندما يكون حرف من مجموعة الأحرف اليابانية، ولم يكن العميل اليابانية الخطوط المثبتة، يتم عرض الأحرف اليابانية كمربع.

وبعد ذلك، سوف نتحدث عن كيف تغيرت الأمور في ASP.NET 1.x وكيف تؤثر هذه التغييرات على قضايا العولمة في سياق ASP.NET.

قضايا العولمة في ASP.NET 1.x:

مع ASP.NET، أدخلت ثلاثة أشياء عظيمة:
  • العلامة < العولمة > في ملف web.config
    العلامة < العولمة > تأخذنا بعيداً عن مفاهيم تشارسيتس ومخططات شفرة غير المتماسكة، ويتيح لنا يسيطرون على معظم المتغيرات في ASP.NET.
  • مساحة الاسم System.Globalization
    تتيح لنا العولمة مساحة الاسم البرمجي قوة معالجة العولمة.
  • مفهوم ملفات الموارد قد تحسنت كثيرا.
    لا نتعامل مع ملفات الموارد في الطريقة التي كنا في آسيا والمحيط الهادئ. والآن، ملفات الموارد في شكل ملفات XML عندما نقوم بتصميم وتطويرها، وكانتا تجمع في وقت التشغيل.
علامة التكوين العولمة:

إعدادان الهامة في العلامة كما يلي:
<globalization             requestEncoding="utf-8" 
responseEncoding="utf-8" />
وفيما يلي المجالات الإعدادات الممكنة الأخرى:
fileEncodingتحديد الترميز الافتراضي ل.aspx و.asmx.asax توزيع الملف. Unicode و utf-8 إلى الملفات المحفوظة باستخدام بادئة علامة ترتيب البايت (بالتوقيع) سوف يمكن التعرف عليها تلقائياً، بغض النظر عن قيمة fileEncoding.
الثقافةيحدد الثقافة الافتراضية لمعالجة طلبات ويب الواردة (التي تنطبق على أساليب الفئات من مساحة الاسم System.Globalization).
uiCultureيحدد الثقافة الافتراضية لمعالجة عمليات البحث الموارد المحلية المعتمدة (تجميعات القمر الصناعي).
لمزيد من المعلومات حول سلاسل الثقافة (قيم الثقافة و uiculture)، قم بزيارة موقع Microsoft التالي على الويب:يتم تطبيق هذه الإعدادات من قبل ASP.NET بعد اكتمال الاستجابة، وقبل تسليم الطلب إلى التطبيق الخاص بك. ResponseEncoding، تم تعيين المخزن المؤقت الذي تم إنشاؤه لتخزين الإخراج إلى هذا الترميز. سيتم ترميز كل شيء يذهب إلى هذا المخزن المؤقت وفقا للإعداد كما يتم إدراجها في المخزن المؤقت.

ل requestEncoding، وقت التشغيل قراءة الطلب وتفسيره وفقا للإعداد في هذا المقطع. هذا هو إعداد الذي يمكن أن يسبب مشاكل، على الرغم من ذلك. يوضح الجدول التالي تخطيط تسلسل بايت صالح UTF 8 بت.

قيمة الحرف وقع في بت ASCII 7 القياسي، لا يتم تعديل قيمة البايت. إذا كانت القيمة أعلاه 127، فإنه يجب اتباع القواعد المذكورة أدناه. يوضح مجموعة بت الرائدة عدد الأحرف الموجودة في التسلسل. تعيين كل بايت بعد الأولى يجب أن يبدأ بالبت الأولى إلى 1.

تخطيط UTF 8 بايت:
وحدات البايتمعاهدات الاستثمار الثنائيةتمثيل
170vvvvvvv
211110vvvvv 10vvvvvv
3161110vvvv 10vvvvvv 10vvvvvv
42111110vvv 10vvvvvv 10vvvvvv 10vvvvvv
وهذا يأتي المشكلة. المستعرض ترميز الطلب وفقا لترميز بايت واحد (مثل iso 8859-1)، لن صالح وفقا التخطيط أعلاه القيم أعلى 127. عند قراءتها إلى utf-8 إلى المخزن المؤقت، يتم إسقاط الأحرف غير الصحيحة ببساطة من الإخراج.

تغيير ترميز وقت التشغيل

في الحدث Application_BeginRequest ، يمكننا تعديل قيمة requestEncoding ويكون ذلك المفعول قبل معالجة الطلب. للاستجابة، حدث Page_PreRender هو الفرصة الأخيرة لتعديل ترميز الإخراج. أيضا ملاحظة أن استجابة سيتم وضع الأحرف في هذا المخزن المؤقت كما نسميها، حيث تأكد لدى مجموعة الترميز الصحيح قبل استخدام استجابة.

البيانات الأصلية غير Unicode هي: كيفية جعل Internet Explorer تفسير تشارسيتس متعددة البايت لا يزال؟

يمكننا أن نجعل تتصرف مثل آسيا والمحيط الهادئ إذا ما احتجنا إلى ASP.NET. لجعل هذا يحدث، نحتاج إلى تعيين responseEncoding و requestEncoding إلى windows 1252 (هو أكثر اكتمالا ترميز من iso 8859-1)، واستخدام الخاصية Response.Charset لعرض النص بشكل صحيح. يعمل هذا لأن windows 1252 نظام ترميز بايت واحد، ولا يقوم بتعديل أي من وحدات البايت التي تم إضافتها إلى المخزن المؤقت. وبالتالي، يتم إرسال أحرف مزدوجة البايت كسلسلة من بايت واحد. ونحن ثم إعلام Internet Explorer كيفية ترجمة من وحدات البايت باستخدام الخاصية Response.Charset . قد يكون هذا السيناريو ضروريا إذا لم يتم تخزين البيانات الأصلية ك Unicode أو utf-8، مثل قيمة إرجاع من كائن COM، أو إذا تم تخزين البيانات في Microsoft SQL Server في حقل غير N (مثل varchar).

قضايا العولمة SQL Server و ASP.NET

إدخال بيانات Unicode إلى SQL Server
أفضل طريقة لتخزين البيانات في SQL Server باستخدام Unicode. عندما نستخدم الإدراج والتحديث وغيرها، إذا كان هناك حتى فرصة أقل لبيانات Unicode، نحتاج إلى إضافة N قبل القيمة. هذا بإعلام قاعدة البيانات التي هي القيمة Unicode. هو مثال جيد لهذا كائنات ADO. يمكنهم القيام بذلك تلقائياً إذا استخدمنا كائن مجموعة السجلات لإضافة سجلات جديدة.

مثال ما يلي:
INSERT INTO MusicAlbum (Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'Abida', 4653, 403)Or:
Dim t As String = "INSERT INTO MusicAlbum(Album_ID, [Year], Name, Artist_ID, Company_ID) VALUES (12345, 2005, N'" & TextBox1.Text & "', 4653, 403)"

تاريخ/وقت إدخال خادم SQL
عادة ما يكون لدينا المعرفة عن ثقافة ولغة بالتاريخ/وقت يتم تفسيره في تطبيق ASP.NET الخاص بنا. ومع ذلك، بينما يدفع ويسحب بيانات التاريخ/الوقت إلى ومن مصادر خارجية، نجازف بسوء تفسير تنسيقات التاريخ/الوقت. وهذا لأنه لا يمكننا دائماً ضمان ثقافة ولغة بالمصادر الخارجية أن تكون هي نفسها كما في التطبيق الخاص بنا. في SQL Server هذا يمكن حلها باستخدام 'الحالية اللغة' سمة في سلسلة _ الاتصال الاتصال يجري إنشاء قاعدة بيانات SQL. نحن نقدم نفس إعداد اللغة في سلسلة _ الاتصال كما الثقافة في طلبنا. وهذا يحمينا من مخاطر سوء التفسير، لأن SQL Server يقبل دائماً وإرسال بيانات التاريخ/الوقت في الموافقة بالإعداد المذكورة أعلاه.

مساحة الاسم System.Globalization

مساحة الاسم هذه هي جوهر التعميم والترجمه في.NET Framework. الفئة الرئيسية المستخدمة في مساحة الاسم هذه هي فئة CultureInfo . أنها تحمل معلومات ثقافة معينة، مثل تنسيق التاريخ/الوقت وتنسيقات الأرقام والمعلومات المقارنة ومعلومات النص. لمزيد من المعلومات حول فئة CultureInfo ، قم بزيارة موقع Msdn التالي:

الثقافات المحايدة مقابل ثقافات معينة

ثقافة محايدة هي ثقافة المقترنة لغة، ولكن ليس بلد أو منطقة معينة. ثقافة معينة يرتبط ببلد معين ولغة.

مثال: "DE" (الثقافة المحايدة) للغة الألمانية، لكن "DE-AT" (بيانات موروثة معينة) للغة الألمانية هو المنطوقة في النمسا. لا يمكن استخدام الثقافات المحايدة للتنسيق.

الحالي مؤشر الترابط وثقافة الوعي بفئات.NET Framework

كافة الفئات واﻷساليب في مكتبة.NET Framework حيث نتوقع الإخراج أن تعتمد ثقافة يكون سلوكيات المضمنة اثنين:
  • فلنعمل على تحديد رمز الثقافة أثناء توفير الوسائط حيث يمكن الإخراج استناداً إلى الثقافة المحددة. وهذا اختياري.
  • إذا لم يتم ذلك فقد (عادة)، تكون الفئات الذكي للحفاظ على اختيار على خاصية Thread.CurrentThread.CurrentCulture والعمل وفقا لذلك.
ونحن تعديل قيمة هذه الخاصية باستخدام تعليمات برمجية مشابهة لما يلي:
    Dim ci As CultureInfo        ci = New CultureInfo("de-AT")
Thread.CurrentThread.CurrentCulture = ci
في مثال التعليمات البرمجية هذا يمثل "de" اللغة الألمانية، ويمثل "في" النمسا. لذا، في هذه الحالة، DateTime.Now(). ToString الأسلوب بإرجاع التاريخ والوقت في التنسيق الموافق طريقة التعبير عن التاريخ والوقت في اللغة الألمانية في النمسا.

إطار عمل يضمن (كما يلي) أنه يتم تهيئة الخاصية CurrentCulture دائماً:
  1. كل ما يتم تعيينه إلى برمجياً.
  2. في حال لم يتم بشكل صريح تعيين قبل المبرمج، يتم انتقاء الخاصية من ملفات التكوين (العلامة < العولمة >).
  3. وإذا كانت الممتلكات المفقودة، هناك الثقافة الذي يشغل ملقم ويب. هذا الثقافة المحايدة الذي يطابق لغة نظام التشغيل.

ملفات الموارد

.Resx وتضمين الملفات والملفات التي لها سمة إنشاء إجراء تعيين الموارد المضمنة التي تمت إضافتها إلى مشروع ASP.NET في Visual Studio.NET, يتم تلقائياً ترجمة والمضمنة في التجميع التطبيق كجزء من بيان الخاص به. حتى يتم إجراء ذلك يدوياً باستخدام أداة مولد ملف المورد (ريسجين) عبر موجه أوامر Visual Studio.NET. لمزيد من المعلومات، قم بزيارة موقع Msdn التالي:وهذا مفهوم عام قابلة للتطبيق عندما نحتاج إلى إدارة موارد التطبيق التي لا علاقة لها بالعولمة. ومع ذلك، عندما نقوم بتنفيذ العولمة، يجب أن نستخدم تجميعات القمر الصناعي.

تجميعات القمر الصناعي

يمكن استخدام تجميعات القمر الصناعي في مشروع ASP.NET عند التأكد من التالية صحيحاً:
  1. كافة عناصر واجهة المستخدم في كافة ملفات aspx بحاجة إلى التزود بمعرف و runat = خصائص الملقم.
  2. نقوم بإنشاء ملفات.resx منفصلة. يجب أن يتوافق مع كل واحد لكل ثقافة نريد التطبيق الخاص بنا لدعم.
  3. يجب علينا أن نقرر اسم الأول مشترك لكافة هذه الملفات لخروج 'سلاسل'.
  4. ونحن تسمية ملفات.resx منفصلة مع.resx . كومونفيرستنامي رمز اللغة-رمز الإقليماصطلاح التسمية التالية (على سبيل المثال: Strings.de-AT.resx، Strings.en GB.resx).
  5. ينبغي أن تكون لدينا ملف المورد
    كومونفيرستنامي.resx (Strings.resx) يحتوي على كافة السلاسل كما نريد عرض في الحالة الافتراضية.
  6. كتابة التعليمات البرمجية للكشف عن ثقافة المستخدم وقم بتعيين الخاصية Thread.CurrentThread.CurrentUICulture لمطابقة لها.
  7. كتابة التعليمات البرمجية لتحميل الموارد باستخدام الفئة ResourceManager .
  8. كتابة التعليمات البرمجية لاستخراج سلاسل من تحميل الكائن، وتعيينها إلى عناصر واجهة المستخدم.
عند قيامك بإجراء هذه الخطوات، ستجمع Strings.resx Studio.NET البصرية وتضمينها في التجميع التطبيق (MyGlobalizationTestProjectName.dll). ومع ذلك، لكافة ملفات.resx الأخرى، سوف تولد ملفات dll منفصلة لا تحتوي على التعليمات البرمجية القابلة للتنفيذ ولكن بيانات الموارد فقط. هذه الحقيقة تسمى تجميعات القمر الصناعي. أيضا، Visual Studio.NET يضع هذه في بنية المجلد مشابهة لما يلي:
MyGlobalizationTestProjectName        |------- bin
|------en-US
MyGlobalizationTestProjectName.resources.dll
|------ja-JP
MyGlobalizationTestProjectName.resources.dll
|------de-AT
MyGlobalizationTestProjectName.resources.dll

الفرق بين CurrentCulture و CurrentUICulture

بينما تعتمد أساليب الفئات في مساحة الاسم System.Globalization على خاصية Thread.CurrentThread.CurrentCulture لإعطاء إنتاجهم، الفئة ResourceManager الذي يقوم بتحميل تجميع المورد استناداً إلى الخاصية Thread.CurrentThread.CurrentUICulture لتحميل التجميع المناسبة. ما يلي مثال من التعليمات البرمجية ل C#:
using System.Globalization;using System.Threading;
using System.Resources;

//Load resources.
protected ResourceManager gStrings = new ResourceManager("MyGlobalizationTestProjectName.strings", typeof(MyTestWebFormName).Assembly);

// Get the user's preferred language.
string sLang = Request.UserLanguages[0];
// Set the thread's culture for formatting, comparisons, etc.
Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(sLang);
// Set the thread's UICulture to load resources
// from satellite assembly.
Thread.CurrentThread.CurrentUICulture = new CultureInfo(sLang);

private void Page_Load(object sender, System.EventArgs e)

{

if (!IsPostBack)

{
// Get strings from resource file and assign to UI elements.
head1.InnerHtml = gStrings.GetString("satellite.head1");
p1.InnerHtml = gStrings.GetString("satellite.p1");
sp1.InnerHtml = gStrings.GetString("satellite.sp1");
sp2.InnerHtml = gStrings.GetString("satellite.sp2");
butOK.Text = gStrings.GetString("satellite.butOK");
butCancel.Value = gStrings.GetString("satellite.butCancel");
}

}

الأمر الذي يحدد ASP.NET تجميعات القمر الصناعي:

عند قيامك بتعيين مؤشر الترابط CurrentUICulture، ASP.NET تلقائياً بتحديد الموارد التي تطابق، بالترتيب التالي:
  • إذا تم العثور على تجميع القمر صناعي مع ثقافة مطابقة، تستخدم الموارد من هذا التجميع.
  • إذا تم العثور على تجميع القمر صناعي مع ثقافة حيادية يطابق CurrentUICulture، تستخدم موارد من هذا التجميع.
  • إذا لم يتم العثور على مطابقة ل CurrentUICulture، تستخدم الموارد الاحتياطية المخزنة في التجميع القابل للتنفيذ.
ملاحظة: يستند هذا أكثر شمولية "عملية الرجوع للمورد الاحتياطي". لمزيد من المعلومات، قم بزيارة موقع Msdn التالي:

إنشاء تجميعات القمر الصناعي يدوياً:

هذا استخدام تجميعات القمر الصناعي حيث Visual Studio.NET إنشاء التجميعات نفسها. Visual Studio.NET لا تجميعات القمر الصناعي الواضحة بشكل افتراضي، ومع ذلك. إذا أردت تغيير هذه الخيارات، قد تحتاج إلى إنشاء تجميعات القمر الصناعي يدوياً. لمزيد من المعلومات، قم بزيارة موقع Msdn التالي:.

ما هو مع ASP.NET 2.0 على صعيد العولمة؟

انتشار استخدام ASP.NET وأنواع المشكلات التي كنا نرى فيما يتعلق بميزات العولمة في ASP.NET 2.0 لا تزال بعض المسافة قدما. ومع ذلك، سيكون جيدا إلقاء نظرة موجزة على الاتجاه الذي يرأس منهجية العولمة لتطبيقات ويب.

دعم العولمة في ASP.NET 2.0 اجتاز تغييرا جذريا ومطوري الويب قد منحت إمكانية إجراء ترجمة تطبيقات ويب بسهولة للتطبيقات المستندة إلى Windows. التالي هو قائمة بالميزات التي هي أساس منهج العولمة في ASP.NET 2.0:

تقوم الموارد المكتوبة بشدة لب.NET Framework 2.0 الإصدار دعم الموارد المكتوبة بشدة تزويد المطورين بالتحسس الذكي وتبسيط التعليمات البرمجية المطلوبة للوصول إلى الموارد في وقت التشغيل.

محرر الموارد المدارة يتضمن visual Studio.NET 2.0 محرر مورد جديد مع دعم أفضل لإنشاء وإدارة إدخالات المورد تتضمن سلاسل, الصور وملفات خارجية الأنواع المعقدة الأخرى.

توليد الموارد "نماذج ويب" المطورين Windows Forms الفعل يتمتعون بفوائد التدويل التلقائي. Visual Studio.NET 2005 سيتم الآن دعم التعميم السريع تلقائياً توليد موارد "نماذج ويب" وعناصر تحكم المستخدم والصفحات الرئيسية.

تحسين دعم وقت التشغيل مثيلات ResourceManager تدار من قبل وقت التشغيل وسهولة الوصول إلى التعليمات البرمجية للخادم من خلال واجهات برمجة أكثر سهولة.

تعبيرات الترجمة تعبيرات التعريفي الحديثة لصفحات ويب يدعم تعيين إدخالات المورد للتحكم في الخصائص أو خصائص HTML ثابتة مناطق المحتوى. هذه التعبيرات أيضا قابلة للتوسعة، توفير سبل إضافية للتحكم في عملية إرفاق محتوى مترجم لإخراج HTML.

التحديد التلقائي الثقافة إدارة تحديد البيانات الموروثة لكل طلب ويب يمكن تلقائياً ربط تفضيلات مستعرض.

نموذج الموفر المورد نموذج موفر مورد جديد يسمح للمطورين بموارد المضيف في مصادر البيانات البديلة مثل ملفات منفصلة، وجداول قاعدة البيانات، بينما يظل متناسقاً نموذج البرمجة للوصول إلى هذه الموارد.

لمزيد من المعلومات حول منهجية العولمة في ASP.NET 2.0، قم بزيارة موقع Msdn التالي:
ميزات ASP.NET 2.0 الترجمة: نهج جديد لإضفاء الطابع المحلي على تطبيقات ويب
http://msdn2.microsoft.com/en-us/library/ms379546(VS.80).aspx

خاتمة

وهذا كل شيء الآن حول قضايا العولمة في آسيا والمحيط الهادئ و ASP.NET. أمل أن تساعد هذه المقالة بعض العملاء استكشاف مشاكل العولمة في آسيا والمحيط الهادئ و ASP.NET قبل اختاروا الاتصال بدعم Microsoft. سأنهي باعتبار ما يلي:

"أينما ومتى تقوم بتطوير، التفكير في الملايين من الناس قد مكن العالم. جعل الحلول المعتمدة من العالم! أدوات وتقنيات Microsoft تسهيل التدويل. "

أننا سوف اللحاق الشهر المقبل مع موضوع آخر مثير للاهتمام.

أشكرك على الوقت.
لمزيد من المعلومات حول مشكلات العولمة في آسيا والمحيط الهادئ و ASP.NET، راجع موقعي Microsoft التاليين على الويب:
SetLocale وجيتلوكالي في vbscript
http://msdn2.microsoft.com/en-us/library/5xf99h19.aspx
العولمة خطوة بخطوة
http://msdn.microsoft.com/en-us/goglobal/bb688110
انتقل عمومية: ترجمة تطبيقات ويب ديناميكي مع IIS 5.0 وخادم SQL
http://msdn.microsoft.com/msdnmag/issues/01/05/global/default.aspx
انتقل عمومية: تصميم موقع ويب يستند إلى آسيا والمحيط الهادئ لدعم العولمة
http://msdn.microsoft.com/msdnmag/issues/0700/localize/default.aspx
315616 كيفية اكتشاف لغة عميل في ملقم نشط الصفحات صفحة في IIS
http://support.microsoft.com/?id=315616
الموارد والترجمة باستخدام.NET Framework SDK
http://msdn2.microsoft.com/en-us/library/aa309421(VS.71).aspx
الموارد في تطبيقات ASP.NET
http://msdn2.microsoft.com/en-us/library/1ztca10y(vs.71).aspx
عنصر التكوين ASP.NET < العولمة >
http://msdn2.microsoft.com/en-us/library/hy4kkhe0(vs.71).aspx
تصميم وتنفيذ المبادئ التوجيهية لعملاء ويب-التعميم والترجمه
http://msdn2.microsoft.com/en-us/library/ms978628.aspx
موقع Microsoft الرسمية – التنمية العالمية ومدخل الحوسبة
http://msdn.microsoft.com/en-us/goglobal/bb688096
تطوير التطبيقات المعتمدة من العالم
http://msdn2.microsoft.com/en-us/library/h6270d0z(vs.71).aspx
هندسة العولمة ل ASP.NET
http://msdn2.microsoft.com/en-us/library/aa478974.aspx
مجموعة أدوات الترجمة المؤسسة-لتطوير تطبيقات ASP.NET Microsoft المترجمة
http://msdn2.microsoft.com/en-us/library/aa479334.aspx
أسلوب الطباعة ل Microsoft
http://www.microsoft.com/typography/default.mspx
حدوث استثناء A System.Resources.MissingManifestResourceException 839861 عند محاولة الوصول إلى مورد المترجم

قاموس المصطلحات

ANSI تعني معهد المواصفات الأمريكية الوطنية. وفي هذا السياق، أنه يمثل صفحة الترميز اللغوي محددة لمجموعة أحرف/لغة معينة. تشير غالباً إلى مخطط الشفرة الإنكليزية (windows-1252).

ASCII نظام ترميز بايت واحد (أو 7 بت). ويجري توحيد الأحرف الموجودة في النطاق من 0 إلى 127. 128-255 النطاق ملحقات ASCII وليس جزءا من المعيار. مثال على ذلك هو الفرق بين النطاق الأعلى لمخطط OEM ASCII ومخطط VB ASCII.

مجموعة الأحرف إعداد المستخدمة غالباً لبرنامج Internet Explorer وبرامج استعراض المستعرض كيفية ترجمة بيانات الأحرف. على سبيل المثال: Response.charSet = "iso 8859-1."

صفحة الترميز اللغوي جدول تحويل التي تحدد كيف يتم تشفير الحروف (تستخدم عادة لخوادم).

العولمة التعميم عملية تصميم وإنشاء تطبيق حتى يتم استيفاء المتطلبات الفريدة لثقافة أو منطقة أو الاحتياجات الوطنية واللغوية. وبعبارة أخرى بتصميم تطبيق بطريقة أنه يمكن ترجمتها فيما بعد هو العولمة.

اللغة/الثقافة لغة ومنطقة معينة تنسيقات تفضيلات/بما في ذلك تاريخ وتنسيقات التقويم، تنسيقات الوقت، تنسيقات العملة، الغلاف، وفرزها ومقارنة بين السلاسل، معالجة تنسيقات، والهاتف تنسيقات الأرقام، أحجام الورق، وحدة قياس الكتابة اتجاه، إلخ.

LocaleID (LCID) قيمة DWORD تعيين معرف اللغة ومعرف الفرز. يمكن استخدامه لتحديد تنسيقات منطقة محددة ل ex التاريخ/الوقت يجب أن يتم تنسيق إلخ استناداً إلى.

قابلية الترجمة قدرة أحد التطبيقات لتقديم محتوى اللغة/اللغات المطلوبة.

الترجمة الترجمة هي عملية ترجمة واجهة مستخدم في لغات معينة و/أو المناطق.

مجموعة أحرف متعددة البايت حرف مجموعة في الأحرف التي تتكون من اثنين أو أكثر من وحدات البايت، مثل اليابانية. UTF 8 يقع أيضا ضمن هذه الفئة. (Unicode من الناحية الفنية في هذه الفئة، لكن في Windows، له الفئة الخاصة به.)

Unicode نظام ترميز 2 بايت. يستخدم Windows Unicode داخليا. أي واجهات برمجة التطبيقات ل Unicode على وجه التحديد هي مصحوبا "W" في النهاية اسم الدالة. يعرف أيضا بحرف عريض؛ لا يمكن مباشرة استخدام من تطبيقات ويب.

UTF 8 هو ترميز حرفي حيث يمكن تمثيل حرف بالبايت 1-6. في Windows، النطاق 1 3 بايت. غير معتمد تحت NT4 لتطبيقات ويب.
لمزيد من المعلومات، انقر فوق رقم المقالة التالية لعرضها في "قاعدة معارف Microsoft":
دعم UTF8 175392


مجموعة أحرف كبيرة الاسم مستعار ل Unicode. يعرف أيضا DBCS (مجموعة الأحرف ثنائية البايت)، UCS-2، يتبعه.
كما دائماً، لا تتردد في تقديم أفكار حول مواضيع تريد التصدي لها في المستقبل الأعمدة أو في قاعدة المعارف باستخدام
نموذج طلب لذلك .