Import-LocalizedData

Importerar språkspecifika data till skript och funktioner baserat på den användargränssnittskultur som valts för operativsystemet.

Syntax

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

Description

Cmdleten Import-LocalizedData hämtar dynamiskt strängar från en underkatalog vars namn matchar UI-språkuppsättningen för den aktuella användaren av operativsystemet. Den är utformad för att göra det möjligt för skript att visa användarmeddelanden på det användargränssnittsspråk som valts av den aktuella användaren.

Import-LocalizedData importerar data från .psd1 filer i språkspecifika underkataloger i skriptkatalogen och sparar dem i en lokal variabel som anges i kommandot. Cmdleten väljer underkatalogen och filen baserat på värdet för den $PSUICulture automatiska variabeln. När du använder den lokala variabeln i skriptet för att visa ett användarmeddelande visas meddelandet i användarens användargränssnittsspråk.

Du kan använda parametrarna Import-LocalizedData för för att ange en alternativ UI-kultur, sökväg och filnamn för att lägga till kommandon som stöds och för att ignorera felmeddelandet som visas om .psd1 filerna inte hittas.

Cmdleten Import-LocalizedData stöder initiativet för skript internationalisering som introducerades i Windows PowerShell 2.0. Det här initiativet syftar till att bättre betjäna användare över hela världen genom att göra det enkelt för skript att visa användarmeddelanden i användargränssnittsspråket för den aktuella användaren. Mer information om detta och om formatet på filerna finns .psd1 i about_Script_Internationalization.

Exempel

Exempel 1: Importera textsträngar

Det här exemplet importerar textsträngar till variabeln $Messages . Den använder standardvärdena för alla andra cmdlet-parametrar.

Import-LocalizedData -BindingVariable "Messages"

Om kommandot ingår i skriptet Archives.ps1 i C:\Test katalogen och värdet för den $PsUICulture automatiska variabeln är zh-CN importerar Import-LocalizedDataArchives.psd1 du filen i C:\test\zh-CN katalogen till variabeln $Messages .

Exempel 2: Importera lokaliserade datasträngar

Det här exemplet körs på kommandoraden som inte finns i ett skript. Den hämtar lokaliserade datasträngar från filen Test.psd1 och visar dem på kommandoraden. Eftersom kommandot inte används i ett skript krävs parametern FileName . Kommandot använder parametern UICulture för att ange kulturen 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 returnerar en hashtable som innehåller de lokaliserade datasträngarna.

Exempel 3: Importera UI-kultursträngar

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

Det här kommandot importerar textsträngar till variabeln för $MsgTbl ett skript.

Den använder parametern UICulture för att dirigera cmdleten för att importera data från Simple.psd1 filen i underkatalogen ar-SAC:\Data\Localizedtill .

Exempel 4: Importera lokaliserade data till ett skript

Det här exemplet visar hur du använder lokaliserade data i ett enkelt skript.

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.

Den första delen av exemplet visar innehållet i Test.psd1 filen. Den innehåller ett ConvertFrom-StringData kommando som konverterar en serie med namngivna textsträngar till en hashtable. Filen Test.psd1 finns i underkatalogen en-US för katalogen C:\Test som innehåller skriptet.

Den andra delen av exemplet visar innehållet i skriptet Test.ps1 . Den innehåller ett Import-LocalizedData kommando som importerar data från den matchande .psd1 filen till variabeln $Messages och ett Write-Host kommando som skriver ett av meddelandena i variabeln $Messages till värdprogrammet.

Den sista delen av exemplet kör skriptet. Utdata visar att det visar rätt användarmeddelande i användargränssnittsspråket som angetts för den aktuella användaren av operativsystemet.

Exempel 5: Ersätt standardtextsträngar i ett skript

Det här exemplet visar hur du använder Import-LocalizedData för att ersätta standardtextsträngar som definierats i avsnittet DATA i ett skript.

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

I det här exemplet innehåller avsnittet DATA i skriptet TestScript.ps1 ett ConvertFrom-StringData kommando som konverterar innehållet i avsnittet DATA till en hashtable och lagrar värdet för variabeln $UserMessages .

Skriptet innehåller också ett Import-LocalizedData kommando som importerar en hashtabell med översatta textsträngar från filen TestScript.psd1 i underkatalogen som anges av variabelns $PsUICulture värde. Om kommandot hittar .psd1 filen sparar den översatta strängarna från filen i värdet för samma $UserMessages variabel och skriver över den hashtabell som sparats av dataavsnittslogiken.

Det tredje kommandot visar det första meddelandet i variabeln $UserMessages .

Import-LocalizedData Om kommandot hittar en .psd1 fil för $PsUICulture språket innehåller variabelns $UserMessages värde de översatta textsträngarna. Om kommandot misslyckas av någon anledning visar kommandot standardtextsträngarna som definierats i avsnittet DATA i skriptet.

Exempel 6: Ignorera felmeddelanden om användargränssnittskulturen inte hittas

Det här exemplet visar hur du utelämnar de felmeddelanden som visas när Import-LocalizedData det inte går att hitta de kataloger som matchar användarens användargränssnittskultur eller inte kan hitta en .psd1 fil för skriptet i dessa kataloger.

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

Du kan använda den vanliga parametern ErrorAction med värdet SilentlyContinue för att ignorera felmeddelandet. Detta är särskilt användbart när du har angett användarmeddelanden på ett standard- eller återställningsspråk och inget felmeddelande behövs.

I det här exemplet jämförs två skript, Day1.ps1 och Day2.ps1, som innehåller ett Import-LocalizedData kommando. Skripten är identiska, förutom att Day2 använder den vanliga parametern ErrorAction med värdet SilentlyContinue.

Exempelutdata visar resultatet av att köra båda skripten när användargränssnittskulturen är inställd på fr-BE och det inte finns några matchande filer eller kataloger för användargränssnittskulturen. Day1.ps1 visar ett felmeddelande och engelska utdata. Day2.ps1 visar bara de engelska utdata.

Parametrar

-BaseDirectory

Anger baskatalogen .psd1 där filerna finns. Standardvärdet är katalogen där skriptet finns. Import-LocalizedData söker .psd1 efter filen efter skriptet i en språkspecifik underkatalog i baskatalogen.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BindingVariable

Anger variabeln som textsträngarna importeras till. Ange ett variabelnamn utan dollartecken ($).

I Windows PowerShell 2.0 krävs den här parametern. I Windows PowerShell 3.0 är den här parametern valfri. Om du utelämnar den här parametern Import-LocalizedData returnerar en hashtabell med textsträngarna. Hashtabellen skickas ned i pipelinen eller visas på kommandoraden.

När du använder Import-LocalizedData för att ersätta standardtextsträngar som anges i avsnittet DATA i ett skript tilldelar du avsnittet DATA till en variabel och anger namnet på dataavsnittsvariabeln i värdet för parametern BindingVariable . Import-LocalizedData När du sedan sparar det importerade innehållet i BindingVariable ersätter importerade data standardtextsträngarna. Om du inte anger standardtextsträngar kan du välja valfritt variabelnamn.

Type:String
Aliases:Variable
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FileName

Anger namnet på datafilen (.psd1) som ska importeras. Ange ett filnamn. Du kan ange ett filnamn som inte innehåller filnamnstillägget .psd1 , eller så kan du ange filnamnet inklusive .psd1 filnamnstillägget. Datafiler ska sparas som Unicode eller UTF-8.

Parametern FileName krävs när Import-LocalizedData den inte används i ett skript. Annars är parametern valfri och standardvärdet är skriptets basnamn. Du kan använda den här parametern för att dirigera Import-LocalizedData för att söka efter en annan .psd1 fil.

Om filnamnet till exempel utelämnas och skriptnamnet är FindFiles.ps1söker Import-LocalizedData du efter FindFiles.psd1 datafilen.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SupportedCommand

Anger cmdletar och funktioner som endast genererar data.

Använd den här parametern för att inkludera cmdletar och funktioner som du har skrivit eller testat. Mer information finns i about_Script_Internationalization.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UICulture

Anger en alternativ användargränssnittskultur. Standardvärdet är värdet för den $PsUICulture automatiska variabeln. Ange en UI-kultur i <language>-<region> format, till exempel en-US, de-DEeller ar-SA.

Värdet för parametern UICulture avgör den språkspecifika underkatalogen (i baskatalogen) som Import-LocalizedData hämtar .psd1 filen för skriptet.

Cmdleten söker efter en underkatalog med samma namn som värdet för parametern UICulture eller den $PsUICulture automatiska variabeln, till exempel de-DE eller ar-SA. Om det inte går att hitta katalogen, eller om katalogen inte innehåller en .psd1 fil för skriptet, söker den efter en underkatalog med namnet på språkkoden, till exempel de eller ar. Om den inte hittar underkatalogen eller .psd1 filen misslyckas kommandot och data visas på det standardspråk som anges i skriptet.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Indata

None

Du kan inte skicka objekt till den här cmdleten.

Utdata

Hashtable

Den här cmdleten sparar hashtabellen i variabeln som anges av värdet för parametern BindingVariable .

Kommentarer

  • Innan du använder Import-LocalizedDatakan du lokalisera dina användarmeddelanden. Formatera meddelandena för varje språk (UI-kultur) i en hashtable med nyckel/värde-par och spara hashtable i en fil med samma namn som skriptet och filnamnstillägget .psd1 . Skapa en katalog under skriptkatalogen för varje användargränssnittskultur som stöds och spara .psd1 sedan filen för varje användargränssnittskultur i katalogen med UI-kulturnamnet.

    Du kan till exempel lokalisera dina användarmeddelanden för språkvarianten de-DE och formatera dem i en hashtable. Spara hashtabellen i en <ScriptName>.psd1 fil. Skapa sedan en de-DE underkatalog under skriptkatalogen och spara den tyska <ScriptName>.psd1 filen i underkatalogen de-DE . Upprepa den här metoden för varje språk som du stöder.

  • Import-LocalizedData utför en strukturerad sökning efter lokaliserade användarmeddelanden för ett skript.

    Import-LocalizedData påbörjar sökningen i katalogen där skriptfilen finns (eller värdet för parametern BaseDirectory ). Den söker sedan i baskatalogen efter en underkatalog med samma namn som värdet för variabeln $PsUICulture (eller värdet för parametern UICulture ), till exempel de-DE eller ar-SA. Sedan söker den i underkatalogen efter en .psd1 fil med samma namn som skriptet (eller värdet för parametern FileName ).

    Om Import-LocalizedData det inte går att hitta en underkatalog med namnet på användargränssnittskulturen, eller om underkatalogen inte innehåller en .psd1 fil för skriptet, söker den efter en .psd1 fil efter skriptet i en underkatalog med namnet på språkkoden, till exempel de eller ar. Om det inte går att hitta underkatalogen eller .psd1 filen misslyckas kommandot, data visas på standardspråket i skriptet och ett felmeddelande visas som förklarar att data inte kunde importeras. Om du vill ignorera meddelandet och misslyckas korrekt använder du parametern ErrorAction common med värdet SilentlyContinue.

    Om Import-LocalizedData hittar underkatalogen .psd1 och filen importeras hashtabellen för användarmeddelanden till värdet för parametern BindingVariable i kommandot. När du sedan visar ett meddelande från hashtabellen i variabeln visas det lokaliserade meddelandet.

    Mer information finns i about_Script_Internationalization.