Powershell: используя API-интерфейс SharePoint, GetLocalizedString ничего не возвращает - PullRequest
1 голос
/ 21 марта 2012

У меня есть функция, использующая API-интерфейс SharePoint, поэтому метод SPUtility.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 пусто. Не ноль, просто пусто.

Кроме того, когда я использую функцию следующим образом:

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

Я получаю возвращаемое значение 'docliblist'

Теперь, хотя я могу просто извлечь то, что мне нужно, из файла resx и поместить в свой собственный файл конфигурации, я озадачен тем, почему это не работает. Если у кого-нибудь есть совет, я буду признателен.

Спасибо.

* Edit

Какой смысл вам менять кавычки?

1 Ответ

3 голосов
/ 22 марта 2012

Если $Resources не является переменной powershell, вам нужно экранировать '$'.Попробуйте это так:

$str = "`$Resources:docliblist"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...