Что касается # 1, мне кажется, что вы должны указать тег комментария ExternalHelp для каждой команды (сценария или функции). Обновление: Я получил подтверждение от команды PowerShell, что вы должны указать тег комментария для каждой команды. Я отправил предложение на MSConnect , по которому вы можете проголосовать, если хотите увидеть это в будущей версии PowerShell.
Что касается # 2, он работает, и из моего тестирования вам не нужно указывать полный путь (что очень хорошо). Вот содержимое модуля dir, который я создал, чтобы проверить это:
~\Documents\WindowsPowerShell\Modules\ModTest\ModTest.psm1
~\Documents\WindowsPowerShell\Modules\ModTest\en-US\ModTest.psm1-Help.xml
~\Documents\WindowsPowerShell\Modules\ModTest\fr-FR\ModTest.psm1-Help.xml
Содержимое моего файла ModTest.psm1:
# .ExternalHelp ModTest.psm1-Help.xml
function Add-BitsFile([object[]]$BitsJob, [string[]]$Destination,
[string[]]$Source)
{
Write-Host "Add-BitsFile"
}
# .ExternalHelp ModTest.psm1-Help.xml
function Complete-BitsTransfer([object[]]$BitsJob)
{
Write-Host "Complete-BitsTransfer"
}
Два файла ModTest.psm1-Help.xml являются лишь копией:
"$ pshome \ Modules \ BitsTransfer \ EN-US \ Microsoft.BackgroundIntelligentTransfer.Management.dll-Help.xml"
Самым большим тестом PITA было получить действительный файл MAML, поэтому я просто скопировал известный рабочий файл. :-) Кстати, для французской версии я просто поставил перед синопсисом «Parlez vous», чтобы я мог проверить, работает ли он.
Далее вам нужен быстрый способ изменить поток currentUICulture, чтобы протестировать различные локализованные файлы справки. Это функция Джеффри Сновер написал некоторое время назад . Я обновил его, чтобы также изменить CurrentUICulture:
function Using-Culture (
[System.Globalization.CultureInfo]$culture = `
(throw "USAGE: Using-Culture -Culture culture -Script {scriptblock}"),
[ScriptBlock]$script= `
(throw "USAGE: Using-Culture -Culture culture -Script {scriptblock}"))
{
$OldCulture = [System.Threading.Thread]::CurrentThread.CurrentCulture
$OldUICulture = [System.Threading.Thread]::CurrentThread.CurrentUICulture
try {
[System.Threading.Thread]::CurrentThread.CurrentCulture = $culture
[System.Threading.Thread]::CurrentThread.CurrentUICulture = $culture
Invoke-Command $script
}
finally {
[System.Threading.Thread]::CurrentThread.CurrentCulture = $OldCulture
[System.Threading.Thread]::CurrentThread.CurrentUICulture = $OldUICulture
}
}
Теперь давайте проверим это:
PS> gmo|rmo
PS> ipmo ModTest
PS> Add-BitsFile -?
NAME
Add-BitsFile
SYNOPSIS
Adds one or more files to an existing Background Intelligent Transfer
Service (BITS) transfer job.
<snip>
PS> using-culture fr-FR {gmo|rmo; ipmo ModTest; Add-BitsFile -?}
NAME
Add-BitsFile
SYNOPSIS
Parlez vous adds one or more files to an existing Background
Intelligent Transfer Service (BITS) transfer job.