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
В этот командлет нельзя передать входные данные.
Выходные данные
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.