Import-LocalizedData
Importiert sprachspezifische Daten in Skripts und Funktionen, basierend auf der Benutzeroberflächenkultur, die für das Betriebssystem ausgewählt ist.
Syntax
Import-LocalizedData
[[-BindingVariable] <String>]
[[-UICulture] <String>]
[-BaseDirectory <String>]
[-FileName <String>]
[-SupportedCommand <String[]>]
[<CommonParameters>]
Beschreibung
Das Import-LocalizedData
Cmdlet ruft dynamisch Zeichenfolgen aus einem Unterverzeichnis ab, dessen Name der benutzeroberflächensprachlich für den aktuellen Benutzer des Betriebssystems festgelegt ist. Es dient der Aktivierung von Skripts, um Benutzermeldungen in der vom aktuellen Benutzer ausgewählten Benutzeroberflächensprache anzuzeigen.
Import-LocalizedData
importiert Daten aus .psd1
Dateien in sprachspezifischen Unterverzeichnissen des Skriptverzeichnisses und speichert sie in einer lokalen Variablen, die im Befehl angegeben ist. Das Cmdlet wählt das Unterverzeichnis und die Datei basierend auf dem Wert der $PSUICulture
automatischen Variablen aus. Wenn Sie die lokale Variable im Skript verwenden, um eine Benutzermeldung anzuzeigen, wird die Meldung in der Benutzeroberflächensprache des Benutzers angezeigt.
Sie können die Parameter von Import-LocalizedData
verwenden, um eine alternative Benutzeroberflächenkultur, einen Pfad und einen Dateinamen anzugeben, unterstützte Befehle hinzuzufügen und die Fehlermeldung zu unterdrücken, die angezeigt wird, wenn die .psd1
Dateien nicht gefunden werden.
Das Import-LocalizedData
Cmdlet unterstützt die Skript-Internationalisierungsinitiative, die in Windows PowerShell 2.0 eingeführt wurde. Ziel dieser Initiative ist es, Benutzern weltweit einen besseren Dienst zu bieten, indem es Skripts erleichtert wird, Benutzermeldungen in der Sprache der Benutzeroberfläche des aktuellen Benutzers anzuzeigen. Weitere Informationen hierzu und zum Format der .psd1
Dateien finden Sie unter about_Script_Internationalization.
Beispiele
Beispiel 1: Importieren von Textzeichenfolgen
In diesem Beispiel werden Textzeichenfolgen in die $Messages
Variable importiert. Es werden die Standardwerte aller anderen Cmdlet-Parameter verwendet.
Import-LocalizedData -BindingVariable "Messages"
Wenn der Befehl im Archives.ps1 Skripts C:\Test
im Verzeichnis enthalten ist und der Wert der $PsUICulture
automatischen Variablen zh-CN ist, Import-LocalizedData
importiert die Archives.psd1
Datei im Verzeichnis in C:\test\zh-CN
die $Messages
Variable.
Beispiel 2: Importieren lokalisierter Datenzeichenfolgen
Dieses Beispiel wird an der Befehlszeile und nicht in einem Skript ausgeführt. Er ruft lokalisierte Datenzeichenfolgen aus der Datei „Test.psd1“ ab, und zeigt sie in der Befehlszeile an. Da der Befehl nicht in einem Skript verwendet wird, ist der FileName-Parameter erforderlich. Der Befehl verwendet den UICulture-Parameter , um die en-US-Kultur anzugeben.
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
gibt eine Hashtabelle zurück, die die lokalisierten Datenzeichenfolgen enthält.
Beispiel 3: Importieren von Benutzeroberflächenkulturzeichenfolgen
Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"
Dieser Befehl importiert Textzeichenfolgen in die $MsgTbl
Variable eines Skripts.
Es verwendet den UICulture-Parameter , um das Cmdlet anweisen, Daten aus der Simple.psd1
Datei im ar-SA
Unterverzeichnis von C:\Data\Localized
zu importieren.
Beispiel 4: Importieren lokalisierter Daten in ein Skript
In diesem Beispiel wird veranschaulicht, wie lokalisierte Daten in einem einfachen Skript verwendet werden.
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.
Der erste Teil des Beispiels zeigt den Inhalt der Test.psd1
Datei. Es enthält einen ConvertFrom-StringData
Befehl, der eine Reihe benannter Textzeichenfolgen in eine Hashtabelle konvertiert. Die Test.psd1
Datei befindet sich im Unterverzeichnis en-US des C:\Test
Verzeichnisses, das das Skript enthält.
Der zweite Teil des Beispiels zeigt den Inhalt des Test.ps1
Skripts. Es enthält einen Import-LocalizedData
Befehl, der die Daten aus der übereinstimmenden .psd1
Datei in die $Messages
Variable importiert, und einen Write-Host
Befehl, der eine der Nachrichten in der $Messages
Variablen in das Hostprogramm schreibt.
Der letzte Teil des Beispiels führt das Skript aus. Die Ausgabe zeigt, dass die richtige Benutzermeldung in der Benutzeroberflächensprache angezeigt wird, die für den aktuellen Benutzer des Betriebssystems festgelegt wurde.
Beispiel 5: Ersetzen von Standardtextzeichenfolgen in einem Skript
In diesem Beispiel wird gezeigt, wie sie verwenden Import-LocalizedData
, um im Abschnitt DATA eines Skripts definierte Standardtextzeichenfolgen zu ersetzen.
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...
In diesem Beispiel enthält der Abschnitt DATA des skripts TestScript.ps1 einen ConvertFrom-StringData
Befehl, der den Inhalt des DATA-Abschnitts in eine Hashtabelle konvertiert und im Wert der $UserMessages
Variablen speichert.
Das Skript enthält auch einen Import-LocalizedData
Befehl, der eine Hashtabelle mit übersetzten Textzeichenfolgen aus der Datei TestScript.psd1 in das durch den Wert der $PsUICulture
Variablen angegebene Unterverzeichnis importiert. Wenn der Befehl die .psd1
Datei findet, speichert er die übersetzten Zeichenfolgen aus der Datei im Wert derselben $UserMessages
Variablen und überschreibt die von der DATA-Abschnittslogik gespeicherte Hashtabelle.
Der dritte Befehl zeigt die erste Meldung in der $UserMessages
Variablen an.
Wenn der Import-LocalizedData
Befehl eine .psd1
Datei für die $PsUICulture
Sprache findet, enthält der Wert der $UserMessages
Variablen die übersetzten Textzeichenfolgen. Wenn der Befehl aus irgendeinem Grund fehlschlägt, zeigt der Befehl die im DATA-Abschnitt des Skripts definierten Standardtextzeichenfolgen an.
Beispiel 6: Unterdrücken von Fehlermeldungen, wenn die Benutzeroberflächenkultur nicht gefunden wird
In diesem Beispiel wird gezeigt, wie Sie die Fehlermeldungen unterdrücken, die angezeigt werden, wenn Import-LocalizedData
die Verzeichnisse, die der Benutzeroberflächenkultur entsprechen, nicht oder keine .psd1
Datei für das Skript in diesen Verzeichnissen gefunden werden.
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
Sie können den allgemeinen ErrorAction-Parameter mit dem Wert SilentlyContinue verwenden, um die Fehlermeldung zu unterdrücken. Dies ist besonders nützlich, wenn Sie Benutzernachrichten in einer Standard- oder Fallbacksprache bereitgestellt haben und keine Fehlermeldung erforderlich ist.
In diesem Beispiel werden zwei Skripts Day1.ps1
und Day2.ps1 verglichen, die einen Import-LocalizedData
Befehl enthalten. Die Skripts sind identisch, mit der Ausnahme, dass Day2 den allgemeinen ErrorAction-Parameter mit dem Wert verwendet SilentlyContinue
.
Die Beispielausgabe zeigt die Ergebnisse der Ausführung beider Skripts, wenn die Benutzeroberflächenkultur auf fr-BE
festgelegt ist und keine übereinstimmenden Dateien oder Verzeichnisse für diese Benutzeroberflächenkultur vorhanden sind. Day1.ps1
zeigt eine Fehlermeldung und eine englische Ausgabe an. Day2.ps1
zeigt nur die englische Ausgabe an.
Parameter
-BaseDirectory
Gibt das Basisverzeichnis an, in dem sich die .psd1
Dateien befinden. Der Standardwert ist das Verzeichnis, in dem das Skript gespeichert ist. Import-LocalizedData
sucht nach der .psd1
Datei für das Skript in einem sprachspezifischen Unterverzeichnis des Basisverzeichnisses.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BindingVariable
Gibt die Variable an, in die die Textzeichenfolgen importiert werden. Geben Sie einen Variablennamen ohne Dollarzeichen ($
) ein.
Dieser Parameter ist in Windows PowerShell 2.0 erforderlich. Dieser Parameter ist in Windows PowerShell 3.0 optional. Wenn Sie diesen Parameter weglassen, Import-LocalizedData
gibt eine Hashtabelle der Textzeichenfolgen zurück. Die Hashtabelle wird über die Pipeline übergeben oder in der Befehlszeile angezeigt.
Wenn Sie verwenden Import-LocalizedData
, um Standardtextzeichenfolgen zu ersetzen, die im Abschnitt DATA eines Skripts angegeben sind, weisen Sie den DATA-Abschnitt einer Variablen zu, und geben Sie den Namen der DATA-Abschnittsvariablen in den Wert des BindingVariable-Parameters ein. Wenn Import-LocalizedData
dann der importierte Inhalt in BindingVariable gespeichert wird, ersetzen die importierten Daten die Standardtextzeichenfolgen. Wenn Sie keine Standardtextzeichenfolgen angeben, können Sie einen beliebigen Variablennamen auswählen.
Type: | String |
Aliases: | Variable |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FileName
Gibt den Namen der zu importierenden Datendatei (.psd1)
an. Geben Sie einen Dateinamen ein. Sie können einen Dateinamen angeben, der die Dateinamenerweiterung nicht enthält .psd1
, oder Sie können den Dateinamen einschließlich der .psd1
Dateinamenerweiterung angeben. Datendateien sollten als Unicode oder UTF-8 gespeichert werden.
Der FileName-Parameter ist erforderlich, wenn Import-LocalizedData
nicht in einem Skript verwendet wird.
Anderenfalls ist der Parameter optional, und der Standardwert ist der Basisname des Skripts. Sie können diesen Parameter verwenden, um Import-LocalizedData
nach einer anderen .psd1
Datei zu suchen.
Wenn beispielsweise fileName ausgelassen wird und der Skriptname FindFiles.ps1 ist, Import-LocalizedData
sucht nach der Datendatei FindFiles.psd1.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SupportedCommand
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.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UICulture
Gibt eine alternative Benutzeroberflächenkultur an.
Der Standardwert ist der Wert der $PsUICulture
automatischen Variablen.
Geben Sie eine Benutzeroberflächenkultur im <language>-<region>
Format ein, z en-US
. B. , de-DE
oder ar-SA
.
Der Wert des UICulture-Parameters bestimmt das sprachspezifische Unterverzeichnis (innerhalb des Basisverzeichnisses), aus dem Import-LocalizedData
die .psd1
Datei für das Skript abgerufen wird.
Das Cmdlet sucht nach einem Unterverzeichnis mit demselben Namen wie der Wert des UICulture-Parameters oder der $PsUICulture
automatischen Variablen, z de-DE
. B. oder ar-SA
. Wenn das Verzeichnis nicht gefunden werden kann oder das Verzeichnis keine Datei für das Skript enthält .psd1
, sucht es nach einem Unterverzeichnis mit dem Namen des Sprachcodes, z. B. de oder ar. Wenn das Unterverzeichnis oder .psd1
die Datei nicht gefunden werden kann, schlägt der Befehl fehl, und die Daten werden in der im Skript angegebenen Standardsprache angezeigt.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Eingaben
None
Eingaben können nicht an dieses Cmdlet weitergereicht werden.
Ausgaben
Import-LocalizedData
speichert die Hashtabelle in der Variablen, die durch den Wert des BindingVariable-Parameters angegeben wird.
Hinweise
Bevor Sie verwenden
Import-LocalizedData
, lokalisieren Sie Ihre Benutzernachrichten. Formatieren Sie die Nachrichten für jedes Gebietsschema (UI-Kultur) in einer Hashtabelle von Schlüssel-Wert-Paaren, und speichern Sie die Hashtabelle in einer Datei mit demselben Namen wie das Skript und eine.psd1
Dateinamenerweiterung. Create ein Verzeichnis unter dem Skriptverzeichnis für jede unterstützte Benutzeroberflächenkultur, und speichern Sie dann die.psd1
Datei für jede Benutzeroberflächenkultur im Verzeichnis mit dem Namen der Benutzeroberflächenkultur.Lokalisieren Sie beispielsweise Benutzermeldungen für das Gebietsschema „de-DE“, und formatieren Sie sie in einer Hashtabelle. Speichern Sie die Hashtabelle in einer
<ScriptName>.psd1
Datei. Erstellen Sie dann einde-DE
Unterverzeichnis unter dem Skriptverzeichnis, und speichern Sie die Datei Deutsch<ScriptName\>.psd1
imde-DE
Unterverzeichnis. Wiederholen Sie diese Methode für jedes Gebietsschema, das Sie unterstützen.Import-LocalizedData
führt eine strukturierte Suche nach den lokalisierten Benutzernachrichten für ein Skript aus.Import-LocalizedData
beginnt die Suche in dem Verzeichnis, in dem sich die Skriptdatei befindet (oder der Wert des BaseDirectory-Parameters ). Anschließend wird innerhalb des Basisverzeichnisses nach einem Unterverzeichnis mit demselben Namen wie der Wert der$PsUICulture
Variablen (oder der Wert des UICulture-Parameters )de-DE
wie oderar-SA
gesucht. Anschließend sucht es in diesem Unterverzeichnis nach einer.psd1
Datei mit demselben Namen wie das Skript (oder den Wert des FileName-Parameters ).Wenn
Import-LocalizedData
ein Unterverzeichnis mit dem Namen der Benutzeroberflächenkultur nicht gefunden werden kann oder das Unterverzeichnis keine Datei für das Skript enthält.psd1
, sucht es nach einer.psd1
Datei für das Skript in einem Unterverzeichnis mit dem Namen des Sprachcodes, z. B. de oder ar. Wenn das Unterverzeichnis oder.psd1
die Datei nicht gefunden werden kann, schlägt der Befehl fehl. Die Daten werden in der Standardsprache im Skript angezeigt, und es wird eine Fehlermeldung angezeigt, in der erklärt wird, dass die Daten nicht importiert werden konnten. Um die Nachricht zu unterdrücken und ordnungsgemäß fehlschlagen zu können, verwenden Sie den allgemeinen ErrorAction-Parameter mit dem Wert SilentlyContinue.Wenn
Import-LocalizedData
das Unterverzeichnis und die.psd1
Datei gefunden werden, wird die Hashtabelle der Benutzernachrichten 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.