Import-LocalizedData
Importiert sprachspezifische Daten auf Grundlage der für das Betriebssystem ausgewählten Benutzeroberflächenkultur in Skripts und Funktionen.
Syntax
Import-LocalizedData [-BindingVariable] <string> [[-UICulture] <string>] [-BaseDirectory <string>] [-FileName <string>] [-SupportedCommand <string[]>] [<CommonParameters>]
Beschreibung
Das Cmdlet "Import-LocalizedData" ruft Zeichenfolgen dynamisch aus einem Unterverzeichnis ab, dessen Name der Benutzeroberflächensprache entspricht, die für den aktuellen Benutzer des Betriebssystems festgelegt wurde. Mit dem Cmdlet werden Skripts aktiviert, durch die Benutzermeldungen in der vom aktuellen Benutzer ausgewählten Benutzeroberflächensprache angezeigt werden.
Import-LocalizedData importiert Daten aus PSD1-Dateien in sprachspezifischen Unterverzeichnissen des Skriptverzeichnisses und speichert sie in einer im Befehl angegebenen lokalen Variablen. Das Cmdlet wählt das Unterverzeichnis und die Datei auf Grundlage des Werts der automatischen Variablen "$PSUICulture" aus. Wenn Sie die lokale Variable im Skript zum Anzeigen einer Benutzermeldung verwenden, wird die Meldung in der Benutzeroberflächensprache des Benutzers angezeigt.
Mit den Parametern von Import-LocalizedData können Sie eine alternative Benutzeroberflächenkultur sowie einen alternativen Pfad und Dateinamen angeben, unterstützte Befehle hinzufügen und die Fehlermeldung unterdrücken, die angezeigt wird, wenn die PSD1-Dateien nicht gefunden werden.
Das Cmdlet Import-LocalizedData unterstützt die Skriptinternationalisierung in Windows PowerShell 2.0. Diese Initiative soll weltweit die Benutzerfreundlichkeit erhöhen, indem in Skripts leicht festgelegt werden kann, dass Benutzermeldungen in der Benutzeroberflächensprache des aktuellen Benutzers angezeigt werden. Weitere Informationen hierzu, einschließlich Informationen über das Format der PSD1-Dateien, finden Sie unter "about_Script_Internationalization".
Parameter
-BaseDirectory <string>
Gibt das Basisverzeichnis an, in dem sich die PSD1-Dateien befinden. Das Standardverzeichnis ist das Verzeichnis, in dem sich das Skript befindet. Import-LocalizedData sucht die PSD1-Datei für das Skript in einem sprachspezifischen Unterverzeichnis des Basisverzeichnisses.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-BindingVariable <string>
Gibt eine Variable an, in die die Textzeichenfolgen importiert werden. Geben Sie einen Variablennamen ohne Dollarzeichen ($) ein.
Wenn Sie die im DATA-Abschnitt eines Skripts angegebenen Standardtextzeichenfolgen mithilfe von Import-LocalizedData ersetzen, weisen Sie den DATA-Abschnitt einer Variablen zu und geben im Wert des BindingVariable-Parameters den Namen der Variablen für den DATA-Abschnitt ein. Wenn dann Import-LocalizedData den importierten Inhalt in der BindingVariable speichert, werden die Standardtextzeichenfolgen durch die importierten Daten ersetzt. Wenn Sie keine Standardtextzeichenfolgen angeben, können Sie einen beliebigen Variablennamen auswählen.
Erforderlich? |
true |
Position? |
1 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-FileName <string>
Gibt den Namen der zu importierenden PSD1-Datei an. Geben Sie einen Dateinamen ohne die Dateinamenerweiterung ".psd1" ein.
Der Standardname ist der Name des Skripts. Wenn beispielsweise der Name des Skripts "FindFiles.ps1" lautet, sucht Import-LocalizedData nach "FindFiles.psd1". Sie können mit diesem Parameter festlegen, dass Import-LocalizedData nach einer anderen PSD1-Datei sucht.
Erforderlich? |
false |
Position? |
named |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-SupportedCommand <string[]>
Gibt Cmdlets und Funktionen an, die nur Daten generieren.
Verwenden Sie diesen Parameter, um Cmdlets und Funktionen einzuschließen, die Sie geschrieben oder getestet haben. Weitere Informationen finden Sie unter "about_Script_Internationalization".
Erforderlich? |
false |
Position? |
named |
Standardwert |
Keiner |
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
-UICulture <string>
Gibt eine alternative Benutzeroberflächenkultur an. Der Standardwert ist der Wert der automatischen Variablen "$PsUICulture". Geben Sie die Benutzeroberflächenkultur im Format "<Sprache>-<Region>" ein, z. B. "en-US", "de-DE" oder "ar-SA".
Der Wert des UICulture-Parameters bestimmt das sprachspezifische Unterverzeichnis (im Basisverzeichnis), aus dem Import-LocalizedData die PSD1-Datei für das Skript abruft.
Das Cmdlet sucht ein Unterverzeichnis mit dem gleichen Namen wie der Wert des UICulture-Parameters oder der automatischen Variablen "$PsUICulture", z. B. "de-DE" oder "ar-SA". Wenn das Verzeichnis nicht gefunden wird oder wenn das Verzeichnis keine PSD1-Datei für das Skript enthält, sucht es ein Unterverzeichnis mit dem Namen des Sprachcodes, z. B. "de" oder "ar". Wenn das Unterverzeichnis oder die PSD1-Datei nicht gefunden wird, schlägt der Befehl fehl, und die Daten werden in der im Skript angegebenen Standardsprache angezeigt.
Erforderlich? |
false |
Position? |
2 |
Standardwert |
|
Pipelineeingaben akzeptieren? |
false |
Platzhalterzeichen akzeptieren? |
false |
<CommonParameters>
Dieses Cmdlet unterstützt die folgenden allgemeinen Parameter: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer und -OutVariable. Weitere Informationen finden Sie unter about_Commonparameters.
Eingaben und Ausgaben
Der Eingabetyp ist der Typ der Objekte, die über die Pipeline an das Cmdlet übergeben werden können. Der Rückgabetyp ist der Typ der Objekte, die das Cmdlet zurückgibt.
Eingaben |
Keiner Eingaben können nicht über die Pipeline an dieses Cmdlet übergeben werden. |
Ausgaben |
System.Collections.Hashtable Import-LocalizedData speichert die Hashtabelle in der vom Wert des BindingVariable-Parameters angegebenen Variablen. |
Hinweise
Lokalisieren Sie vor dem Verwenden von Import-LocalizedData die Benutzermeldungen. Formatieren Sie die Meldungen für jedes Gebietsschema (Benutzeroberflächenkultur) in einer Hashtabelle von Schlüssel-Wert-Paaren, und speichern Sie die Hashtabelle in einer Datei mit dem gleichen Namen wie das Skript und der Dateinamenerweiterung ".psd1". Erstellen Sie für jede unterstützte Benutzeroberflächenkultur ein Verzeichnis unter dem Skriptverzeichnis, und speichern Sie dann die PSD1-Datei für jede Benutzeroberflächenkultur in dem Verzeichnis mit dem Namen der Benutzeroberflächenkultur.
Lokalisieren Sie beispielsweise die Benutzermeldungen für das Gebietsschema "de-DE", und formatieren Sie sie in einer Hashtabelle. Speichern Sie die Hashtabelle in der Datei "<Skriptname>.psd1". Erstellen Sie dann unter dem Skriptverzeichnis das Unterverzeichnis "de-DE", und speichern Sie die Datei "<Skriptname>.psd1" für "de-DE" im Unterverzeichnis "de-DE". Wiederholen Sie dieses Verfahren für jedes unterstützte Gebietsschema.
Import-LocalizedData führt eine strukturierte Suche nach den lokalisierten Benutzermeldungen für ein Skript aus.
Import-LocalizedData startet die Suche in dem Verzeichnis, in dem sich die Skriptdatei befindet (oder das vom Wert des BaseDirectory-Parameters festgelegt wird). Anschließend sucht das Cmdlet im Basisverzeichnis nach einem Unterverzeichnis, dessen Name mit dem Wert der Variablen "$PsUICulture" (oder dem Wert des UICulture-Parameters) übereinstimmt, z. B. "de-DE" oder "ar-SA". Dann sucht es in diesem Unterverzeichnis nach einer PSD1-Datei mit dem Namen des Skripts (oder dem Wert des FileName-Parameters).
Wenn Import-LocalizedData kein Unterverzeichnis mit dem Namen der Benutzeroberflächenkultur findet oder wenn das Unterverzeichnis keine PSD1-Datei für das Skript enthält, sucht es eine PSD1-Datei für das Skript in einem Unterverzeichnis mit dem Namen des Sprachcodes, z. B. "de" oder "ar". Wenn das Unterverzeichnis oder die PSD1-Datei nicht gefunden wird, schlägt der Befehl fehl, die Daten werden in der Standardsprache im Skript angezeigt, und eine Fehlermeldung wird angezeigt, die angibt, dass die Daten nicht importiert werden konnten. Um die Meldung zu unterdrücken und ordnungsgemäß einen Fehler auszulösen, verwenden Sie den allgemeinen ErrorAction-Parameter mit dem Wert "SilentlyContinue".
Wenn Import-LocalizedData das Unterverzeichnis und die PSD1-Datei findet, wird die Hashtabelle von Benutzermeldungen in den Wert des BindingVariable-Parameters im Befehl importiert. Wenn Sie dann eine Meldung aus der Hashtabelle in der Variablen anzeigen, wird die lokalisierte Meldung angezeigt.
Weitere Informationen finden Sie unter "about_Script_Internationalization".
Beispiel 1
C:\PS>import-localizeddata -bindingVariable messages
Beschreibung
-----------
Mit diesem Befehl werden Textzeichenfolgen in die Variable "$messages" importiert. Es werden alle Standardwerte für die Cmdlet-Parameter verwendet.
Wenn der Befehl im Skript "Archives.ps1" im Verzeichnis "C:\test" enthalten ist und der Wert der automatischen Variablen "$PsUICulture" "zh-CN" lautet, importiert Import-LocalizedData die Datei "Archives.psd1" in das Verzeichnis "C:\test\zh-CN".
Beispiel 2
C:\PS>import-localizeddata -bindingVariable msgTbl -uiculture ar-SA -filename Simple -baseDirectory C:\Data\Localized
Beschreibung
-----------
Mit diesem Befehl werden Textzeichenfolgen in die Variable "$msgTbl" eines Skripts importiert.
Mit dem UICulture-Parameter wird festgelegt, dass das Cmdlet Daten aus der Datei "Simple.psd1" im Unterverzeichnis "ar-SA" von "C:\Data\Localized" importiert.
Beispiel 3
C:\PS># 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
C:\PS> .\test.ps1
This command requires the credentials of a member of the Administrators group on the computer.
Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie lokalisierte Daten in einem einfachen Skript verwendet werden.
Im ersten Teil des Beispiels wird der Inhalt der Datei "Test.psd1" veranschaulicht. Sie enthält den Befehl "ConvertFrom-StringData", der eine Reihe von benannten Textzeichenfolgen in eine Hashtabelle konvertiert. Die Datei "test.psd1" befindet sich im Unterverzeichnis "en-US" des Verzeichnisses "C:\Test", das das Skript enthält.
Im zweiten Teil des Beispiels wird der Inhalt des Skripts "Test.ps1" veranschaulicht. Es enthält einen Befehl "Import-LocalizedData", mit dem die Daten aus der entsprechenden PSD1-Datei in die Variable "$Messages" importiert wird, und einen Befehl "Write-Host", mit dem eine der Meldungen in der Variablen "$Messages" in das Hostprogramm geschrieben wird.
Im letzten Teil des Beispiels wird das Skript ausgeführt. Die Ausgabe zeigt, dass die richtige Benutzermeldung in der für den aktuellen Benutzer des Betriebssystems festgelegten Benutzeroberflächensprache angezeigt wird.
Beispiel 4
C:\PS># 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
...
Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie mit Import-LocalizedData im DATA-Abschnitt eines Skripts definierte Standardtextzeichenfolgen ersetzt werden.
In diesem Beispiel enthält der DATA-Abschnitt des Skripts "TestScript.ps1" einen Befehl "ConvertFrom-StringData", der den Inhalt des DATA-Abschnitts in eine Hashtabelle konvertiert und im Wert der Variablen "$UserMessages" speichert.
Das Skript enthält zusätzlich den Befehl "Import-LocalizedData", mit dem eine Hashtabelle übersetzter Textzeichenfolgen aus der Datei "TestScript.psd1" in dem Unterverzeichnis importiert wird, das vom Wert der Variablen "$PsUICulture" angegeben wurde. Wenn die PSD1-Datei vom Befehl gefunden wird, werden die übersetzten Zeichenfolgen aus der Datei im Wert der gleichen Variablen "$UserMessages" gespeichert und die von der Logik des DATA-Abschnitts gespeicherte Hashtabelle überschrieben.
Im dritten Befehl wird die erste Meldung in der Variablen "$UserMessages" angezeigt.
Wenn mit dem Befehl "Import-LocalizedData" eine PSD1-Datei für die Sprache von "$PsUICulture" gefunden wird, enthält der Wert der Variablen "$UserMessages" die übersetzten Textzeichenfolgen. Falls der Befehl fehlschlägt, werden die im DATA-Abschnitt des Skripts definierten Standardtextzeichenfolgen angezeigt.
Beispiel 5
C:\PS># In Day1.ps1
Import-LocalizedData -bindingVariable Day
Day.MessageDate
# In Day2.ps1
Import-LocalizedData -bindingVariable Day -errorAction:silentlycontinue
Day.MessageDate
C:\PS> .\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
C:\PS> .\Day2.ps1
Today is Tuesday
Beschreibung
-----------
In diesem Beispiel wird gezeigt, wie die Fehlermeldungen unterdrückt werden, die angezeigt werden, wenn Import-LocalizedData die Verzeichnisse nicht findet, die mit der Benutzeroberflächenkultur des Benutzers übereinstimmen, oder keine PSD1-Datei für das Skript in diesen Verzeichnissen findet.
Sie können den allgemeinen ErrorAction-Parameter mit dem Wert "SilentlyContinue" verwenden, um die Fehlermeldung zu unterdrücken. Dies ist besonders hilfreich, wenn Sie Benutzermeldungen in einer Standardsprache oder Ersatzsprache angegeben haben und keine Benutzermeldung erforderlich ist.
In diesem Beispiel werden die beiden Skripts "Day1.ps1" und Day2.ps1" verglichen, die den Befehl "Import-LocalizedData" enthalten. Der einzige Unterschied zwischen den Skripts besteht darin, dass in "Day2.ps1" der allgemeine ErrorAction-Parameter mit dem Wert "SilentlyContinue" verwendet wird.
In der Beispielausgabe werden die Ergebnisse gezeigt, wenn beide Skripts mit einer auf "fr-BE" festgelegten Benutzeroberflächenkultur ausgeführt werden und keine übereinstimmenden Dateien oder Verzeichnisse für diese Benutzeroberflächenkultur vorhanden sind. "Day1.ps1" zeigt eine Fehlermeldung und die englische Ausgabe an. "Day2.ps1" zeigt nur die englische Ausgabe an.