Delen via


Import-LocalizedData

Hiermee importeert u taalspecifieke gegevens in scripts en functies op basis van de UI-cultuur die is geselecteerd voor het besturingssysteem.

Syntaxis

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

Description

Met de cmdlet Import-LocalizedData worden tekenreeksen dynamisch opgehaald uit een submap waarvan de naam overeenkomt met de gebruikersinterfacetaal 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 gebruikersinterfacetaal 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 gebruikersinterfacetaal van de gebruiker.

U kunt de parameters van Import-LocalizedData gebruiken om een alternatieve UI-cultuur, pad en bestandsnaam op te geven, ondersteunde opdrachten toe te voegen en het foutbericht te onderdrukken dat wordt weergegeven als de PSD1-bestanden niet worden gevonden.

De cmdlet Import-LocalizedData ondersteunt het script internationaliseringsinitiatief dat is geïntroduceerd in Windows PowerShell 2.0. Dit initiatief is erop gericht om gebruikers wereldwijd beter te bedienen door scripts eenvoudig gebruikersberichten weer te geven in de gebruikersinterfacetaal 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

PS C:\> Import-LocalizedData -BindingVariable "Messages"

Met deze opdracht worden tekenreeksen geïmporteerd in de variabele $Messages. Hierbij worden de standaardwaarden van alle andere cmdlet-parameters gebruikt.

Als de opdracht is opgenomen in het Archives.ps1 script in de map C:\Test en de waarde van de automatische variabele $PsUICulture is zh-CN, importeert Import-LocalizedData het bestand Archives.psd1 in de map C:\test\zh-CN in de variabele $Messages.

Voorbeeld 2: Gelokaliseerde gegevenstekenreeksen importeren

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."

Deze opdracht wordt uitgevoerd op de opdrachtregel; niet in een script. Er worden gelokaliseerde gegevensreeksen opgehaald uit het bestand Test.psd1 en worden deze weergegeven 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 retourneert een hash-tabel die de gelokaliseerde gegevensreeksen bevat.

Voorbeeld 3: Tekenreeksen voor ui-cultuur importeren

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

Met deze opdracht worden tekenreeksen geïmporteerd in de $MsgTbl variabele van een script.

Hierbij wordt de parameter UICulture gebruikt om de cmdlet om te leiden om gegevens te importeren uit het bestand Simple.psd1 in de submap ar-SA van C:\Data\Localized.

Voorbeeld 4: Gelokaliseerde gegevens importeren in een 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 dit voorbeeld ziet u hoe u gelokaliseerde gegevens gebruikt in een eenvoudig script.

In het eerste deel van het voorbeeld ziet u de inhoud van het bestand Test.psd1. Het bevat een ConvertFrom-StringData opdracht waarmee een reeks benoemde teksttekenreeksen wordt geconverteerd naar een hash-tabel. Het bestand Test.psd1 bevindt zich in de submap en-US van de map C:\Test die het script bevat.

In het tweede deel van het voorbeeld ziet u de inhoud van het Test.ps1 script. Het bevat een opdracht Import-LocalizedData waarmee de gegevens uit het overeenkomende PSD1-bestand worden geïmporteerd in de $Messages-variabele 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. In de uitvoer ziet u 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

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 ziet u hoe u Import-LocalizedData- kunt gebruiken om standaardteksttekenreeksen te vervangen die zijn gedefinieerd in de sectie GEGEVENS van een script.

In dit voorbeeld bevat de sectie DATA van het TestScript.ps1-script een ConvertFrom-StringData opdracht waarmee de inhoud van de sectie DATA wordt geconverteerd naar een hash-tabel en wordt opgeslagen in de waarde van de $UserMessages variabele.

Het script bevat ook een opdracht Import-LocalizedData, waarmee een hash-tabel met vertaalde teksttekenreeksen uit het bestand TestScript.psd1 wordt geïmporteerd 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 sectielogica DATA.

Met de derde opdracht wordt het eerste bericht in de variabele $UserMessages weergegeven.

Als met de opdracht Import-LocalizedData een PSD1-bestand voor de $PsUICulture taal wordt gevonden, bevat de waarde van de variabele $UserMessages de vertaalde tekenreeksen. Als de opdracht om welke reden dan ook mislukt, worden met de opdracht de standaardteksttekenreeksen weergegeven die zijn gedefinieerd in de sectie DATA van het script.

Voorbeeld 6: Foutberichten onderdrukken als de UI-cultuur niet wordt gevonden

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

In dit voorbeeld ziet u hoe u de foutberichten onderdrukt die worden weergegeven wanneer Import-LocalizedData de mappen die overeenkomen met de UI-cultuur van de gebruiker niet kunt vinden of geen PSD1-bestand voor het script in die mappen kan vinden.

U kunt de ErrorAction algemene parameter met een waarde van SilentlyContinue gebruiken om het foutbericht te onderdrukken. Dit is vooral handig wanneer u gebruikersberichten in een standaard- of terugvaltaal hebt opgegeven en er geen foutbericht nodig is.

In dit voorbeeld worden twee scripts, Day1.ps1 en Day2.ps1, vergeleken met een opdracht Import-LocalizedData. De scripts zijn identiek, behalve dat Day2 gebruikmaakt van de ErrorAction algemene parameter met een waarde van SilentlyContinue.

In de voorbeelduitvoer ziet u 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 alleen de Engelse uitvoer weergeeft.

Parameters

-BaseDirectory

Hiermee geeft u de basismap waarin 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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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, retourneert Import-LocalizedData een hash-tabel van de tekenreeksen. De hash-tabel wordt doorgegeven aan de pijplijn of wordt weergegeven op de opdrachtregel.

Wanneer u Import-LocalizedData gebruikt om standaardteksttekenreeksen te vervangen die zijn opgegeven in de sectie DATA van een script, wijst u de sectie DATA toe aan een variabele en voert u de naam in van de sectievariabele DATA in de waarde van de parameter BindingVariable. Wanneer Import-LocalizedData de geïmporteerde inhoud vervolgens opslaat in de BindingVariable-, worden de standaardteksttekenreeksen vervangen door de geïmporteerde gegevens. Als u geen standaardteksttekenreeksen opgeeft, kunt u een variabelenaam selecteren.

Type:String
Aliassen:Variable
Position:0
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-FileName

Hiermee geeft u de naam van het gegevensbestand (.psd1) dat moet worden geïmporteerd. Voer een bestandsnaam in. U kunt een bestandsnaam opgeven die de bestandsextensie .psd1 niet bevat, of u kunt de bestandsnaam opgeven, inclusief de bestandsextensie .psd1. Gegevensbestanden moeten worden opgeslagen als Unicode of UTF-8.

De parameter FileName is vereist wanneer Import-LocalizedData- niet wordt gebruikt in een script. Anders is de parameter optioneel en is de standaardwaarde de basisnaam van het script. U kunt deze parameter gebruiken om Import-LocalizedData- om te zoeken naar een ander .psd1-bestand.

Als de FileName- bijvoorbeeld wordt weggelaten en de scriptnaam FindFiles.ps1is, zoekt Import-LocalizedData naar het gegevensbestand FindFiles.psd1.

Type:String
Position:Named
Default value:None
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren: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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

-UICulture

Hiermee geeft u een alternatieve UI-cultuur. De standaardwaarde is de waarde van de $PsUICulture automatische variabele. Voer een UI-cultuur in <taal in>-<regio> indeling, zoals en-US, de-DEof ar-SA.

De waarde van de parameter UICulture bepaalt de taalspecifieke submap (in de basismap) waaruit Import-LocalizedData- het PSD1-bestand voor het script ophaalt.

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 PSD1-bestand voor het script bevat, wordt er gezocht naar een submap met de naam van de taalcode, zoals de of ar. Als de submap of het PSD1-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
Vereist:False
Pijplijninvoer accepteren:False
Jokertekens accepteren:False

Invoerwaarden

None

U kunt invoer voor deze cmdlet niet doorsluisen.

Uitvoerwaarden

Hashtable

Import-LocalizedData slaat de hash-tabel op in de variabele die is opgegeven met de waarde van de parameter BindingVariable.

Notities

  • Voordat u Import-LocalizedDatagebruikt, kunt u uw gebruikersberichten lokaliseren. Maak de berichten op voor elke landinstelling (UI-cultuur) in een hash-tabel met sleutel-/waardeparen en sla de hash-tabel op in een bestand met dezelfde naam als het script en een .psd1-bestandsnaamextensie. Maak een map onder de scriptmap voor elke ondersteunde UI-cultuur en sla het .psd1-bestand vervolgens op voor elke UI-cultuur in de map met de naam van de UI-cultuur.

    Lokaliseer bijvoorbeeld uw gebruikersberichten voor de de-DE landinstellingen en maak ze op in een hash-tabel. Sla de hashtabel op in een <ScriptName>.psd1-bestand. Maak vervolgens een de-DE submap onder de scriptmap en sla het bestand de-DE <ScriptName>.psd1-bestand op in de submap de-DE. 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 waarin 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), zoals de-DE of ar-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 geen submap met de naam van de UI-cultuur kan vinden, of als de submap geen PSD1-bestand voor het script bevat, zoekt deze naar een PSD1-bestand voor het script in een submap met de naam van de taalcode, zoals de of ar. Als de submap of het PSD1-bestand niet kan worden gevonden, mislukt de opdracht, worden de gegevens weergegeven in de standaardtaal in het script en wordt er een foutbericht weergegeven waarin wordt uitgelegd dat de gegevens niet kunnen worden geïmporteerd. Als u het bericht wilt onderdrukken en foutloos wilt mislukken, gebruikt u de ErrorAction algemene parameter met de waarde SilentlyContinue.

    Als Import-LocalizedData de submap en het .psd1-bestand zoekt, wordt de hash-tabel 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 (https://go.microsoft.com/fwlink/?LinkID=113262) voor meer informatie.