كيف يمكنني التأكد من تحميل إصدار اللغة المناسب لمورد السلسلة في وقت التشغيل?

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

سؤال

لدي ملف مورد سلسلة يسمى " سلاسل.ريسكس " في بلدي VB.NET مشروع ، يعرف بأنه مورد مضمن.لدي ملف آخر يسمى strings.es.resx, ، والذي يحتوي على جميع السلاسل نفسها باللغة الإسبانية.أنا تحميل المورد في وقت التشغيل باستخدام التعليمات البرمجية التالية:

MyStrings = New ResourceManager("myprog.strings", GetType(MainForm).Assembly)

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

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

المحلول

نلقي نظرة على System.Threading.Thread.CurrentThread.CurrentUICulture الملكية-لديها عادة من كونها ثابتة إلى أون لنا.

إذا كان الأمر كذلك ، فحاول ضبطه على نفس CurrentCulture.

تحديث

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

نصائح أخرى

إخلاء المسؤولية - هذا كله من الذاكرة وقد لا يكون دقيقا بنسبة 100٪: -)

يتم تحميل صافي الموارد باستخدام Thread.CurrentUICulture (ما لم تقم بتجاوزه صراحة عند تحميل الموارد في التعليمات البرمجية). Thread.CurrentUICulture تم تعيينه بواسطة لغة واجهة المستخدم المستخدمة في تثبيت ويندوز ، ولا يمكن تغييرها.هذا ليس هو نفسه Thread.CurrentCulture, ، والتي تم تعيينها في لوحة التحكم ، ويمكن تغييرها في أي وقت.

على سبيل المثال ، على جهاز الكمبيوتر الخاص بي, CurrentCulture المرتجعات "en-GB" لأن هذا هو المكان الذي أنا فيه ، ولكن CurrentUICulture المرتجعات "en-US" لأن مايكروسوفت توفر فقط نسخة واحدة باللغة الإنجليزية من ويندوز.

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