Importa dati specifici della lingua 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 cmdlet Import-LocalizedData recupera dinamicamente 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 messaggi utente nella lingua dell'interfaccia utente selezionata dall'utente corrente.

Import-LocalizedData consente di importare dati dai file con estensione psd1 in sottodirectory specifiche della lingua della directory di script e salvarli 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 utilizza la variabile locale nello script per visualizzare un messaggio utente, il messaggio viene visualizzato nella lingua dell'interfaccia utente.

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

Il cmdlet Import-LocalizedData supporta l'internazionalizzazione degli script in Windows PowerShell 2.0. Questa iniziativa mira a soddisfare le esigenze degli utenti di tutto il mondo semplificando la visualizzazione di messaggi utente da parte degli script nella lingua dell'interfaccia dell'utente corrente. Per ulteriori informazioni su questa funzionalità e sul formato dei file con estensione psd1, vedere about_Script_Internationalization.

Parametri

-BaseDirectory <string>

Specifica la directory di 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 con estensione psd1 per lo script in una sottodirectory specifica della lingua della directory di base.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-BindingVariable <string>

Specifica una variabile in cui vengono importate le stringhe di testo. Immettere un nome di variabile senza simbolo del dollaro ($).

Quando viene utilizzato 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 nel valore del parametro BindingVariable. Quindi, quando Import-LocalizedData 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.

Obbligatorio?

true

Posizione?

1

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-FileName <string>

Specifica il nome del file con estensione psd1 da importare. Immettere un nome file senza estensione psd1.

L'impostazione predefinita è il nome dello script. Ad esempio, se lo script è FindFiles.ps1, Import-LocalizedData cerca FindFiles.psd1. È possibile utilizzare questo parametro per indicare a Import-LocalizedData di cercare un altro file con estensione psd1.

Obbligatorio?

false

Posizione?

named

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-SupportedCommand <string[]>

Specifica cmdlet e funzioni che generano solo dati.

Utilizzare questo parametro per includere cmdlet e funzioni scritti o verificati. Per ulteriori informazioni, vedere about_Script_Internationalization.

Obbligatorio?

false

Posizione?

named

Valore predefinito

nessuno

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

-UICulture <string>

Specifica impostazioni cultura dell'interfaccia utente alternative. L'impostazione predefinita è il valore della variabile automatica $PsUICulture. Immettere le impostazioni cultura dell'interfaccia utente nel formato "<lingua>-<paese>", ad esempio en-US, it-IT o ar-SA.

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

Il cmdlet cerca una sottodirectory con lo stesso nome del valore del parametro UICulture o della variabile automatica $PsUICulture, ad esempio "it-IT" o "ar-SA". Se non è possibile trovare la directory o la directory non contiene un file con estensione psd1 per lo script, verrà cercata una sottodirectory con il nome del codice della lingua, ad esempio "it" o "ar". Se non è possibile trovare la sottodirectory o il file con estensione psd1, il comando ha esito negativo e i dati vengono visualizzati nella lingua predefinita specificata nello script.

Obbligatorio?

false

Posizione?

2

Valore predefinito

Accettare input da pipeline?

false

Accettare caratteri jolly?

false

<CommonParameters>

Questo cmdlet supporta i parametri comuni -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer e -OutVariable. Per ulteriori informazioni, vedere about_Commonparameters.

Input e output

Il tipo di input è il tipo degli oggetti che è possibile reindirizzare al cmdlet. Il tipo restituito è il tipo degli oggetti restituiti dal cmdlet.

Input

Nessuno

Non è possibile reindirizzare l'input a questo cmdlet.

Output

System.Collections.Hashtable

Import-LocalizedData salva la tabella hash nella variabile specificata dal valore del parametro BindingVariable.

Note

Prima di utilizzare Import-LocalizedData, localizzare i messaggi utente. Formattare i messaggi per tutte le 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 con estensione psd1. Creare una directory nella directory di script per tutte le impostazioni cultura dell'interfaccia utente supportate, quindi salvare il file con estensione psd1 per tutte le impostazioni cultura dell'interfaccia utente nella directory con il nome delle impostazioni cultura dell'interfaccia utente.

Localizzare, ad esempio, i messaggi utente per le impostazioni locali it-IT e formattarli in una tabella hash. Salvare la tabella hash in un file <NomeScript>.psd1. Creare quindi una sottodirectory it-IT nella directory di script e salvare il file it-IT <NomeScript>.psd1 nella sottodirectory it-IT. Ripetere questo metodo per tutte le impostazioni locali supportate.

Tramite Import-LocalizedData viene eseguita una ricerca strutturata dei messaggi utente localizzati per uno script.

Import-LocalizedData inizia la ricerca nella directory in cui è disponibile il file 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 "it-IT" o "ar-SA". In tale sottodirectory cerca quindi un file con estensione psd1 con lo stesso nome dello script (o il valore del parametro FileName).

Se Import-LocalizedData non è in grado di trovare una sottodirectory con il nome delle impostazioni cultura dell'interfaccia utente oppure la sottodirectory non contiene un file con estensione psd1 per lo script, viene cercato un file con estensione psd1 per lo script in una sottodirectory con il nome del codice della lingua, ad esempio "it" o "ar". Se non la sottodirectory o il file con estensione psd1 non viene trovata, il comando ha esito negativo, 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 ignorare l'errore, utilizzare il parametro comune ErrorAction con il valore SilentlyContinue.

Se Import-LocalizedData trova la sottodirectory e il file con estensione psd1, la tabella hash dei messaggi utente viene importata nel valore del parametro BindingVariable nel comando. Quindi, per qualsiasi messaggio visualizzato dalla tabella hash nella variabile sarà visualizzata la versione localizzata.

Per ulteriori informazioni, vedere about_Script_Internationalization.

Esempio 1

C:\PS>import-localizeddata -bindingVariable messages

Descrizione
-----------
Con questo comando vengono importate stringhe di testo nella variabile $messages. Vengono utilizzati tutti i valori predefiniti per i 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.






Esempio 2

C:\PS>import-localizeddata -bindingVariable msgTbl -uiculture ar-SA -filename Simple -baseDirectory C:\Data\Localized

Descrizione
-----------
Con questo comando vengono importate stringhe di testo nella variabile $msgTb1 di uno script. 

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






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

Descrizione
-----------
In questo esempio viene illustrato come utilizzare dati localizzati in uno script semplice.

Nella prima parte dell'esempio viene illustrato il contenuto del file Test.psd1. Contiene un comando ConvertFrom-StringData tramite cui viene convertita 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.

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

Nell'ultima parte dell'esempio viene eseguito lo 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 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
...

Descrizione
-----------
In questo esempio viene illustrato come utilizzare Import-LocalizedData per sostituire stringhe di testo predefinite 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 anche un comando Import-LocalizedData che importa una tabella hash di stringhe di testo tradotte dal file con TestScript.psd1 nella sottodirectory specificata dal valore della variabile $PsUICulture. Se il comando trova il file con estensione psd1, salva le stringhe tradotte nel valore della stessa variabile $UserMessages, sovrascrivendo la tabella hash salvata dalla logica della sezione DATA.

Con il terzo comando viene visualizzato il primo messaggio nella variabile $UserMessages.

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






Esempio 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

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

Per eliminare il messaggio di errore, è possibile utilizzare il parametro comune ErrorAction con il valore "SilentlyContinue". Ciò è utile in particolar modo quando sono stati forniti messaggi utente in un'impostazione predefinita o una lingua di fallback e non è necessario alcun messaggio di errore.

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

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






Vedere anche




Argomenti della Guida