Importa los datos específicos del idioma en scripts y funciones según la referencia cultural de la interfaz de usuario que se haya seleccionado para el sistema operativo.

Sintaxis

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

Descripción

El cmdlet Import-LocalizedData recupera dinámicamente las cadenas de un subdirectorio cuyo nombre coincide con el idioma de la interfaz de usuario del usuario actual del sistema operativo. Este cmdlet se ha diseñado para que los scripts puedan mostrar los mensajes de usuario en el idioma que el usuario actual ha seleccionado para la interfaz de usuario.

Import-LocalizedData importa los datos de los archivos .psd1 en los subdirectorios específicos del idioma dentro del directorio del script y los guarda en una variable local especificada en el comando. El cmdlet selecciona el subdirectorio y el archivo basándose en el valor de la variable automática $PSUICulture. Cuando se usa la variable local en el script para mostrar un mensaje de usuario, dicho mensaje aparece en el idioma de la interfaz de usuario del usuario.

Puede utilizar los parámetros de Import-LocalizedData para especificar una referencia cultural de interfaz de usuario, una ruta de acceso y un nombre de archivo diferentes, agregar comandos compatibles y suprimir el mensaje de error que aparece si no se encuentran los archivos .psd1.

El cmdlet Import-LocalizedData admite la internacionalización de los scripts en Windows PowerShell 2.0. Esta iniciativa tiene como objetivo atender mejor a los usuarios en todo el mundo ya que facilita a los scripts la tarea de mostrar los mensajes de usuario en el idioma de la interfaz de usuario del usuario actual.Para obtener más información sobre este tema y sobre el formato de los archivos .psd1, vea about_Script_Internationalization.

Parámetros

-BaseDirectory <string>

Especifica el directorio base donde están ubicados los archivos .psd1. De forma predeterminada, se trata del directorio donde está ubicado el script. Import-LocalizedData busca el archivo .psd1 para el script en un subdirectorio específico del idioma dentro del directorio base.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-BindingVariable <string>

Especifica una variable en la que se importan las cadenas de texto. Escriba un nombre de variable sin el signo de dólar ($).

Cuando use Import-LocalizedData para reemplazar las cadenas de texto predeterminadas que se especifican en la sección de datos de un script, asigne la sección de datos a una variable y escriba el nombre de dicha variable en el valor del parámetro BindingVariable. A continuación, cuando Import-LocalizedData guarde el contenido importado en BindingVariable, los datos importados reemplazarán las cadenas de texto predeterminadas. Si no especifica cadenas de texto predeterminadas, podrá seleccionar cualquier nombre de variable.

¿Requerido?

true

¿Posición?

1

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-FileName <string>

Especifica el nombre del archivo .psd1 que se va a importar. Escriba un nombre de archivo sin la extensión .psd1.

El valor predeterminado es el nombre del script. Por ejemplo, si el script es FindFiles.ps1, Import-LocalizedData buscará FindFiles.psd1. Puede utilizar este parámetro para indicar a Import-LocalizedData que busque otro archivo .psd1.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-SupportedCommand <string[]>

Especifica los cmdlets y funciones que solo generan datos.

Utilice este parámetro para incluir los cmdlets y funciones que haya escrito o probado. Para obtener más información, vea about_Script_Internationalization.

¿Requerido?

false

¿Posición?

named

Valor predeterminado

ninguno

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

-UICulture <string>

Especifica una referencia cultural de interfaz de usuario alternativa. El valor predeterminado es el valor de la variable automática $PsUICulture. Especifique una referencia cultural de interfaz de usuario con el formato "<idioma>-<región>", como en-US, de-DE o ar-SA.

El valor del parámetro UICulture determina el subdirectorio específico del idioma (dentro del directorio base) desde el cual Import-LocalizedData obtiene el archivo .psd1 para el script.

El cmdlet busca un subdirectorio con el mismo nombre que el valor del parámetro UICulture o la variable automática $PsUICulture, como "de-DE" o "ar-SA". Si no encuentra el directorio o el directorio no contiene un archivo .psd1 para el script, buscará un subdirectorio con el nombre del código de idioma, como "de" o "ar". Si no encuentra el subdirectorio o el archivo .psd1, el comando generará un error y los datos se mostrarán en el idioma predeterminado especificado en el script.

¿Requerido?

false

¿Posición?

2

Valor predeterminado

¿Aceptar canalización?

false

¿Aceptar caracteres comodín?

false

<CommonParameters>

Este cmdlet admite los parámetros comunes: -Verbose, -Debug, -ErrorAction, -ErrorVariable, -OutBuffer y -OutVariable. Para obtener más información, vea about_Commonparameters.

Entradas y salidas

El tipo de entrada es el tipo de los objetos que se pueden canalizar al cmdlet. El tipo devuelto es el tipo de los objetos que el cmdlet devuelve.

Entradas

Ninguno

No se pueden canalizar entradas a este cmdlet.

Salidas

System.Collections.Hashtable

Import-LocalizedData guarda la tabla hash en la variable especificada por el valor del parámetro BindingVariable.

Notas

Antes de utilizar Import-LocalizedData, localice los mensaje de usuario. Dé formato a los mensajes para 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 la extensión .psd1. Cree un directorio bajo el directorio de script para cada referencia cultural de interfaz de usuario compatible y, a continuación, guarde el archivo .psd1 para cada referencia cultural de interfaz de usuario en el directorio con el nombre de la referencia cultural de interfaz de usuario.

Por ejemplo, localice los mensajes de usuario para la configuración regional de-DE y deles formato en una tabla hash. Guarde la tabla hash en un archivo <nombreDeScript>.psd1. A continuación, cree un subdirectorio de-DE bajo el directorio del script y guarde el archivo <nombreDeScript>.psd1 de de-DE en ese subdirectorio. Repita este método para cada configuración regional compatible.

Import-LocalizedData realiza una búsqueda estructurada de los mensajes de usuario localizados de un script.

Import-LocalizedData comienza la búsqueda en el directorio donde está ubicado 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 variable $PsUICulture (o el valor del parámetro UICulture), como "de-DE" o "ar-SA". Después, busca en ese subdirectorio un archivo .psd1 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 si el subdirectorio no contiene un archivo .psd1 para el script, busca un archivo .psd1 para el script en un subdirectorio con el nombre del código de idioma, como "de" o "ar". Si no encuentra el subdirectorio o el archivo .psd1, el comando generará un error, los datos se mostrarán en el idioma predeterminado en el script y aparecerá un mensaje de error para explicar que no se pudieron importar los datos. Para que se suprima el mensaje y se genere solo un error leve, utilice el parámetro común ErrorAction con el valor SilentlyContinue.

Si Import-LocalizedData encuentra el subdirectorio y el archivo .psd1, importará la tabla hash de mensajes de usuario en el valor del parámetro BindingVariable del comando. A continuación, cuando se muestre un mensaje de la tabla hash en la variable, se mostrará el mensaje localizado.

Para obtener más información, vea about_Script_Internationalization.

Ejemplo 1

C:\PS>import-localizeddata -bindingVariable messages

Descripción
-----------
Este comando importa cadenas de texto en la variable $messages. Utiliza todos los valores predeterminados para los parámetros del cmdlet.

Si se incluye el comando en el script Archives.ps1 del directorio C:\test y el valor de la variable automática $PsUICulture es zh-CN, Import-LocalizedData importará el archivo Archives.psd1 en el directorio C:\test\zh-CN.






Ejemplo 2

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

Descripción
-----------
Este comando importa cadenas de texto en la variable $msgTbl de un script. 

Utiliza el parámetro UICulture para indicar al cmdlet que importe los datos del archivo Simple.psd1 en el subdirectorio ar-SA de C:\Data\Localized.






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

Descripción
-----------
En este ejemplo se muestra cómo utilizar datos localizados en un script simple.

En la primera parte del ejemplo se muestra el contenido del archivo Test.psd1. Contiene un comando ConvertFrom-StringData que convierte una serie de cadenas de texto con nombre en una tabla hash. El archivo test.psd1 se encuentra en el subdirectorio en-US del directorio C:\Test que contiene el script.

En la segunda parte del ejemplo se muestra el contenido del script Test.ps1. El script contiene un comando Import-LocalizedData que importa los datos del archivo .psd1 correspondiente en la variable $Messages y un comando Write-Host que escribe en el programa host uno de los mensajes almacenados en la variable $Messages.

En la última parte del ejemplo, se ejecuta el script. El resultado indica que se muestra el mensaje de usuario correcto en el idioma de la interfaz de usuario del usuario actual del sistema operativo.






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

Descripción
-----------
En este ejemplo se muestra cómo utilizar Import-LocalizedData para reemplazar las cadenas de texto predeterminadas que están definidas en la sección de datos de un script.

En este ejemplo, la sección de datos del script TestScript.ps1 contiene un comando ConvertFrom-StringData que convierte el contenido de la sección de datos en una tabla hash y la almacena en el valor de la variable $UserMessages. 

El script también incluye un comando Import-LocalizedData, que importa una tabla hash de las cadenas de texto traducidas desde el archivo TestScript.psd1 en el subdirectorio especificado por el valor de la variable $PsUICulture. Si el comando encuentra el archivo .psd1, guardará las cadenas traducidas del archivo en el valor de la misma variable $UserMessages, sobrescribiendo la tabla hash guardada por la lógica de la sección de datos.

El tercer comando muestra el primer mensaje almacenado en la variable $UserMessages.

Si el comando Import-LocalizedData encuentra un archivo .psd1 para el idioma de $PsUICulture, el valor de la variable $UserMessages contendrá las cadenas de texto traducidas. Si por algún motivo el comando genera un error, se mostrarán las cadenas de texto predeterminadas que están definidas en la sección de datos del script.






Ejemplo 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

Descripción
-----------
En este ejemplo se muestra cómo suprimir los mensajes de error que aparecen cuando Import-LocalizedData no encuentra los directorios correspondientes a la referencia cultural de la interfaz de usuario o no encuentra en esos directorios un archivo .psd1 para el script.

Puede utilizar el parámetro común ErrorAction con el valor "SilentlyContinue" para suprimir el mensaje de error. Esto resulta especialmente útil cuando se han proporcionado mensajes de usuario en un idioma predeterminado o "de reserva" y no se requiere ningún mensaje de error.

En este ejemplo se comparan dos scripts, Day1.ps1 y Day2.ps1, que incluyen un comando Import-LocalizedData. Los scripts son idénticos, salvo que Day2 utiliza el parámetro común ErrorAction con el valor SilentlyContinue.

En el resultado del ejemplo se muestran los resultados de ejecutar ambos scripts cuando la referencia cultural de la interfaz de usuario está establecida en fr-BE y no hay archivos o directorios correspondientes para dicha referencia cultural. Day1.ps1 muestra un mensaje de error y el resultado en inglés. Day2.ps1 solo muestra el resultado en inglés.






Vea también




Tabla de contenido