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
Default (Par défaut)
Import-LocalizedData
[[-BindingVariable] <String>]
[[-UICulture] <String>]
[-BaseDirectory <String>]
[-FileName <String>]
[-SupportedCommand <String[]>]
[<CommonParameters>]
Description
L’applet de commande Import-LocalizedData 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 depuis les fichiers .psd1 présents dans des sous-répertoires spécifiques à chaque langue, situés dans le répertoire de scripts, et les enregistre dans une variable locale indiqué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 problème et sur le format des fichiers .psd1, consultez about_Script_Internationalization.
Exemples
Exemple 1 : Importer des chaînes de texte
Cet exemple 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.
Import-LocalizedData -BindingVariable "Messages"
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
Cet exemple est exécuté sur la ligne de commande et non 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 -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 les 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 variable $MsgTbl d’un script.
Il utilise le paramètre UICulture
Exemple 4 : Importer des données localisées dans un script
Cet exemple montre comment utiliser des 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 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
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 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 sauvegarde les chaînes traduites du fichier dans la valeur de la variable $UserMessages, remplaçant ainsi la table de hachage enregistrée par la logique de la 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
Cet exemple montre comment supprimer les messages d’erreur qui s’affichent lorsque Import-LocalizedData ne trouve pas les répertoires correspondant à la culture de l’interface utilisateur ou ne trouve pas de fichier .psd1 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 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 une valeur de 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.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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 passée dans le 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
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
| Alias: | Variable |
Jeux de paramètres
(All)
| Position: | 0 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | 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, voir about_Script_Internationalization.
Propriétés du paramètre
| Type: | String[] |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | Named |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
-UICulture
Spécifie une autre culture d’interface utilisateur. La valeur par défaut est la valeur de la variable automatique $PSUICulture. Entrez une culture d’interface utilisateur au format <language>-<region>, par exemple 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 .psd1 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 le fichier .psd1, la commande échoue et les données sont affichées dans la langue par défaut spécifiée dans le script.
Propriétés du paramètre
| Type: | String |
| Valeur par défaut: | None |
| Prend en charge les caractères génériques: | False |
| DontShow: | False |
Jeux de paramètres
(All)
| Position: | 1 |
| Obligatoire: | False |
| Valeur du pipeline: | False |
| Valeur du pipeline par nom de propriété: | False |
| Valeur des arguments restants: | False |
CommonParameters
Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.
Entrées
None
Vous ne pouvez pas diriger les objets vers cette applet de commande.
Sorties
Hashtable
Cette cmdlet 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.psd1pour chaque culture de l’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épertoirede-DEsous le répertoire de script, puis enregistrez le fichier<ScriptName>.psd1allemand dans le sous-répertoirede-DE. Répétez cette méthode pour chaque paramètre régional pris en charge.Import-LocalizedDataeffectue une recherche structurée pour les messages utilisateur localisés d’un script.Import-LocalizedDatacommence 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 exemplede-DEouar-SA. Ensuite, il recherche dans ce sous-répertoire un fichier.psd1portant le même nom que le script (ou la valeur du paramètre FileName).Si
Import-LocalizedDatane 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.psd1pour le script, il recherche un fichier.psd1pour 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 pour expliquer que les données ne pouvaient pas être importées. Pour supprimer le message et échouer de manière élégante, utilisez le paramètre commun ErrorAction avec la valeur SilentlyContinue.Si
Import-LocalizedDatatrouve 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, voir about_Script_Internationalization.