Import-LocalizedData
Importa datos específicos del lenguaje en scripts y funciones en función de la referencia cultural de la interfaz de usuario seleccionada para el sistema operativo.
Syntax
Import-LocalizedData
[[-BindingVariable] <String>]
[[-UICulture] <String>]
[-BaseDirectory <String>]
[-FileName <String>]
[-SupportedCommand <String[]>]
[<CommonParameters>]
Description
El Import-LocalizedData
cmdlet recupera dinámicamente las cadenas de un subdirectorio cuyo nombre coincide con el idioma de la interfaz de usuario establecido para el usuario actual del sistema operativo. Está diseñado para permitir que los scripts muestren mensajes de usuario en el idioma de la interfaz de usuario seleccionado por el usuario actual.
Import-LocalizedData
importa datos de .psd1
archivos en subdirectorios específicos del lenguaje del directorio de script y los guarda en una variable local especificada en el comando . El cmdlet selecciona el subdirectorio y el archivo en función del valor de la $PSUICulture
variable automática. Cuando use la variable local en el script para mostrar un mensaje de usuario, el mensaje aparece en el idioma de la interfaz de usuario del usuario.
Puede usar los parámetros de Import-LocalizedData
para especificar una referencia cultural, una ruta de acceso y un nombre de archivo alternativos de la interfaz de usuario, para agregar comandos admitidos y suprimir el mensaje de error que aparece si no se encuentran los .psd1
archivos.
El Import-LocalizedData
cmdlet admite la iniciativa de internacionalización de scripts que se introdujo en Windows PowerShell 2.0. Esta iniciativa tiene como objetivo ofrecer un mejor servicio a los usuarios de todo el mundo, al permitir que los scripts muestren mensajes de usuario en el idioma de la interfaz de usuario del usuario actual. Para obtener más información sobre esto y sobre el formato de los .psd1
archivos, vea about_Script_Internationalization.
Ejemplos
Ejemplo 1: Importación de cadenas de texto
En este ejemplo se importan cadenas de texto en la $Messages
variable . Usa los valores predeterminados de los demás parámetros de cmdlet.
Import-LocalizedData -BindingVariable "Messages"
Si el comando se incluye en el script de Archives.ps1 en el C:\Test
directorio y el valor de la $PsUICulture
variable automática es zh-CN, Import-LocalizedData
importa el Archives.psd1
archivo en el C:\test\zh-CN
directorio en la $Messages
variable.
Ejemplo 2: Importación de cadenas de datos localizadas
Este ejemplo se ejecuta en la línea de comandos no en un script. Obtiene las cadenas de datos localizadas del archivo Test.psd1 y las muestra en la línea de comandos. Dado que el comando no se usa en un script, se requiere el parámetro FileName . El comando usa el parámetro UICulture para especificar la referencia cultural 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
devuelve una tabla hash que contiene las cadenas de datos localizadas.
Ejemplo 3: Importar cadenas de referencia cultural de la interfaz de usuario
Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"
Este comando importa cadenas de texto en la $MsgTbl
variable de un script.
Usa el parámetro UICulture para dirigir el cmdlet para importar datos del Simple.psd1
archivo en el ar-SA
subdirectorio de C:\Data\Localized
.
Ejemplo 4: Importación de datos localizados en un script
Este ejemplo muestra cómo usar datos localizados en un script sencillo.
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 primera parte del ejemplo muestra el contenido del Test.psd1
archivo. Contiene un ConvertFrom-StringData
comando que convierte una serie de cadenas de texto con nombre en una tabla hash. El Test.psd1
archivo se encuentra en el subdirectorio en-US del C:\Test
directorio que contiene el script.
La segunda parte del ejemplo muestra el contenido del Test.ps1
script. Contiene un Import-LocalizedData
comando que importa los datos del archivo coincidente .psd1
en la $Messages
variable y un Write-Host
comando que escribe uno de los mensajes de la $Messages
variable en el programa host.
La última parte del ejemplo ejecuta el script. Como se muestra en el resultado, aparece el mensaje de usuario correcto en el idioma de la interfaz de usuario para el usuario actual del sistema operativo.
Ejemplo 5: Reemplazar cadenas de texto predeterminadas en un script
En este ejemplo se muestra cómo usar Import-LocalizedData
para reemplazar las cadenas de texto predeterminadas definidas en la sección DATA de un 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...
En este ejemplo, la sección DATA del script de TestScript.ps1 contiene un ConvertFrom-StringData
comando que convierte el contenido de la sección DATA en una tabla hash y almacena en el valor de la $UserMessages
variable.
El script también incluye un Import-LocalizedData
comando , que importa una tabla hash de cadenas de texto traducidas del archivo TestScript.psd1 en el subdirectorio especificado por el valor de la $PsUICulture
variable. Si el comando encuentra el .psd1
archivo, guarda las cadenas traducidas del archivo en el valor de la misma $UserMessages
variable, sobrescribiendo la tabla hash guardada por la lógica de la sección DATA.
El tercer comando muestra el primer mensaje de la $UserMessages
variable .
Si el Import-LocalizedData
comando encuentra un .psd1
archivo para el $PsUICulture
idioma, el valor de la $UserMessages
variable contiene las cadenas de texto traducidas. Si el comando falla por alguna razón, el comando muestra las cadenas de texto predeterminadas definidas en la sección DATA del script.
Ejemplo 6: Suprimir mensajes de error si no se encuentra la referencia cultural de la interfaz de usuario
En este ejemplo se muestra cómo suprimir los mensajes de error que aparecen cuando Import-LocalizedData
no pueden encontrar los directorios que coinciden con la referencia cultural de la interfaz de usuario del usuario o no pueden encontrar un .psd1
archivo para el script en esos directorios.
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
Puede usar el parámetro común ErrorAction con un valor SilentlyContinue para suprimir el mensaje de error. Esto es especialmente útil cuando se han proporcionado mensajes de usuario en un idioma predeterminado o de reserva, y no se necesita ningún mensaje de error.
En este ejemplo se comparan dos scripts Day1.ps1
y Day2.ps1, que incluyen un Import-LocalizedData
comando. Los scripts son idénticos, salvo que Day2 usa el parámetro común ErrorAction con un valor de SilentlyContinue
.
La salida de ejemplo muestra los resultados de ejecutar ambos scripts cuando la referencia cultural de la interfaz de usuario está establecida fr-BE
en y no hay archivos o directorios coincidentes para esa referencia cultural de la interfaz de usuario. Day1.ps1
muestra un mensaje de error y una salida en inglés. Day2.ps1
solo muestra la salida en inglés.
Parámetros
-BaseDirectory
Especifica el directorio base donde se encuentran los .psd1
archivos. El valor predeterminado es el directorio donde se encuentra el script. Import-LocalizedData
busca el .psd1
archivo del script en un subdirectorio específico del lenguaje del directorio base.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-BindingVariable
Especifica la variable en la que se importan las cadenas de texto. Escriba un nombre de variable sin un signo de dólar ($
).
En Windows PowerShell 2.0, este parámetro es necesario. En Windows PowerShell 3.0, este parámetro es opcional. Si omite este parámetro, Import-LocalizedData
devuelve una tabla hash de las cadenas de texto. La tabla hash se pasa a la canalización o se muestra en la línea de comandos.
Cuando se usa Import-LocalizedData
para reemplazar las cadenas de texto predeterminadas especificadas en la sección DATA de un script, asigne la sección DATA a una variable y escriba el nombre de la variable de sección DATA en el valor del parámetro BindingVariable . A continuación, cuando Import-LocalizedData
guarda el contenido importado en BindingVariable, los datos importados reemplazarán las cadenas de texto predeterminadas. Si no especifica cadenas de texto predeterminadas, puede seleccionar cualquier nombre de variable.
Type: | String |
Aliases: | Variable |
Position: | 0 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-FileName
Especifica el nombre del archivo de datos (.psd1)
que se va a importar. Escriba un nombre de archivo. Puede especificar un nombre de archivo que no incluya su .psd1
extensión de nombre de archivo o puede especificar el nombre de archivo, incluida la extensión de nombre de .psd1
archivo. Los archivos de datos se deben guardar como Unicode o UTF-8.
El parámetro FileName es necesario cuando Import-LocalizedData
no se usa en un script.
De lo contrario, el parámetro es opcional y el valor predeterminado es el nombre base del script. Puede usar este parámetro para dirigir Import-LocalizedData
para buscar un archivo diferente .psd1
.
Por ejemplo, si se omite FileName y el nombre del script es FindFiles.ps1
, Import-LocalizedData
busca el FindFiles.psd1
archivo de datos.
Type: | String |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-SupportedCommand
Especifica los cmdlets y las funciones que generan únicamente datos.
Use este parámetro para incluir cmdlets y funciones que haya escrito o probado. Para obtener más información, consulte about_Script_Internationalization.
Type: | String[] |
Position: | Named |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
-UICulture
Especifica una referencia cultural de interfaz de usuario alternativa. El valor predeterminado es el valor de la $PsUICulture
variable automática. Escriba una referencia cultural de la interfaz de usuario en <language>-<region>
formato, como en-US
, de-DE
o ar-SA
.
El valor del parámetro UICulture determina el subdirectorio específico del lenguaje (dentro del directorio base) del que Import-LocalizedData
obtiene el .psd1
archivo del script.
El cmdlet busca un subdirectorio con el mismo nombre que el valor del parámetro UICulture o la $PsUICulture
variable automática, como de-DE
o ar-SA
. Si no encuentra el directorio o el directorio no contiene un .psd1
archivo para el script, busca un subdirectorio con el nombre del código de idioma, como de o ar. Si no encuentra el subdirectorio o .psd1
el archivo, se produce un error en el comando y los datos se muestran en el idioma predeterminado especificado en el script.
Type: | String |
Position: | 1 |
Default value: | None |
Required: | False |
Accept pipeline input: | False |
Accept wildcard characters: | False |
Entradas
None
No se pueden canalizar objetos a este cmdlet.
Salidas
Este cmdlet guarda la tabla hash en la variable especificada por el valor del parámetro BindingVariable .
Notas
Antes de usar
Import-LocalizedData
, localice los mensajes de usuario. Dé formato a los mensajes de cada configuración regional (referencia cultural de la interfaz de usuario) en una tabla hash de pares clave-valor y guarde la tabla hash en un archivo con el mismo nombre que el script y una.psd1
extensión de nombre de archivo. Create un directorio en el directorio de script para cada referencia cultural de interfaz de usuario compatible y, a continuación, guarde el.psd1
archivo para cada referencia cultural de la interfaz de usuario en el directorio con el nombre de la referencia cultural de la interfaz de usuario.Por ejemplo, localice los mensajes de usuario para la configuración regional de-DE y dé formato a ellos en una tabla hash. Guarde la tabla hash en un
<ScriptName>.psd1
archivo. A continuación, cree unde-DE
subdirectorio en el directorio script y guarde el archivo alemán<ScriptName>.psd1
en elde-DE
subdirectorio. Repita este método para cada configuración regional que admita.Import-LocalizedData
realiza una búsqueda estructurada de los mensajes de usuario localizados para un script.Import-LocalizedData
comienza la búsqueda en el directorio donde se encuentra el archivo de script (o el valor del parámetro BaseDirectory ). A continuación, busca en el directorio base un subdirectorio con el mismo nombre que el valor de la$PsUICulture
variable (o el valor del parámetro UICulture ), comode-DE
oar-SA
. A continuación, busca en ese subdirectorio un.psd1
archivo con el mismo nombre que el script (o el valor del parámetro FileName ).Si
Import-LocalizedData
no encuentra un subdirectorio con el nombre de la referencia cultural de la interfaz de usuario o el subdirectorio no contiene un.psd1
archivo para el script, busca un.psd1
archivo para el script en un subdirectorio con el nombre del código de idioma, como de o ar. Si no encuentra el subdirectorio o.psd1
el archivo, se produce un error en el comando, los datos se muestran en el idioma predeterminado del script y se muestra un mensaje de error que explica que no se pudieron importar los datos. Para suprimir el mensaje y producir un error correctamente, use el parámetro común ErrorAction con un valor de SilentlyContinue.Si
Import-LocalizedData
encuentra el subdirectorio y el.psd1
archivo, importa la tabla hash de los mensajes de usuario en el valor del parámetro BindingVariable en el comando . A continuación, cuando se muestra un mensaje de la tabla hash en la variable , se muestra el mensaje localizado.Para obtener más información, consulte about_Script_Internationalization.