Condividi tramite


Import-LocalizedData

Importa i dati specifici della lingua in script e funzioni in base alle impostazioni cultura dell'interfaccia utente selezionata per il sistema operativo.

Sintassi

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

Descrizione

Il cmdlet Import-LocalizedData recupera in modo dinamico le stringhe da una sottodirectory il cui nome corrisponde alla lingua dell'interfaccia utente impostata 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 file con estensione psd1 nelle sottodirectory specifiche del linguaggio della directory script e li salva in una variabile locale specificata nel comando. Il cmdlet seleziona la sottodirectory e il file in base al valore della variabile automatica $PSUICulture. 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 Import-LocalizedData per specificare impostazioni cultura dell'interfaccia utente, un percorso e un nome file alternativi, per aggiungere comandi supportati e per eliminare il messaggio di errore che viene visualizzato se non vengono trovati file con estensione psd1.

Il cmdlet Import-LocalizedData supporta l'iniziativa di internazionalizzazione degli 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 file con estensione psd1, vedere about_Script_Internationalization.

Esempio

Esempio 1: Importare stringhe di testo

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

Questo comando Importa le stringhe di testo nella variabile $Messages. Usa i valori predefiniti di tutti gli altri parametri del cmdlet.

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

Esempio 2: Importare stringhe di dati localizzate

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."

Questo comando viene eseguito dalla riga di comando e 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, il parametro FileName è obbligatorio. Il comando usa il parametro UICulture per specificare le impostazioni cultura en-US.

Import-LocalizedData restituisce una tabella hash contenente le stringhe di dati localizzate.

Esempio 3: Importare le stringhe cultura dell'interfaccia utente

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

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

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

Esempio 4: Importare dati localizzati in uno script

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.

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

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

La seconda parte dell'esempio illustra il contenuto dello script Test.psd1. Contiene un comando Import-LocalizedData che importa i dati dal file con estensione psd1 corrispondente nella variabile $Messages e un comando Write-Host che scrive uno dei messaggi nella variabile $Messages 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

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

Questo esempio mostra come usare Import-LocalizedData per sostituire le stringhe di testo predefinite specificate nella sezione DATA di uno script.

In questo esempio, la sezione DATA dello script TestScript.ps1 contiene un comando ConvertFrom-StringData che converte il contenuto della sezione DATA in una tabella hash e archivia il valore della variabile $UserMessages.

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

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

Se il comando Import-LocalizedData trova un file PSD1 per la lingua $PsUICulture, il valore della variabile $UserMessages 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

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

Questo esempio mostra come eliminare i messaggi di errore visualizzati quando Import-LocalizedData non trova le directory corrispondenti alle impostazioni cultura dell'interfaccia utente dell'utente o non trova un file PSD1 per lo script in tali directory.

È possibile usare il parametro comune ErrorAction con il 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.

Questo esempio confronta due script, Day1.ps1 e Day2.ps1, che includono un comando Import-LocalizedData. Gli script sono identici, ad eccezione del fatto che Day2 usa il parametro comune ErrorAction con un valore di 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 i file o directory corrispondenti per tali impostazioni cultura dell'interfaccia utente. Day1.ps1 visualizza un messaggio di errore e l'output in lingua inglese. Day2.ps1 visualizza solo l'output in lingua inglese.

Parametri

-BaseDirectory

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BindingVariable

Specifica la variabile in cui vengono importate le stringhe di testo. Immettere un nome di variabile senza il simbolo del 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 inviata tramite 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 della sezione DATA del valore del parametro BindingVariable. Quindi, quando Import-LocalizedData salva il contenuto importato nel parametro BindingVariable, i dati importati sostituiranno le stringhe di testo predefinite. Se non vengono specificate stringhe di testo predefinite, è possibile selezionare qualsiasi nome di variabile.

Type:String
Aliases:Variable
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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 o specificare il nome file includendo l'estensione psd1. 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 indicare a Import-LocalizedData di cercare un file con estensione psd1 diverso.

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

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters: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.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UICulture

Specifica impostazioni cultura dell'interfaccia utente alternative. L'impostazione predefinita è il valore della variabile automatica $PsUICulture. Immettere le impostazioni cultura dell'interfaccia utente in <formato lingua-area><>, ad esempio en-US, de-DE o ar-SA.

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

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

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Non è possibile inviare input tramite pipe a questo cmdlet.

Output

Hashtable

Import-LocalizedData 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 le singole impostazioni locali (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 di file psd1. All'interno della directory dello script, creare una directory per le varie impostazioni cultura dell'interfaccia utente supportate e quindi salvare il file psd1 per ognuna delle impostazioni cultura dell'interfaccia utente nella directory con il nome corrispondente.

    Ad esempio, localizzare i messaggi utente per le impostazioni locali de-DE e formattarli in una tabella hash. Salvare la tabella hash in un <file ScriptName.psd1>. Creare quindi una sottodirectory de-DE nella directory script e salvare il file de-DE ScriptName.psd1> nella sottodirectory de-DE<. 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 variabile $PsUICulture (o il valore del parametro UICulture ), ad esempio de-DE o ar-SA. Infine, in quella sottodirectory cerca un file con estensione psd1 con lo stesso nome dello script (o il valore del parametro FileName).

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

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

    Per altre informazioni, vedere about_Script_Internationalization (https://go.microsoft.com/fwlink/?LinkID=113262).