Как я могу гарантировать, что соответствующая языковая версия строкового ресурса загружается во время выполнения?

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

Вопрос

У меня есть файл строковых ресурсов с именем «strings.resx» в моем проекте VB.NET, определенный как встроенный ресурс.У меня есть еще один файл под названием strings.es.resx, который содержит все те же строки на испанском языке.Я загружаю ресурс во время выполнения, используя следующий код:

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

Я установил языковой стандарт Espanol в Windows и снова вошел в систему, но я все еще получаю загрузку английских строковых ресурсов при выполнении вышеуказанного.Как загрузить ресурсы на испанском языке, если локаль Windows — ES?Я ожидал, что это будет обработано автоматически.

Это было полезно?

Решение

Посмотрите на свойство System.Threading.Thread.CurrentThread.CurrentUICulture - у него привычка быть прикрепленной к нам.

Если это так, попробуйте установить его к тому же, как CurrentCulture.

<Сильное> Обновление

С тех пор, как это не работало, убедитесь, что выходная папка вашего приложения имеет папку es, внутри которой находится dll rings.resources.dll.Если нет, то, в принципе, Manager Resource не обнаруживает, что у специфики для культуры строки, потому что он там нет, в этом случае их копирует их, и он должен работать.

Другие советы

ОТКАЗ ОТ ОТВЕТСТВЕННОСТИ - это все по памяти и может быть не на 100% точным :-)

Ресурсы .NET загружаются с помощью Thread.CurrentUICulture (если вы явно не переопределите его при загрузке ресурсов в коде). Thread.CurrentUICulture задается языком пользовательского интерфейса, используемым при установке Windows, и не может быть изменен.Это не то же самое, что Thread.CurrentCulture, который задается в Панели управления и может быть изменен в любое время.

Например, на моем компьютере CurrentCulture возвращает "en-GB" потому что я там, но CurrentUICulture возвращает "en-US" потому что Microsoft предоставляет только одну англоязычную версию Windows.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top