Condividi tramite


Import-LocalizedData

Importa dati specifici del linguaggio in script e funzioni in base alle impostazioni cultura dell'interfaccia utente selezionate per il sistema operativo.

Sintassi

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

Descrizione

Il Import-LocalizedData cmdlet recupera in modo dinamico le stringhe da una sottodirectory il cui nome corrisponde al set di lingue dell'interfaccia utente per l'utente corrente del sistema operativo. È progettato per consentire agli script di visualizzare i messaggi utente nella lingua dell'interfaccia utente selezionata dall'utente corrente.

Import-LocalizedData importa i dati dai .psd1 file nelle sottodirectory specifiche della lingua della directory script e le salva in una variabile locale specificata nel comando . Il cmdlet seleziona la sottodirectory e il file in base al valore della $PSUICulture variabile automatica. Quando si usa la variabile locale nello script per visualizzare un messaggio utente, il messaggio viene visualizzato nella lingua dell'interfaccia utente selezionata dall'utente.

È possibile usare i parametri di per specificare impostazioni cultura, percorso e nome file alternativi dell'interfaccia Import-LocalizedData utente, per aggiungere comandi supportati e per eliminare il messaggio di errore visualizzato se i .psd1 file non vengono trovati.

Il Import-LocalizedData cmdlet supporta l'iniziativa di internazionalizzazione dello script introdotta in Windows PowerShell 2.0. Questa iniziativa ha lo scopo di soddisfare al meglio gli utenti in tutto il mondo per semplificare agli script la visualizzazione dei messaggi utente nella lingua dell'interfaccia utente dell'utente corrente. Per altre informazioni su questo e sul formato dei .psd1 file, vedere about_Script_Internationalization.

Esempio

Esempio 1: Importare stringhe di testo

In questo esempio vengono importate stringhe di testo nella $Messages variabile . Usa i valori predefiniti di tutti gli altri parametri del cmdlet.

Import-LocalizedData -BindingVariable "Messages"

Se il comando è incluso nello script Archives.ps1 nella C:\Test directory e il valore della $PsUICulture variabile automatica è zh-CN, Import-LocalizedData importa il Archives.psd1 file nella C:\test\zh-CN directory nella $Messages variabile .

Esempio 2: Importare stringhe di dati localizzate

Questo esempio viene eseguito nella riga di comando non in uno script. Ottiene le stringhe localizzate dal file Test.psd1 e le visualizza nella riga di comando. Poiché il comando non viene usato in uno script, è necessario il parametro FileName . Il comando usa il parametro UICulture per specificare le impostazioni cultura en-US.

Import-LocalizedData -FileName "Test.psd1" -UICulture "en-US"

Name           Value
----           -----
Msg3           "Use $_ to represent the object that's 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 restituisce una tabella hash contenente le stringhe di dati localizzate.

Esempio 3: Importare stringhe delle impostazioni cultura dell'interfaccia utente

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

Questo comando importa le stringhe di testo nella $MsgTbl variabile di uno script.

Usa il parametro UICulture per indirizzare il cmdlet a importare dati dal Simple.psd1 file nella ar-SA sottodirectory di C:\Data\Localized.

Esempio 4: Importare dati localizzati in uno script

Questo esempio mostra come usare i dati localizzati in uno script semplice.

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's 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.

La prima parte dell'esempio mostra il contenuto del Test.psd1 file. Contiene un ConvertFrom-StringData comando che converte una serie di stringhe di testo denominate in una tabella hash. Il Test.psd1 file si trova nella sottodirectory en-US della C:\Test directory che contiene lo script.

La seconda parte dell'esempio mostra il contenuto dello Test.ps1 script. Contiene un Import-LocalizedData comando che importa i dati dal file corrispondente .psd1 nella $Messages variabile e un Write-Host comando che scrive uno dei messaggi nella $Messages variabile nel programma host.

L'ultima parte dell'esempio illustra l'esecuzione dello script. L'output mostra che viene visualizzato il messaggio utente corretto nella lingua dell'interfaccia utente impostata per l'utente corrente del sistema operativo.

Esempio 5: Sostituire le stringhe di testo predefinite in uno script

In questo esempio viene illustrato come usare Import-LocalizedData per sostituire le stringhe di testo predefinite definite nella sezione DATA di uno script.

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 questo esempio, la sezione DATA dello script TestScript.ps1 contiene un ConvertFrom-StringData comando che converte il contenuto della sezione DATA in una tabella hash e archivia nel valore della $UserMessages variabile.

Lo script include anche un Import-LocalizedData comando, che importa una tabella hash di stringhe di testo tradotte dal file TestScript.psd1 nella sottodirectory specificata dal valore della $PsUICulture variabile. Se il comando trova il .psd1 file, salva le stringhe tradotte dal file nel valore della stessa $UserMessages variabile, sovrascrivendo la tabella hash salvata dalla logica della sezione DATA.

Il terzo comando visualizza il primo messaggio nella $UserMessages variabile.

Se il Import-LocalizedData comando trova un .psd1 file per la $PsUICulture lingua, il valore della $UserMessages variabile contiene le stringhe di testo tradotte. Se il comando non riesce per qualsiasi motivo, vengono visualizzate le stringhe di testo predefinite specificate nella sezione DATA dello script.

Esempio 6: Eliminare i messaggi di errore se le impostazioni cultura dell'interfaccia utente non vengono trovate

In questo esempio viene illustrato come eliminare i messaggi di errore visualizzati quando Import-LocalizedData non è possibile trovare le directory che corrispondono alle impostazioni cultura dell'interfaccia utente dell'utente o non è possibile trovare un .psd1 file per lo script in tali directory.

PS C:\> # In Day1.ps1

Import-LocalizedData -BindingVariable "Day"

# In Day2.ps1

Import-LocalizedData -BindingVariable "Day" -ErrorAction:SilentlyContinue

PS C:\> .\Day1.ps1
Import-LocalizedData : Can't 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

È possibile usare il parametro comune ErrorAction con un valore SilentlyContinue per eliminare il messaggio di errore. Ciò è particolarmente utile quando sono stati forniti messaggi utente in una lingua predefinita o di fallback e non è necessario alcun messaggio di errore.

In questo esempio vengono confrontati due script, Day1.ps1 e Day2.ps1, che includono un Import-LocalizedData comando. Gli script sono identici, ad eccezione del fatto che Day2 usa il parametro comune ErrorAction con un valore .SilentlyContinue

L'output di esempio mostra i risultati dell'esecuzione di entrambi gli script quando le impostazioni cultura dell'interfaccia utente sono impostate su fr-BE e non sono presenti file o directory corrispondenti per le impostazioni cultura dell'interfaccia utente. Day1.ps1 visualizza un messaggio di errore e un output in inglese. Day2.ps1 visualizza solo l'output in inglese.

Parametri

-BaseDirectory

Specifica la directory di base in cui si trovano i .psd1 file. L'impostazione predefinita è la directory in cui si trova lo script. Import-LocalizedData cerca il file per lo .psd1 script in una sottodirectory specifica del linguaggio della directory di base.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-BindingVariable

Specifica la variabile in cui vengono importate le stringhe di testo. Immettere un nome di variabile senza segno di dollaro ($).

In Windows PowerShell 2.0 questo parametro è obbligatorio. In Windows PowerShell 3.0 questo parametro è facoltativo. Se si omette questo parametro, Import-LocalizedData restituisce una tabella hash delle stringhe di testo. La tabella hash viene passata alla pipeline o visualizzata nella riga di comando.

Quando si usa Import-LocalizedData per sostituire le stringhe di testo predefinite specificate nella sezione DATA di uno script, assegnare la sezione DATA a una variabile e immettere il nome della variabile di sezione DATA nel valore del parametro BindingVariable . Quindi, quando Import-LocalizedData si salva il contenuto importato in BindingVariable, i dati importati sostituiranno le stringhe di testo predefinite. Se non si specificano stringhe di testo predefinite, è possibile selezionare qualsiasi nome di variabile.

Tipo:String
Alias:Variable
Posizione:0
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-FileName

Specifica il nome del file di dati (.psd1) da importare. Immettere un nome file. È possibile specificare un nome file che non include l'estensione .psd1 del nome file oppure specificare il nome file incluso l'estensione del .psd1 nome file. I file di dati devono essere salvati come Unicode o UTF-8.

Il parametro FileName è obbligatorio quando Import-LocalizedData non viene usato in uno script. In caso contrario, il parametro è facoltativo e il valore predefinito è il nome di base dello script. È possibile usare questo parametro per indirizzare Import-LocalizedData la ricerca di un file diverso .psd1 .

Ad esempio, se FileName viene omesso e il nome dello script è FindFiles.ps1, Import-LocalizedData cerca il FindFiles.psd1 file di dati.

Tipo:String
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-SupportedCommand

Specifica i cmdlet e le funzioni che generano solo dati.

Usare questo parametro per includere i cmdlet e le funzioni già scritti o testati. Per altre informazioni, vedere about_Script_Internationalization.

Tipo:String[]
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-UICulture

Specifica impostazioni cultura dell'interfaccia utente alternative. Il valore predefinito è il valore della $PsUICulture variabile automatica. Immettere le impostazioni cultura dell'interfaccia utente in <language>-<region> formato, ad esempio en-US, de-DEo ar-SA.

Il valore del parametro UICulture determina la sottodirectory specifica della lingua (all'interno della directory di base) da cui Import-LocalizedData ottiene il .psd1 file per lo script.

Il cmdlet cerca una sottodirectory con lo stesso nome del valore del parametro UICulture o della $PsUICulture variabile automatica, ad esempio de-DE o ar-SA. Se non riesce a trovare la directory o la directory non contiene un .psd1 file per lo script, cerca una sottodirectory con il nome del codice linguistico, ad esempio de o ar. Se non riesce a trovare la sottodirectory o .psd1 il file, il comando ha esito negativo e i dati vengono visualizzati nella lingua predefinita specificata nello script.

Tipo:String
Posizione:1
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

Hashtable

Questo cmdlet salva la tabella hash nella variabile specificata dal valore del parametro BindingVariable .

Note

  • Prima di usare Import-LocalizedData, localizzare i messaggi utente. Formattare i messaggi per ogni impostazione locale (impostazioni cultura dell'interfaccia utente) in una tabella hash di coppie chiave-valore e salvare la tabella hash in un file con lo stesso nome dello script e un'estensione .psd1 del nome file. Creare una directory nella directory script per ogni cultura dell'interfaccia utente supportata e quindi salvare il .psd1 file per ogni cultura dell'interfaccia utente nella directory con il nome delle impostazioni cultura dell'interfaccia utente.

    Ad esempio, localizzare i messaggi utente per le impostazioni locali de-DE e formattarli in una tabella hash. Salvare la tabella hash in un <ScriptName>.psd1 file. Creare quindi una de-DE sottodirectory nella directory script e salvare il file tedesco <ScriptName>.psd1 nella de-DE sottodirectory. Ripetere l'operazione per ognuna delle impostazioni locali supportate.

  • Import-LocalizedData esegue una ricerca strutturata per i messaggi utente localizzati per uno script.

    Import-LocalizedData inizia la ricerca nella directory in cui si trova il file di script (o il valore del parametro BaseDirectory ). Cerca quindi all'interno della directory di base una sottodirectory con lo stesso nome del valore della $PsUICulture variabile (o il valore del parametro UICulture ), ad esempio de-DE o ar-SA. Quindi cerca in tale sottodirectory un .psd1 file con lo stesso nome dello script (o il valore del parametro FileName ).

    Se Import-LocalizedData non è possibile trovare una sottodirectory con il nome delle impostazioni cultura dell'interfaccia utente o la sottodirectory non contiene un file per lo script, cerca un .psd1 .psd1 file per lo script in una sottodirectory con il nome del codice linguistico, ad esempio de o ar. Se non riesce a trovare la sottodirectory o .psd1 il file, il comando non riesce, i dati vengono visualizzati nella lingua predefinita nello script e viene visualizzato un messaggio di errore che spiega che non è stato possibile importare i dati. Per eliminare il messaggio e non riuscire correttamente, usare il parametro comune ErrorAction con un valore SilentlyContinue.

    Se Import-LocalizedData trova la sottodirectory e il .psd1 file, importa la tabella hash dei messaggi utente nel valore del parametro BindingVariable nel comando. Quindi, quando si visualizza un messaggio dalla tabella hash nella variabile, viene visualizzato il messaggio localizzato.

    Per altre informazioni, vedere about_Script_Internationalization.