Compartir a través de


Localizar y utilizar recursos para una referencia cultural específica

Common Language Runtime proporciona compatibilidad para recuperar recursos específicos de referencias culturales que están empaquetados e implementados en ensamblados satélite. Los ensamblados satélite sólo contienen archivos de recursos o recursos separados, como archivos .gif. No contienen código ejecutable.

En el modelo de implementación de ensamblado satélite, se crea una aplicación con un ensamblado predeterminado (el principal) y varios ensamblados satélite. Se deben empaquetar los recursos del ensamblado predeterminado o neutro con el ensamblado principal y crear un ensamblado satélite independiente por cada idioma que admita la aplicación. Debido a que los ensamblados satélite no forman parte del ensamblado principal, los recursos correspondientes a una referencia cultural específica se pueden reemplazar o actualizar fácilmente sin reemplazar el ensamblado principal de la aplicación.

La clase ResourceManager proporciona acceso a recursos específicos de la referencia cultural en tiempo de ejecución y controla cómo la aplicación recupera los recursos mediante el proceso de reserva de recursos. ResourceManager determina qué recursos recuperar en función de la propiedad CultureInfo.CurrentUICulture del subproceso actual. Por ejemplo, si se compila una aplicación con recursos del idioma inglés predeterminado en el ensamblado principal y dos ensamblados satélite que contienen recursos para los idiomas francés y alemán, y la propiedad CurrentUICulture se establece como "de", ResourceManager recupera los recursos correspondientes al alemán.

La propiedad CurrentUICulture se puede establecer de varias formas. Tenga en cuenta que la forma en que se establezca esta propiedad afectará al modo en que ResourceManager recupera los recursos basados en la referencia cultural:

  • La propiedad CurrentUICulture puede establecerse como una referencia cultural específica en el código de la aplicación, por ejemplo "fr-CA" para francés de Canadá. Al establecer explícitamente CurrentUICulture en el código, se garantiza que los recursos para esa referencia cultural siempre se recuperarán sin tener en cuenta el explorador del usuario ni el idioma del sistema. Considere una aplicación compilada con los recursos predeterminados del idioma inglés y dos ensamblados satélite que contienen recursos para los idiomas francés y alemán. Si la propiedad CurrentUICulture se establece como "de" en el código de la aplicación, ResourceManager siempre recuperará los recursos del alemán, incluso aunque el idioma del sistema del usuario esté establecido como francés. Asegúrese de que éste es el comportamiento deseado antes de configurar la propiedad explícitamente en el código.

    En las aplicaciones de ASP.NET, es necesario establecer CurrentUICulture de forma explícita porque es improbable que la configuración del servidor coincida con las solicitudes entrantes del cliente.

  • La propiedad CurrentUICulture se establecerá de forma implícita si la aplicación especifica una propiedad CurrentUICulture. Si el valor de la propiedad CurrentUICulture no se establece de forma explícita en el código de la aplicación, en los productos MUI (Multiple User Interface, Interfaz de usuario múltiple) de Windows 2000 y Windows XP, en los que el usuario final puede configurar el idioma predeterminado, la establecerá la función GetUserDefaultUILanguage. Si el idioma de la interfaz de usuario no está establecido, se establecerá con el idioma instalado en el sistema, correspondiente a los recursos del sistema operativo.

    Si una aplicación está basada en el Web, CurrentUICulture se puede establecer de forma explícita en el código de la aplicación como el idioma aceptado por el explorador del usuario.

Para obtener ejemplos de cómo configurar la propiedad CurrentUICulture, vea Utilizar la propiedad CurrentUICulture.

Para obtener más información sobre cómo recuperar recursos para una referencia cultural específica, vea Recuperar recursos de ensamblados satélite y Recursos de aplicaciones de ASP.NET.

Vea también

Desarrollar aplicaciones de uso internacional | Recursos en aplicaciones | CultureInfo (Clase) | CultureInfo.CurrentUICulture (Propiedad)