Поделиться через


Import-LocalizedData

Импортирует данные, зависящие от языка, в сценарии и функции в зависимости от языка и региональных параметров пользовательского интерфейса, выбранного для операционной системы.

Синтаксис

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

Описание

Командлет Import-LocalizedData динамически извлекает строки из подкаталога, имя которого соответствует языку пользовательского интерфейса, заданному для текущего пользователя операционной системы. Его задачей является включение сценариев для отображения сообщений для пользователей на языке пользовательского интерфейса, выбранного текущим пользователем.

Import-LocalizedData импортирует данные из .psd1 файлов в языковых подкаталогах каталога скриптов и сохраняет их в локальной переменной, указанной в команде . Командлет выбирает подкаталог и файл на основе значения автоматической переменной $PSUICulture . При использовании локальной переменной в сценарии для отображения сообщения для пользователя сообщение отображается на языке пользовательского интерфейса пользователя.

С помощью параметров Import-LocalizedData можно указать альтернативные язык и региональные параметры пользовательского интерфейса, путь и имя файла, добавить поддерживаемые команды и отключить сообщение об ошибке, которое появляется, если .psd1 файлы не найдены.

Командлет Import-LocalizedData поддерживает инициативу по интернационализации скриптов, представленную в Windows PowerShell 2.0. Целью этой инициативы является повышение качества обслуживания пользователей по всему миру благодаря упрощению написания сценариев для отображения сообщений для пользователя на языке интерфейса текущего пользователя. Дополнительные сведения об этом и формате файлов см. в .psd1разделе about_Script_Internationalization.

Примеры

Пример 1. Импорт текстовых строк

В этом примере текстовые строки импортируются в переменную $Messages . Она использует значения по умолчанию для всех остальных параметров командлета.

Import-LocalizedData -BindingVariable "Messages"

Если команда включена в скрипт Archives.ps1 в C:\Test каталоге, а значение автоматической переменной $PsUICulture равно zh-CN, Import-LocalizedData импортирует Archives.psd1 файл из C:\test\zh-CN каталога в $Messages переменную .

Пример 2. Импорт локализованных строк данных

Этот пример выполняется в командной строке, а не в скрипте. Он получает локализованные строки данных из файла Test.psd1 и отображает их в командной строке. Поскольку команда не используется в сценарии, параметр FileName является обязательным. Команда использует параметр UICulture для указания языка и региональных параметров en-US.

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

Import-LocalizedData возвращает хэш-таблицу, содержащую локализованные строки данных.

Пример 3. Импорт строк языка и региональных параметров пользовательского интерфейса

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

Эта команда импортирует текстовые строки в $MsgTbl переменную скрипта.

Параметр UICulture используется для указания командлета для импорта Simple.psd1 данных из файла в ar-SA подкаталоге C:\Data\Localized.

Пример 4. Импорт локализованных данных в скрипт

В этом примере показано, как использовать локализованные данные в простом сценарии.

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.

В первой части примера показано содержимое Test.psd1 файла. Он содержит ConvertFrom-StringData команду, которая преобразует ряд именованных текстовых строк в хэш-таблицу. Файл Test.psd1 находится в подкаталоге C:\Test en-US каталога, содержащего скрипт.

Во второй части примера показано содержимое скрипта Test.ps1 . Он содержит команду, которая импортирует Import-LocalizedData данные из соответствующего .psd1 файла в $Messages переменную Write-Host , и команду, которая записывает одно из сообщений из переменной $Messages в ведущее приложение.

В последней части примера выполняется сценарий. Выходные данные показывают, что отображается правильное сообщение для пользователя на языке пользовательского интерфейса, заданном для текущего пользователя операционной системы.

Пример 5. Замена текстовых строк по умолчанию в скрипте

В этом примере показано, как использовать для Import-LocalizedData замены текстовых строк по умолчанию, определенных в разделе DATA скрипта.

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

В этом примере раздел DATA скрипта TestScript.ps1 содержит ConvertFrom-StringData команду, которая преобразует содержимое раздела DATA в хэш-таблицу и сохраняет значение переменной $UserMessages .

Скрипт также включает Import-LocalizedData команду , которая импортирует хэш-таблицу переведенных текстовых строк из файла TestScript.psd1 в подкаталог, указанный значением переменной $PsUICulture . Если команда находит .psd1 файл, она сохраняет переведенные строки из файла в значении той же $UserMessages переменной, перезаписав хэш-таблицу, сохраненную логикой раздела DATA.

Третья команда отображает первое сообщение в переменной $UserMessages .

Import-LocalizedData Если команда находит .psd1 файл для $PsUICulture языка, значение переменной $UserMessages содержит переведенные текстовые строки. В случае сбоя команды по какой-либо причине команда отображает текстовые строки по умолчанию, определенные в разделе DATA сценария.

Пример 6. Подавление сообщений об ошибках, если язык и региональные параметры пользовательского интерфейса не найдены

В этом примере показано, как отключить сообщения об ошибках, которые появляются, если Import-LocalizedData не удается найти каталоги, соответствующие языку и региональным параметрам пользовательского интерфейса пользователя, или если не удается найти .psd1 файл для скрипта в этих каталогах.

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

Для отключения сообщений об ошибке можно использовать общий параметр ErrorAction со значением SilentlyContinue. Это особенно полезно, если вы предоставили сообщения пользователя на языке по умолчанию или на резервном языке и сообщение об ошибке не требуется.

В этом примере сравниваются два скрипта и Day1.ps1 Day2.ps1, которые включают команду Import-LocalizedData . Скрипты идентичны, за исключением того, что Day2 использует общий параметр ErrorAction со значением SilentlyContinue.

В примере выходных данных показаны результаты выполнения обоих скриптов, если язык и региональные параметры пользовательского интерфейса имеют значение fr-BE , а соответствующие файлы или каталоги для этого языка и региональных параметров пользовательского интерфейса отсутствуют. Day1.ps1 отображает сообщение об ошибке и выходные данные на английском языке. Day2.ps1 просто отображает выходные данные на английском языке.

Параметры

-BaseDirectory

Указывает базовый каталог, в .psd1 котором находятся файлы. По умолчанию используется каталог, в котором расположен сценарий. Import-LocalizedData выполняет поиск .psd1 файла скрипта в подкаталоге базового каталога для конкретного языка.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-BindingVariable

Задает переменную, в которую импортируются текстовые строки. Введите имя переменной без знака доллара ($).

В Windows PowerShell 2.0 этот параметр является обязательным. В Windows PowerShell 3.0 этот параметр является необязательным. Если этот параметр не указан, Import-LocalizedData возвращается хэш-таблица текстовых строк. Хэш-таблица передается по конвейеру или отображается в командной строке.

При использовании для Import-LocalizedData замены текстовых строк по умолчанию, указанных в разделе DATA скрипта, назначьте раздел DATA переменной и введите имя переменной раздела DATA в значение параметра BindingVariable . Затем при Import-LocalizedData сохранении импортированного содержимого в BindingVariable импортированные данные заменяют текстовые строки по умолчанию. Если вы не указываете текстовые строки по умолчанию, можно выбрать любое имя переменной.

Type:String
Aliases:Variable
Position:0
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-FileName

Указывает имя файла данных (.psd1) для импорта. Введите имя файла. Можно указать имя файла, не включающее его .psd1 расширение, или указать имя файла, включая .psd1 расширение имени файла. Файлы данных должны сохраняться в Юникоде или UTF-8.

Параметр FileName является обязательным, если Import-LocalizedData не используется в скрипте. В противном случае параметр является необязательным, и значение по умолчанию — базовое имя сценария. Этот параметр можно использовать для прямого Import-LocalizedData поиска другого .psd1 файла.

Например, если параметр FileName опущен, а имя скрипта — FindFiles.ps1, Import-LocalizedData выполните поиск файла данных FindFiles.psd1.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-SupportedCommand

Задает командлеты и функции, которые создают только данные.

Используйте этот параметр для включения командлетов и функций, которые вы написали или протестировали. Дополнительные сведения см. в разделе about_Script_Internationalization.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-UICulture

Указывает дополнительный язык и региональные параметры пользовательского интерфейса. Значением по умолчанию является значение автоматической переменной $PsUICulture . Введите язык и региональные параметры пользовательского интерфейса в <language>-<region> формате, например en-US, de-DEили ar-SA.

Значение параметра UICulture определяет подкаталог для конкретного языка (в базовом каталоге.psd1), из которого Import-LocalizedData получает файл для скрипта.

Командлет ищет подкаталог с тем же именем, что и значение параметра UICulture или автоматической $PsUICulture переменной, например de-DE или ar-SA. Если не удается найти каталог или каталог не содержит .psd1 файла для скрипта, выполняется поиск подкаталога с именем кода языка, например de или ar. Если не удается найти подкаталог или .psd1 файл, команда завершается ошибкой и данные отображаются на языке по умолчанию, указанном в скрипте.

Type:String
Position:1
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Входные данные

None

В этот командлет нельзя передать входные данные.

Выходные данные

Hashtable

Import-LocalizedData сохраняет хэш-таблицу в переменной, указанной значением параметра BindingVariable .

Примечания

  • Перед использованием Import-LocalizedDataлокализуйте сообщения пользователей. Отформатируйте сообщения для каждого языкового стандарта (языка и региональных параметров) в хэш-таблице пар "ключ-значение" и сохраните хэш-таблицу в файле с тем же именем, что и у скрипта, и с расширением .psd1 имени файла. Create каталог в каталоге скриптов для каждого поддерживаемого языка и региональных параметров пользовательского интерфейса, а затем сохраните .psd1 файл для каждого языка и региональных параметров пользовательского интерфейса в каталоге с именем языка и региональных параметров пользовательского интерфейса.

    Например, выполните локализацию сообщений для пользователя для языкового стандарта de-DE и форматируйте их в хэш-таблицу. Сохраните хэш-таблицу <ScriptName>.psd1 в файле. Затем создайте de-DE подкаталог в каталоге скриптов и сохраните файл на немецком языке <ScriptName\>.psd1 в подкаталоге de-DE . Повторите эту процедуру для каждого поддерживаемого решением языкового стандарта.

  • Import-LocalizedData выполняет структурированный поиск локализованных сообщений пользователя для скрипта.

    Import-LocalizedData начинает поиск в каталоге, где находится файл скрипта (или значение параметра BaseDirectory ). Затем он ищет в базовом каталоге подкаталог с тем же именем, что и значение переменной $PsUICulture (или значение параметра UICulture ), например de-DE или ar-SA. Затем в этом подкаталоге .psd1 выполняется поиск файла с тем же именем, что и у скрипта (или значение параметра FileName ).

    Если Import-LocalizedData не удается найти подкаталог с именем языка и региональных параметров пользовательского интерфейса или подкаталог не содержит .psd1 файл для скрипта, он выполняет поиск .psd1 файла скрипта в подкаталоге с именем кода языка, например de или ar. Если не удается найти подкаталог или .psd1 файл, команда завершается ошибкой, данные отображаются на языке по умолчанию в скрипте, а также отображается сообщение об ошибке, объясняющее, что данные не удалось импортировать. Чтобы отключить сообщение и выполнить ошибку, используйте общий параметр ErrorAction со значением SilentlyContinue.

    Если Import-LocalizedData находит подкаталог и .psd1 файл, он импортирует хэш-таблицу пользовательских сообщений в значение параметра BindingVariable в команде . Затем при отображении сообщения из хэш-таблицы в переменной отображается локализованное сообщение.

    Дополнительные сведения см. в разделе about_Script_Internationalization.