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á sadě jazyka uživatelského rozhraní 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 souborů .psd1
v podadresářích skriptu specifických pro 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 se nenajdou 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 tématu about_Script_Internationalization.
Příklady
Příklad 1: Import textových řetězců
Tento příklad importuje textové řetězce do proměnné $Messages
. 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 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ů
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. Protože se příkaz ve skriptu nepoužívá, vyžaduje se 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 souboru Simple.psd1
v podadresáři ar-SA
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 souboru Test.psd1
. Obsahuje příkaz ConvertFrom-StringData
, který převede řadu pojmenovaných textových řetězců na hashtable. 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 Write-Host
příkaz, který zapíše jednu ze zpráv do hostitelského programu $Messages
proměnné.
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 pomocí Import-LocalizedData
nahradit 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 část DATA skriptu TestScript.ps1 příkaz ConvertFrom-StringData
, který převede obsah oddílu DATA na hashtable a uloží hodnotu proměnné $UserMessages
.
Skript také obsahuje příkaz Import-LocalizedData
, který importuje hashtable 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 hashtable 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
, bude hodnota proměnné $UserMessages
obsahovat 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ůžou najít adresáře, které odpovídají jazykové verzi uživatelského rozhraní uživatele nebo nemůžou najít soubor .psd1
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 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é obsahují 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ář, ve kterém jsou umístěné soubory .psd1
. Výchozí hodnota je adresář, ve kterém se nachází skript.
Import-LocalizedData
hledá soubor .psd1
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í hashovatelnou tabulku 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 do hodnoty parametru BindingVariable zadejte název proměnné oddílu DATA. Když pak Import-LocalizedData
uloží importovaný obsah 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 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, pokud se Import-LocalizedData
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 nasměrování Import-LocalizedData
k vyhledání jiného souboru .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 naleznete 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 formátu <language>-<region>
, 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á soubor .psd1
skriptu.
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
skriptu, vyhledá podadresář s názvem kódu jazyka, například de nebo ar. Pokud nemůže 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
Do této rutiny nemůžete roušit objekty.
Výstupy
Tato rutina uloží hashtable do proměnné určené hodnotou parametru BindingVariable.
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 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 hashtable. Uložte hashtable do souboru
<ScriptName>.psd1
. Potom v adresáři skriptu vytvořte podadresářde-DE
a uložte soubor německého<ScriptName>.psd1
do podadresářede-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í hledání v adresáři, ve kterém je umístěn 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říkladde-DE
neboar-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.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 soubor.psd1
, příkaz selže, data se zobrazí ve výchozím jazyce 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 hodnotu hashtable uživatelských zpráv do hodnoty parametru BindingVariable v příkazu. Když pak v proměnné zobrazíte zprávu z hashtable, zobrazí se lokalizovaná zpráva.Další informace naleznete v tématu about_Script_Internationalization.