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. Jest on przeznaczony do umożliwienia skryptom wyświetlania 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 skryptów i zapisuje je w zmiennej lokalnej określonej w poleceniu. Polecenie cmdlet wybiera podkatalog i plik na podstawie wartości zmiennej automatycznej $PSUICulture
. Jeśli używasz zmiennej lokalnej w skrytecie do wyświetlania komunikatu użytkownika, komunikat jest wyświetlany 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, który pojawia się, jeśli .psd1
pliki nie zostaną znalezione.
Polecenie Import-LocalizedData
cmdlet obsługuje inicjatywę internacjonalizacji skryptów, która została wprowadzona w 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 on zlokalizowane ciągi danych z pliku Test.psd1 i wyświetla je w wierszu polecenia. Ponieważ polecenie nie jest używane w skrypsie, parametr FileName jest wymagany. 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 skryscie.
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 pokazuje 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 powoduje uruchomienie skryptu. 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ótów 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ótów 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 znaleźć .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 języku domyślnym lub rezerwowym 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ą Import-LocalizedData
polecenie. Skrypty są identyczne, z tą różnicą, ż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
po prostu wyświetla dane wyjściowe w języku angielskim.
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
wyszukuje .psd1
plik dla skryptu w podkatalogu specyficznym dla języka katalogu podstawowego.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BindingVariable
Określa zmienną, do której są importowane ciągi tekstowe. Wprowadź nazwę zmiennej bez znaku dolara ($
).
W Windows PowerShell 2.0 ten parametr jest wymagany. W Windows PowerShell 3.0 ten parametr jest opcjonalny. Jeśli pominiesz ten parametr, Import-LocalizedData
zwraca tabelę skrótów ciągów tekstowych. Tabela skrótów jest przekazywana w dół 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.
Type: | String |
Aliases: | Variable |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FileName
Określa nazwę pliku danych (.psd1)
do zaimportowania. Wprowadź nazwę pliku. Można 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, gdy Import-LocalizedData
nie jest używany w skrypsie.
W przeciwnym razie parametr jest opcjonalny, a wartość domyślna to nazwa podstawowa skryptu. Możesz użyć tego parametru, aby bezpośrednio Import-LocalizedData
wyszukać inny .psd1
plik.
Jeśli na przykład parametr FileName zostanie pominięty, a nazwa skryptu FindFiles.psd1
to FindFiles.ps1
, Import-LocalizedData
wyszukuje plik danych.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | 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-DE
lub ar-SA
.
Wartość parametru UICulture określa podkatalog specyficzny dla języka (w katalogu podstawowym), z którego Import-LocalizedData
pobiera .psd1
plik skryptu.
Polecenie cmdlet wyszukuje podkatalog o takiej samej nazwie jak wartość parametru UICulture lub $PsUICulture
zmiennej automatycznej, 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 są wyświetlane w domyślnym języku określonym w skryfcie.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Dane wejściowe
None
Nie można potokować obiektów do tego polecenia cmdlet.
Dane wyjściowe
To polecenie cmdlet zapisuje wartość skrótu w zmiennej określonej przez wartość parametru BindingVariable .
Uwagi
Przed użyciem polecenia
Import-LocalizedData
należy lokalizować wiadomości użytkowników. Sformatuj komunikaty dla każdej kultury ustawień regionalnych (kultury interfejsu użytkownika) w tabeli skrótów par klucz-wartość i zapisz tabelę skrótów w pliku o takiej samej nazwie jak skrypt i.psd1
rozszerzenie nazwy pliku. Twórca katalogu 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 lokalizuj komunikaty użytkownika dla ustawień regionalnych de-DE i sformatuj je w formie tabeli skrótów. Zapisz tabelę skrótów
<ScriptName>.psd1
w pliku. Następnie utwórz podkatalogde-DE
w katalogu script i zapisz niemiecki<ScriptName>.psd1
plik w podkatalogude-DE
. Powtórz tę metodę dla wszystkich ustawień regionalnych, które są obsługiwane.Import-LocalizedData
Wykonuje wyszukiwanie strukturalne 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ładde-DE
lubar-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 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 domyślnym języku 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ć działanie, 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.