在几乎每个使用本地化文件的Microsoft项目中,都有###PSLOC
资源字符串块之前和之后的文本.这是一个例子:
ConvertFrom-StringData @'
###PSLOC
MyString=This is a string.
###PSLOC
'@
Run Code Online (Sandbox Code Playgroud)
我在任何帮助文件中找不到任何引用.我查看了 about_Data_Sections,ConvertFrom-StringData和about_Script_Internationalization.###PSLOCPowerShell源中的唯一实例是如上所示的资源文件.
更具体地说,我很想知道:
我寻觅了一段时间,得出的结论认为###PSLOC是只是惯例,并没有特殊的含义,即使我无法找到一个正式文件.
我找到了一些导致我得出这个结论的Microsoft文档.例如:"Microsoft Baseline Configuration Analyzer Model Authoring Guide"在第20页上显示了此示例:
内容文件
示例以下是Antivirus模型的内容文件示例:Antivirus.psd1Run Code Online (Sandbox Code Playgroud)# Only add new (name,value) pairs to the end of this table # Do not remove, insert or re-arrange entries ConvertFrom-StringData @' ###PSLOC start localizing # # helpID="ScanBootSector" # ScanBootSector_title = Boot Sector Scan (Indicator Setting {0}) ScanBootSector_problem = tbd: Problem for Constant name issue-1 ScanBootSector_impact = tbd: Impact for Constant name issue-1 ScanBootSector_resolution = tbd: Resolution for Constant name issue-1 ScanBootSector_compliant = tbd: Compliant for Constant name issue-1 # # helpID="AutoUpdateStatus" # AutoUpdateStatus_title = Auto Update Status (Indicator Setting {0}) AutoUpdateStatus_problem = tbd: Problem for Constant name issue-2 AutoUpdateStatus_impact = tbd: Impact for Constant name issue-2 AutoUpdateStatus_resolution = tbd: Resolution for Constant name issue-2 AutoUpdateStatus_compliant = tbd: Compliant for Constant name issue-2 '@
请注意,###PSLOC后面是其他说明和更简单的注释,并且没有结束###PSLOC.
Bryan P. Cafferky撰写的"Pro PowerShell for Database Developers"一书载于第4页.140 ConvertFrom-StringData部分根本不包含###PSLOC块/标记.
另一个线索来自我自己的Windows 10系统.
我grepped所有*.psd1文件,并了解到一些没有正确的关闭-block ###PSLOC/标签但是却###PSCLOCC没有,例如c:\ windows\WinSxS\amd64_microsoft-windows-pnpdevice-powershell_31bf3856ad364e35_10.0.15063.0_none_e99b05a055a1e6c4\PnpDevice.Resource.psd1(这也可能是一个错误).
最后,我搜索了Powershell(核心)回购,但找不到任何治疗方法###PSLOC.
因此,案件并非100%明确.但可以说,我发现了一些没有特殊意义的好证据.
###PSLOC在构建 Windows 时由内部本地化工具使用。无论如何,该注释对于 PowerShell 引擎来说并不特殊。
本地化工具可扩展以支持许多不同的文件解析器来提取资源以进行进一步的本地化处理。
PowerShell 的扩展基于 ini 文件解析器,注释用于告诉解析器何时忽略行。这允许 psd1 文件的作者混合适当的 PowerShell 和 ini 文件解析器不会出现问题的行。
| 归档时间: |
|
| 查看次数: |
286 次 |
| 最近记录: |