Partager via


Import-LocalizedData

Importe des données spécifiques au langage dans des scripts et des fonctions en fonction de la culture de l’interface utilisateur sélectionnée pour le système d’exploitation.

Syntaxe

Import-LocalizedData
      [[-BindingVariable] <String>]
      [[-UICulture] <String>]
      [-BaseDirectory <String>]
      [-FileName <String>]
      [-SupportedCommand <String[]>]
      [<CommonParameters>]

Description

L’applet Import-LocalizedData de commande récupère dynamiquement des chaînes à partir d’un sous-répertoire dont le nom correspond au langage d’interface utilisateur défini pour l’utilisateur actuel du système d’exploitation. Il est conçu pour permettre aux scripts d’afficher les messages utilisateur dans la langue de l’interface utilisateur sélectionnée par l’utilisateur actuel.

Import-LocalizedData importe des données à partir de .psd1 fichiers dans des sous-répertoires spécifiques à la langue du répertoire de script et les enregistre dans une variable locale spécifiée dans la commande. L’applet de commande sélectionne le sous-répertoire et le fichier en fonction de la valeur de la $PSUICulture variable automatique. Lorsque vous utilisez la variable locale du script pour afficher un message de l'utilisateur, le message s'affiche dans la langue d'interface utilisateur de l'utilisateur.

Vous pouvez utiliser les paramètres permettant de Import-LocalizedData spécifier une autre culture de l’interface utilisateur, un chemin d’accès et un nom de fichier, pour ajouter des commandes prises en charge et supprimer le message d’erreur qui s’affiche si les .psd1 fichiers ne sont pas trouvés.

L’applet Import-LocalizedData de commande prend en charge l’initiative d’internationalisation de script introduite dans Windows PowerShell 2.0. Cette initiative vise à mieux servir les utilisateurs dans le monde entier en permettant aux scripts d'afficher facilement les messages de l'utilisateur dans la langue de l'interface utilisateur de l'utilisateur actuel. Pour plus d’informations sur ce format et sur le .psd1 format des fichiers, consultez about_Script_Internationalization.

Exemples

Exemple 1 : Importer des chaînes de texte

Cet exemple importe des chaînes de texte dans la $Messages variable. Elle utilise les valeurs par défaut de tous les autres paramètres de l'applet de commande.

Import-LocalizedData -BindingVariable "Messages"

Si la commande est incluse dans le script Archives.ps1 dans le C:\Test répertoire et que la valeur de la $PsUICulture variable automatique est zh-CN, Import-LocalizedData importe le Archives.psd1 fichier dans le C:\test\zh-CN répertoire dans la $Messages variable.

Exemple 2 : Importer des chaînes de données localisées

Cet exemple est exécuté sur la ligne de commande et non dans un script. Elle obtient les chaînes de données localisées du fichier Test.psd1 et les affiche au niveau de la ligne de commande. Étant donné que la commande n’est pas utilisée dans un script, le paramètre FileName est requis. La commande utilise le paramètre UICulture pour spécifier la culture en-US.

Import-LocalizedData -FileName "Test.psd1" -UICulture "en-US"

Name           Value
----           -----
Msg3           "Use $_ to represent the object that's being processed."
Msg2           "This command requires the credentials of a member of the Administrators group on the...
Msg1           "The Name parameter is missing from the command."

Import-LocalizedData retourne une table de hachage qui contient les chaînes de données localisées.

Exemple 3 : Importer des chaînes de culture de l’interface utilisateur

Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"

Cette commande importe des chaînes de texte dans la $MsgTbl variable d’un script.

Il utilise le paramètre UICulture pour diriger l’applet de commande pour importer des données à partir du Simple.psd1 fichier dans le ar-SA sous-répertoire de C:\Data\Localized.

Exemple 4 : Importer des données localisées dans un script

Cet exemple montre comment utiliser les données localisées dans un script simple.

PS C:\> # In C:\Test\en-US\Test.psd1:

ConvertFrom-StringData @'

# English strings

Msg1 = "The Name parameter is missing from the command."
Msg2 = "This command requires the credentials of a member of the Administrators group on the computer."
Msg3 = "Use $_ to represent the object that's being processed."
'@

# In C:\Test\Test.ps1

Import-LocalizedData -BindingVariable "Messages"
Write-Host $Messages.Msg2

# In Windows PowerShell

PS C:\> .\Test.ps1

This command requires the credentials of a member of the Administrators group on the computer.

La première partie de l’exemple montre le contenu du Test.psd1 fichier. Elle contient une ConvertFrom-StringData commande qui convertit une série de chaînes de texte nommées en table de hachage. Le Test.psd1 fichier se trouve dans le sous-répertoire en-US du C:\Test répertoire qui contient le script.

La deuxième partie de l’exemple montre le contenu du Test.ps1 script. Il contient une Import-LocalizedData commande qui importe les données du fichier correspondant .psd1 dans la $Messages variable et une Write-Host commande qui écrit l’un des messages de la $Messages variable dans le programme hôte.

La dernière partie de l'exemple exécute le script. La sortie montre qu'il affiche le message correct de l'utilisateur dans la langue de l'interface utilisateur définie pour l'utilisateur actuel du système d'exploitation.

Exemple 5 : Remplacer les chaînes de texte par défaut dans un script

Cet exemple montre comment utiliser Import-LocalizedData pour remplacer les chaînes de texte par défaut définies dans la section DATA d’un script.

PS C:\> # In TestScript.ps1
$UserMessages = DATA

{    ConvertFrom-StringData @'

    # English strings

        Msg1 = "Enter a name."
        Msg2 = "Enter your employee ID."
        Msg3 = "Enter your building number."
'@
}

Import-LocalizedData -BindingVariable "UserMessages"
$UserMessages.Msg1...

Dans cet exemple, la section DATA du script TestScript.ps1 contient une ConvertFrom-StringData commande qui convertit le contenu de la section DATA en table de hachage et stocke dans la valeur de la $UserMessages variable.

Le script inclut également une Import-LocalizedData commande qui importe une table de hachage de chaînes de texte traduites à partir du fichier TestScript.psd1 dans le sous-répertoire spécifié par la valeur de la $PsUICulture variable. Si la commande trouve le .psd1 fichier, elle enregistre les chaînes traduites du fichier dans la valeur de la même $UserMessages variable, en remplaçant la table de hachage enregistrée par la logique de section DATA.

La troisième commande affiche le premier message dans la $UserMessages variable.

Si la Import-LocalizedData commande trouve un .psd1 fichier pour la $PsUICulture langue, la valeur de la $UserMessages variable contient les chaînes de texte traduites. Si la commande échoue pour une raison quelconque, la commande affiche les chaînes de texte par défaut définies dans la section DATA du script.

Exemple 6 : Supprimer les messages d’erreur si la culture de l’interface utilisateur est introuvable

Cet exemple montre comment supprimer les messages d’erreur qui s’affichent lorsque Import-LocalizedData les répertoires qui correspondent à la culture de l’interface utilisateur de l’utilisateur ou qui ne trouvent pas de .psd1 fichier pour le script dans ces répertoires.

PS C:\> # In Day1.ps1

Import-LocalizedData -BindingVariable "Day"

# In Day2.ps1

Import-LocalizedData -BindingVariable "Day" -ErrorAction:SilentlyContinue

PS C:\> .\Day1.ps1
Import-LocalizedData : Can't find PowerShell data file 'Day1.psd1' in directory 'C:\ps-test\fr-BE\'
or any parent culture directories.
At C:\ps-test\Day1.ps1:17 char:21+ Import-LocalizedData <<<<  Day
Today is Tuesday

PS C:\> .\Day2.ps1
Today is Tuesday

Vous pouvez utiliser le paramètre commun ErrorAction avec la valeur SilentlyContinue pour supprimer le message d’erreur. Cela est particulièrement utile lorsque vous avez fourni des messages utilisateur dans une langue par défaut ou de secours, et aucun message d’erreur n’est nécessaire.

Cet exemple compare deux scripts et Day1.ps1 Day2.ps1, qui incluent une Import-LocalizedData commande. Les scripts sont identiques, sauf que Day2 utilise le paramètre commun ErrorAction avec la valeur SilentlyContinue.

L’exemple de sortie affiche les résultats de l’exécution des deux scripts lorsque la culture de l’interface utilisateur est définie fr-BE et qu’il n’existe aucun fichier ou répertoire correspondant pour cette culture d’interface utilisateur. Day1.ps1 affiche un message d’erreur et une sortie en anglais. Day2.ps1 affiche simplement la sortie anglaise.

Paramètres

-BaseDirectory

Spécifie le répertoire de base où se trouvent les .psd1 fichiers. La valeur par défaut est le répertoire où se trouve le script. Import-LocalizedData recherche le .psd1 fichier du script dans un sous-répertoire spécifique à la langue du répertoire de base.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-BindingVariable

Spécifie la variable dans laquelle les chaînes de texte sont importées. Entrez un nom de variable sans signe dollar ($).

Dans Windows PowerShell 2.0, ce paramètre est obligatoire. Dans Windows PowerShell 3.0, ce paramètre est facultatif. Si vous omettez ce paramètre, Import-LocalizedData retourne une table de hachage des chaînes de texte. La table de hachage est transmise au pipeline ou affichée sur la ligne de commande.

Lorsque vous utilisez Import-LocalizedData pour remplacer les chaînes de texte par défaut spécifiées dans la section DATA d’un script, affectez la section DATA à une variable et entrez le nom de la variable de section DATA dans la valeur du paramètre BindingVariable . Ensuite, lorsque vous Import-LocalizedData enregistrez le contenu importé dans BindingVariable, les données importées remplacent les chaînes de texte par défaut. Si vous ne spécifiez pas de chaînes de texte par défaut, vous pouvez sélectionner n’importe quel nom de variable.

Type:String
Alias:Variable
Position:0
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-FileName

Spécifie le nom du fichier de données (.psd1) à importer). Entrez un nom de fichier. Vous pouvez spécifier un nom de fichier qui n’inclut pas son .psd1 extension de nom de fichier, ou vous pouvez spécifier le nom de fichier, y compris l’extension de nom de .psd1 fichier. Les fichiers de données doivent être enregistrés en tant qu’Unicode ou UTF-8.

Le paramètre FileName est requis quand Import-LocalizedData il n’est pas utilisé dans un script. Sinon, le paramètre est facultatif et la valeur par défaut est le nom de base du script. Vous pouvez utiliser ce paramètre pour diriger Import-LocalizedData la recherche d’un autre .psd1 fichier.

Par exemple, si fileName est omis et que le nom du script est FindFiles.ps1, Import-LocalizedData recherche le FindFiles.psd1 fichier de données.

Type:String
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-SupportedCommand

Spécifie les applets de commande et les fonctions qui génèrent uniquement des données.

Utilisez ce paramètre pour inclure les applets de commande et les fonctions que vous avez écrites ou testées. Pour plus d’informations, consultez about_Script_Internationalization.

Type:String[]
Position:Named
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

-UICulture

Spécifie une autre culture d'interface utilisateur. La valeur par défaut de la $PsUICulture variable automatique. Entrez une culture d’interface utilisateur au <language>-<region> format, par en-USexemple , de-DEou ar-SA.

La valeur du paramètre UICulture détermine le sous-répertoire spécifique au langage (dans le répertoire de base) à partir duquel Import-LocalizedData obtient le .psd1 fichier du script.

L’applet de commande recherche un sous-répertoire portant le même nom que la valeur du paramètre UICulture ou de la $PsUICulture variable automatique, telle que de-DE ou ar-SA. S’il ne trouve pas le répertoire, ou si le répertoire ne contient pas de .psd1 fichier pour le script, il recherche un sous-répertoire portant le nom du code de langue, tel que de ou ar. S’il ne trouve pas le sous-répertoire ou .psd1 le fichier, la commande échoue et les données sont affichées dans la langue par défaut spécifiée dans le script.

Type:String
Position:1
Valeur par défaut:None
Obligatoire:False
Accepter l'entrée de pipeline:False
Accepter les caractères génériques:False

Entrées

None

Vous ne pouvez pas diriger les objets vers cette applet de commande.

Sorties

Hashtable

Cette applet de commande enregistre la table de hachage dans la variable spécifiée par la valeur du paramètre BindingVariable .

Notes

  • Avant d’utiliser Import-LocalizedData, localisez vos messages utilisateur. Mettez en forme les messages pour chaque paramètre régional (culture de l’interface utilisateur) dans une table de hachage de paires clé-valeur, puis enregistrez la table de hachage dans un fichier portant le même nom que le script et une .psd1 extension de nom de fichier. Créez un répertoire sous le répertoire de script pour chaque culture d’interface utilisateur prise en charge, puis enregistrez le .psd1 fichier pour chaque culture d’interface utilisateur dans le répertoire avec le nom de la culture de l’interface utilisateur.

    Par exemple, localisez vos messages utilisateur pour les paramètres régionaux de de-DE et mettez-les en forme dans une table de hachage. Enregistrez la table de hachage dans un <ScriptName>.psd1 fichier. Créez ensuite un de-DE sous-répertoire sous le répertoire de script, puis enregistrez le fichier allemand <ScriptName>.psd1 dans le de-DE sous-répertoire. Répétez l'opération pour chacun des paramètres régionaux pris en charge.

  • Import-LocalizedData effectue une recherche structurée pour les messages utilisateur localisés d’un script.

    Import-LocalizedData commence la recherche dans le répertoire où se trouve le fichier de script (ou la valeur du paramètre BaseDirectory ). Il recherche ensuite dans le répertoire de base un sous-répertoire portant le même nom que la valeur de la $PsUICulture variable (ou la valeur du paramètre UICulture ), comme de-DE ou ar-SA. Ensuite, il recherche dans ce sous-répertoire un .psd1 fichier portant le même nom que le script (ou la valeur du paramètre FileName ).

    Si Import-LocalizedData vous ne trouvez pas de sous-répertoire portant le nom de la culture de l’interface utilisateur, ou si le sous-répertoire ne contient pas de .psd1 fichier pour le script, il recherche un .psd1 fichier pour le script dans un sous-répertoire portant le nom du code de langue, tel que de ou ar. S’il ne trouve pas le sous-répertoire ou .psd1 le fichier, la commande échoue, les données sont affichées dans la langue par défaut du script et un message d’erreur s’affiche expliquant que les données n’ont pas pu être importées. Pour supprimer le message et échouer correctement, utilisez le paramètre commun ErrorAction avec la valeur SilentlyContinue.

    Si Import-LocalizedData le sous-répertoire et le .psd1 fichier sont trouvés, il importe la table de hachage des messages utilisateur dans la valeur du paramètre BindingVariable dans la commande. Ensuite, lorsque vous affichez un message à partir de la table de hachage dans la variable, le message localisé s’affiche.

    Pour plus d’informations, consultez about_Script_Internationalization.