Freigeben über


Import-LocalizedData

Importiert sprachspezifische Daten in Skripts und Funktionen, die auf der für das Betriebssystem ausgewählten Benutzeroberflächenkultur basieren.

Syntax

Default (Standard)

Import-LocalizedData
    [[-BindingVariable] <String>]
    [[-UICulture] <String>]
    [-BaseDirectory <String>]
    [-FileName <String>]
    [-SupportedCommand <String[]>]
    [<CommonParameters>]

Beschreibung

Das Cmdlet Import-LocalizedData ruft dynamisch Zeichenfolgen aus einem Unterverzeichnis ab, dessen Name mit der Sprache der Benutzeroberfläche übereinstimmt, die für den aktuellen Benutzer des Betriebssystems festgelegt wurde. Es wurde entwickelt, um Skripts zu ermöglichen, Benutzernachrichten in der Sprache der Benutzeroberfläche anzuzeigen, die vom aktuellen Benutzer ausgewählt wurde.

Import-LocalizedData importiert Daten aus .psd1-Dateien in sprachspezifischen Unterverzeichnissen des Skriptverzeichnisses und speichert sie in einer lokalen Variablen, die im Befehl angegeben wird. Das Cmdlet wählt das Unterverzeichnis und die Datei basierend auf dem Wert der automatischen Variablen $PSUICulture aus. Wenn Sie die lokale Variable im Skript verwenden, um eine Benutzermeldung anzuzeigen, wird die Meldung in der Benutzeroberflächensprache 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 Cmdlet Import-LocalizedData unterstützt die Initiative zur Skriptinternationalisierung, die in Windows PowerShell 2.0 eingeführt wurde. Diese Initiative zielt darauf ab, Benutzer weltweit besser zu bedienen, indem skripts die Anzeige von Benutzermeldungen in der Benutzeroberflächensprache des aktuellen Benutzers erleichtert werden. Weitere Informationen hierzu und zum Format der PSD1-Dateien finden Sie unter about_Script_Internationalization.

Beispiele

Beispiel 1: Importieren von Textzeichenfolgen

PS C:\> Import-LocalizedData -BindingVariable "Messages"

Mit diesem Befehl werden Textzeichenfolgen in die Variable $Messages importiert. Es verwendet die Standardwerte aller anderen Cmdlet-Parameter.

Wenn der Befehl im Archives.ps1 Skript im Verzeichnis C:\Test enthalten ist und der Wert der $PsUICulture automatischen Variablen zh-CNist, importiert Import-LocalizedData die Datei Archives.psd1 im Verzeichnis C:\test\zh-CN in die Variable $Messages.

Beispiel 2: Importieren lokalisierter Datenzeichenfolgen

PS C:\> 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."

Dieser Befehl wird auf der Befehlszeile ausgeführt. nicht in einem Drehbuch. Sie 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 Parameter FileName erforderlich. Der Befehl verwendet den parameter UICulture, um die en-US Kultur anzugeben.

Import-LocalizedData gibt eine Hashtabelle zurück, die die lokalisierten Datenzeichenfolgen enthält.

Beispiel 3: Importieren von Ui-Kulturzeichenfolgen

PS C:\> Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"

Dieser Befehl importiert Textzeichenfolgen in die $MsgTbl Variable eines Skripts.

Er verwendet den UICulture-Parameter , um das Cmdlet anzuweisen, Daten aus der Datei Simple.psd1 in das Unterverzeichnis ar-SA von C:\Data\Localized zu importieren.

Beispiel 4: Importieren lokalisierter Daten in ein Skript

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.

In diesem Beispiel wird gezeigt, wie lokalisierte Daten in einem einfachen Skript verwendet werden.

Der erste Teil des Beispiels zeigt den Inhalt der Datei Test.psd1. Er enthält einen ConvertFrom-StringData Befehl, 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.

Der zweite Teil des Beispiels zeigt den Inhalt des Test.ps1 Skripts. Sie enthält einen Import-LocalizedData-Befehl , der die Daten aus der entsprechenden PSD1-Datei in die $Messages Variable importiert, und einen Write-Host Befehl, der eine der Nachrichten in der Variablen $Messages in das Hostprogramm schreibt.

Der letzte Teil des Beispiels führt das Skript aus. Die Ausgabe zeigt, dass die richtige Benutzermeldung in der Für den aktuellen Benutzer des Betriebssystems festgelegten Benutzersprache angezeigt wird.

Beispiel 5: Ersetzen von Standardtextzeichenfolgen in einem Skript

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 wird gezeigt, wie Import-LocalizedData verwendet wird, um Standardtextzeichenfolgen zu ersetzen, die im DATA-Abschnitt eines Skripts definiert sind.

In diesem Beispiel enthält der DATA-Abschnitt des TestScript.ps1-Skripts einen ConvertFrom-StringData Befehl, der den Inhalt des DATA-Abschnitts in eine Hashtabelle konvertiert und den Wert der Variablen $UserMessages speichert.

Das Skript enthält auch einen Import-LocalizedData-Befehl , der eine Hashtabelle mit übersetzten Textzeichenfolgen aus der Datei TestScript.psd1 in das Unterverzeichnis importiert, das durch den Wert der Variablen $PsUICulture angegeben wird. Wenn der Befehl die Datei .psd1 findet, speichert er die übersetzten Zeichenfolgen aus der Datei im Wert derselben Variablen $UserMessages und überschreibt die Hashtabelle, die von der DATA-Abschnittslogik gespeichert wurde.

Der dritte Befehl zeigt die erste Meldung in der Variablen $UserMessages an.

Wenn der Befehl Import-LocalizedData eine PSD1-Datei für die $PsUICulture Sprache findet, enthält der Wert der Variablen $UserMessages die übersetzten Textzeichenfolgen. Wenn der Befehl aus irgendeinem Grund fehlschlägt, zeigt der Befehl die im DATENabschnitt des Skripts definierten Standardtextzeichenfolgen an.

Beispiel 6: Unterdrücken von Fehlermeldungen, wenn die Benutzeroberflächenkultur nicht gefunden wird

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

In diesem Beispiel wird gezeigt, wie die Fehlermeldungen unterdrückt werden, die angezeigt werden, wenn Import-LocalizedData die Verzeichnisse nicht finden kann, die der Benutzeroberflächenkultur des Benutzers entsprechen, oder keine PSD1-Datei für das Skript in diesen Verzeichnissen finden kann.

Sie können den ErrorAction- allgemeinen Parameter mit dem Wert "SilentlyContinue" verwenden, um die Fehlermeldung zu unterdrücken. Dies ist besonders hilfreich, 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 Parameter ErrorAction mit dem Wert SilentlyContinue verwendet.

Die Beispielausgabe zeigt die Ergebnisse des Ausführens 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 sich das Skript befindet. Import-LocalizedData sucht nach der PSD1-Datei für das Skript in einem sprachspezifischen Unterverzeichnis des Basisverzeichnisses.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-BindingVariable

Gibt die Variable an, in die die Textzeichenfolgen importiert werden. Geben Sie einen Variablennamen ohne Dollarzeichen ($) ein.

In Windows PowerShell 2.0 ist dieser Parameter erforderlich. In Windows PowerShell 3.0 ist dieser Parameter optional. Wenn Sie diesen Parameter weglassen, gibt Import-LocalizedData eine Hashtabelle mit den Textzeichenfolgen zurück. Die Hashtabelle wird an die Pipeline übergeben oder in der Befehlszeile angezeigt.

Wenn Sie Import-LocalizedData verwenden, um Standardtextzeichenfolgen zu ersetzen, die im DATA-Abschnitt eines Skripts angegeben sind, weisen Sie den DATA-Abschnitt einer Variablen zu, und geben Sie den Namen der Variablen des DATA-Abschnitts in den Wert des BindingVariable-Parameters ein . Wenn Import-LocalizedData dann den importierten Inhalt in der BindingVariable speichert, ersetzen die importierten Daten die Standardtextzeichenfolgen. Wenn Sie keine Standardtextzeichenfolgen angeben, können Sie einen beliebigen Variablennamen auswählen.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False
Aliase:Variable

Parametersätze

(All)
Position:0
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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 .psd1 nicht enthält, oder Sie können den Dateinamen einschließlich der Dateinamenerweiterung .psd1 angeben. Datendateien sollten als Unicode oder UTF-8 gespeichert werden.

Der Parameter FileName ist erforderlich, wenn Import-LocalizedData nicht in einem Skript verwendet wird. Andernfalls ist der Parameter optional, und der Standardwert ist der Basisname des Skripts. Sie können diesen Parameter verwenden, um Import-LocalizedData anzuweisen, nach einer anderen PSD1-Datei zu suchen.

Wenn z. B. FileName weggelassen wird und der Skriptname FindFiles.ps1lautet, sucht Import-LocalizedData nach der Datendatei FindFiles.psd1.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten: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.

Parametereigenschaften

Typ:

String[]

Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:Named
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

-UICulture

Gibt eine alternative Benutzeroberflächenkultur an. Der Standardwert ist der Wert der $PsUICulture automatischen Variablen. Geben Sie eine Benutzeroberflächenkultur im <><> Sprachregionsformat ein, z. B. en-US, de-DEoder 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 abruft.

Das Cmdlet sucht nach einem Unterverzeichnis mit dem gleichen Namen wie der Wert des UICulture-Parameters oder der $PsUICulture automatischen Variablen, z. B. de-DE oder ar-SA. Wenn das Verzeichnis nicht gefunden werden kann oder das Verzeichnis keine PSD1-Datei für das Skript enthält, wird nach einem Unterverzeichnis mit dem Namen des Sprachcodes gesucht, z. B. de oder ar. Wenn das Unterverzeichnis oder die PSD1-Datei nicht gefunden werden kann, schlägt der Befehl fehl und die Daten werden in der im Skript angegebenen Standardsprache angezeigt.

Parametereigenschaften

Typ:String
Standardwert:None
Unterstützt Platzhalter:False
Nicht anzeigen:False

Parametersätze

(All)
Position:1
Obligatorisch:False
Wert aus Pipeline:False
Wert aus Pipeline nach dem Eigenschaftsnamen:False
Wert aus verbleibenden Argumenten:False

CommonParameters

Dieses Cmdlet unterstützt die allgemeinen Parameter -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction und -WarningVariable. Weitere Informationen findest du unter about_CommonParameters.

Eingaben

None

Eingaben können nicht an dieses Cmdlet weitergereicht werden.

Ausgaben

Hashtable

Import-LocalizedData speichert die Hashtabelle in der Variablen, die durch den Wert des BindingVariable-Parameters angegeben wird.

Hinweise

  • Bevor Sie Import-LocalizedData verwenden, lokalisieren Sie Ihre Benutzermeldungen. Formatieren Sie die Meldungen für jedes Gebietsschema (Benutzeroberflächenkultur) in einer Hashtabelle mit 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 z. B. Ihre Benutzernachrichten für das Gebietsschema de-DE und formatieren Sie sie in einer Hashtabelle. Speichern Sie die Hashtabelle in der <Datei ScriptName.psd1>. Erstellen Sie dann ein Unterverzeichnis de-DE unter dem Skriptverzeichnis, und speichern Sie die Datei de-DE <ScriptName.psd1> im Unterverzeichnis de-DE. Wiederholen Sie diese Methode für jedes gebietsschema, das Sie unterstützen.

  • Import-LocalizedData führt eine strukturierte Suche nach den lokalisierten Benutzermeldungen für ein Skript durch.

    Import-LocalizedData startet die Suche in dem Verzeichnis, in dem sich die Skriptdatei befindet (oder der Wert des BaseDirectory-Parameters ). Anschließend wird im Basisverzeichnis nach einem Unterverzeichnis gesucht, das den gleichen Namen wie der Wert der Variablen $PsUICulture (oder den Wert des Parameters UICulture ) hat, z. B. de-DE oder ar-SA. Anschließend wird in diesem Unterverzeichnis nach einer PSD1-Datei mit dem gleichen Namen wie das Skript (oder dem Wert des Parameters FileName ) gesucht.

    Wenn Import-LocalizedData kein Unterverzeichnis mit dem Namen der Benutzeroberflächenkultur finden kann oder das Unterverzeichnis keine PSD1-Datei für das Skript enthält, wird in einem Unterverzeichnis mit dem Namen des Sprachcodes, z. B. de oder ar, nach einer PSD1-Datei für das Skript gesucht. Wenn das Unterverzeichnis oder die PSD1-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, die erklärt, dass die Daten nicht importiert werden konnten. Um die Nachricht zu unterdrücken und ordnungsgemäß fehlzuschlagen, verwenden Sie den ErrorAction allgemeinen Parameter mit dem Wert "SilentlyContinue".

    Wenn Import-LocalizedData das Unterverzeichnis und die PSD1-Datei findet, wird die Hashtabelle der Benutzermeldungen in den Wert des BindingVariable-Parameters im Befehl importiert. Wenn Sie dann eine Nachricht aus der Hash-Tabelle in der Variablen anzeigen, wird die lokalisierte Nachricht angezeigt.

    Weitere Informationen finden Sie unter about_Script_Internationalization (https://go.microsoft.com/fwlink/?LinkID=113262).