2011-03-01 22 views
5

Tengo una aplicación C# y estoy tratando de hacer que sea compatible con varios idiomas al hacer referencia a diferentes archivos resx utilizando el administrador de recursos.¿Cómo cambio el Administrador de recursos actual en tiempo de ejecución para cambiar de idioma?

tengo este código en mis Designer.cs:

 [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] 
    public static global::System.Resources.ResourceManager ResourceManager { 
     get { 
      if (object.ReferenceEquals(resourceMan, null)) { 
       global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("project.resources.en-US", typeof(resources.en-US).Assembly); 
       resourceMan = temp; 
      } 
      return resourceMan; 
     } 
    } 

¿Cómo puedo cambiar System.Resources.ResourceManager("project.resources.en-US", typeof(resources.en-US).Assembly)-System.Resources.ResourceManager("project.resources.it-IT", typeof(resources.it-IT).Assembly) en tiempo de ejecución sin modificar mi código Designer.cs? ¿Es posible?

This question is related

Editar: Para aclarar, me doy cuenta que no tengo que cambiar mi código de diseñador, pero estoy tratando de hacerlo de modo que puedo tener acceso a un archivo resx diferente. Me disculpo si mi pregunta fue mal redactada, pero creo que no entiendo completamente de lo que estoy hablando. Actualmente estoy investigando ensamblajes satelitales.

+1

No edite el código en el archivo Designer.cs, el código predeterminado es culturalmente independiente. Perderás estos cambios de todos modos. La conmutación de recursos es automática en función del idioma del sistema. Búsqueda de "ensamblados de satélite" en la biblioteca de MSDN. –

Respuesta

3

simplemente cambie la información de la cultura actual y el trabajo debe hacerse. System.Threading.Thread.CurrentThread.CurrentUICulture = new CultureInfo("en-US");

+0

Parece engañosamente simple ... –

+0

Parece funcionar, aunque no estoy al tanto de la magia con la que funciona. Gracias Señor. –

+2

Es muy simple. CurrentUiCulture contiene la configuración regional para el hilo actual. Si lo configura en ru-RU, cargará los datos del archivo de recursos ruso para el hilo actual, y no toda la aplicación. También existe la propiedad CurrentCulture que es responsable de las tareas de globalización, como el carácter separador decimal, la moneda, etc. eche un vistazo a http://msdn.microsoft.com/en-us/library/system.globalization.cultureinfo.aspx <- aquí – Davita

Cuestiones relacionadas