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
находится в подкаталоге en-US каталога C:\Test
, содержащего скрипт.
Вторая часть примера показывает содержимое скрипта 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 BaseDirectory). Затем он выполняет поиск в базовом каталоге подкаталога с тем же именем, что и значение переменной$PsUICulture
(или значение параметра UICulture), напримерde-DE
илиar-SA
. Затем он выполняет поиск в этом подкаталоге для файла.psd1
с тем же именем, что и скрипт (или значение параметра FileName).Если
Import-LocalizedData
не удается найти подкаталог с именем языка и региональных параметров пользовательского интерфейса, либо подкаталог не содержит файл.psd1
для скрипта, он ищет файл.psd1
для скрипта в подкаталоге с именем языкового кода, например de или ar. Если он не может найти подкаталог или файл.psd1
, команда завершается ошибкой, данные отображаются на языке по умолчанию в скрипте, и отображается сообщение об ошибке, объясняющее, что данные не удалось импортировать. Чтобы отключить сообщение и завершить ошибку, используйте ErrorAction общий параметр со значением SilentlyContinue.Если
Import-LocalizedData
находит подкаталог и файл.psd1
, он импортирует хэш-таблицы сообщений пользователей в значение параметра bindingVariable bindingVariable в команде. Затем при отображении сообщения из хэш-файла в переменной отображается локализованное сообщение.Дополнительные сведения см. в about_Script_Internationalization.
Связанные ссылки
PowerShell