¿Cómo puedo garantizar que se cargue la versión de idioma adecuada de un recurso de cadena en tiempo de ejecución?

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

Pregunta

Tengo un archivo de recursos de cadena llamado "strings.resx" en mi proyecto VB.NET, definido como un recurso integrado.tengo otro archivo llamado strings.es.resx, que contiene todas las mismas cadenas en español.Estoy cargando el recurso en tiempo de ejecución usando el siguiente código:

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

Configuré el idioma local en español en Windows y volví a iniciar sesión, pero todavía se cargan los recursos de cadena en inglés cuando se ejecuta lo anterior.¿Cómo puedo cargar los recursos en español si la configuración regional de Windows es ES?Esperaba que se manejara automáticamente.

¿Fue útil?

Solución

Échale un vistazo al System.Threading.Thread.CurrentThread.CurrentUICulture propiedad: tiene la costumbre de fijarse en en-US.

Si es así, intente configurarlo igual que CurrentCulture.

Actualizar

Como eso no funcionó, verifique que la carpeta de salida de su aplicación tenga una es carpeta, dentro de la cual hay un dll llamado strings.resources.dll.Si no, entonces, básicamente, el administrador de recursos no encuentra el recurso de cadena específico de la cultura, porque no está allí, en cuyo caso cópielos y debería funcionar.

Otros consejos

DESCARGO DE RESPONSABILIDAD - Todo esto es de memoria y puede que no sea 100% exacto :-)

Los recursos .NET se cargan usando Thread.CurrentUICulture (a menos que lo anule explícitamente al cargar recursos en el código). Thread.CurrentUICulture lo establece el idioma de la interfaz de usuario utilizado en la instalación de Windows y no se puede cambiar.Esto no es lo mismo que Thread.CurrentCulture, que se configura en el Panel de control y se puede cambiar en cualquier momento.

Por ejemplo, en mi PC, CurrentCulture devoluciones "en-GB" porque ahí es donde estoy, pero CurrentUICulture devoluciones "en-US" porque Microsoft sólo proporciona una versión en inglés de Windows.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top