NeutralResourcesLanguageAttribute Clase

Definición

Informa al administrador de recursos de la referencia cultural predeterminada de una aplicación.Informs the resource manager of an app's default culture. No se puede heredar esta clase.This class cannot be inherited.

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
type NeutralResourcesLanguageAttribute = class
    inherit Attribute
Public NotInheritable Class NeutralResourcesLanguageAttribute
Inherits Attribute
Herencia
NeutralResourcesLanguageAttribute
Atributos

Ejemplos

En el ejemplo siguiente se usa una aplicación "Hola mundo" simple para mostrar el uso del atributo NeutralResourcesLanguageAttribute para definir una referencia cultural predeterminada o de reserva.The following example uses a simple "Hello World" app to illustrate the use of the NeutralResourcesLanguageAttribute attribute to define a default or fallback culture. Requiere la creación de archivos de recursos independientes para las referencias culturales de inglés (en), Inglés (Estados Unidos) (en-US) y francés (Francia) (fr-FR).It requires the creation of separate resource files for the English (en), English (United States) (en-US), and French (France) (fr-FR) cultures. A continuación se muestra el contenido de un archivo de texto denominado ExampleResources. txt para la referencia cultural en inglés.The following shows the contents of a text file named ExampleResources.txt for the English culture.

# 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:To use the resource file in an app, you must use the Resource File Generator (Resgen.exe) to convert the file from its text (.txt) format to a binary (.resources) format as follows:

resgen ExampleResources.txt  

Una vez compilada la aplicación, el archivo de recursos binario se incrustará en el ensamblado de la aplicación principal.When the app is compiled, the binary resource file will be embedded in the main app assembly.

A continuación se muestra el contenido de un archivo de texto denominado ExampleResources. en-US. txt que proporciona recursos para la referencia cultural inglés (Estados Unidos).The following shows the contents of a text file named ExampleResources.en-US.txt that provides resources for the English (United States) culture.

# Resources for the en-US culture.  
Greeting=Hi  

El archivo de texto se puede convertir en un archivo de recursos binario mediante el generador de archivos de recursos (Resgen. exe) en la línea de comandos de la siguiente manera:The text file can be converted to a binary resources file by using the Resource File Generator (ResGen.exe) at the command line as follows:

resgen ExampleResources.en-US.txt ExampleResources.en-US.resources  

El archivo de recursos binario se debe compilar en un ensamblado mediante Assembly Linker (al. exe) y colocarlo en el subdirectorio en-US del directorio de la aplicación mediante la emisión del comando siguiente:The binary resource file should then be compiled into an assembly by using Assembly Linker (Al.exe) and placed in the en-US subdirectory of the app directory by issuing the following command:

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 Strings.fr. txt que proporciona los recursos para la referencia cultural francés (Francia).The following shows the contents of a text file named ExampleResources.fr-FR.txt that provides resources for the French (France) culture.

# Resources for the fr-FR culture.  
Greeting=Bonjour  

El archivo de texto se puede convertir en un archivo de recursos binario mediante ResGen. exe en la línea de comandos de la siguiente manera:The text file can be converted to a binary resource file by using ResGen.exe at the command line as follows:

resgen ExampleResources.fr-FR.txt ExampleResources.fr-FR.resources  

Después, el archivo de recursos binarios se debe compilar en un ensamblado mediante Assembly Linker y colocarse en el subdirectorio fr-FR del directorio de la aplicación mediante la emisión del comando siguiente:The binary resources file should then be compiled into an assembly by using Assembly Linker and placed in the fr-FR subdirectory of the app directory by issuing the following command:

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, solicita el nombre del usuario y muestra una cadena traducida.The following example provides the executable code that sets the current culture, prompts for the user's name, and displays a localized string.

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 {0}", 
                        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("{0} {1}!", greeting, name);
   }
}
Imports System.Globalization
Imports System.Reflection
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 con el siguiente comando en Visual Basic:It can be compiled by using the following command in Visual Basic:

vbc Example.vb /resource:ExampleResources.resources  

o bien, use el comando siguiente C#en:or by using the following command in C#:

csc Example.cs /resource:ExampleResources.resources  

Comentarios

Aplicaciones de escritorioDesktop Apps

En las aplicaciones de escritorio, el atributo NeutralResourcesLanguageAttribute informa al administrador de recursos de la referencia cultural predeterminada de una aplicación y la ubicación de sus recursos.In desktop apps, the NeutralResourcesLanguageAttribute attribute informs the resource manager of an app's default culture and the location of its resources. De forma predeterminada, los recursos se incrustan en el ensamblado de la aplicación principal y puede usar el atributo como se indica a continuación.By default, resources are embedded in the main app assembly, and you can use the attribute as follows. Esta instrucción especifica que el inglés (Estados Unidos) es la referencia cultural predeterminada de la aplicación.This statement specifies that the English (United States) is the app's default culture.

using System.Resources;

[assembly:NeutralResourcesLanguage("en-US")]
Imports System.Resources

<Assembly:NeutralResourcesLanguage("en-US")>

También puede usar el atributo NeutralResourcesLanguageAttribute para indicar dónde ResourceManager puede encontrar los recursos de la referencia cultural predeterminada proporcionando un valor de enumeración UltimateResourceFallbackLocation en la instrucción de atributo.You can also use the NeutralResourcesLanguageAttribute attribute to indicate where ResourceManager can find the resources of the default culture by providing an UltimateResourceFallbackLocation enumeration value in the attribute statement. Esto se hace normalmente para indicar que los recursos residen en un ensamblado satélite.This is most commonly done to indicate that the resources reside in a satellite assembly. Por ejemplo, la siguiente instrucción especifica que inglés (Estados Unidos) es la referencia cultural predeterminada o neutra de la aplicación y que sus recursos residen en un ensamblado satélite.For example, the following statement specifies that English (United States) is the app's default or neutral culture and that its resources reside in a satellite assembly. El objeto ResourceManager los buscará en un subdirectorio denominado en-US.The ResourceManager object will look for them in a subdirectory named en-US.

using System.Resources;

[assembly:NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
Imports System.Resources

<Assembly:NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>

Sugerencia

Se recomienda usar siempre el atributo NeutralResourcesLanguageAttribute para definir la referencia cultural predeterminada de la aplicación.We recommend that you always use the NeutralResourcesLanguageAttribute attribute to define the default culture of your app.

El atributo realiza dos funciones:The attribute performs two roles:

  • Si los recursos de la referencia cultural predeterminada están incrustados en el ensamblado principal de la aplicación y ResourceManager tiene que recuperar recursos que pertenecen a la misma referencia cultural que la referencia cultural predeterminada, el ResourceManager utiliza automáticamente los recursos ubicados en el ensamblado principal en lugar de buscar un ensamblado satélite.If the default culture's resources are embedded in the app's main assembly and ResourceManager has to retrieve resources that belong to the same culture as the default culture, the ResourceManager automatically uses the resources located in the main assembly instead of searching for a satellite assembly. 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.This bypasses the usual assembly probe, improves lookup performance for the first resource you load, and can reduce your working set. Vea empaquetar e implementar recursos para el proceso ResourceManager usa para sondear los archivos de recursos.See Packaging and Deploying Resources for the process ResourceManager uses to probe for resource files.

  • 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 atributo NeutralResourcesLanguageAttribute especifica la referencia cultural y el directorio desde el que el tiempo de ejecución puede cargar los recursos.If the default culture's resources are located in a satellite assembly rather than in the main app assembly, the NeutralResourcesLanguageAttribute attribute specifies the culture and the directory from which the runtime can load the resources.

Aplicaciones de Tienda Windows 8.xWindows 8.x StoreTienda Windows 8.xWindows 8.x Store Apps

En Tienda Windows 8.xWindows 8.x Store aplicaciones cuyos recursos se cargan y recuperan mediante la clase ResourceManager, el atributo NeutralResourcesLanguageAttribute define la referencia cultural neutra cuyos recursos se usan en caso de que se produjeron errores en el sondeo.In Tienda Windows 8.xWindows 8.x Store apps whose resources are loaded and retrieved by using the ResourceManager class, the NeutralResourcesLanguageAttribute attribute defines the neutral culture whose resources are used in the event of a failed probe. No especifica la ubicación de los recursos.It does not specify the location of the resources. De forma predeterminada, ResourceManager usa el archivo de índice de recursos del paquete (PRI) de la aplicación para localizar los recursos de la referencia cultural predeterminada.By default, ResourceManager uses the app's package resource index (PRI) file to locate the resources of the default culture. La referencia cultural neutra definida por el atributo NeutralResourcesLanguageAttribute se agrega al final de la lista de idiomas de la interfaz de usuario para simular este efecto.The neutral culture that is defined by the NeutralResourcesLanguageAttribute attribute is added to the end of the UI language list to simulate this effect.

Si carga y recupera recursos mediante el Windows en tiempo de ejecuciónWindows Runtimela clase Windows. applicationmodel. Resources. ResourceLoader o los tipos del espacio de nombres Windows. Applicationmodel. Resources. Core , se omite el atributo NeutralResourcesLanguageAttribute.If you load and retrieve resources by using the Windows en tiempo de ejecuciónWindows RuntimeWindows.ApplicationModel.Resources.ResourceLoader class or the types in the Windows.ApplicationModel.Resources.Core namespace, the NeutralResourcesLanguageAttribute attribute is ignored.

Constructores

NeutralResourcesLanguageAttribute(String)

Inicializa una nueva instancia de la clase NeutralResourcesLanguageAttribute.Initializes a new instance of the NeutralResourcesLanguageAttribute class.

NeutralResourcesLanguageAttribute(String, UltimateResourceFallbackLocation)

Inicializa una nueva instancia de la clase NeutralResourcesLanguageAttribute con la última ubicación de reserva de recursos especificada.Initializes a new instance of the NeutralResourcesLanguageAttribute class with the specified ultimate resource fallback location.

Propiedades

CultureName

Obtiene el nombre de la referencia cultural.Gets the culture name.

Location

Obtiene la ubicación de la clase ResourceManager para recuperar recursos independientes del idioma mediante el proceso de reserva de recursos.Gets the location for the ResourceManager class to use to retrieve neutral resources by using the resource fallback process.

TypeId

Cuando se implementa en una clase derivada, obtiene un identificador único para este Attribute.When implemented in a derived class, gets a unique identifier for this Attribute.

(Heredado de Attribute)

Métodos

Equals(Object)

Devuelve un valor que indica si esta instancia es igual que un objeto especificado.Returns a value that indicates whether this instance is equal to a specified object.

(Heredado de Attribute)
GetHashCode()

Devuelve el código hash de esta instancia.Returns the hash code for this instance.

(Heredado de Attribute)
GetType()

Obtiene el Type de la instancia actual.Gets the Type of the current instance.

(Heredado de Object)
IsDefaultAttribute()

Si se reemplaza en una clase derivada, indica si el valor de esta instancia es el valor predeterminado de la clase derivada.When overridden in a derived class, indicates whether the value of this instance is the default value for the derived class.

(Heredado de Attribute)
Match(Object)

Cuando se invalida en una clase derivada, devuelve un valor que indica si esta instancia es igual a un objeto especificado.When overridden in a derived class, returns a value that indicates whether this instance equals a specified object.

(Heredado de Attribute)
MemberwiseClone()

Crea una copia superficial del objeto Object actual.Creates a shallow copy of the current Object.

(Heredado de Object)
ToString()

Devuelve una cadena que representa el objeto actual.Returns a string that represents the current object.

(Heredado de Object)

Implementaciones de interfaz explícitas

_Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr)

Asigna un conjunto de nombres a un conjunto correspondiente de identificadores de envío.Maps a set of names to a corresponding set of dispatch identifiers.

(Heredado de Attribute)
_Attribute.GetTypeInfo(UInt32, UInt32, IntPtr)

Obtiene la información de tipos de un objeto, que puede utilizarse para obtener la información de tipos de una interfaz.Retrieves the type information for an object, which can be used to get the type information for an interface.

(Heredado de Attribute)
_Attribute.GetTypeInfoCount(UInt32)

Recupera el número de interfaces de información de tipo que proporciona un objeto (0 ó 1).Retrieves the number of type information interfaces that an object provides (either 0 or 1).

(Heredado de Attribute)
_Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr)

Proporciona acceso a las propiedades y los métodos expuestos por un objeto.Provides access to properties and methods exposed by an object.

(Heredado de Attribute)

Se aplica a

Consulte también: