Compartir a través de


Import-LocalizedData

Importa datos específicos del idioma en scripts y funciones en función de la referencia cultural de la interfaz de usuario seleccionada para el sistema operativo.

Sintaxis

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

Description

El cmdlet Import-LocalizedData 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 los mensajes de usuario en el idioma de la interfaz de usuario seleccionado por el usuario actual.

Import-LocalizedData importa datos de archivos .psd1 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 del $PSUICulture variable automática. Cuando se usa 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 de interfaz de usuario alternativa, una ruta de acceso y un nombre de archivo, para agregar comandos admitidos y suprimir el mensaje de error que aparece si no se encuentran los archivos .psd1.

El cmdlet Import-LocalizedData admite la iniciativa de internacionalización de scripts que se introdujo en Windows PowerShell 2.0. Esta iniciativa pretende servir mejor a los usuarios en todo el mundo, ya que facilita la visualización de los 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 archivos .psd1, vea about_Script_Internationalization.

Ejemplos

Ejemplo 1: Importación de cadenas de texto

PS C:\> Import-LocalizedData -BindingVariable "Messages"

Este comando importa cadenas de texto en la variable $Messages. Usa los valores predeterminados de todos los demás parámetros de cmdlet.

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

Ejemplo 2: Importación de cadenas de datos 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."

Este comando se ejecuta en la línea de comandos; no en un script. Obtiene 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 devuelve una tabla hash que contiene las cadenas de datos localizadas.

Ejemplo 3: Importar cadenas de referencia cultural de la interfaz de usuario

PS C:\> Import-LocalizedData -BindingVariable "MsgTbl" -UICulture "ar-SA" -FileName "Simple" -BaseDirectory "C:\Data\Localized"

Este comando importa cadenas de texto en la variable $MsgTbl de un script.

Usa el parámetro UICulture para dirigir el cmdlet para importar datos del archivo Simple.psd1 en el subdirectorio ar-SA de C:\Data\Localized.

Ejemplo 4: Importación de datos localizados en un 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.

En este ejemplo se muestra cómo usar datos localizados en un script sencillo.

La primera parte del ejemplo 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.

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

La última parte del ejemplo ejecuta el script. La salida muestra que muestra el mensaje de usuario correcto en el idioma de la interfaz de usuario establecido para el usuario actual del sistema operativo.

Ejemplo 5: Reemplazar cadenas de texto predeterminadas en 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 se muestra cómo usar Import-LocalizedData para reemplazar las cadenas de texto predeterminadas definidas en la sección DATA de un script.

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

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

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

Si el comando Import-LocalizedData busca un archivo .psd1 para el idioma $PsUICulture, el valor de la variable $UserMessages contiene las cadenas de texto traducidas. Si se produce un error en el comando por cualquier motivo, 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

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

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

Puede usar el ErrorAction parámetro común con un valor de 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 necesita 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, excepto que Day2 usa el ErrorAction parámetro común 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 en fr-BE y no hay archivos o directorios coincidentes para esa referencia cultural de 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 archivos .psd1. El valor predeterminado es el directorio donde se encuentra el script. Import-LocalizedData busca el archivo .psd1 para el script en un subdirectorio específico del lenguaje del directorio base.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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.

Al usar 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 el BindingVariable, los datos importados reemplazarán las cadenas de texto predeterminadas. Si no especifica cadenas de texto predeterminadas, puede seleccionar cualquier nombre de variable.

Tipo:String
Alias:Variable
Posición:0
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín: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 extensión de nombre de archivo .psd1 o puede especificar el nombre de archivo, incluida la extensión de nombre de archivo .psd1. Los archivos de datos deben guardarse 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 .psd1 diferente.

Por ejemplo, si se omite el FileName y el nombre del script es FindFiles.ps1, Import-LocalizedData busca el archivo de datos FindFiles.psd1.

Tipo:String
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-SupportedCommand

Especifica cmdlets y funciones que generan solo datos.

Use este parámetro para incluir cmdlets y funciones que ha escrito o probado. Para obtener más información, consulte about_Script_Internationalization.

Tipo:String[]
Posición:Named
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

-UICulture

Especifica una referencia cultural de interfaz de usuario alternativa. El valor predeterminado es el valor de la variable $PsUICulture automática. Escriba una referencia cultural de interfaz de usuario en <idioma>:<formato> región, como en-US, de-DEo 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 archivo .psd1 para el script.

El cmdlet busca un subdirectorio con el mismo nombre que el valor del parámetro UICulture de 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, busca un subdirectorio con el nombre del código de idioma, como de o ar. Si no encuentra el archivo subdirectorio o .psd1, se produce un error en el comando y los datos se muestran en el idioma predeterminado especificado en el script.

Tipo:String
Posición:1
Valor predeterminado:None
Requerido:False
Aceptar entrada de canalización:False
Aceptar caracteres comodín:False

Entradas

None

No se puede canalizar la entrada a este cmdlet.

Salidas

Hashtable

Import-LocalizedData 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 extensión de nombre de archivo .psd1. Cree un directorio en 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 la interfaz de usuario en el directorio con el nombre de referencia cultural de la interfaz de usuario.

    Por ejemplo, localice los mensajes de usuario para la de-DE configuración regional y dé formato a ellos en una tabla hash. Guarde la tabla hash en un archivo scriptName <>.psd1. A continuación, cree un subdirectorio de de-DE en el directorio de scripts y guarde el archivo de-DE <ScriptName>.psd1 en el subdirectorio de-DE. 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 variable $PsUICulture (o el valor del parámetro uiCulture de ), como de-DE o ar-SA. A continuación, 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 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 archivo subdirectorio o .psd1, se produce un error en el comando, los datos se muestran en el idioma predeterminado en el script y se muestra un mensaje de error que explica que no se pudieron importar los datos. Para suprimir el mensaje y generar errores correctamente, use el ErrorAction parámetro común con un valor de SilentlyContinue.

    Si Import-LocalizedData encuentra el subdirectorio y el archivo .psd1, 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, vea about_Script_Internationalization (https://go.microsoft.com/fwlink/?LinkID=113262).