NeutralResourcesLanguageAttribute Clase
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Informa al administrador de recursos de la referencia cultural predeterminada de una aplicación. Esta clase no puede heredarse.
public ref class NeutralResourcesLanguageAttribute sealed : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
public sealed class NeutralResourcesLanguageAttribute : Attribute
[System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)]
[System.Runtime.InteropServices.ComVisible(true)]
public sealed class NeutralResourcesLanguageAttribute : Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
type NeutralResourcesLanguageAttribute = class
inherit Attribute
[<System.AttributeUsage(System.AttributeTargets.Assembly, AllowMultiple=false)>]
[<System.Runtime.InteropServices.ComVisible(true)>]
type NeutralResourcesLanguageAttribute = class
inherit Attribute
Public NotInheritable Class NeutralResourcesLanguageAttribute
Inherits Attribute
- Herencia
- Atributos
Ejemplos
En el siguiente ejemplo se usa una aplicación sencilla "Hola Mundo" para ilustrar el uso del NeutralResourcesLanguageAttribute atributo para definir una referencia cultural predeterminada o de reserva. Requiere la creación de archivos de recursos independientes para las culturas inglés (en), inglés (Estados Unidos) (en-US) y francés (Francia) (fr-FR). A continuación se muestra el contenido de un archivo de texto denominado ExampleResources.txt para la cultura inglesa.
# Resources for the default (en) culture.
Greeting=Hello
Para usar el archivo de recursos en una aplicación, debe usar el Generador de archivos de recursos (Resgen.exe) para convertir el archivo de su formato de texto (.txt) a un formato binario (.resources) como se indica a continuación:
resgen ExampleResources.txt
Cuando se compila la aplicación, el archivo de recursos binarios se incrustará en el ensamblado de la aplicación principal.
A continuación se muestra el contenido de un archivo de texto denominado ExampleResources.en-US.txt que proporciona recursos para la cultura inglés de Estados Unidos.
# Resources for the en-US culture.
Greeting=Hi
El archivo de texto se puede convertir en un archivo de recursos binarios mediante el Generador de archivos de recursos (ResGen.exe) en la línea de comandos de la siguiente manera:
resgen ExampleResources.en-US.txt ExampleResources.en-US.resources
A continuación, el archivo de recursos binarios debe compilarse en un ensamblado mediante Assembly Linker (Al.exe) y colocarse en el subdirectorio en-US del directorio de la aplicación mediante la emisión del comando siguiente:
al /t:lib /embed:ExampleResources.en-US.resources /culture:en-US /out:en-us\Example.resources.dll
A continuación se muestra el contenido de un archivo de texto denominado ExampleResources.fr-FR.txt que proporciona recursos para la cultura francesa (Francia).
# Resources for the fr-FR culture.
Greeting=Bonjour
El archivo de texto se puede convertir en un archivo de recursos binarios mediante ResGen.exe en la línea de comandos de la manera siguiente:
resgen ExampleResources.fr-FR.txt ExampleResources.fr-FR.resources
A continuación, el archivo de recursos binarios se debe compilar en un ensamblado mediante Assembly Linker y colocarlo en el subdirectorio fr-FR del directorio de la aplicación mediante la emisión del siguiente comando:
al /t:lib /embed:ExampleResources.fr-FR.resources /culture:fr-FR /out:fr-FR\Example.resources.dll
En el ejemplo siguiente se proporciona el código ejecutable que establece la referencia cultural actual, se solicita el nombre del usuario y se muestra una cadena localizada.
using System;
using System.Globalization;
using System.Reflection;
using System.Resources;
using System.Threading;
[assembly: NeutralResourcesLanguageAttribute("en")]
public class Example
{
public static void Main()
{
// Select the current culture randomly to test resource fallback.
string[] cultures = { "de-DE", "en-us", "fr-FR" };
Random rnd = new Random();
int index = rnd.Next(0, cultures.Length);
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultures[index]);
Console.WriteLine($"The current culture is {CultureInfo.CurrentUICulture.Name}");
// Retrieve the resource.
ResourceManager rm = new ResourceManager("ExampleResources",
typeof(Example).Assembly);
string greeting = rm.GetString("Greeting");
Console.Write("Enter your name: ");
string name = Console.ReadLine();
Console.WriteLine($"{greeting} {name}!");
}
}
Imports System.Globalization
Imports System.Resources
Imports System.Threading
<Assembly:NeutralResourcesLanguageAttribute("en")>
Module Example
Public Sub Main()
' Select the current culture randomly to test resource fallback.
Dim cultures() As String = { "de-DE", "en-us", "fr-FR" }
Dim rnd As New Random()
Dim index As Integer = rnd.Next(0, cultures.Length)
Thread.CurrentThread.CurrentUICulture = CultureInfo.CreateSpecificCulture(cultures(index))
Console.WriteLine("The current culture is {0}",
CultureInfo.CurrentUICulture.Name)
' Retrieve the resource.
Dim rm As New ResourceManager("ExampleResources" , GetType(Example).Assembly)
Dim greeting As String = rm.GetString("Greeting")
Console.Write("Enter your name: ")
Dim name As String = Console.ReadLine()
Console.WriteLine("{0} {1}", greeting, name)
End Sub
End Module
Se puede compilar mediante el comando siguiente en Visual Basic:
vbc Example.vb /resource:ExampleResources.resources
o mediante el comando siguiente en C#:
csc Example.cs /resource:ExampleResources.resources
Comentarios
En las aplicaciones de escritorio, el NeutralResourcesLanguageAttribute atributo informa al administrador de recursos de la referencia cultural predeterminada de una aplicación y la ubicación de sus recursos. De forma predeterminada, los recursos se insertan en el ensamblado de la aplicación principal y puede usar el atributo de la manera siguiente. Esta instrucción especifica que el inglés (Estados Unidos) es la referencia cultural predeterminada de la aplicación.
[assembly: NeutralResourcesLanguage("en-US")]
<Assembly:NeutralResourcesLanguage("en-US")>
También puede usar el atributo NeutralResourcesLanguageAttribute para indicar dónde ResourceManager puede encontrar los recursos de la cultura predeterminada proporcionando un valor de enumeración UltimateResourceFallbackLocation en la declaración del atributo. Esto suele hacerse para indicar que los recursos residen en un ensamblado satélite. Por ejemplo, la siguiente instrucción especifica que el inglés (Estados Unidos) es la referencia cultural predeterminada o neutral de la aplicación y que sus recursos residen en un ensamblado satélite. El ResourceManager objeto los buscará en un subdirectorio denominado en-US.
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
<Assembly:NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
Tip
Se recomienda usar siempre el NeutralResourcesLanguageAttribute atributo para definir la referencia cultural predeterminada de la aplicación.
El atributo realiza dos roles:
Si los recursos de la referencia cultural predeterminada se insertan en el ensamblado principal de la aplicación y ResourceManager tienen que recuperar recursos que pertenecen a la misma referencia cultural que la referencia cultural predeterminada, usa ResourceManager automáticamente los recursos ubicados en el ensamblado principal en lugar de buscar un ensamblado satélite. Esto omite el sondeo de ensamblado habitual, mejora el rendimiento de la búsqueda para el primer recurso que se carga y puede reducir el espacio de trabajo. Consulte Empaquetado e implementación de recursos para el proceso ResourceManager que usa para sondear los archivos de recursos.
Si los recursos de la referencia cultural predeterminada se encuentran en un ensamblado satélite en lugar de en el ensamblado de la aplicación principal, el NeutralResourcesLanguageAttribute atributo especifica la referencia cultural y el directorio desde el que el entorno de ejecución puede cargar los recursos.
Constructores
| Nombre | Description |
|---|---|
| NeutralResourcesLanguageAttribute(String, UltimateResourceFallbackLocation) |
Inicializa una nueva instancia de la NeutralResourcesLanguageAttribute clase con la ubicación de reserva de recursos definitiva especificada. |
| NeutralResourcesLanguageAttribute(String) |
Inicializa una nueva instancia de la clase NeutralResourcesLanguageAttribute. |
Propiedades
| Nombre | Description |
|---|---|
| CultureName |
Obtiene el nombre de la referencia cultural. |
| Location |
Obtiene la ubicación de la ResourceManager clase que se va a usar para recuperar recursos neutros mediante el proceso de reserva de recursos. |
| TypeId |
Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute. (Heredado de Attribute) |
Métodos
| Nombre | Description |
|---|---|
| Equals(Object) |
Devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
| GetHashCode() |
Devuelve el código hash de esta instancia. (Heredado de Attribute) |
| GetType() |
Obtiene el Type de la instancia actual. (Heredado de Object) |
| IsDefaultAttribute() |
Cuando se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada. (Heredado de Attribute) |
| Match(Object) |
Cuando se reemplaza en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado. (Heredado de Attribute) |
| MemberwiseClone() |
Crea una copia superficial del Objectactual. (Heredado de Object) |
| ToString() |
Devuelve una cadena que representa el objeto actual. (Heredado de Object) |
Implementaciones de interfaz explícitas
| Nombre | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío. (Heredado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera la información de tipo de un objeto, que se puede usar para obtener la información de tipo de una interfaz. (Heredado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1). (Heredado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Proporciona acceso a propiedades y métodos expuestos por un objeto . (Heredado de Attribute) |