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
Default (domyślnie)
Import-LocalizedData
[[-BindingVariable] <String>]
[[-UICulture] <String>]
[-BaseDirectory <String>]
[-FileName <String>]
[-SupportedCommand <String[]>]
[<CommonParameters>]
Opis
Polecenie cmdlet Import-LocalizedData 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ł zaprojektowany 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 specyficznych dla języka podkatalogach katalogu skryptu 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, dodać obsługiwane polecenia i pominąć komunikat o błędzie, który pojawia się, jeśli .psd1 pliki nie zostaną znalezione.
Polecenie cmdlet Import-LocalizedData 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 plików .psd1, zobacz about_Script_Internationalization.
Przykłady
Przykład 1. Importowanie ciągów tekstowych
W tym przykładzie 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 skry skryfcie Archives.ps1 w katalogu C:\Test, a wartość zmiennej automatycznej $PsUICulture jest zh-CN, Import-LocalizedData importuje plik Archives.psd1 w katalogu C:\test\zh-CN 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 skryfcie, wymagany jest parametr FileName. Polecenie używa parametru UICulture, aby określić kulturę en-US.
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."
Import-LocalizedData Zwraca tabelę skrótów, która zawiera 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 zmiennej $MsgTbl skryptu.
Używa parametru UICulture, aby skierować polecenie cmdlet do zaimportowania danych z pliku Simple.psd1 w podkatalogu ar-SAC:\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 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.
Pierwsza część przykładu przedstawia zawartość pliku Test.psd1. 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 en-US katalogu C:\Test zawierającego skrypt.
Druga część przykładu przedstawia zawartość skryptu Test.ps1. Zawiera on polecenie Import-LocalizedData, które importuje dane z pasującego pliku .psd1 do zmiennej $Messages i polecenie Write-Host, 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 używać Import-LocalizedData do zastępowania domyślnych ciągów tekstowych zdefiniowanych 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ść $UserMessages zmiennej.
Skrypt zawiera Import-LocalizedData również polecenie, które importuje tabelę skrótów przetłumaczonych ciągów tekstowych z pliku TestScript.psd1 w podkatalogu określonym przez wartość $PsUICulture zmiennej. Jeśli polecenie znajdzie .psd1 plik, zapisuje przetłumaczone ciągi z pliku w wartości tej samej $UserMessages zmiennej, nadpisując tabelę skrótów zapisaną przez logikę sekcji DATA.
Trzecie polecenie wyświetla pierwszy komunikat w zmiennej $UserMessages.
Jeśli polecenie Import-LocalizedData znajdzie plik .psd1 języka $PsUICulture, wartość zmiennej $UserMessages 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, które pojawiają się, gdy Import-LocalizedData nie można znaleźć katalogów pasujących do kultury interfejsu użytkownika użytkownika lub nie można znaleźć pliku skryptu .psd1 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 : 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
Aby pominąć komunikat o błędzie, możesz użyć ErrorAction wspólnego parametru z wartością SilentlyContinue. 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, Day1.ps1 i Day2.ps1, które zawierają polecenie Import-LocalizedData. Skrypty są identyczne, z wyjątkiem tego, że day2 używa ErrorAction wspólnego parametru 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 którym znajdują się pliki .psd1. Wartość domyślna to katalog, w którym znajduje się skrypt.
Import-LocalizedData wyszukuje plik .psd1 dla skryptu w podkatalogu specyficznym dla języka katalogu podstawowego.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowe: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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 ten parametr Import-LocalizedData zostanie pominięty, zwraca tabelę skrótów ciągów tekstowych. Tabela skrótów jest przekazywana w potoku lub wyświetlana w wierszu polecenia.
W przypadku używania Import-LocalizedData do zastępowania 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, gdy Import-LocalizedData zapisze zaimportowaną zawartość 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.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
| Aliasy: | Zmienna |
Zestawy parametrów
(All)
| Position: | 0 |
| Obowiązkowe: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-FileName
Określa nazwę pliku danych (.psd1) do zaimportowania. Wprowadź nazwę pliku. Można określić nazwę pliku, która nie zawiera rozszerzenia nazwy .psd1 pliku, lub można określić nazwę pliku wraz z rozszerzeniem .psd1 nazwy pliku. Pliki danych powinny być zapisywane jako Unicode lub UTF-8.
Parametr FileName jest wymagany, gdy Import-LocalizedData nie jest używany w skrypcie.
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 pliku .psd1.
Na przykład, jeśli nazwa pliku zostanie pominięta, a nazwa skryptu zostanie FindFiles.ps1, Import-LocalizedData program wyszukuje plik danych FindFiles.psd1.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowe: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | 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.
Właściwości parametru
| Typ: | String[] |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | Named |
| Obowiązkowe: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
-UICulture
Określa alternatywną kulturę interfejsu użytkownika.
Wartość domyślna to wartość zmiennej automatycznej $PsUICulture.
Wprowadź kulturę interfejsu użytkownika w formacie <language>-<region>, 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 plik .psd1 skryptu.
Polecenie cmdlet wyszukuje podkatalog o takiej samej nazwie jak wartość parametru UICulture lub zmiennej automatycznej $PsUICulture, takiej jak de-DE lub ar-SA. Jeśli nie może odnaleźć katalogu lub katalog nie zawiera .psd1 pliku skryptu, wyszukuje podkatalog o nazwie kodu języka, takiej jak de lub ar. Jeśli nie może odnaleźć podkatalogu lub .psd1 pliku, polecenie kończy się niepowodzeniem, a dane są wyświetlane w domyślnym języku określonym w skrypcie.
Właściwości parametru
| Typ: | String |
| Domyślna wartość: | None |
| Obsługuje symbole wieloznaczne: | False |
| DontShow: | False |
Zestawy parametrów
(All)
| Position: | 1 |
| Obowiązkowe: | False |
| Wartość z potoku: | False |
| Wartość z potoku według nazwy właściwości: | False |
| Wartość z pozostałych argumentów: | False |
CommonParameters
To polecenie cmdlet obsługuje typowe parametry: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction i -WarningVariable. Aby uzyskać więcej informacji, zobacz about_CommonParameters.
Dane wejściowe
None
Nie można przekazać danych wejściowych potoku do tego polecenia cmdlet.
Dane wyjściowe
Hashtable
Import-LocalizedData zapisuje tabelę skrótów w zmiennej, która jest określona przez wartość parametru BindingVariable .
Uwagi
Przed użyciem
Import-LocalizedDatazlokalizuj komunikaty użytkowników. Sformatuj komunikaty dla każdego ustawienia regionalnego (kultury interfejsu użytkownika) w tabeli skrótów par klucz-wartość i zapisz tabelę skrótów w pliku o tej samej nazwie co skrypt i rozszerzeniu.psd1nazwy pliku. Utwórz katalog w katalogu script dla każdej obsługiwanej kultury interfejsu użytkownika, a następnie zapisz plik.psd1dla 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ótów. Zapisz tabelę skrótów
<ScriptName>.psd1w pliku. Następnie utwórz podkatalogde-DEw katalogu script i zapisz niemiecki plik<ScriptName\>.psd1w podkatalogude-DE. Powtórz tę metodę dla wszystkich ustawień regionalnych, które są obsługiwane.Import-LocalizedDatawykonuje ustrukturyzowane wyszukiwanie zlokalizowanych komunikatów użytkownika dla skryptu.Import-LocalizedDatarozpoczyna wyszukiwanie w katalogu, w którym znajduje się plik skryptu (lub wartość parametru BaseDirectory). Następnie wyszukuje w katalogu podstawowym podkatalog o tej samej nazwie co wartość zmiennej$PsUICulture(lub wartość parametru UICulture), na przykładde-DElubar-SA. Następnie wyszukuje w tym podkatalogu plik.psd1o takiej samej nazwie jak skrypt (lub wartość parametru FileName).Jeśli
Import-LocalizedDatanie można odnaleźć podkatalogu o nazwie kultury interfejsu użytkownika lub podkatalog nie zawiera.psd1pliku skryptu, wyszukuje.psd1plik skryptu w podkatalogu o nazwie kodu języka, takiej jak de lub ar. Jeśli nie można odnaleźć podkatalogu lub.psd1pliku, polecenie kończy się niepowodzeniem, dane są wyświetlane w skrypcie w języku domyślnym i wyświetlany jest 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 ErrorAction wspólnego parametru z wartością SilentlyContinue.Jeśli
Import-LocalizedDataznajdzie podkatalog i.psd1plik, 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ótów w zmiennej zostanie wyświetlony zlokalizowany komunikat.Aby uzyskać więcej informacji, zobacz about_Script_Internationalization.