Pregunta

Tengo una aplicación de C #, que tiene que ejecutarse en máquinas con diferentes configuraciones de referencia cultural. No hay problema, pensé, se acaba de poner en marcha las operaciones de búsqueda de lo que la cultura actual está en la máquina, y hacer todo para mí. Pues no, sería costura que algo no está del todo bien.

Tengo una máquina Windows XP con todo en las opciones regionales y de idioma ajustado en Inglés de Estados Unidos, sin embargo, cuando mi aplicación se inicia informa de que mi CurrentCulture es en-GB y mi CurrentUICulture es en-US.

¿Cómo puedo hacer que mi programa utilizar simplemente lo que el equipo está ajustado a?

Esta es una aplicación de servicio de Windows si hace alguna diferencia.

Gracias

¿Fue útil?

Solución

Un servicio de Windows por lo general no se ejecuta bajo su UserAccount y no importa lo que sus configuración regional son. Se trata de la configuración regional de la cuenta del sistema. Supongo que ejecuta una versión en-GB de Windows y la cuenta del sistema que sigue utilizando.

Hay maneras de conseguir en esa cuenta, comprobar superusuario .

Otros consejos

Creo que lo siguiente es cierto:

  • CurrentCulture (que afecta al número y la fecha de formatos) reflejará la configuración regional de la cuenta en la que se ejecuta la aplicación. Puede cambiar esto fácilmente con los ajustes Panel de control / regionales para el usuario actual, y si usted es un administrador también para el usuario "por defecto" que se utiliza para las cuentas del sistema que a menudo se utiliza para los servicios de Windows. Para cambiar el usuario por defecto hay un botón "Usar como predeterminado" en alguna parte.

  • CurrentUICulture se corresponderá con el idioma de la versión de Windows que esté utilizando. Para las versiones MUI, puede cambiar esto en Panel de control, pero no para las versiones de un solo idioma.

Sé que se puede establecer cuál es su referencia cultural de todos es como parte de una construcción, pero me sorprendió al leer esto que la cultura de la caja de acumulación se convirtió en su referencia cultural de todos. ¿Usted ha intentado buscar todos los archivos de es-ES sólo para estar seguro de que no es por defecto en alguna parte?

En cualquier caso, hay una solución. Si desea reemplazar esto con la cultura O / S, se puede conseguir que en la siguiente ubicación y establecer sus propiedades CurrentCulture y CurrentUICulture a ella:

System.Globalization.CultureInfo.InstalledUICulture
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top