NeutralResourcesLanguageAttribute Classe
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Informe le gestionnaire de ressources de la culture par défaut d’une application. Cette classe ne peut pas être héritée.
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
- Héritage
- Attributs
Exemples
L’exemple suivant utilise une application « Hello World » simple pour illustrer l’utilisation de l’attribut NeutralResourcesLanguageAttribute pour définir une culture par défaut ou de secours. Il nécessite la création de fichiers de ressources distincts pour les cultures anglais (en), anglais (États-Unis) (en-US) et français (France) (fr-FR). L’exemple suivant montre le contenu d’un fichier texte nommé ExampleResources.txt pour la culture anglaise.
# Resources for the default (en) culture.
Greeting=Hello
Pour utiliser le fichier de ressources dans une application, vous devez utiliser le générateur de fichiers de ressources (Resgen.exe) pour convertir le fichier à partir de son format texte (.txt) en format binaire (.resources) comme suit :
resgen ExampleResources.txt
Lorsque l’application est compilée, le fichier de ressources binaires est incorporé dans l’assembly d’application principal.
L’exemple suivant montre le contenu d’un fichier texte nommé ExampleResources.en-US.txt qui fournit des ressources pour la culture anglaise (États-Unis).
# Resources for the en-US culture.
Greeting=Hi
Le fichier texte peut être converti en fichier de ressources binaires à l’aide du générateur de fichiers de ressources (ResGen.exe) sur la ligne de commande comme suit :
resgen ExampleResources.en-US.txt ExampleResources.en-US.resources
Le fichier de ressources binaire doit ensuite être compilé dans un assembly à l’aide d’Assembly Linker (Al.exe) et placé dans le sous-répertoire en-US du répertoire de l’application en émettant la commande suivante :
al /t:lib /embed:ExampleResources.en-US.resources /culture:en-US /out:en-us\Example.resources.dll
L’exemple suivant montre le contenu d’un fichier texte nommé ExampleResources.fr-FR.txt qui fournit des ressources pour la culture française (France).
# Resources for the fr-FR culture.
Greeting=Bonjour
Le fichier texte peut être converti en fichier de ressources binaire à l’aide de ResGen.exe sur la ligne de commande comme suit :
resgen ExampleResources.fr-FR.txt ExampleResources.fr-FR.resources
Le fichier de ressources binaires doit ensuite être compilé dans un assembly à l’aide de Assembly Linker et placé dans le sous-répertoire fr-FR du répertoire de l’application en émettant la commande suivante :
al /t:lib /embed:ExampleResources.fr-FR.resources /culture:fr-FR /out:fr-FR\Example.resources.dll
L’exemple suivant fournit le code exécutable qui définit la culture actuelle, invite le nom de l’utilisateur et affiche une chaîne localisée.
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
Elle peut être compilée à l’aide de la commande suivante dans Visual Basic :
vbc Example.vb /resource:ExampleResources.resources
ou à l’aide de la commande suivante en C# :
csc Example.cs /resource:ExampleResources.resources
Remarques
Dans les applications de bureau, l’attribut NeutralResourcesLanguageAttribute informe le gestionnaire de ressources de la culture par défaut d’une application et l’emplacement de ses ressources. Par défaut, les ressources sont incorporées dans l’assembly d’application principal et vous pouvez utiliser l’attribut comme suit. Cette instruction spécifie que l’anglais (États-Unis) est la culture par défaut de l’application.
[assembly: NeutralResourcesLanguage("en-US")]
<Assembly:NeutralResourcesLanguage("en-US")>
Vous pouvez également utiliser l’attribut NeutralResourcesLanguageAttribute pour indiquer où ResourceManager trouver les ressources de la culture par défaut en fournissant une valeur d’énumération UltimateResourceFallbackLocation dans l’instruction d’attribut. Cela est le plus souvent fait pour indiquer que les ressources résident dans une assembly satellite. Par exemple, l’instruction suivante spécifie que l’anglais (États-Unis) est la culture par défaut ou neutre de l’application et que ses ressources résident dans un assembly satellite. L’objet ResourceManager les recherche dans un sous-répertoire nommé en-US.
[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
<Assembly:NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)>
Tip
Nous vous recommandons d’utiliser toujours l’attribut NeutralResourcesLanguageAttribute pour définir la culture par défaut de votre application.
L’attribut exécute deux rôles :
Si les ressources de la culture par défaut sont incorporées dans l’assembly principal de l’application et ResourceManager doivent récupérer les ressources qui appartiennent à la même culture que la culture par défaut, elles ResourceManager utilisent automatiquement les ressources situées dans l’assembly principal au lieu de rechercher un assembly satellite. Cela permet de contourner la sonde d’assemblage habituelle, d’améliorer les performances de recherche pour la première ressource que vous chargez et de réduire votre ensemble de travail. Consultez Packaging and Deploying Resources pour le processus que ResourceManager utilise pour rechercher des fichiers de ressources.
Si les ressources de la culture par défaut se trouvent dans un assembly satellite plutôt que dans l’assembly d’application principal, l’attribut NeutralResourcesLanguageAttribute spécifie la culture et le répertoire à partir duquel le runtime peut charger les ressources.
Constructeurs
| Nom | Description |
|---|---|
| NeutralResourcesLanguageAttribute(String, UltimateResourceFallbackLocation) |
Initialise une nouvelle instance de la NeutralResourcesLanguageAttribute classe avec l’emplacement de secours de ressource ultime spécifié. |
| NeutralResourcesLanguageAttribute(String) |
Initialise une nouvelle instance de la classe NeutralResourcesLanguageAttribute. |
Propriétés
| Nom | Description |
|---|---|
| CultureName |
Obtient le nom de la culture. |
| Location |
Obtient l’emplacement de la ResourceManager classe à utiliser pour récupérer des ressources neutres à l’aide du processus de secours des ressources. |
| TypeId |
En cas d’implémentation dans une classe dérivée, obtient un identificateur unique pour cette Attribute. (Hérité de Attribute) |
Méthodes
| Nom | Description |
|---|---|
| Equals(Object) |
Retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| GetHashCode() |
Retourne le code de hachage pour cette instance. (Hérité de Attribute) |
| GetType() |
Obtient la Type de l’instance actuelle. (Hérité de Object) |
| IsDefaultAttribute() |
En cas de substitution dans une classe dérivée, indique si la valeur de cette instance est la valeur par défaut de la classe dérivée. (Hérité de Attribute) |
| Match(Object) |
En cas de substitution dans une classe dérivée, retourne une valeur qui indique si cette instance est égale à un objet spécifié. (Hérité de Attribute) |
| MemberwiseClone() |
Crée une copie superficielle du Objectactuel. (Hérité de Object) |
| ToString() |
Retourne une chaîne qui représente l’objet actuel. (Hérité de Object) |
Implémentations d’interfaces explicites
| Nom | Description |
|---|---|
| _Attribute.GetIDsOfNames(Guid, IntPtr, UInt32, UInt32, IntPtr) |
Mappe un jeu de noms avec un jeu correspondant d'identificateurs de dispatch. (Hérité de Attribute) |
| _Attribute.GetTypeInfo(UInt32, UInt32, IntPtr) |
Récupère les informations de type d’un objet, qui peuvent être utilisées pour obtenir les informations de type d’une interface. (Hérité de Attribute) |
| _Attribute.GetTypeInfoCount(UInt32) |
Récupère le nombre d'interfaces d'informations de type fourni par un objet (0 ou 1). (Hérité de Attribute) |
| _Attribute.Invoke(UInt32, Guid, UInt32, Int16, IntPtr, IntPtr, IntPtr, IntPtr) |
Fournit l’accès aux propriétés et méthodes exposées par un objet. (Hérité de Attribute) |