Udostępnij za pośrednictwem


Import-LocalizedData

Importuje dane specyficzne dla języka do skryptów i funkcji na podstawie kultury interfejsu użytkownika wybranej dla systemu operacyjnego.

Składnia

Import-LocalizedData
      [[-BindingVariable] <String>]
      [[-UICulture] <String>]
      [-BaseDirectory <String>]
      [-FileName <String>]
      [-SupportedCommand <String[]>]
      [<CommonParameters>]

Opis

Polecenie Import-LocalizedData cmdlet dynamicznie pobiera ciągi z podkatalogu, którego nazwa jest zgodna z językiem interfejsu użytkownika ustawionym dla bieżącego użytkownika systemu operacyjnego. Została zaprojektowana tak, aby umożliwić skryptom wyświetlanie komunikatów użytkownika w języku interfejsu użytkownika wybranym przez bieżącego użytkownika.

Import-LocalizedData importuje dane z .psd1 plików w podkatalogach specyficznych dla języka katalogu script i zapisuje je w zmiennej lokalnej określonej w poleceniu . Polecenie cmdlet wybiera podkatalog i plik na podstawie wartości zmiennej automatycznej $PSUICulture . Gdy używasz zmiennej lokalnej w skrytecie do wyświetlania komunikatu użytkownika, komunikat pojawia się w języku interfejsu użytkownika użytkownika.

Możesz użyć parametrów Import-LocalizedData , aby określić alternatywną kulturę interfejsu użytkownika, ścieżkę i nazwę pliku, aby dodać obsługiwane polecenia i pominąć komunikat o błędzie wyświetlany, jeśli .psd1 pliki nie zostaną znalezione.

Polecenie Import-LocalizedData cmdlet obsługuje inicjatywę międzynarodowych skryptów, która została wprowadzona w programie Windows PowerShell 2.0. Ta inicjatywa ma na celu lepszą obsługę użytkowników na całym świecie, ułatwiając skryptom wyświetlanie komunikatów użytkowników w języku interfejsu użytkownika bieżącego użytkownika. Aby uzyskać więcej informacji o tym i o formacie .psd1 plików, zobacz about_Script_Internationalization.

Przykłady

Przykład 1. Importowanie ciągów tekstowych

Ten przykład importuje ciągi tekstowe do zmiennej $Messages . Używa ona wartości domyślnych wszystkich innych parametrów polecenia cmdlet.

Import-LocalizedData -BindingVariable "Messages"

Jeśli polecenie znajduje się w skrypcie Archives.ps1 w C:\Test katalogu, a wartość $PsUICulture zmiennej automatycznej to zh-CN, Import-LocalizedData importuje Archives.psd1 plik w C:\test\zh-CN katalogu do zmiennej $Messages .

Przykład 2. Importowanie zlokalizowanych ciągów danych

Ten przykład jest uruchamiany w wierszu polecenia, a nie w skrycie. Pobiera zlokalizowane ciągi danych z pliku Test.psd1 i wyświetla je w wierszu polecenia. Ponieważ polecenie nie jest używane w skrypsie, wymagany jest parametr FileName . Polecenie używa parametru UICulture do określenia kultury 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 Zwraca tabelę skrótu zawierającą zlokalizowane ciągi danych.

Przykład 3. Importowanie ciągów kultury interfejsu użytkownika

Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"

To polecenie importuje ciągi tekstowe do $MsgTbl zmiennej skryptu.

Używa parametru UICulture , aby skierować polecenie cmdlet do importowania danych z Simple.psd1 pliku w ar-SA podkatalogu C:\Data\Localized.

Przykład 4. Importowanie zlokalizowanych danych do skryptu

W tym przykładzie pokazano, jak używać zlokalizowanych danych w prostym skrytecie.

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.

Pierwsza część przykładu przedstawia zawartość Test.psd1 pliku. Zawiera ConvertFrom-StringData polecenie, które konwertuje serię nazwanych ciągów tekstowych na tabelę skrótów. Plik Test.psd1 znajduje się w podkatalogu C:\Test en-US katalogu zawierającego skrypt.

Druga część przykładu przedstawia zawartość skryptu Test.ps1 . Zawiera Import-LocalizedData polecenie, które importuje dane z pasującego .psd1 pliku do $Messages zmiennej i Write-Host polecenie, które zapisuje jeden z komunikatów w zmiennej $Messages do programu hosta.

Ostatnia część przykładu uruchamia skrypt. Dane wyjściowe pokazują, że wyświetla prawidłowy komunikat użytkownika w języku interfejsu użytkownika ustawionym dla bieżącego użytkownika systemu operacyjnego.

Przykład 5. Zastępowanie domyślnych ciągów tekstowych w skrypcie

W tym przykładzie pokazano, jak zastąpić Import-LocalizedData domyślne ciągi tekstowe zdefiniowane w sekcji DATA skryptu.

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

W tym przykładzie sekcja DATA skryptu TestScript.ps1 zawiera ConvertFrom-StringData polecenie, które konwertuje zawartość sekcji DATA na tabelę skrótów i przechowuje wartość zmiennej $UserMessages .

Skrypt zawiera również polecenie, które importuje tabelę Import-LocalizedData skrótu przetłumaczonych ciągów tekstowych z pliku TestScript.psd1 w podkatalogu określonym przez wartość zmiennej $PsUICulture . Jeśli polecenie znajdzie .psd1 plik, zapisuje przetłumaczone ciągi z pliku w wartości tej samej $UserMessages zmiennej, zastępując tabelę skrótu zapisaną przez logikę sekcji DATA.

Trzecie polecenie wyświetla pierwszy komunikat w zmiennej $UserMessages .

Import-LocalizedData Jeśli polecenie znajdzie .psd1 plik dla $PsUICulture języka, wartość $UserMessages zmiennej zawiera przetłumaczone ciągi tekstowe. Jeśli polecenie zakończy się niepowodzeniem z jakiegokolwiek powodu, polecenie wyświetli domyślne ciągi tekstowe zdefiniowane w sekcji DATA skryptu.

Przykład 6. Pomijanie komunikatów o błędach, jeśli nie znaleziono kultury interfejsu użytkownika

W tym przykładzie pokazano, jak pominąć komunikaty o błędach wyświetlane, gdy Import-LocalizedData nie można znaleźć katalogów pasujących do kultury interfejsu użytkownika użytkownika lub nie można odnaleźć .psd1 pliku skryptu w tych katalogach.

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

Możesz użyć wspólnego parametru ErrorAction z wartością SilentlyContinue, aby pominąć komunikat o błędzie. Jest to szczególnie przydatne w przypadku podania komunikatów użytkownika w domyślnym lub rezerwowym języku i nie jest wymagany żaden komunikat o błędzie.

W tym przykładzie porównaliśmy dwa skrypty i Day1.ps1 Day2.ps1, które zawierają Import-LocalizedData polecenie. Skrypty są identyczne, z wyjątkiem tego, że day2 używa wspólnego parametru ErrorAction z wartością SilentlyContinue.

Przykładowe dane wyjściowe pokazują wyniki uruchamiania obu skryptów, gdy kultura interfejsu użytkownika jest ustawiona na fr-BE i nie ma pasujących plików ani katalogów dla tej kultury interfejsu użytkownika. Day1.ps1 wyświetla komunikat o błędzie i dane wyjściowe w języku angielskim. Day2.ps1 wyświetla tylko angielskie dane wyjściowe.

Parametry

-BaseDirectory

Określa katalog podstawowy, w .psd1 którym znajdują się pliki. Wartość domyślna to katalog, w którym znajduje się skrypt. Import-LocalizedData.psd1 wyszukuje plik dla skryptu w podkatalogu specyficznym dla języka katalogu podstawowego.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-BindingVariable

Określa zmienną, do której są importowane ciągi tekstowe. Wprowadź nazwę zmiennej bez znaku dolara ($).

W programie Windows PowerShell 2.0 ten parametr jest wymagany. W programie Windows PowerShell 3.0 ten parametr jest opcjonalny. Jeśli pominiesz ten parametr, Import-LocalizedData zwraca tabelę skrótu ciągów tekstowych. Tabela skrótów jest przekazywana w potoku lub wyświetlana w wierszu polecenia.

W przypadku zastępowania Import-LocalizedData domyślnych ciągów tekstowych określonych w sekcji DATA skryptu przypisz sekcję DATA do zmiennej i wprowadź nazwę zmiennej sekcji DATA w wartości parametru BindingVariable . Następnie podczas Import-LocalizedData zapisywania zaimportowanej zawartości w bindingVariable zaimportowane dane zastąpią domyślne ciągi tekstowe. Jeśli nie określasz domyślnych ciągów tekstowych, możesz wybrać dowolną nazwę zmiennej.

Typ:String
Aliasy:Variable
Position:0
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-FileName

Określa nazwę pliku danych (.psd1) do zaimportowania. Wprowadź nazwę pliku. Możesz określić nazwę pliku, która nie zawiera .psd1 rozszerzenia nazwy pliku, lub określić nazwę pliku, w tym .psd1 rozszerzenie nazwy pliku. Pliki danych powinny być zapisywane jako Unicode lub UTF-8.

Parametr FileName jest wymagany, jeśli Import-LocalizedData nie jest używany w skrypsie. W przeciwnym razie parametr jest opcjonalny, a wartość domyślna to nazwa podstawowa skryptu. Tego parametru można użyć do kierowania Import-LocalizedData do wyszukiwania innego .psd1 pliku.

Jeśli na przykład parametr FileName zostanie pominięty, a nazwa skryptu FindFiles.psd1 to FindFiles.ps1, Import-LocalizedData wyszukuje plik danych.

Typ:String
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-SupportedCommand

Określa polecenia cmdlet i funkcje, które generują tylko dane.

Użyj tego parametru, aby uwzględnić polecenia cmdlet i funkcje, które zostały napisane lub przetestowane. Aby uzyskać więcej informacji, zobacz about_Script_Internationalization.

Typ:String[]
Position:Named
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

-UICulture

Określa alternatywną kulturę interfejsu użytkownika. Wartość domyślna to wartość zmiennej automatycznej $PsUICulture . Wprowadź kulturę interfejsu użytkownika w <language>-<region> formacie, takim jak en-US, de-DElub ar-SA.

Wartość parametru UICulture określa podkatalog specyficzny dla języka (w katalogu podstawowym), z którego Import-LocalizedData pobiera .psd1 plik dla skryptu.

Polecenie cmdlet wyszukuje podkatalog o tej samej nazwie co wartość parametru UICulture lub zmiennej automatycznej $PsUICulture , takiej jak de-DE lub ar-SA. Jeśli nie można odnaleźć katalogu lub katalog nie zawiera .psd1 pliku skryptu, wyszukuje podkatalog o nazwie kodu języka, takiego jak de lub ar. Jeśli nie można odnaleźć podkatalogu lub .psd1 pliku, polecenie zakończy się niepowodzeniem, a dane zostaną wyświetlone w domyślnym języku określonym w skry skrycie.

Typ:String
Position:1
Domyślna wartość:None
Wymagane:False
Akceptowanie danych wejściowych potoku:False
Akceptowanie symboli wieloznacznych:False

Dane wejściowe

None

Nie można potokować obiektów do tego polecenia cmdlet.

Dane wyjściowe

Hashtable

To polecenie cmdlet zapisuje tabelę skrótu w zmiennej określonej przez wartość parametru BindingVariable .

Uwagi

  • Przed użyciem polecenia Import-LocalizedDatazlokalizuj komunikaty użytkownika. Sformatuj komunikaty dla każdej kultury ustawień regionalnych (kultury interfejsu użytkownika) w tabeli skrótowej par klucz-wartość i zapisz tabelę skrótów w pliku o takiej samej nazwie jak skrypt i .psd1 rozszerzenie nazwy pliku. Utwórz katalog w katalogu script dla każdej obsługiwanej kultury interfejsu użytkownika, a następnie zapisz .psd1 plik dla każdej kultury interfejsu użytkownika w katalogu z nazwą kultury interfejsu użytkownika.

    Na przykład lokalizowanie komunikatów użytkownika dla ustawień regionalnych de-DE i formatowanie ich w tabeli skrótu. Zapisz tabelę <ScriptName>.psd1 skrótu w pliku. Następnie utwórz de-DE podkatalog w katalogu script i zapisz plik niemiecki <ScriptName>.psd1 w podkatalogu de-DE . Powtórz tę metodę dla wszystkich ustawień regionalnych, które są obsługiwane.

  • Import-LocalizedData Wykonuje ustrukturyzowane wyszukiwanie zlokalizowanych komunikatów użytkownika dla skryptu.

    Import-LocalizedData Rozpoczyna wyszukiwanie w katalogu, w którym znajduje się plik skryptu (lub wartość parametru BaseDirectory ). Następnie wyszukuje w katalogu podstawowym podkatalog o takiej samej nazwie jak wartość $PsUICulture zmiennej (lub wartość parametru UICulture ), na przykład de-DE lub ar-SA. Następnie wyszukuje w tym podkatalogu .psd1 plik o takiej samej nazwie jak skrypt (lub wartość parametru FileName ).

    Jeśli Import-LocalizedData nie można znaleźć podkatalogu o nazwie kultury interfejsu użytkownika lub podkatalog nie zawiera .psd1 pliku dla skryptu, wyszukuje .psd1 plik skryptu w podkatalogu o nazwie kodu języka, takiego jak de lub ar. Jeśli nie można odnaleźć podkatalogu lub .psd1 pliku, polecenie zakończy się niepowodzeniem, dane są wyświetlane w języku domyślnym skryptu i zostanie wyświetlony komunikat o błędzie wyjaśniający, że nie można zaimportować danych. Aby pominąć komunikat i pomyślnie zakończyć się niepowodzeniem, użyj wspólnego parametru ErrorAction z wartością SilentlyContinue.

    Jeśli Import-LocalizedData znajdzie podkatalog i .psd1 plik, importuje tabelę skrótów komunikatów użytkownika do wartości parametru BindingVariable w poleceniu . Następnie po wyświetleniu komunikatu z tabeli skrótu w zmiennej zostanie wyświetlony zlokalizowany komunikat.

    Aby uzyskać więcej informacji, zobacz about_Script_Internationalization.