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 aktuálnímu uživateli operačního systému. Je navržený tak, aby skripty umožňovaly zobrazovat uživatelské zprávy v jazyce uživatelského rozhraní vybraném aktuálním uživatelem.
Import-LocalizedData importuje data ze souborů .psd1 v podadresářích adresáře skriptu 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 nejsou nalezeny soubory .psd1.
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 souborů .psd1 naleznete v about_Script_Internationalization.
Příklady
Příklad 1: Import textových řetězců
PS C:\> Import-LocalizedData -BindingVariable "Messages"
Tento příkaz naimportuje textové řetězce do proměnné $Messages. Používá výchozí hodnoty všech ostatních parametrů rutiny.
Pokud je příkaz součástí skriptu Archives.ps1 v adresáři C:\Test a hodnota $PsUICulture automatické proměnné je zh-CN, Import-LocalizedData importuje soubor Archives.psd1 v adresáři C:\test\zh-CN do proměnné $Messages.
Příklad 2: Import lokalizovaných datových řetězců
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."
Tento příkaz se spustí na příkazovém řádku; 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 příkaz není použit ve skriptu, je vyžadován parametr FileName. Příkaz používá parametr UICulture k určení jazykové verze en-US.
Import-LocalizedData vrátí tabulku hash, která obsahuje lokalizované datové řetězce.
Příklad 3: Import řetězců jazykové verze uživatelského rozhraní
PS C:\> Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"
Tento příkaz naimportuje textové řetězce do proměnné $MsgTbl skriptu.
Pomocí parametru UICulture nasměruje rutinu na import dat ze souboru Simple.psd1 v podadresáři ar-SA C:\Data\Localized.
Příklad 4: Import lokalizovaných dat do 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 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.
Tento příklad ukazuje, jak používat lokalizovaná data v jednoduchém skriptu.
První část příkladu ukazuje obsah souboru Test.psd1. Obsahuje příkaz ConvertFrom-StringData, který převede řadu pojmenovaných textových řetězců na tabulku hash. Soubor Test.psd1 se nachází v podadresáři en-US adresáře C:\Test, který obsahuje skript.
Druhá část příkladu ukazuje obsah skriptu Test.ps1. Obsahuje příkaz Import-LocalizedData, který importuje data z odpovídajícího souboru .psd1 do proměnné $Messages a příkaz Write-Host, který zapíše jednu ze zpráv do hostitelského programu do proměnné $Messages.
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
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...
Tento příklad ukazuje, jak pomocí Import-LocalizedData nahradit výchozí textové řetězce definované v části DATA skriptu.
V tomto příkladu obsahuje část DATA skriptu TestScript.ps1 příkaz ConvertFrom-StringData, který převede obsah oddílu DATA na tabulku hash a uloží do hodnoty proměnné $UserMessages.
Skript obsahuje také příkaz Import-LocalizedData, který importuje tabulku hash přeložených textových řetězců ze souboru TestScript.psd1 v podadresáři určeném hodnotou proměnné $PsUICulture. Pokud příkaz najde soubor .psd1, uloží přeložené řetězce ze souboru do hodnoty stejné proměnné $UserMessages a přepíše tabulku hash uloženou logikou oddílu DATA.
Třetí příkaz zobrazí první zprávu v proměnné $UserMessages.
Pokud příkaz Import-LocalizedData najde soubor .psd1 pro jazyk $PsUICulture, hodnota proměnné $UserMessages 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í
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
Tento příklad ukazuje, jak potlačit chybové zprávy, které se zobrazí, když Import-LocalizedData nemůže najít adresáře, které odpovídají jazykové verzi uživatelského rozhraní uživatele, nebo nemůže najít soubor .psd1 pro skript v těchto adresářích.
K potlačení chybové zprávy můžete použít ErrorAction společný parametr 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é zahrnují příkaz Import-LocalizedData. Skripty jsou stejné, s tím rozdílem, že Day2 používá ErrorAction společný parametr s hodnotou SilentlyContinue.
Ukázkový výstup ukazuje výsledky spuštění obou skriptů, když je jazyková verze uživatelského rozhraní nastavená na fr-BE a pro tuto jazykovou verzi uživatelského rozhraní nejsou žádné odpovídající soubory ani adresáře. Day1.ps1 zobrazí chybovou zprávu a anglický výstup. Day2.ps1 jenom zobrazí výstup v angličtině.
Parametry
-BaseDirectory
Určuje základní adresář, kde jsou umístěny soubory .psd1. Výchozí hodnota je adresář, ve kterém se nachází skript. Import-LocalizedData vyhledá soubor .psd1 pro skript 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í tabulku hash textových řetězců. Tabulka hash se předá kanálu nebo se zobrazí na příkazovém řádku.
Při použití Import-LocalizedData nahradit výchozí textové řetězce zadané 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 uloží importovaný obsah do BindingVariable, importovaná data nahradí výchozí textové řetězce. Pokud nezadává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 příponu názvu souboru .psd1, nebo můžete zadat název souboru včetně přípony názvu souboru .psd1. Datové soubory by měly být uloženy jako Unicode nebo UTF-8.
Parametr FileName se vyžaduje, když 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. Pomocí tohoto parametru můžete směrovat Import-LocalizedData vyhledat jiný soubor .psd1.
Pokud je například název souboru vynechán a název skriptu je FindFiles.ps1, Import-LocalizedData vyhledá datový soubor FindFiles.psd1.
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í>jazyka <–<oblast> formátu, například en-US, de-DEnebo 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á pro skript soubor .psd1.
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 soubor .psd1 pro skript, vyhledá podadresář s názvem kódu jazyka, například de nebo ar. Pokud nelze najít podadresář nebo soubor .psd1, 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
Vstup do této rutiny nelze převést.
Výstupy
Import-LocalizedData uloží tabulku hash do proměnné určené hodnotou parametru BindingVariable.
Poznámky
Před použitím Import-LocalizedDatalokalizovat uživatelské zprávy. Naformátujte zprávy pro každé národní prostředí (jazykovou verzi uživatelského rozhraní) v tabulce hash párů klíč/hodnota a uložte tabulku hash do souboru se stejným názvem jako skript a příponu názvu souboru .psd1. Vytvořte adresář pod adresářem skriptu pro každou podporovanou jazykovou verzi uživatelského rozhraní a uložte soubor .psd1 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 de-DE národní prostředí a naformátovat je v tabulce hash. Uložte tabulku hash do souboru <ScriptName>.psd1. Potom v adresáři skriptu vytvořte podadresář de-DE a uložte soubor de-DE <ScriptName>.psd1 do podadresáře de-DE. 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 zahájí vyhledávání v adresáři, kde se nachází soubor skriptu (nebo hodnota parametru BaseDirectory). Potom v základním adresáři vyhledá podadresář se stejným názvem jako hodnota proměnné $PsUICulture (nebo hodnotu parametru UICulture), například de-DE nebo ar-SA. Potom v podadresáři vyhledá soubor .psd1 se stejným názvem jako skript (nebo hodnota parametru FileName).
Pokud Import-LocalizedData nemůže najít podadresář s názvem jazykové verze uživatelského rozhraní nebo podadresář neobsahuje soubor .psd1 pro skript, vyhledá soubor .psd1 pro skript v podadresáři s názvem kódu jazyka, například de nebo ar. Pokud nelze najít podadresář nebo soubor .psd1, 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 neúspěšně, použijte ErrorAction společný parametr s hodnotou SilentlyContinue.
Pokud Import-LocalizedData najde podadresář a soubor .psd1, importuje tabulku hash uživatelských zpráv do hodnoty BindingVariable parametru v příkazu. Když pak v proměnné zobrazíte zprávu z tabulky hash, zobrazí se lokalizovaná zpráva.
Další informace naleznete v tématu about_Script_Internationalization (https://go.microsoft.com/fwlink/?LinkID=113262).