هل تريد منع ترجمة رسائل الاستثناء إلى لغة المستخدم؟

StackOverflow https://stackoverflow.com/questions/197127

سؤال

كيف أجعل تطبيقي يستخدم اللغة الإنجليزية دائمًا عند عرض رسائل استثناءات win32/.net؟

وصلتني هذه الرسالة، يبدو أن شخصًا ما استخدم سمكة البابل لترجمتها (إنها سويدية):"System.ComponentModel.Win32Exception:يبدأ البرنامج بعد أن تصبح برامج sida-vid-sidaConfiguration فعالة."

غير مفيد على الإطلاق، وقد حصل Google على 4 نتائج مذهلة، ولم تكن أي منها مفيدة.لذلك يجب أن أخمن ما هي الرسالة الأصلية وأبحث عنها في جوجل.(لقد كان:"فشل التطبيق في بدء التشغيل لأن تكوينه جنبًا إلى جنب غير صحيح.")

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

فكيف أفعل ذلك؟

هل كانت مفيدة؟

المحلول

ويمكنك محاولة وضع Thread.CurrentThread.CurrentUICulture و / أو .CurrentCulture إلى CultureInfo("en-US").

نصائح أخرى

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

واذا كان تطبيق ASP.NET، يمكنك تعيين لغة واجهة المستخدم في الملف web.config (*):

<system.web>
    <globalization ... uiCulture="en-US" ... />
</system.web>

لتطبيقات أخرى، وتستخدم الإعدادات الإقليمية للمستخدم الحالي افتراضيا، وكان لديك لتجاوز ذلك صراحة - على سبيل المثال Thread.CurrentUICulture = جديد CultureInfo ( "أون والولايات المتحدة").

و(*) التحذير - إذا كان الخطأ في نتائج ملف التكوين في استثناء يتم طرح قبل معالجة عنصر، ستحصل على uiCulture الافتراضي

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

وأنا لست الرجل الصافية لذلك أنا لا أعرف إذا كان ذلك ممكنا، مجرد فكرة.

كيف أجعل طلبي دائمًا يستخدم اللغة الإنجليزية عند عرض رسائل استثناءات Win32/.NET؟

أولاً، لا تعرض رسائل استثناء win32/.net للمستخدمين.يجب عليك التعامل مع الاستثناءات بدلاً من إظهارها للمستخدم.

افتراضيًا، سيتم عرض رسائل الاستثناء بلغة واجهة المستخدم الحالية (إذا تم تثبيت حزمة اللغة المناسبة، وإلا فسيتم الرجوع إلى اللغة الإنجليزية).يمكنك تغيير رسائل الاستثناء المتغيرة Thread.CurrentThread.CurrentUICulture الملكية، إلا أنها ستؤثر على واجهة المستخدم الرسومية بأكملها لتطبيقك.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top