NeutralResourcesLanguageAttribute Classe

Définition

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
NeutralResourcesLanguageAttribute
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)

S’applique à

Voir aussi