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 de commande import-localizedData
Import-LocalizedData importe des données à partir de fichiers .psd1 dans des sous-répertoires spécifiques au langage 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 variable automatique $PSUICulture. Lorsque vous utilisez la variable locale dans le script pour afficher un message utilisateur, le message s’affiche dans la langue de l’interface utilisateur de l’utilisateur.
Vous pouvez utiliser les paramètres de Import-LocalizedData pour 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 fichiers .psd1 sont introuvables.
L’applet de commande Import-LocalizedData 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 des messages utilisateur dans la langue de l’interface utilisateur de l’utilisateur actuel. Pour plus d’informations sur ce format et sur le format des fichiers .psd1, consultez about_Script_Internationalization.
Exemples
Exemple 1 : Importer des chaînes de texte
PS C:\> Import-LocalizedData -BindingVariable "Messages"
Cette commande importe des chaînes de texte dans la variable $Messages. Il utilise les valeurs par défaut de tous les autres paramètres d’applet de commande.
Si la commande est incluse dans le script Archives.ps1 dans le répertoire C :\Test et que la valeur de la variable automatique $PsUICulture est zh-CN, Import-LocalizedData importe le fichier Archives.psd1 dans le répertoire C :\test\zh-CN dans la variable $Messages.
Exemple 2 : Importer des chaînes de données localisées
PS C:\> Import-LocalizedData -FileName "Test.psd1" -UICulture "en-US"
Name Value
---- -----
Msg3 "Use $_ to represent the object that is 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."
Cette commande est exécutée sur la ligne de commande ; pas dans un script.
Il obtient des chaînes de données localisées à partir du fichier Test.psd1 et les affiche à 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
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
PS C:\> Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"
Cette commande importe des chaînes de texte dans la variable $MsgTbl d’un script.
Il utilise le paramètre UICulture
Exemple 4 : Importer des données localisées dans un script
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 is 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.
Cet exemple montre comment utiliser des données localisées dans un script simple.
La première partie de l’exemple montre le contenu du fichier Test.psd1. Il contient une commande ConvertFrom-StringData qui convertit une série de chaînes de texte nommées en table de hachage. Le fichier Test.psd1 se trouve dans le sous-répertoire en-US du répertoire C :\Test qui contient le script.
La deuxième partie de l’exemple montre le contenu du script Test.ps1. Il contient une commande Import-LocalizedData qui importe les données du fichier .psd1 correspondant dans la variable $Messages et une commande Write-Host qui écrit l’un des messages de la variable $Messages dans le programme hôte.
La dernière partie de l’exemple exécute le script. La sortie indique qu’elle affiche le message utilisateur correct 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
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...
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.
Dans cet exemple, la section DATA du script TestScript.ps1 contient une commande ConvertFrom-StringData qui convertit le contenu de la section DATA en table de hachage et stocke dans la valeur de la variable $UserMessages.
Le script inclut également une commande Import-LocalizedData, 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 variable $PsUICulture. Si la commande trouve le fichier .psd1, elle enregistre les chaînes traduites du fichier dans la valeur de la même variable $UserMessages, 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 variable $UserMessages.
Si la commande Import-LocalizedData recherche un fichier .psd1 pour la langue $PsUICulture, la valeur de la variable $UserMessages 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
PS C:\> # In Day1.ps1
Import-LocalizedData -BindingVariable "Day"
# In Day2.ps1
Import-LocalizedData -BindingVariable "Day" -ErrorAction:SilentlyContinue
PS C:\> .\Day1.ps1
Import-LocalizedData : Cannot 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
Cet exemple montre comment supprimer les messages d’erreur qui s’affichent lorsque Import-LocalizedData ne trouve pas les répertoires qui correspondent à la culture de l’interface utilisateur de l’utilisateur ou ne trouve pas de fichier .psd1 pour le script dans ces répertoires.
Vous pouvez utiliser le ErrorAction paramètre commun 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, Day1.ps1 et Day2.ps1, qui incluent une commande Import-LocalizedData. Les scripts sont identiques, sauf que Day2 utilise la ErrorAction paramètre commun 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 sur 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 fichiers .psd1. La valeur par défaut est le répertoire où se trouve le script. Import-LocalizedData recherche le fichier .psd1 pour le 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 requis. 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
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 extension de nom de fichier .psd1, ou vous pouvez spécifier le nom de fichier, y compris l’extension de nom de fichier .psd1. Les fichiers de données doivent être enregistrés en tant qu’Unicode ou UTF-8.
Le paramètre FileName est requis lorsque Import-LocalizedData 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 pour rechercher un autre fichier .psd1.
Par exemple, si le FileName est omis et que le nom du script est FindFiles.ps1, Import-LocalizedData recherche le fichier de données FindFiles.psd1.
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 des applets de commande et des 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 variable automatique $PsUICulture. Entrez une culture d’interface utilisateur dans <langue>-<région> format, tel que en-US, de-DEou ar-SA.
La valeur du paramètre UICulture
L’applet de commande recherche un sous-répertoire portant le même nom que la valeur du paramètre UICulture
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 l’entrée vers cette applet de commande.
Sorties
Import-LocalizedData 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 extension de nom de fichier .psd1. Créez un répertoire sous le répertoire de script pour chaque culture d’interface utilisateur prise en charge, puis enregistrez le fichier .psd1 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 et mettez-les en forme dans une table de hachage. Enregistrez la table de hachage dans un fichier <ScriptName>.psd1. Créez ensuite un sous-répertoire de-DE sous le répertoire de script, puis enregistrez le fichier de-DE <ScriptName>.psd1 dans le sous-répertoire de-DE. Répétez cette méthode pour chaque paramètre régional 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 variable $PsUICulture (ou la valeur du paramètre UICulture), par exemple de-DE ou ar-SA. Ensuite, il recherche dans ce sous-répertoire un fichier .psd1 portant le même nom que le script (ou la valeur du paramètre FileName).
Si import-localizedData ne trouve 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 fichier .psd1 pour le script, il recherche un fichier .psd1 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 le fichier .psd1, 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 la ErrorAction paramètre commun avec la valeur SilentlyContinue.
Si Import-LocalizedData recherche le sous-répertoire et le fichier .psd1, 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 (https://go.microsoft.com/fwlink/?LinkID=113262).