ما هو الفرق بين خصائص CurrentCulture وCurrentUICulture الخاصة بـ CultureInfo في .NET؟
-
11-07-2019 - |
سؤال
في .NET يوجد CultureInfo
الطبقة في System.Globalization
مساحة الاسم.له خاصيتان متشابهتان كلاهما يعيدان قيم CultureInfo
يكتب: CurrentCulture
و CurrentUICulture
.
ما الفرق بينهم؟
أي واحد يجب أن أستخدمه ومتى ولماذا؟
المحلول
وCurrentCulture
هو التمثيل. NET من لغة المستخدم الافتراضي للنظام. هذا يتحكم الرقم الافتراضي والتنسيق التاريخ وما شابه ذلك.
وCurrentUICulture
يشير إلى لغة واجهة المستخدم الافتراضي، وهو وضع قدم في نظام التشغيل Windows 2000. وهذا هو في المقام الأول فيما يتعلق جزء UI التعريب / ترجمة التطبيق الخاص بك.
مهما كانت الخيارات الإقليمية تم تكوين النظام لديك سوف تكون القيم "الحالية" في التطبيق. NET الخاص بك.
وفي كثير من الأحيان كلاهما نفس الشيء. ولكن على نظام بلدي أنها ستكون مختلفة: أنا أفضل لي الأرقام والتواريخ في شكل الألمانية، وبالتالي فإن CurrentCulture
سيكون الألماني، ولكن أنا أفضل أيضا كل ما عندي من التطبيقات في اللغة الإنجليزية، وبالتالي فإن CurrentUICulture
هي اللغة الإنجليزية
وهناك مادة لطيفة حول هذا الموضوع: فرز كل ذلك خارج: لماذا نحن على حد سواء CurrentCulture وCurrentUICulture
نصائح أخرى
وهذا هو خدعة بسيطة يمكنني استخدامها لتذكر أي واحد لاستخدام:
(date, currency, double).tostring = CurrentCulture
resource.fr-CA.resx file = currentUICulture
اختلافات:
CurrentCulture
مخصص لتنسيق التواريخ والعملةCurrentUICulture
يذهب مع اللغة/الترجمات.سيتم استخدامه من قبلResourceManager
للبحث عن الموارد حسب الثقافة.- مساحة الاسم
CurrentCulture
الصف فيSystem.Globalization
بينماCurrentUICulture
يأتي منSystem.Threading
. CurrentCulture
يستمر عبر طلبات مختلفة في الجلسة أثناءCurrentUICulture
يجب ضبطه مع كل طلب.
التشابه:
كلاهما كذلك System.Globalization.CultureInfo
الحالات.
طريقة جيدة لإحداث فرق بالإضافة إلى التوضيحات اللطيفة التي قدمها زملائك المستخدمين، وجانب مهم في تطوير تطبيقات الويب هو ما يلي:
CurrentCulture
يمثل إعداد خادم الويب.على سبيل المثال، إذا تمت استضافة تطبيق الويب ASP.NET الخاص بك في ألمانيا، فستكون قيمةCutlureInfo.CurrentCulture
على الأرجح سيكونde-DE
.وهكذا الافتراضي.ToString()
التنسيق لIFormattable
ستستخدم الأنواع التنسيقات الألمانية الافتراضية، أو تلك التي تم إعدادها على نظام تشغيل الخادم كإعدادات افتراضية.CurrentUICulture
يمكن التقاطها من وكيل المستخدم، وقد تمثل ثقافة واجهة المستخدم الخاصة بالعميل الذي يتصل بموقع الويب.على سبيل المثال، إذا قمت بتحميل موقع الويب هذا من روسيا، فسيتم تعيين إعداداتك المحلية لاستخدام اللغة الروسية، وسيرسل وكيل المستخدم إعداداتك المحلية إلى الخادم (Opera وIE يقومان بذلك تلقائيًا، ولست متأكدًا بالنسبة لمتصفح Chrome وFireFox)،CurrenUICulture
سيمثلru-RU
.سيؤدي هذا إلى أن تكون أي موارد مثل السلاسل المترجمة التي تم استردادها عبر ResourceManager أو تعبيرات الترجمة في ملفات ASP.NET aspx/ascx باللغة الروسية (إذا كانت الترجمات متوفرة).
والجدير بالذكر أن CurrentUICulture
يدعم عدم البلاد غات محددة مثل "أون" (ثقافات المحايدة) في حين CurrentCulture
تدعم الدولة غات محددة مثل "أون-GB". ووضع CurrentCulture
إلى ثقافة محايدة رمي ArgumentException
.
وأفترض أن هذا يرجع صيغ مثل التمور والعملة ترتبط بقوة أكبر إلى البلد نفسه، ولكن اللغة المعروضة في كثير من الأحيان للتبادل بين الدول.