about_script_internationalization - PowerShell Befehl Hilfe und Beispiele

Beschreibt die Skriptinternationalisierungsfeatures von Windows (about_script_internationalization)

THEMA
about_Script_Internationalization
KURZBESCHREIBUNG
Beschreibt die Skriptinternationalisierungsfeatures von Windows PowerShell 2.0, mit denen mit Skripts leicht Meldungen und Anweisungen für Benutzer in ihrer Benutzeroberflächensprache angezeigt werden können.
DETAILBESCHREIBUNG
Mit den Skriptinternationalisierungsfeatures in Windows PowerShell können Sie Benutzern weltweit eine höhere Benutzerfreundlichkeit bieten, indem Hilfe und Benutzermeldungen für Skripts und Funktionen in der Benutzeroberflächensprache des Benutzers angezeigt werden. Die Skriptinternationalisierungsfeatures fragen während der Ausführung die Benutzeroberflächenkultur des Betriebssystems ab, importieren die entsprechenden übersetzten Textzeichenfolgen und zeigen sie für den Benutzer an. Im Datenabschnitt können Sie Textzeichenfolgen getrennt von Code speichern, sodass sie bequem identifiziert und extrahiert werden können. Das neue Cmdlet "ConvertFrom-StringData" konvertiert Textzeichenfolgen in wörterbuchähnliche Hashtabellen, um die Übersetzung zu erleichtern. Die bei der Skriptinternationalisierung verwendeten Windows PowerShell 2.0-Features werden von Windows PowerShell 1.0 nicht unterstützt. Skripts, die diese Features enthalten, werden in Windows PowerShell 1.0 nicht ohne Änderungen ausgeführt. Zum Unterstützen von internationalem Hilfetext umfasst Windows PowerShell 2.0 die folgenden Features: -- Ein Datenabschnitt, mit dem Textzeichenfolgen von Codeanweisungen getrennt werden. Weitere Informationen zum Datenabschnitt finden Sie unter "about_Data_Sections". -- Neue automatische Variablen ("$PSCulture" und "$PSUICulture"). Mit "$PSCulture" wird der Name der Benutzeroberflächensprache gespeichert, die im System für Elemente wie Datum, Uhrzeit und Währung verwendet wird. In der $PSUICulture-Variablen wird der Name der Benutzerober- flächensprache gespeichert, die im System für Benutzerober- flächenelemente wie Menüs und Textzeichenfolgen verwendet wird. -- Das Cmdlet "ConvertFrom-StringData", das Textzeichenfolgen in wörterbuchähnliche Hashtabellen konvertiert, um die Übersetzung zu erleichtern. Weitere Informationen finden Sie unter "ConvertFrom-StringData". -- Der neue Dateityp ".psd1", in dem übersetzte Textzeichenfol- gen gespeichert werden. Die PSD1-Dateien werden in sprachspezifischen Unterverzeichnissen des Skriptverzeich- nisses gespeichert. -- Das Cmdlet "Import-LocalizedData", mit dem übersetzte Textzeichenfolgen für eine angegebene Sprache zur Laufzeit in ein Skript importiert werden. Dieses Cmdlet erkennt und importiert Zeichenfolgen in allen von Windows unterstützten Sprachen. Weitere Informationen finden Sie unter "Import-LocalizedData". DER DATENABSCHNITT: Speichern von Standardzeichenfolgen Verwenden Sie im Skript einen Datenabschnitt, um die Textzeichenfolgen in der Standardsprache zu speichern. Ordnen Sie die Zeichenfolgen in Schlüssel-Wert-Paaren in einer here-Zeichenfolge an. Jedes Schlüssel-Wert-Paar muss in einer eigenen Zeile aufgeführt werden. Wenn Sie Kommentare einschließen, müssen sich die Kommentare in separaten Zeilen befinden. Das Cmdlet "ConvertFrom-StringData" konvertiert die Schlüssel-Wert-Paare in der here-Zeichenfolge in eine wörterbuchähnliche Hashtabelle, die im Wert der Datenabschnitts- variablen gespeichert wird. Im folgenden Beispiel enthält der Datenabschnitt des Skripts "Welt.ps1" den Satz von Aufforderungsmeldungen für Englisch (USA) (en-US) für ein Skript. Das Cmdlet "ConvertFrom-StringData" konvertiert die Zeichenfolgen in eine Hashtabelle und speichert sie in der $msgtable-Variablen. $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. '@ } Weitere Informationen zu here-Zeichenfolgen finden Sie unter "about_Quoting_Rules". PSD1-DATEIEN: Speichern von übersetzten Zeichenfolgen Speichern Sie die Skriptmeldungen für die einzelnen Benutzeroberflächensprachen in separaten Textdateien mit dem gleichen Namen wie das Skript und der PSD1-Dateinamenerweiterung. Speichern Sie die Dateien in Unterverzeichnissen des Skriptverzeichnisses mit den Namen der Kulturen im folgenden Format: <Sprache>-<Region> Beispiele: de-DE, ar-SA und zh-Hans Wenn das Skript "Welt.ps1" z. B. im Verzeichnis "C:\Skripts" gespeichert wird, würden Sie eine Dateiverzeichnisstruktur erstellen, die etwa folgendermaßen aussieht: C:\Skripts C:\Skripts\Welt.ps1 C:\Skripts\de-DE\Welt.psd1 C:\Skripts\ar-SA\Welt.psd1 C:\Skripts\zh-CN\Welt.psd1 ... Die Datei "Welt.psd1" im Unterverzeichnis "de-DE" des Skriptverzeichnisses könnte die folgende Anweisung enthalten: ConvertFrom-StringData @' helloWorld = Hallo, Welt. (auf Deutsch) errorMsg1 = Das Feld für den Benutzernamen darf nicht leer sein. (auf Deutsch) promptMsg = Geben Sie Ihren Benutzernamen ein. (auf Deutsch) '@ Entsprechend kann die Datei "Welt.psd1" im Unterverzeichnis "ar-SA" des Skriptverzeichnisses die folgende Anweisung enthalten: ConvertFrom-StringData @' helloWorld = Hallo, Welt. (auf Arabisch) errorMsg1 = Das Feld für den Benutzernamen darf nicht leer sein. (auf Arabisch) promptMsg = Geben Sie Ihren Benutzernamen ein. (auf Arabisch) '@ IMPORT-LOCALIZEDDATA: Dynamischer Abruf übersetzter Zeichenfolgen Rufen Sie die Zeichenfolgen in der Benutzeroberflächensprache des aktuellen Benutzers mit dem Cmdlet "Import-LocalizedData" ab. Mit "Import-LocalizedData" wird der Wert der automatischen $PSUICulture-Variablen gesucht und der Inhalt der <Skriptname>.psd1-Dateien in das Unterverzeichnis importiert, das dem $PSUICulture-Wert entspricht. Danach wird der importierte Inhalt in der vom Wert des BindingVariable-Parameters angegebenen Variablen gespeichert. import-localizeddata -bindingVariable msgTable Wenn z. B. der Befehl "Import-LocalizedData" im Skript "C:\Skripts\Welt.ps1" angezeigt wird und der Wert von $PSUICulture "ar-SA" lautet, sucht "Import-LocalizedData" die folgende Datei: C:\Skripts\ar-SA\Welt.psd1 Danach werden die arabischen Textzeichenfolgen aus der Datei in die $msgTable-Variable importiert. Dabei werden alle Standardzeichenfolgen ersetzt, die im Datenabschnitt des Skripts "Welt.ps1" definiert sind. Wenn das Skript Benutzermeldungen mithilfe der $msgTable-Variablen anzeigt, werden die Meldungen daher auf Arabisch angezeigt. Mit dem folgenden Skript wird z. B. die Meldung "Geben Sie Ihren Benutzernamen ein" auf Arabisch angezeigt: if (!($username)) { $msgTable.promptMsg } Wenn "Import-LocalizedData" keine PSD1-Datei findet, die mit dem Wert von "$PSUIculture" übereinstimmt, wird der Wert von "$msgTable" nicht ersetzt, und mit dem Aufruf von "$msgTable.promptMsg" werden die Fallback-Zeichenfolgen für en-US angezeigt. BEISPIEL: In diesem Beispiel wird gezeigt, wie die Skriptinternationalisie- rungsfeatures in einem Skript verwendet werden, um einen Wochentag für die Benutzer in der Sprache anzuzeigen, die auf dem Computer festgelegt ist. Im Folgenden wird die Skriptdatei "Beispiel1.ps1" vollständig dargestellt. Das Skript beginnt mit dem Datenbereich "Day" ($Day), der einen ConvertFrom-StringData-Befehl enthält. Der an "ConvertFrom- StringData" gesendete Ausdruck ist eine here-Zeichenfolge, die die Namen der Tage in der Standardbenutzeroberflächenkultur (en-US) in Schlüssel-Wert-Paaren enthält. Das Cmdlet "ConvertFrom- StringData" konvertiert die Schlüssel-Wert-Paare in der here- Zeichenfolge in eine Hashtabelle und speichert sie dann im Wert der $Day-Variablen. Mit dem Befehl "Import-LocalizedData" wird den Inhalt der PSD1-Datei in dem Verzeichnis importiert, das dem Wert der automatischen $PSUICulture-Variablen entspricht, und in der $Day-Variablen gespeichert. Dabei werden die im Datenabschnitt definierten Werte von "$Day" ersetzt. Mit den verbleibenden Befehlen werden die Zeichenfolgen in ein Array geladen und angezeigt. $Day = DATA { # culture="en-US" ConvertFrom-StringData @' messageDate = Today is d1 = Monday d2 = Tuesday d3 = Wednesday d4 = Thursday d5 = Friday d6 = Saturday d7 = Sunday '@ } Import-LocalizedData -BindingVariable Day # Erstellen eines Arrays mit Wochentagen. $a = $Day.d1, $Day.d2, $Day.d3, $Day.d4, $Day.d5, $Day.d6, $Day.d7 # Abrufen des Wochentags als Zahl (Montag = 1). # Index für $a, um den Namen des Tags abzurufen. # Erstellen eines Satzes mit der Zeichenfolgenformatierung. "{0} {1}" -f $Day.messageDate, $a[(get-date -uformat %u)] | Out-Host Die PSD1-Dateien, die das Skript unterstützen, werden in Unterverzeichnissen des Skriptverzeichnisses mit Namen gespeichert, die den $PSUICulture-Werten entsprechen. Im Folgenden wird ".\de-DE\beispiel1.psd1" vollständig aufgeführt: # culture="en-US" ConvertFrom-StringData @' messageDate = Heute ist d1 = Montag d2 = Dienstag d3 = Mittwoch d4 = Donnerstag d5 = Freitag d6 = Samstag d7 = Sonntag '@ Wenn Sie daher "Beispiel.ps1" in einem System ausführen, auf dem "de-DE" der Wert von "$PSUICulture" ist, gibt das Skript Folgendes aus: Heute ist Freitag SIEHE AUCH about_Data_Sections about_Automatic_Variables about_Hash_Tables about_Quoting_Rules ConvertFrom-StringData Import-LocalizedData C:\Windows>powershell get-help about_Session_Configurations -full

Microsoft Windows [Version 10.0.19045.3693]
Copyright (c) 2023 Microsoft Corporation.

ColorConsole [Version 3.7.1000] PowerShell 2.0-Export

Windows 11, 10, 8.1, 8, 7 / Server 2022, 2019, 2016











Windows-10


... Windows 10 FAQ
... Windows 10 How To


Windows 10 How To


... Windows 11 How To
... Windows 10 FAQ



PowerShell: Beschreibt die Skriptinternationalisierungsfeatures von Windows

HTTP: ... PS_Windows/de/about_script_internationalization.htm
0.062
20415
Windows Live Writer auf Windows 10 verwenden! Die regionalen Einstellungen von Microsoft Windows 10/11! Windows 10/11 Taskmanager starten! In Einstellung Windows 10 / 11 Programme deinstallieren? Papierkorb leeren per Befehlszeile mit PowerShell? Lautstärke Regler im Infobereich  der Taskleiste aktivieren / deaktivieren! Dark Theme in Win32 Anwendungen mit Menu und Titelleiste! Der Netzwerkpfad wurde nicht gefunden auf Windows 11 / 10? Standard-Desktop-Symbole unter Windows 11 und 10 aktivieren! Troubleshooting tips for inkjet printers on Windows 11, 10, 8.1, ...!



(0)