Import-LocalizedData
Importa dados específicos do idioma para scripts e funções com base na cultura da interface do usuário selecionada para o sistema operacional.
Sintaxe
Import-LocalizedData
[[-BindingVariable] <String>]
[[-UICulture] <String>]
[-BaseDirectory <String>]
[-FileName <String>]
[-SupportedCommand <String[]>]
[<CommonParameters>]
Description
O cmdlet Import-LocalizedData
Import-LocalizedData importa dados de arquivos .psd1 em subdiretórios específicos do idioma do diretório de script e os salva em uma variável local especificada no comando. O cmdlet seleciona o subdiretório e o arquivo com base no valor da variável automática $PSUICulture. Quando você usa a variável local no script para exibir uma mensagem de usuário, a mensagem aparece no idioma da interface do usuário do usuário.
Você pode usar os parâmetros de Import-LocalizedData para especificar uma cultura de interface do usuário alternativa, um caminho e um nome de arquivo, para adicionar comandos com suporte e suprimir a mensagem de erro exibida se os arquivos .psd1 não forem encontrados.
O cmdlet Import-LocalizedData dá suporte à iniciativa de internacionalização de script que foi introduzida no Windows PowerShell 2.0. Essa iniciativa tem como objetivo atender melhor os usuários em todo o mundo, facilitando a exibição de mensagens do usuário no idioma da interface do usuário atual. Para obter mais informações sobre isso e sobre o formato dos arquivos .psd1, consulte about_Script_Internationalization.
Exemplos
Exemplo 1: Importar cadeias de caracteres de texto
PS C:\> Import-LocalizedData -BindingVariable "Messages"
Esse comando importa cadeias de caracteres de texto para a variável $Messages. Ele usa os valores padrão de todos os outros parâmetros de cmdlet.
Se o comando estiver incluído no script Archives.ps1 no diretório C:\Test e o valor da variável automática $PsUICulture for zh-CN, Import-LocalizedData importará o arquivo Archives.psd1 no diretório C:\test\zh-CN para a variável $Messages.
Exemplo 2: importar cadeias de caracteres de dados localizadas
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."
Esse comando é executado na linha de comando; não em um script. Ele obtém cadeias de caracteres de dados localizadas do arquivo Test.psd1 e as exibe na linha de comando. Como o comando não é usado em um script, o parâmetro FileName é necessário. O comando usa o parâmetro UICulture para especificar a cultura en-US.
Import-LocalizedData retorna uma tabela de hash que contém as cadeias de caracteres de dados localizadas.
Exemplo 3: Importar cadeias de caracteres de cultura da interface do usuário
PS C:\> Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"
Esse comando importa cadeias de caracteres de texto para a variável $MsgTbl de um script.
Ele usa o parâmetro UICulture para direcionar o cmdlet para importar dados do arquivo Simple.psd1 no subdiretório ar-SA de C:\Data\Localized.
Exemplo 4: importar dados localizados para um 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.
Este exemplo mostra como usar dados localizados em um script simples.
A primeira parte do exemplo mostra o conteúdo do arquivo Test.psd1. Ele contém um comando ConvertFrom-StringData que converte uma série de cadeias de caracteres de texto nomeadas em uma tabela de hash. O arquivo Test.psd1 está localizado no subdiretório en-US do diretório C:\Test que contém o script.
A segunda parte do exemplo mostra o conteúdo do script Test.ps1. Ele contém um comando Import-LocalizedData que importa os dados do arquivo .psd1 correspondente para a variável $Messages e um comando Write-Host que grava uma das mensagens na variável $Messages para o programa host.
A última parte do exemplo executa o script. A saída mostra que ela exibe a mensagem de usuário correta no conjunto de idiomas da interface do usuário para o usuário atual do sistema operacional.
Exemplo 5: substituir cadeias de caracteres de texto padrão em um 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...
Este exemplo mostra como usar Import-LocalizedData para substituir cadeias de caracteres de texto padrão definidas na seção DATA de um script.
Neste exemplo, a seção DATA do script TestScript.ps1 contém um comando ConvertFrom-StringData que converte o conteúdo da seção DATA em uma tabela de hash e armazena no valor da variável $UserMessages.
O script também inclui um comando Import-LocalizedData, que importa uma tabela de hash de cadeias de caracteres de texto traduzidas do arquivo TestScript.psd1 no subdiretório especificado pelo valor da variável $PsUICulture. Se o comando encontrar o arquivo .psd1, ele salvará as cadeias de caracteres traduzidas do arquivo no valor da mesma variável $UserMessages, substituindo a tabela de hash salva pela lógica da seção DATA.
O terceiro comando exibe a primeira mensagem na variável $UserMessages.
Se o comando Import-LocalizedData encontrar um arquivo .psd1 para o idioma $PsUICulture, o valor da variável $UserMessages conterá as cadeias de caracteres de texto traduzidas. Se o comando falhar por algum motivo, o comando exibirá as cadeias de caracteres de texto padrão definidas na seção DATA do script.
Exemplo 6: suprimir mensagens de erro se a cultura da interface do usuário não for encontrada
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
Este exemplo mostra como suprimir as mensagens de erro que aparecem quando Import-LocalizedData não consegue localizar os diretórios que correspondem à cultura da interface do usuário do usuário ou não conseguem encontrar um arquivo .psd1 para o script nesses diretórios.
Você pode usar o parâmetro ErrorAction comum com um valor de SilentlyContinue para suprimir a mensagem de erro. Isso é especialmente útil quando você fornece mensagens de usuário em um idioma padrão ou de fallback e nenhuma mensagem de erro é necessária.
Este exemplo compara dois scripts, Day1.ps1 e Day2.ps1, que incluem um comando Import-LocalizedData. Os scripts são idênticos, exceto que Day2 usa o parâmetro ErrorAction comum com um valor de SilentlyContinue.
A saída de exemplo mostra os resultados da execução de ambos os scripts quando a cultura da interface do usuário está definida como fr-BE e não há arquivos ou diretórios correspondentes para essa cultura de interface do usuário. Day1.ps1 exibe uma mensagem de erro e uma saída em inglês. Day2.ps1 exibe apenas a saída em inglês.
Parâmetros
-BaseDirectory
Especifica o diretório base em que os arquivos .psd1 estão localizados. O padrão é o diretório em que o script está localizado. Import-LocalizedData pesquisa o arquivo .psd1 para o script em um subdiretório específico do idioma do diretório base.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-BindingVariable
Especifica a variável na qual as cadeias de caracteres de texto são importadas. Insira um nome de variável sem um sinal de dólar ($).
No Windows PowerShell 2.0, esse parâmetro é necessário. No Windows PowerShell 3.0, esse parâmetro é opcional. Se você omitir esse parâmetro, Import-LocalizedData retornará uma tabela de hash das cadeias de caracteres de texto. A tabela de hash é passada pelo pipeline ou exibida na linha de comando.
Ao usar
Tipo: | String |
Aliases: | Variable |
Cargo: | 0 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-FileName
Especifica o nome do arquivo de dados (.psd1) a ser importado. Insira um nome de arquivo. Você pode especificar um nome de arquivo que não inclua sua extensão de nome de arquivo .psd1 ou especificar o nome do arquivo, incluindo a extensão de nome de arquivo .psd1. Os arquivos de dados devem ser salvos como Unicode ou UTF-8.
O parâmetro FileName é necessário quando Import-LocalizedData não é usado em um script. Caso contrário, o parâmetro é opcional e o valor padrão é o nome base do script. Você pode usar esse parâmetro para direcionar Import-LocalizedData para pesquisar um arquivo .psd1 diferente.
Por exemplo, se o FileName for omitido e o nome do script for FindFiles.ps1, Import-LocalizedData procurará o arquivo de dados FindFiles.psd1.
Tipo: | String |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-SupportedCommand
Especifica cmdlets e funções que geram apenas dados.
Use esse parâmetro para incluir cmdlets e funções que você escreveu ou testou. Para obter mais informações, consulte about_Script_Internationalization.
Tipo: | String[] |
Cargo: | Named |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
-UICulture
Especifica uma cultura de interface do usuário alternativa. O padrão é o valor da variável automática $PsUICulture. Insira uma cultura de interface do usuário em <>de idioma –<formato de> de região, como en-US, de-DEou ar-SA.
O valor do parâmetro UICulture determina o subdiretório específico do idioma (dentro do diretório base) do qual Import-LocalizedData obtém o arquivo .psd1 para o script.
O cmdlet procura um subdiretório com o mesmo nome que o valor do parâmetro UICulture ou a variável automática $PsUICulture, como de-DE ou ar-SA. Se ele não conseguir localizar o diretório ou o diretório não contiver um arquivo .psd1 para o script, ele procurará um subdiretório com o nome do código de idioma, como de ou ar. Se não conseguir localizar o subdiretório ou o arquivo .psd1, o comando falhará e os dados serão exibidos no idioma padrão especificado no script.
Tipo: | String |
Cargo: | 1 |
Valor padrão: | None |
Obrigatório: | False |
Aceitar a entrada de pipeline: | False |
Aceitar caracteres curinga: | False |
Entradas
None
Não é possível redirecionar a entrada para este cmdlet.
Saídas
Import-LocalizedData salva a tabela de hash na variável especificada pelo valor do parâmetro BindingVariable.
Observações
Antes de usar Import-LocalizedData, localize suas mensagens de usuário. Formate as mensagens para cada localidade (cultura da interface do usuário) em uma tabela hash de pares chave/valor e salve a tabela de hash em um arquivo com o mesmo nome do script e uma extensão de nome de arquivo .psd1. Crie um diretório no diretório de script para cada cultura de interface do usuário com suporte e salve o arquivo .psd1 para cada cultura de interface do usuário no diretório com o nome da cultura da interface do usuário.
Por exemplo, localize suas mensagens de usuário para a localidade do de-DE e formate-as em uma tabela de hash. Salve a tabela de hash em um arquivo <ScriptName>.psd1. Em seguida, crie um subdiretório de-DE no diretório de script e salve o de-DE <scriptName>arquivo .psd1 no subdiretório de-DE. Repita esse método para cada localidade compatível.
Import-LocalizedData executa uma pesquisa estruturada para as mensagens de usuário localizadas para um script.
Import-LocalizedData inicia a pesquisa no diretório em que o arquivo de script está localizado (ou o valor do parâmetro BaseDirectory). Em seguida, ele pesquisa no diretório base um subdiretório com o mesmo nome que o valor da variável $PsUICulture (ou o valor do parâmetro UICulture), como de-DE ou ar-SA. Em seguida, ele pesquisa nesse subdiretório um arquivo .psd1 com o mesmo nome do script (ou o valor do parâmetro FileName).
Se Import-LocalizedData não puder encontrar um subdiretório com o nome da cultura da interface do usuário ou o subdiretório não contiver um arquivo .psd1 para o script, ele procurará um arquivo .psd1 para o script em um subdiretório com o nome do código de linguagem, como de ou ar. Se não encontrar o subdiretório ou o arquivo .psd1, o comando falhará, os dados serão exibidos no idioma padrão no script e uma mensagem de erro será exibida explicando que os dados não puderam ser importados. Para suprimir a mensagem e falhar normalmente, use o parâmetro ErrorAction comum com um valor de SilentlyContinue.
Se Import-LocalizedData encontrar o subdiretório e o arquivo .psd1, ele importará a tabela de hash de mensagens de usuário para o valor do parâmetro BindingVariable no comando. Em seguida, quando você exibe uma mensagem da tabela de hash na variável, a mensagem localizada é exibida.
Para obter mais informações, consulte about_Script_Internationalization (https://go.microsoft.com/fwlink/?LinkID=113262).