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á 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-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á .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

Hashtable

Tato rutina uloží hashtable do proměnné určené hodnotou BindingVariable parametru.

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 .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řte de-DE podadresář pod adresářem skriptu a uložte německý <ScriptName>.psd1 soubor do de-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říklad de-DE nebo ar-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.