Import-LocalizedData
Importuje data specifická pro jazyk do skriptů a funkcí na základě jazykové verze uživatelského rozhraní vybrané pro operační systém.
Syntaxe
Import-LocalizedData
[[-BindingVariable] <String>]
[[-UICulture] <String>]
[-BaseDirectory <String>]
[-FileName <String>]
[-SupportedCommand <String[]>]
[<CommonParameters>]
Description
Rutina Import-LocalizedData
dynamicky načítá řetězce z podadresáře, jehož název odpovídá jazyku uživatelského rozhraní nastavenému pro aktuálního uživatele operačního systému. Je navržený tak, aby skripty umožňovaly zobrazování uživatelských zpráv v jazyce uživatelského rozhraní vybraném aktuálním uživatelem.
Import-LocalizedData
importuje data ze .psd1
souborů v podadresářích adresáře skriptů pro konkrétní jazyk a uloží je do místní proměnné zadané v příkazu. Rutina vybere podadresář a soubor na základě hodnoty $PSUICulture
automatické proměnné. Když ve skriptu použijete místní proměnnou k zobrazení zprávy uživatele, zobrazí se zpráva v jazyce uživatelského rozhraní uživatele.
Pomocí parametrů Import-LocalizedData
můžete zadat alternativní jazykovou verzi uživatelského rozhraní, cestu a název souboru, přidat podporované příkazy a potlačit chybovou zprávu, která se zobrazí, pokud .psd1
se soubory nenašly.
Rutina Import-LocalizedData
podporuje iniciativu pro internacionalizaci skriptů, která byla zavedena v prostředí Windows PowerShell 2.0. Cílem této iniciativy je lépe sloužit uživatelům po celém světě, protože skripty usnadňují zobrazování zpráv uživatelů v jazyce uživatelského rozhraní aktuálního uživatele. Další informace o tomto a formátu .psd1
souborů najdete v tématu about_Script_Internationalization.
Příklady
Příklad 1: Import textových řetězců
Tento příklad naimportuje textové řetězce do $Messages
proměnné. Používá výchozí hodnoty všech ostatních parametrů rutiny.
Import-LocalizedData -BindingVariable "Messages"
Pokud je příkaz součástí skriptu Archives.ps1 v C:\Test
adresáři a hodnota $PsUICulture
automatické proměnné je zh-CN, Import-LocalizedData
importuje Archives.psd1
soubor v C:\test\zh-CN
adresáři do $Messages
proměnné.
Příklad 2: Import lokalizovaných datových řetězců
Tento příklad se spustí na příkazovém řádku, který není ve skriptu. Získá lokalizované datové řetězce ze souboru Test.psd1 a zobrazí je na příkazovém řádku. Vzhledem k tomu, že se příkaz ve skriptu nepoužívá, je povinný parametr FileName . Příkaz používá parametr UICulture k určení jazykové verze 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
vrátí hashtable, která obsahuje lokalizované datové řetězce.
Příklad 3: Import řetězců jazykové verze uživatelského rozhraní
Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"
Tento příkaz naimportuje textové řetězce do $MsgTbl
proměnné skriptu.
Pomocí parametru UICulture nasměruje rutinu na import dat ze Simple.psd1
souboru v ar-SA
podadresáři C:\Data\Localized
.
Příklad 4: Import lokalizovaných dat do skriptu
Tento příklad ukazuje, jak používat lokalizovaná data v jednoduchém skriptu.
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.
První část příkladu ukazuje obsah Test.psd1
souboru. Obsahuje ConvertFrom-StringData
příkaz, který převede řadu pojmenovaných textových řetězců na hashtable. Soubor Test.psd1
se nachází v podadresáři C:\Test
en-US adresáře, který obsahuje skript.
Druhá část příkladu zobrazuje obsah Test.ps1
skriptu. Obsahuje Import-LocalizedData
příkaz, který importuje data z odpovídajícího .psd1
souboru do $Messages
proměnné a Write-Host
příkaz, který zapisuje jednu ze zpráv v proměnné do hostitelského $Messages
programu.
Poslední část příkladu spustí skript. Výstup ukazuje, že zobrazuje správnou zprávu uživatele v sadě jazyka uživatelského rozhraní pro aktuálního uživatele operačního systému.
Příklad 5: Nahrazení výchozích textových řetězců ve skriptu
Tento příklad ukazuje, jak nahradit Import-LocalizedData
výchozí textové řetězce definované v části DATA skriptu.
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...
V tomto příkladu obsahuje ConvertFrom-StringData
část DATA skriptu TestScript.ps1 příkaz, který převede obsah oddílu DATA na hashtable a uloží hodnotu $UserMessages
proměnné.
Skript také obsahuje Import-LocalizedData
příkaz, který importuje hashtable přeložených textových řetězců ze souboru TestScript.psd1 v podadresáři určeném hodnotou $PsUICulture
proměnné. Pokud příkaz najde .psd1
soubor, uloží přeložené řetězce ze souboru do hodnoty stejné $UserMessages
proměnné a přepíše hashtable uloženou logikou oddílu DATA.
Třetí příkaz zobrazí první zprávu v $UserMessages
proměnné.
Import-LocalizedData
Pokud příkaz najde .psd1
soubor pro $PsUICulture
jazyk, hodnota $UserMessages
proměnné obsahuje přeložené textové řetězce. Pokud příkaz z nějakého důvodu selže, zobrazí příkaz výchozí textové řetězce definované v části DATA skriptu.
Příklad 6: Potlačení chybových zpráv, pokud se nenašel jazyková verze uživatelského rozhraní
Tento příklad ukazuje, jak potlačit chybové zprávy, které se zobrazí, když Import-LocalizedData
nemůžete najít adresáře, které odpovídají jazykové verzi uživatelského rozhraní uživatele nebo nemůžou .psd1
najít soubor pro skript v těchto adresářích.
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
K potlačení chybové zprávy můžete použít společný parametr ErrorAction s hodnotou SilentlyContinue. To je užitečné zejména v případě, že jste zadali uživatelské zprávy ve výchozím nebo záložním jazyce a nepotřebujete žádnou chybovou zprávu.
Tento příklad porovnává dva skripty Day1.ps1
a Day2.ps1, které obsahují Import-LocalizedData
příkaz. Skripty jsou identické, s tím rozdílem, že Day2 používá společný parametr ErrorAction s hodnotou SilentlyContinue
.
Ukázkový výstup ukazuje výsledky spuštění obou skriptů, pokud je jazyková verze uživatelského rozhraní nastavená fr-BE
a pro tuto jazykovou verzi uživatelského rozhraní neexistují žádné odpovídající soubory ani adresáře. Day1.ps1
zobrazí chybovou zprávu a anglický výstup. Day2.ps1
pouze zobrazí výstup v angličtině.
Parametry
-BaseDirectory
Určuje základní adresář, ve kterém .psd1
jsou umístěné soubory. Výchozí hodnota je adresář, ve kterém se nachází skript. Import-LocalizedData
.psd1
vyhledá soubor skriptu v podadresáři základního adresáře specifického pro jazyk.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-BindingVariable
Určuje proměnnou, do které se importují textové řetězce. Zadejte název proměnné bez znaku dolaru ($
).
Ve Windows PowerShellu 2.0 je tento parametr povinný. V prostředí Windows PowerShell 3.0 je tento parametr volitelný. Pokud tento parametr vynecháte, Import-LocalizedData
vrátí hodnotu hashtable textových řetězců. Hashtable se předá kanálu nebo se zobrazí na příkazovém řádku.
Pokud používáte Import-LocalizedData
k nahrazení výchozích textových řetězců zadaných v části DATA skriptu, přiřaďte oddíl DATA proměnné a zadejte název proměnné oddílu DATA v hodnotě BindingVariable parametru. Když Import-LocalizedData
pak importovaný obsah uložíte do BindingVariable, importovaná data nahradí výchozí textové řetězce. Pokud nezadáte výchozí textové řetězce, můžete vybrat libovolný název proměnné.
Typ: | String |
Aliasy: | Variable |
Position: | 0 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-FileName
Určuje název datového souboru (.psd1)
který se má importovat. Zadejte název souboru. Můžete zadat název souboru, který neobsahuje jeho .psd1
příponu souboru, nebo můžete zadat název souboru včetně přípony .psd1
názvu souboru. Datové soubory by měly být uloženy jako Unicode nebo UTF-8.
Parametr FileName se vyžaduje, pokud Import-LocalizedData
se ve skriptu nepoužívá.
V opačném případě je parametr volitelný a výchozí hodnota je základní název skriptu. Tento parametr můžete použít k přímému Import-LocalizedData
hledání jiného .psd1
souboru.
Pokud je například parametr FileName vynechán a název skriptu je FindFiles.ps1
, Import-LocalizedData
vyhledá FindFiles.psd1
datový soubor.
Typ: | String |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-SupportedCommand
Určuje rutiny a funkce, které generují pouze data.
Tento parametr použijte k zahrnutí rutin a funkcí, které jste napsali nebo otestovali. Další informace najdete v tématu about_Script_Internationalization.
Typ: | String[] |
Position: | Named |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
-UICulture
Určuje alternativní jazykovou verzi uživatelského rozhraní. Výchozí hodnota je hodnota $PsUICulture
automatické proměnné. Zadejte jazykovou verzi uživatelského rozhraní ve <language>-<region>
formátu, například en-US
, de-DE
nebo ar-SA
.
Hodnota parametru UICulture určuje podadresář specifický pro jazyk (v rámci základního adresáře), ze kterého Import-LocalizedData
získá .psd1
soubor pro skript.
Rutina vyhledá podadresář se stejným názvem jako hodnota parametru UICulture nebo $PsUICulture
automatické proměnné, například de-DE
nebo ar-SA
. Pokud adresář nemůže najít nebo adresář neobsahuje .psd1
soubor skriptu, vyhledá podadresář s názvem kódu jazyka, například de nebo ar. Pokud nemůže najít podadresář nebo .psd1
soubor, příkaz selže a data se zobrazí ve výchozím jazyce zadaném ve skriptu.
Typ: | String |
Position: | 1 |
Default value: | None |
Vyžadováno: | False |
Přijmout vstup kanálu: | False |
Přijmout zástupné znaky: | False |
Vstupy
None
Do této rutiny nemůžete roušit objekty.
Výstupy
Tato rutina uloží hashtable do proměnné určené hodnotou BindingVariable parametru.
Poznámky
Před použitím
Import-LocalizedData
lokalizovat uživatelské zprávy. Naformátujte zprávy pro každé národní prostředí (jazykovou verzi uživatelského rozhraní) v hashovatelné dvojici klíč-hodnota a uložte hashtable do souboru se stejným názvem jako skript a příponu.psd1
názvu souboru. Vytvořte adresář pod adresářem skriptu pro každou podporovanou jazykovou verzi uživatelského rozhraní a uložte.psd1
soubor pro každou jazykovou verzi uživatelského rozhraní v adresáři s názvem jazykové verze uživatelského rozhraní.Například lokalizovat uživatelské zprávy pro národní prostředí de-DE a naformátovat je v hashtable. Uložte hashtable do
<ScriptName>.psd1
souboru. Potom vytvořtede-DE
podadresář pod adresářem skriptu a uložte německý<ScriptName>.psd1
soubor dode-DE
podadresáře. Tuto metodu opakujte pro každé národní prostředí, které podporujete.Import-LocalizedData
provádí strukturované vyhledávání lokalizovaných uživatelských zpráv pro skript.Import-LocalizedData
spustí hledání v adresáři, kde je umístěn soubor skriptu (nebo hodnota parametru BaseDirectory ). Potom v rámci základního adresáře vyhledá podadresář se stejným názvem jako hodnota$PsUICulture
proměnné (nebo hodnota parametru UICulture ), napříkladde-DE
neboar-SA
. Potom v podadresáři vyhledá.psd1
soubor se stejným názvem jako skript (nebo hodnota parametru FileName ).Pokud
Import-LocalizedData
nemůžete najít podadresář s názvem jazykové verze uživatelského rozhraní nebo podadresář neobsahuje.psd1
soubor skriptu, vyhledá.psd1
soubor skriptu v podadresáři s názvem kódu jazyka, například de nebo ar. Pokud nemůže najít podadresář nebo.psd1
soubor, příkaz selže, data se zobrazí ve výchozím jazyce ve skriptu a zobrazí se chybová zpráva s vysvětlením, že data nelze importovat. Chcete-li potlačit zprávu a bezúspěšně, použijte společný parametr ErrorAction s hodnotou SilentlyContinue.Pokud
Import-LocalizedData
najde podadresář a.psd1
soubor, importuje hashtable uživatelských zpráv do hodnoty BindingVariable parametru v příkazu. Když pak v proměnné zobrazíte zprávu z hashtable, zobrazí se lokalizovaná zpráva.Další informace najdete v tématu about_Script_Internationalization.