Import-LocalizedData
Hiermee importeert u taalspecifieke gegevens in scripts en functies op basis van de ui-cultuur die is geselecteerd voor het besturingssysteem.
Syntax
Import-LocalizedData
[[-BindingVariable] <String>]
[[-UICulture] <String>]
[-BaseDirectory <String>]
[-FileName <String>]
[-SupportedCommand <String[]>]
[<CommonParameters>]
Description
De Import-LocalizedData
cmdlet haalt dynamisch tekenreeksen op uit een submap waarvan de naam overeenkomt met de taal van de gebruikersinterface die is ingesteld voor de huidige gebruiker van het besturingssysteem. Het is ontworpen om scripts in staat te stellen gebruikersberichten weer te geven in de taal van de gebruikersinterface die door de huidige gebruiker is geselecteerd.
Import-LocalizedData
importeert gegevens uit .psd1
bestanden in taalspecifieke submappen van de scriptmap en slaat deze op in een lokale variabele die is opgegeven in de opdracht. De cmdlet selecteert de submap en het bestand op basis van de waarde van de $PSUICulture
automatische variabele. Wanneer u de lokale variabele in het script gebruikt om een gebruikersbericht weer te geven, wordt het bericht weergegeven in de taal van de gebruikersinterface.
U kunt de parameters van Import-LocalizedData
gebruiken om een alternatieve ui-cultuur, pad en bestandsnaam op te geven, om ondersteunde opdrachten toe te voegen en om het foutbericht te onderdrukken dat wordt weergegeven als de .psd1
bestanden niet worden gevonden.
De Import-LocalizedData
cmdlet ondersteunt het initiatief voor internationalisering van scripts dat is geïntroduceerd in Windows PowerShell 2.0. Dit initiatief is erop gericht gebruikers wereldwijd beter van dienst te zijn door scripts eenvoudig gebruikersberichten weer te geven in de taal van de gebruikersinterface van de huidige gebruiker. Zie about_Script_Internationalization voor meer informatie hierover en over de indeling van de .psd1
bestanden.
Voorbeelden
Voorbeeld 1: Tekenreeksen importeren
In dit voorbeeld worden tekenreeksen geïmporteerd in de $Messages
variabele. Hierbij worden de standaardwaarden van alle andere cmdlet-parameters gebruikt.
Import-LocalizedData -BindingVariable "Messages"
Als de opdracht is opgenomen in het script Archives.ps1 in de C:\Test
map en de waarde van de $PsUICulture
automatische variabele zh-CN is, Import-LocalizedData
importeert u het Archives.psd1
bestand in de C:\test\zh-CN
map in de $Messages
variabele.
Voorbeeld 2: Gelokaliseerde gegevensreeksen importeren
Dit voorbeeld wordt uitgevoerd op de opdrachtregel en niet in een script. Het haalt gelokaliseerde gegevensreeksen op uit het bestand Test.psd1 en geeft deze weer op de opdrachtregel. Omdat de opdracht niet in een script wordt gebruikt, is de parameter FileName vereist. De opdracht gebruikt de parameter UICulture om de en-US-cultuur op te geven.
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."
Import-LocalizedData
retourneert een hashtabel die de gelokaliseerde gegevensreeksen bevat.
Voorbeeld 3: UI-cultuurtekenreeksen importeren
Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"
Met deze opdracht importeert u tekenreeksen in de $MsgTbl
variabele van een script.
De parameter UICulture wordt gebruikt om de cmdlet te leiden om gegevens te importeren uit het Simple.psd1
bestand in de ar-SA
submap van C:\Data\Localized
.
Voorbeeld 4: Gelokaliseerde gegevens importeren in een script
In dit voorbeeld ziet u hoe u gelokaliseerde gegevens gebruikt in een eenvoudig 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.
In het eerste deel van het voorbeeld ziet u de inhoud van het Test.psd1
bestand. Het bevat een ConvertFrom-StringData
opdracht waarmee een reeks benoemde teksttekenreeksen wordt geconverteerd naar een hash-tabel. Het Test.psd1
bestand bevindt zich in de submap en-US van de C:\Test
map die het script bevat.
In het tweede deel van het voorbeeld ziet u de inhoud van het Test.ps1
script. Het bevat een Import-LocalizedData
opdracht waarmee de gegevens uit het overeenkomende .psd1
bestand in de $Messages
variabele worden geïmporteerd en een Write-Host
opdracht waarmee een van de berichten in de $Messages
variabele naar het hostprogramma wordt geschreven.
In het laatste deel van het voorbeeld wordt het script uitgevoerd. De uitvoer laat zien dat het juiste gebruikersbericht wordt weergegeven in de gebruikersinterfacetaal die is ingesteld voor de huidige gebruiker van het besturingssysteem.
Voorbeeld 5: Standaardteksttekenreeksen in een script vervangen
In dit voorbeeld ziet u hoe u kunt gebruiken Import-LocalizedData
om standaardteksttekenreeksen te vervangen die zijn gedefinieerd in de sectie GEGEVENS van een 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...
In dit voorbeeld bevat de sectie GEGEVENS van het TestScript.ps1-script een ConvertFrom-StringData
opdracht waarmee de inhoud van de sectie DATA wordt geconverteerd naar een hashtabel en wordt opgeslagen in de waarde van de $UserMessages
variabele.
Het script bevat ook een Import-LocalizedData
opdracht, waarmee een hash-tabel met vertaalde teksttekenreeksen wordt geïmporteerd uit het bestand TestScript.psd1 in de submap die is opgegeven door de waarde van de $PsUICulture
variabele. Als met de opdracht het .psd1
bestand wordt gevonden, worden de vertaalde tekenreeksen uit het bestand opgeslagen in de waarde van dezelfde $UserMessages
variabele, waarbij de hashtabel wordt overschreven die is opgeslagen door de logica van de sectie DATA.
Met de derde opdracht wordt het eerste bericht in de $UserMessages
variabele weergegeven.
Als de Import-LocalizedData
opdracht een .psd1
bestand voor de $PsUICulture
taal vindt, bevat de waarde van de $UserMessages
variabele de vertaalde teksttekenreeksen. Als de opdracht om welke reden dan ook mislukt, geeft de opdracht de standaardteksttekenreeksen weer die zijn gedefinieerd in de sectie GEGEVENS van het script.
Voorbeeld 6: Foutberichten onderdrukken als de UI-cultuur niet wordt gevonden
In dit voorbeeld ziet u hoe u de foutberichten kunt onderdrukken die worden weergegeven wanneer Import-LocalizedData
de mappen die overeenkomen met de ui-cultuur van de gebruiker niet kunnen worden gevonden of geen bestand voor het script in deze mappen kan worden gevonden .psd1
.
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
U kunt de algemene parameter ErrorAction gebruiken met de waarde SilentlyContinue om het foutbericht te onderdrukken. Dit is vooral handig als u gebruikersberichten hebt opgegeven in een standaard- of terugvaltaal en er geen foutbericht nodig is.
In dit voorbeeld worden twee scripts Day1.ps1
en Day2.ps1 met een Import-LocalizedData
opdracht vergeleken. De scripts zijn identiek, behalve dat Day2 de algemene parameter ErrorAction gebruikt met de waarde SilentlyContinue
.
De voorbeelduitvoer toont de resultaten van het uitvoeren van beide scripts wanneer de UI-cultuur is ingesteld op fr-BE
en er geen overeenkomende bestanden of mappen zijn voor die UI-cultuur. Day1.ps1
geeft een foutbericht en Engelse uitvoer weer. Day2.ps1
geeft alleen de Engelse uitvoer weer.
Parameters
-BaseDirectory
Hiermee geeft u de basismap waar de .psd1
bestanden zich bevinden. De standaardwaarde is de map waarin het script zich bevindt. Import-LocalizedData
zoekt naar het .psd1
bestand voor het script in een taalspecifieke submap van de basismap.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BindingVariable
Hiermee geeft u de variabele waarin de tekenreeksen worden geïmporteerd. Voer een variabelenaam in zonder dollarteken ($
).
In Windows PowerShell 2.0 is deze parameter vereist. In Windows PowerShell 3.0 is deze parameter optioneel. Als u deze parameter weglaat, Import-LocalizedData
retourneert een hash-tabel van de tekenreeksen. De hashtabel wordt doorgegeven aan de pijplijn of weergegeven op de opdrachtregel.
Wanneer u Import-LocalizedData
standaardteksttekenreeksen gebruikt die zijn opgegeven in de sectie DATA van een script, wijst u de sectie DATA toe aan een variabele en voert u de naam van de sectievariabele DATA in de waarde van de parameter BindingVariable in. Import-LocalizedData
Wanneer de geïmporteerde inhoud vervolgens wordt opgeslagen in BindingVariable, vervangen de geïmporteerde gegevens de standaardteksttekenreeksen. Als u geen standaardteksttekenreeksen opgeeft, kunt u een willekeurige variabelenaam selecteren.
Type: | String |
Aliases: | Variable |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FileName
Hiermee geeft u de naam van het gegevensbestand (.psd1)
te importeren. Voer een bestandsnaam in. U kunt een bestandsnaam opgeven die de bestandsnaamextensie niet bevat .psd1
, of u kunt de bestandsnaam opgeven, inclusief de .psd1
bestandsnaamextensie. Gegevensbestanden moeten worden opgeslagen als Unicode of UTF-8.
De parameter FileName is vereist wanneer Import-LocalizedData
deze niet in een script wordt gebruikt.
Anders is de parameter optioneel en is de standaardwaarde de basisnaam van het script. U kunt deze parameter gebruiken om naar Import-LocalizedData
een ander .psd1
bestand te zoeken.
Als de Bestandsnaam bijvoorbeeld wordt weggelaten en de scriptnaam is FindFiles.ps1, Import-LocalizedData
zoekt u naar het gegevensbestand FindFiles.psd1.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SupportedCommand
Hiermee geeft u cmdlets en functies op die alleen gegevens genereren.
Gebruik deze parameter om cmdlets en functies op te nemen die u hebt geschreven of getest. Zie about_Script_Internationalization voor meer informatie.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UICulture
Hiermee geeft u een alternatieve UI-cultuur.
De standaardwaarde is de waarde van de $PsUICulture
automatische variabele.
Voer een UI-cultuur in <language>-<region>
met een indeling, zoals en-US
, de-DE
of ar-SA
.
De waarde van de parameter UICulture bepaalt de taalspecifieke submap (in de basismap) waaruit Import-LocalizedData
het .psd1
bestand voor het script wordt opgehaald.
De cmdlet zoekt naar een submap met dezelfde naam als de waarde van de parameter UICulture of de $PsUICulture
automatische variabele, zoals de-DE
of ar-SA
. Als de map niet kan worden gevonden of als de map geen bestand voor het script bevat .psd1
, wordt gezocht naar een submap met de naam van de taalcode, zoals de of ar. Als de submap of .psd1
het bestand niet kan worden gevonden, mislukt de opdracht en worden de gegevens weergegeven in de standaardtaal die is opgegeven in het script.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Invoerwaarden
None
U kunt geen invoer doorspezen naar deze cmdlet.
Uitvoerwaarden
Import-LocalizedData
slaat de hashtabel op in de variabele die is opgegeven door de waarde van de parameter BindingVariable .
Notities
Voordat u gebruikt
Import-LocalizedData
, lokaliseer uw gebruikersberichten. Maak de berichten voor elke landinstelling (UI-cultuur) op in een hashtabel met sleutel-waardeparen en sla de hash-tabel op in een bestand met dezelfde naam als het script en een.psd1
bestandsnaamextensie. Creatie een map onder de scriptmap voor elke ondersteunde UI-cultuur en sla het.psd1
bestand voor elke UI-cultuur op in de map met de naam van de UI-cultuur.Lokaliseer bijvoorbeeld uw gebruikersberichten voor de landinstelling de-DE en maak ze op in een hashtabel. Sla de hashtabel op in een
<ScriptName>.psd1
bestand. Maak vervolgens eende-DE
submap onder de scriptmap en sla het Duitse<ScriptName\>.psd1
bestand op in dede-DE
submap. Herhaal deze methode voor elke landinstelling die u ondersteunt.Import-LocalizedData
voert een gestructureerde zoekopdracht uit naar de gelokaliseerde gebruikersberichten voor een script.Import-LocalizedData
begint de zoekopdracht in de map waar het scriptbestand zich bevindt (of de waarde van de parameter BaseDirectory ). Vervolgens wordt in de basismap gezocht naar een submap met dezelfde naam als de waarde van de$PsUICulture
variabele (of de waarde van de parameter UICulture ), zoalsde-DE
ofar-SA
. Vervolgens wordt in die submap gezocht naar een.psd1
bestand met dezelfde naam als het script (of de waarde van de parameter FileName ).Als
Import-LocalizedData
een submap met de naam van de UI-cultuur niet kan worden gevonden of als de submap geen bestand voor het script bevat.psd1
, wordt er gezocht naar een.psd1
bestand voor het script in een submap met de naam van de taalcode, zoals de of ar. Als de submap of.psd1
het bestand niet kan worden gevonden, mislukt de opdracht, worden de gegevens weergegeven in de standaardtaal in het script en wordt een foutbericht weergegeven waarin wordt uitgelegd dat de gegevens niet kunnen worden geïmporteerd. Als u het bericht wilt onderdrukken en probleemloos wilt mislukken, gebruikt u de algemene parameter ErrorAction met de waarde SilentlyContinue.Als
Import-LocalizedData
de submap en het.psd1
bestand worden gevonden, wordt de hashtabel met gebruikersberichten geïmporteerd in de waarde van de parameter BindingVariable in de opdracht. Wanneer u vervolgens een bericht uit de hash-tabel in de variabele weergeeft, wordt het gelokaliseerde bericht weergegeven.Zie about_Script_Internationalization voor meer informatie.