2012-03-21 78 views
1

我有一个使用SharePoint API的函数,因此暴露了方法SPUtility.GetLocalizedString。Powershell:使用SharePoint API,GetLocalizedString不会返回任何东西

我还确定了用作参数之一的uint语言编号1033(英语)和1036(法语)。

[System.Reflection.Assembly]::Load("Microsoft.SharePoint, Version=14.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c") 

$en = 1033 
$fr = 1036 
$str = "$Resources:docliblist" 
$resx = "core" 
$locstr = [Microsoft.SharePoint.Utilities.SPUtility]::GetLocalizedString($str, $resx, $en) 
$locstr 
$locstr = [Microsoft.SharePoint.Utilities.SPUtility]::GetLocalizedString ("$Resources:doclibList", "core", $fr) 
$locstr 

当我运行该函数时,$ locstr为空。不为null,只是空的。

此外,当我使用的功能是这样的:

$str = "$Resources:core, docliblist" 
$locstr = [Microsoft.SharePoint.Utilities.SPUtility]::GetLocalizedString($str, $null, $en) 

我得到“docliblist”

的返回值现在,虽然我可以采取什么我从RESX文件需要和把我自己的配置文件,我很困惑,为什么这不工作。如果有人有任何建议,我将不胜感激。

谢谢。

*编辑

你改变引号的意义是什么?

+1

$ resources是一个powershell变量?? – 2012-03-22 11:21:00

回答

3

如果$Resources不是PowerShell变量,则需要转义'$'。试试吧:

$str = "`$Resources:docliblist" 
+0

令人惊讶的是,这工作。我最终不得不将这个改写成一个功能,而不是一个脚本,但是这帮了我的忙。 – 2012-03-26 22:01:27