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'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
возвращает хэш-файл, содержащий локализованные строки данных.
Пример 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'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.
В первой части примера показано содержимое 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 : 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
Для подавления сообщения об ошибке можно использовать общий параметр ErrorAction со значением SilentlyContinue. Это особенно полезно, если вы предоставили пользовательские сообщения на языке по умолчанию или резервном языке, и сообщение об ошибке не требуется.
В этом примере сравниваются два сценария Day1.ps1
и Day2.ps1, которые включают Import-LocalizedData
команду. Скрипты идентичны, за исключением того, что Day2 использует общий параметр ErrorAction со значением SilentlyContinue
.
В примере выходных данных показаны результаты выполнения обоих скриптов, когда язык и региональные параметры пользовательского интерфейса заданы fr-BE
, и для этого языка и региональных параметров пользовательского интерфейса отсутствуют соответствующие файлы или каталоги. Day1.ps1
отображает сообщение об ошибке и выходные данные английского языка. Day2.ps1
просто отображает выходные данные английского языка.
Параметры
-BaseDirectory
Указывает базовый каталог, в котором .psd1
находятся файлы. По умолчанию используется каталог, в котором расположен сценарий. Import-LocalizedData
выполняет поиск .psd1
файла для скрипта в подкаталоге для конкретного языка базового каталога.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-BindingVariable
Задает переменную, в которую импортируются текстовые строки. Введите имя переменной без знака доллара ($
).
В Windows PowerShell 2.0 этот параметр является обязательным. В Windows PowerShell 3.0 этот параметр является необязательным. Если этот параметр не указан, Import-LocalizedData
возвращает хэш-список текстовых строк. Хэш-файл передается по конвейеру или отображается в командной строке.
При использовании Import-LocalizedData
для замены текстовых строк по умолчанию, указанных в разделе DATA скрипта, назначьте раздел DATA переменной и введите имя переменной раздела DATA в значении параметра BindingVariable . Затем при Import-LocalizedData
сохранении импортированного содержимого в BindingVariable импортированные данные заменят текстовые строки по умолчанию. Если вы не задаете текстовые строки по умолчанию, можно выбрать любое имя переменной.
Тип: | String |
Aliases: | Variable |
Position: | 0 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-FileName
Указывает имя файла данных (.psd1)
для импорта). Введите имя файла. Можно указать имя файла, которое не включает его .psd1
расширение имени файла, или указать имя файла, включая .psd1
расширение имени файла. Файлы данных должны сохраняться как Юникод или UTF-8.
Параметр FileName является обязательным, если Import-LocalizedData
он не используется в скрипте.
В противном случае параметр является необязательным, и значение по умолчанию — базовое имя сценария. Этот параметр можно использовать для Import-LocalizedData
поиска другого .psd1
файла.
Например, если имя файла опущено, а имя скрипта — FindFiles.ps1
искать Import-LocalizedData
FindFiles.psd1
файл данных.
Тип: | String |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-SupportedCommand
Задает командлеты и функции, которые создают только данные.
Используйте этот параметр для включения командлетов и функций, которые вы написали или протестировали. Дополнительные сведения см. в about_Script_Internationalization.
Тип: | String[] |
Position: | Named |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
-UICulture
Указывает дополнительный язык и региональные параметры пользовательского интерфейса. Значение по умолчанию — это значение автоматической переменной $PsUICulture
. Введите язык и региональные параметры пользовательского интерфейса в <language>-<region>
формате, например en-US
de-DE
, или ar-SA
.
Значение параметра UICulture определяет подкаталог для конкретного языка (в базовом каталоге), из которого Import-LocalizedData
получает .psd1
файл для скрипта.
Командлет выполняет поиск подкаталога с тем же именем, что и значение параметра UICulture или автоматической $PsUICulture
переменной, например de-DE
или ar-SA
. Если он не может найти каталог или каталог не содержит .psd1
файл для скрипта, он ищет подкаталог с именем языкового кода, например de или ar. Если не удается найти подкаталог или .psd1
файл, команда завершается ошибкой, и данные отображаются на языке по умолчанию, указанном в скрипте.
Тип: | String |
Position: | 1 |
Default value: | None |
Обязательно: | False |
Принять входные данные конвейера: | False |
Принять подстановочные знаки: | False |
Входные данные
None
Невозможно передать объекты в этот командлет.
Выходные данные
Этот командлет сохраняет хэш-список в переменной, указанной значением параметра BindingVariable .
Примечания
Перед использованием
Import-LocalizedData
локализуйте сообщения пользователя. Отформатируйте сообщения для каждого языкового стандарта (языка и региональных параметров) в хэш-таблицу пар "ключ-значение" и сохраните хэш-таблицу в файле с тем же именем, что и скрипт и.psd1
расширение имени файла. Создайте каталог в каталоге скриптов для каждого поддерживаемого языка и региональных параметров пользовательского интерфейса, а затем сохраните.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.
Связанные ссылки
PowerShell