关于1,我认为您必须为每个命令(脚本或函数)指定externalHelp注释标记。
更新:
我得到了PowerShell团队的确认,您必须为每个命令指定注释标记。我提交了一份
suggestion on MSConnect
如果您希望在PowerShell的未来版本中看到这一点,可以对其进行投票。
关于2,它确实有效,从我的测试中,您不必指定完整路径(这非常好)。以下是为测试这一点而创建的模块目录的内容:
~\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.backgroundintelligentttransfer.management.dll帮助.xml”
测试这个过程中最大的Pita是获取一个有效的maml文件,所以我只是复制了一个已知的工作文件。:-)顺便说一句,对于法语版本,我只是在概要前面加上了“parlez vous”,这样我就可以测试它是否有效。
接下来,您需要一种快速的方法来更改线程currentuiculture,以测试不同的本地化帮助文件。这是一个函数
Jeffrey Snover wrote some time ago
. 我更新了它以改变当前的文化:
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.