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
Default (impostazione predefinita).
Import-LocalizedData
[[-BindingVariable] <String>]
[[-UICulture] <String>]
[-BaseDirectory <String>]
[-FileName <String>]
[-SupportedCommand <String[]>]
[<CommonParameters>]
Descrizione
Il cmdlet Import-LocalizedData recupera dinamicamente 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 dati da file .psd1 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 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 dell'utente.
È possibile usare i parametri di Import-LocalizedData per specificare impostazioni cultura, percorso e nome file alternativi dell'interfaccia utente, per aggiungere comandi supportati e per eliminare il messaggio di errore visualizzato se i file di .psd1 non vengono trovati.
Il cmdlet Import-LocalizedData supporta l'iniziativa di internazionalizzazione dello script introdotta in Windows PowerShell 2.0. Questa iniziativa mira a servire meglio gli utenti in tutto il mondo semplificando la visualizzazione di messaggi utente nella lingua dell'interfaccia utente dell'utente corrente. Per altre informazioni su questo e sul formato dei file .psd1, vedere about_Script_Internationalization.
Esempio
Esempio 1: Importare stringhe di testo
In questo esempio vengono importate stringhe di testo nella variabile $Messages. Usa i valori predefiniti di tutti gli altri parametri del cmdlet.
Import-LocalizedData -BindingVariable "Messages"
Se il comando viene incluso nello script di 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
Questo esempio viene eseguito nella riga di comando non in uno script. Ottiene stringhe di dati localizzate dal file Test.psd1 e le visualizza nella riga di comando. Poiché il comando non viene usato in uno script, è necessario il parametro NomeFile. Il comando usa il parametro UICulture per specificare le impostazioni cultura di 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 variabile $MsgTbl di uno script.
Usa il parametro UICulture per indirizzare il cmdlet a importare dati dal file Simple.psd1 nella sottodirectory ar-SA di C:\Data\Localized.
Esempio 4: Importare dati localizzati in uno script
Questo esempio illustra come usare 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 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 mostra il contenuto dello script Test.ps1. Contiene un comando Import-LocalizedData che importa i dati dal file di .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 esegue lo script. L'output mostra che visualizza il messaggio utente corretto nel set di lingue dell'interfaccia utente 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 comando ConvertFrom-StringData che converte il contenuto della sezione DATA in una tabella hash e archivia nel valore della variabile $UserMessages.
Lo script include anche un comando Import-LocalizedData, che importa una tabella hash delle stringhe di testo tradotte dal file TestScript.psd1 nella sottodirectory specificata dal valore della variabile $PSUICulture. Se il comando trova il file .psd1, salva le stringhe tradotte dal file nel valore della stessa variabile $UserMessages, sovrascrivendo la tabella hash salvata dalla logica della sezione DATA.
Il terzo comando visualizza il primo messaggio nella variabile $UserMessages.
Se il comando Import-LocalizedData trova un file di .psd1 per la lingua $PSUICulture, il valore della variabile $UserMessages contiene le stringhe di testo tradotte. Se il comando non riesce per qualsiasi motivo, il comando visualizza le stringhe di testo predefinite definite nella sezione DATA dello script.
Esempio 6: Eliminare i messaggi di errore se le impostazioni cultura dell'interfaccia utente non vengono trovate
Questo esempio mostra come eliminare i messaggi di errore visualizzati quando Import-LocalizedData non riesce a trovare le directory che corrispondono alle impostazioni cultura dell'interfaccia utente dell'utente o non riesce a trovare un file .psd1 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 ErrorAction parametro comune 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 comando Import-LocalizedData. Gli script sono identici, ad eccezione del fatto che Day2 usa il parametro ErrorAction comune 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 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 file .psd1. Il valore predefinito è la directory in cui si trova lo script.
Import-LocalizedData cerca il file di .psd1 per lo script in una sottodirectory specifica del linguaggio della directory di base.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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 salva il contenuto importato nel BindingVariable, i dati importati sostituiranno le stringhe di testo predefinite. Se non si specificano stringhe di testo predefinite, è possibile selezionare qualsiasi nome di variabile.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | Variabile |
Set di parametri
(All)
| Posizione: | 0 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | 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 del nome file .psd1 oppure specificare il nome file, inclusa l'estensione del nome file .psd1. I file di dati devono essere salvati come Unicode o UTF-8.
Il parametro FileName è necessario 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 alla ricerca di un file di .psd1 diverso.
Ad esempio, se il filename viene omesso e il nome dello script è FindFiles.ps1, Import-LocalizedData cerca il file di dati FindFiles.psd1.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-SupportedCommand
Specifica cmdlet e funzioni che generano solo dati.
Usare questo parametro per includere cmdlet e funzioni scritte o testate. Per altre informazioni, vedere about_Script_Internationalization.
Proprietà dei parametri
| Tipo: | String[] |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-UICulture
Specifica impostazioni cultura dell'interfaccia utente alternative. Il valore predefinito è il valore della variabile automatica $PSUICulture. Immettere impostazioni cultura dell'interfaccia utente in formato <language>-<region>, 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 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 .psd1 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 file, il comando ha esito negativo e i dati vengono visualizzati nella lingua predefinita specificata nello script.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | 1 |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
None
Gli oggetti non possono essere inviati tramite pipe 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 del nome file.psd1. Creare una directory nella directory script per ogni lingua dell'interfaccia utente supportata e quindi salvare il file.psd1per 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 file
<ScriptName>.psd1. Creare quindi una sottodirectoryde-DEnella directory script e salvare il file<ScriptName>.psd1tedesco nella sottodirectoryde-DE. Ripetere questo metodo per ogni impostazione locale supportata.Import-LocalizedDataesegue una ricerca strutturata per i messaggi utente localizzati per uno script.Import-LocalizedDatainizia 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 esempiode-DEoar-SA. Cerca quindi in tale sottodirectory un file di.psd1con lo stesso nome dello script (o il valore del parametro FileName).Se
Import-LocalizedDatanon riesce a trovare una sottodirectory con il nome delle impostazioni cultura dell'interfaccia utente o la sottodirectory non contiene un file.psd1per lo script, cerca un file.psd1per lo script in una sottodirectory con il nome del codice linguistico, ad esempio de o ar. Se non riesce a trovare la sottodirectory o.psd1file, 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 l'ErrorAction parametro comune con un valore SilentlyContinue.Se
Import-LocalizedDatatrova la sottodirectory e il file.psd1, 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.