2009-11-13 6 views
11

Tengo una aplicación C# que debe ejecutarse en máquinas con diferentes configuraciones de cultivo. No hay problema, pensé, solo buscaré en la puesta en marcha cuál es la cultura actual en la máquina y haré todo por mí. Bueno, no, parece que algo no está del todo bien.¿Por qué mi CurrentCulture es-GB y mi CurrentUICulture es-US?

Tengo una máquina Windows XP con todo en las opciones regionales y de idioma Inglés fijados a los 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 simplemente use lo que esté configurado en la PC?

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

Gracias

+1

¿Tiene algo que ver con el hecho de que estoy compilando la aplicación en una máquina con configuraciones en-GB, pero luego ejecutándola en una máquina con configuración en-US? Simplemente no veo de dónde viene mi en-GB, y mi máquina de desarrollo es el único enlace. – SnAzBaZ

Respuesta

6

un servicio de Windows por lo general no se ejecuta bajo su UserAccount y entonces no importa qué sea su configuración regional. Se trata de la configuración regional de la cuenta del sistema. Supongo que ejecuta una versión de Windows de en-GB, y la cuenta del sistema aún la usa.

Hay formas de acceder a esa cuenta, marque SuperUser.

+0

Sí, se cargó como en-GB y se cambió a en-US. Creo que esto lo solucionará. Tendré un ve ahora. – SnAzBaZ

+0

Funcionó. Muchas gracias. – SnAzBaZ

1

sé que se puede establecer cuál es su referencia cultural de todos es como parte de una construcción, pero se sorprendió al leer esto que la cultura de la caja de acumulación se convirtió en su referencia cultural de todos. ¿Has intentado buscar todos los archivos en-GB solo para asegurarte de que no está predeterminado en algún lugar?

Independientemente de, 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 
+0

Gracias. Lo he comprobado y no lo estoy configurando en ningún lado, la única vez que he usado System.Globalization es justo ahora mientras observo en qué está configurado CurrentCulture. Voy a cambiar mi PC de desarrollo a en-US y ver si eso lo resuelve. – SnAzBaZ

+1

Oh, InstalledUICulture informa en EE. UU., Es CurrentCulture que aún insiste en que es en-GB :-( – SnAzBaZ

4

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 el Panel de control/Configuración regional para el usuario actual, y si usted es un administrador también para el usuario "predeterminado" que se usa para las cuentas del sistema que a menudo se usan para Servicios de Windows. Para cambiar el usuario predeterminado, hay un botón "Usar como predeterminado" en algún lugar.

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

Cuestiones relacionadas