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-LocalizedData
Archives.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-SA
C:\Data\Localized
till .
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.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | String |
Alias: | Variable |
Position: | 0 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.ps1
söker Import-LocalizedData
du efter FindFiles.psd1
datafilen.
Typ: | String |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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.
Typ: | String[] |
Position: | Named |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | 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-DE
eller 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.
Typ: | String |
Position: | 1 |
Standardvärde: | None |
Obligatorisk: | False |
Godkänn pipeline-indata: | False |
Godkänn jokertecken: | False |
Indata
None
Du kan inte skicka objekt till den här cmdleten.
Utdata
Den här cmdleten sparar hashtabellen i variabeln som anges av värdet för parametern BindingVariable .
Kommentarer
Innan du använder
Import-LocalizedData
kan 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 ende-DE
underkatalog under skriptkatalogen och spara den tyska<ScriptName>.psd1
filen i underkatalogende-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 exempelde-DE
ellerar-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.