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-US
exemple , de-DE
ou 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
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 unde-DE
sous-répertoire sous le répertoire de script, puis enregistrez le fichier allemand<ScriptName>.psd1
dans lede-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 ), commede-DE
ouar-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.