NeutralResourcesLanguageAttribute Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Informa o gerenciador de recursos da cultura padrão de um aplicativo. Essa classe não pode ser herdada.
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
- Herança
- Atributos
Exemplos
O exemplo a seguir usa um simples aplicativo "Olá, Mundo" para ilustrar o uso do atributo NeutralResourcesLanguageAttribute para definir uma cultura padrão ou de fallback. Requer a criação de arquivos de recurso separados para as culturas inglês (en), inglês (Estados Unidos) (en-US) e francês (França) (fr-FR). Veja a seguir o conteúdo de um arquivo de texto chamado ExampleResources.txt para a cultura inglesa.
# Resources for the default (en) culture.
Greeting=Hello
Para usar o arquivo de recurso em um aplicativo, você deve usar o Gerador de Arquivos de Recurso (Resgen.exe) para converter o arquivo de seu formato de texto (.txt) em um formato binário (.resources) da seguinte maneira:
resgen ExampleResources.txt
Quando o aplicativo for compilado, o arquivo de recurso binário será inserido no assembly principal do aplicativo.
O seguinte mostra o conteúdo de um arquivo de texto chamado ExampleResources.en-US.txt que fornece recursos para a cultura inglesa (Estados Unidos).
# Resources for the en-US culture.
Greeting=Hi
O arquivo de texto pode ser convertido em um arquivo de recursos binários usando o Gerador de Arquivos de Recurso (ResGen.exe) na linha de comando da seguinte maneira:
resgen ExampleResources.en-US.txt ExampleResources.en-US.resources
Em seguida, o arquivo de recurso binário deve ser compilado em um assembly usando o Assembly Linker (Al.exe) e colocado no subdiretório en-US do diretório do aplicativo emitindo o seguinte comando:
al /t:lib /embed:ExampleResources.en-US.resources /culture:en-US /out:en-us\Example.resources.dll
Veja a seguir o conteúdo de um arquivo de texto chamado ExampleResources.fr-FR.txt que fornece recursos para a cultura francesa (França).
# Resources for the fr-FR culture.
Greeting=Bonjour
O arquivo de texto pode ser convertido em um arquivo de recurso binário usando ResGen.exe na linha de comando da seguinte maneira:
resgen ExampleResources.fr-FR.txt ExampleResources.fr-FR.resources
O arquivo de recursos binários deve então ser compilado em um assembly usando o Assembly Linker e colocado no subdiretório fr-FR do diretório do aplicativo emitindo o seguinte comando:
al /t:lib /embed:ExampleResources.fr-FR.resources /culture:fr-FR /out:fr-FR\Example.resources.dll
O exemplo a seguir fornece o código executável que define a cultura atual, solicita o nome do usuário e exibe uma cadeia de caracteres 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
Ele pode ser compilado usando o seguinte comando no Visual Basic:
vbc Example.vb /resource:ExampleResources.resources
ou usando o seguinte comando em C#:
csc Example.cs /resource:ExampleResources.resources
Comentários
Em aplicativos da área de trabalho, o NeutralResourcesLanguageAttribute atributo informa ao gerenciador de recursos a cultura padrão de um aplicativo e a localização de seus recursos. Por padrão, os recursos são inseridos no assembly principal do aplicativo e você pode usar o atributo da seguinte maneira. Esta instrução especifica que o inglês (Estados Unidos) é a cultura padrão do aplicativo.
[assembly: NeutralResourcesLanguage("en-US")]
<Assembly:NeutralResourcesLanguage("en-US")>
Você também pode usar o NeutralResourcesLanguageAttribute atributo para indicar onde ResourceManager pode encontrar os recursos da cultura padrão fornecendo um UltimateResourceFallbackLocation valor de enumeração na instrução de atributo. Isso é feito mais comumente para indicar que os recursos residem em um conjunto satélite. Por exemplo, a instrução a seguir especifica que Inglês (Estados Unidos) é a cultura padrão ou neutra do aplicativo e que seus recursos residem em um assembly secundário. O ResourceManager objeto os procurará em um subdiretório chamado en-US.
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
<Assembly:NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
Dica
Recomendamos que você sempre use o NeutralResourcesLanguageAttribute atributo para definir a cultura padrão do seu aplicativo.
O atributo executa duas funções:
Se os recursos da cultura padrão forem inseridos no assembly principal do aplicativo e ResourceManager tiverem que recuperar recursos que pertencem à mesma cultura que a cultura padrão, ele ResourceManager usará automaticamente os recursos localizados no assembly principal em vez de procurar um assembly satélite. Isso contorna a verificação de assembly usual, melhora o desempenho da pesquisa do primeiro recurso carregado e pode reduzir a memória de trabalho. Consulte Empacotamento e Implantação de Recursos para o processo ResourceManager usado para procurar por arquivos de recursos.
Se os recursos da cultura padrão estiverem localizados em um assembly satélite em vez do assembly do aplicativo principal, o atributo NeutralResourcesLanguageAttribute especifica a cultura e o diretório do qual o runtime pode carregar os recursos.
Construtores
| Nome | Description |
|---|---|
| NeutralResourcesLanguageAttribute(String, UltimateResourceFallbackLocation) |
Inicializa uma nova instância da NeutralResourcesLanguageAttribute classe com o local de fallback de recurso final especificado. |
| NeutralResourcesLanguageAttribute(String) |
Inicializa uma nova instância da classe NeutralResourcesLanguageAttribute. |
Propriedades
| Nome | Description |
|---|---|
| CultureName |
Obtém o nome da cultura. |
| Location |
Obtém o local para a ResourceManager classe usar para recuperar recursos neutros usando o processo de fallback de recurso. |
| TypeId |
Quando implementado em uma classe derivada, obtém um identificador exclusivo para esse Attribute. (Herdado de Attribute) |
Métodos
| Nome | Description |
|---|---|
| Equals(Object) |
Retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute) |
| GetHashCode() |
Retorna o código hash dessa instância. (Herdado de Attribute) |
| GetType() |
Obtém o Type da instância atual. (Herdado de Object) |
| IsDefaultAttribute() |
Quando substituído em uma classe derivada, indica se o valor dessa instância é o valor padrão para a classe derivada. (Herdado de Attribute) |
| Match(Object) |
Quando substituído em uma classe derivada, retorna um valor que indica se essa instância é igual a um objeto especificado. (Herdado de Attribute) |
| MemberwiseClone() |
Cria uma cópia superficial do Objectatual. (Herdado de Object) |
| ToString() |
Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object) |
Implantações explícitas de interface
| Nome | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mapeia um conjunto de nomes para um conjunto correspondente de identificadores de expedição. (Herdado de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Recupera as informações de tipo de um objeto, que podem ser usadas para obter as informações de tipo de uma interface. (Herdado de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Retorna o número de interfaces de informações do tipo que um objeto fornece (0 ou 1). (Herdado de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fornece acesso a propriedades e métodos expostos por um objeto. (Herdado de Attribute) |