Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Krótki opis
Opisuje funkcje międzynarodowych skryptów, które ułatwiają skryptom wyświetlanie komunikatów i instrukcji dla użytkowników w języku interfejsu użytkownika.
Długi opis
Funkcje międzynarodowych skryptów programu PowerShell umożliwiają lepszą obsługę użytkowników na całym świecie dzięki wyświetlaniu komunikatów pomocy i użytkowników w języku użytkownika.
Funkcje międzynarodowych skryptów wysyłają zapytania do kultury interfejsu użytkownika systemu operacyjnego podczas wykonywania, importują odpowiednie przetłumaczone ciągi tekstowe i wyświetlają je użytkownikowi. Sekcja Dane umożliwia przechowywanie ciągów tekstowych oddzielnych od kodu, dzięki czemu można je łatwo zidentyfikować i wyodrębnić. Nowe polecenie cmdlet ConvertFrom-StringData, konwertuje ciągi tekstowe na tabele skrótów przypominające słownik, aby ułatwić tłumaczenie.
Aby obsługiwać międzynarodowy tekst pomocy, program PowerShell zawiera następujące funkcje:
Sekcja Dane oddzielającą ciągi tekstowe od instrukcji kodu. Aby uzyskać więcej informacji na temat sekcji Dane, zobacz about_Data_Sections.
Nowe zmienne
$PSCultureautomatyczne i$PSUICulture.$PSCultureprzechowuje nazwę języka interfejsu użytkownika używanego w systemie dla elementów, takich jak data, godzina i waluta. Zmienna$PSUICultureprzechowuje nazwę języka interfejsu użytkownika używanego w systemie dla elementów interfejsu użytkownika, takich jak menu i ciągi tekstowe.Polecenie cmdlet ,
ConvertFrom-StringDataktóre konwertuje ciągi tekstowe na tabele skrótów przypominające słownik w celu ułatwienia tłumaczenia. Aby uzyskać więcej informacji, zobacz ConvertFrom-StringData.Nowy typ pliku ,
.psd1który przechowuje przetłumaczone ciągi tekstowe. Pliki.psd1są przechowywane w podkatalogach specyficznych dla języka katalogu script.Polecenie cmdlet ,
Import-LocalizedDataktóre importuje przetłumaczone ciągi tekstowe dla określonego języka do skryptu w czasie wykonywania. To polecenie cmdlet rozpoznaje i importuje ciągi w dowolnym języku obsługiwanym przez system Windows. Aby uzyskać więcej informacji, zobacz Import-LocalizedData.
Sekcja danych: przechowywanie ciągów domyślnych
Użyj sekcji Dane w skryscie, aby przechowywać ciągi tekstowe w języku domyślnym. Rozmieść ciągi w parach klucz/wartość w ciągu tutaj. Każda para klucz/wartość musi znajdować się w osobnym wierszu. W przypadku uwzględnienia komentarzy komentarze muszą znajdować się w osobnych wierszach.
Polecenie ConvertFrom-StringData cmdlet konwertuje pary klucz/wartość w tym ciągu na tabelę skrótów przypominającą słownik, która jest przechowywana w wartości zmiennej sekcji Dane.
W poniższym przykładzie sekcja Dane skryptu World.ps1 zawiera zestaw komunikatów monitów dla skryptu w języku angielskim Stany Zjednoczone (en-US). Polecenie ConvertFrom-StringData cmdlet konwertuje ciągi na tabelę skrótów i przechowuje je w zmiennej $msgtable .
$msgTable = data {
#culture="en-US"
ConvertFrom-StringData @'
helloWorld = Hello, World.
errorMsg1 = You cannot leave the user name field blank.
promptMsg = Please enter your user name.
'@
}
Aby uzyskać więcej informacji na temat ciągów tutaj, zobacz about_Quoting_Rules.
Pliki PSD1: przechowywanie przetłumaczonych ciągów
Zapisz komunikaty skryptu dla każdego języka interfejsu użytkownika w osobnych plikach tekstowych o takiej samej nazwie jak skrypt i .psd1 rozszerzenie nazwy pliku. Zapisz pliki w podkatalogach katalogu script z nazwami kultur w następującym formacie:
<language>-<region>
Przykłady: de-DE, ar-SA i zh-Hans
Jeśli na przykład World.ps1 skrypt jest przechowywany w C:\Scripts katalogu, należy utworzyć strukturę katalogów plików podobną do następującej:
C:\Scripts
C:\Scripts\World.ps1
C:\Scripts\de-DE\World.psd1
C:\Scripts\ar-SA\World.psd1
C:\Scripts\zh-CN\World.psd1
...
Plik World.psd1 w podkatalogu de-DE katalogu script może zawierać następującą instrukcję:
ConvertFrom-StringData -StringData @'
helloWorld = Hallo, Welt.
errorMsg1 = Das Feld Benutzername darf nicht leer sein.
promptMsg = Geben Sie Ihren Benutzernamen ein.
'@
World.psd1 Podobnie plik w podkatalogu ar-SA katalogu script może zawierać następującą instrukcję:
ConvertFrom-StringData -StringData @'
helloWorld = مرحبًا أيها العالَم
errorMsg1 = لا يمكنك ترك حقل اسم المستخدم فارغًا
promptMsg = يرجى إدخال اسم المستخدم الخاص بك
'@
Import-LocalizedData: dynamiczne pobieranie przetłumaczonych ciągów
Aby pobrać ciągi w języku interfejsu użytkownika bieżącego użytkownika, użyj Import-LocalizedData polecenia cmdlet .
Import-LocalizedData znajduje wartość zmiennej automatycznej $PSUICulture i importuje zawartość <script-name>.psd1 plików w podkatalogu zgodnym z wartością $PSUICulture . Następnie zapisuje zaimportowaną zawartość w zmiennej określonej przez wartość parametru BindingVariable .
Import-LocalizedData -BindingVariable msgTable
Jeśli na przykład Import-LocalizedData polecenie zostanie wyświetlone w C:\Scripts\World.ps1 skry skrycie, a wartość $PSUICulture to "ar-SA", Import-LocalizedData znajdzie następujący plik:
C:\Scripts\ar-SA\World.psd1
Następnie importuje arabskie ciągi tekstowe z pliku do $msgTable zmiennej, zastępując wszystkie ciągi domyślne, które mogą być zdefiniowane w sekcji Dane skryptu World.ps1 .
W związku z tym, gdy skrypt używa zmiennej $msgTable do wyświetlania komunikatów użytkownika, komunikaty są wyświetlane w języku arabskim.
Na przykład poniższy skrypt wyświetla komunikat "Wprowadź nazwę użytkownika" w języku arabskim:
if (!($username)) { $msgTable.promptMsg }
Jeśli Import-LocalizedData nie można odnaleźć .psd1 pliku zgodnego $PSUICulturez wartością , wartość $msgTable elementu nie zostanie zamieniona, a wywołanie w celu $msgTable.promptMsg wyświetlania rezerwowych ciągów en-US.
Przykłady
W tym przykładzie pokazano, w jaki sposób funkcje międzynarodowych skryptów są używane w skrycie do wyświetlania dnia tygodnia użytkownikom w języku ustawionym na komputerze.
Poniżej znajduje się pełna lista pliku skryptu Sample1.ps1.
Skrypt rozpoczyna się od sekcji Dane o nazwie Day ($Day), która zawiera ConvertFrom-StringData polecenie. Wyrażenie przesłane do ConvertFrom-StringData elementu to ciąg here-string, który zawiera nazwy dni w domyślnej kulturze interfejsu użytkownika, en-US, w parach klucz/wartość. Polecenie ConvertFrom-StringData cmdlet konwertuje pary klucz/wartość w tym ciągu na tabelę skrótów, a następnie zapisuje ją w wartości zmiennej $Day .
Polecenie Import-LocalizedData importuje zawartość .psd1 pliku w katalogu, który odpowiada wartości $PSUICulture zmiennej automatycznej, a następnie zapisuje ją w $Day zmiennej, zastępując wartości $Day zdefiniowane w sekcji Dane.
Pozostałe polecenia ładują ciągi do tablicy i wyświetlają je.
$Day = data {
#culture="en-US"
ConvertFrom-StringData -StringData @'
messageDate = Today is
d0 = Sunday
d1 = Monday
d2 = Tuesday
d3 = Wednesday
d4 = Thursday
d5 = Friday
d6 = Saturday
'@
}
Import-LocalizedData -BindingVariable Day
#Build an array of weekdays.
$a = $Day.d0, $Day.d1, $Day.d2, $Day.d3, $Day.d4, $Day.d5, $Day.d6
# Get the day of the week as a number (Monday = 1).
# Index into $a to get the name of the day.
# Use string formatting to build a sentence.
"{0} {1}" -f $Day.messageDate, $a[(Get-Date -UFormat %u)] | Out-Host
Pliki .psd1 , które obsługują skrypt, są zapisywane w podkatalogach katalogu script z nazwami zgodnymi z wartościami $PSUICulture .
Poniżej znajduje się kompletna lista:.\de-DE\sample1.psd1
# culture="de-DE"
ConvertFrom-StringData @'
messageDate = Heute ist
d0 = Sonntag
d1 = Montag
d2 = Dienstag
d3 = Mittwoch
d4 = Donnerstag
d5 = Freitag
d6 = Samstag
'@
W związku z tym po uruchomieniu pliku Sample.ps1 w systemie, w którym wartość $PSUICulture jest de-DE, dane wyjściowe skryptu to:
Heute ist Freitag