Sdílet prostřednictvím


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-SAC:\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-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á 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

Hashtable

Tato rutina uloží hashtable 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 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ář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í 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ří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 .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.