пятница, 29 апреля 2016 г.

SharePoint. Переводные столбцы списка.

В SharePoint есть возможность задать имя колонки так, чтобы оно меняло своё значение в зависимости от языка. В представлении списка и на форме:


Для того, чтобы столбец стал переводным – необходимо задать его имя выражением:
$Resources:fileWithDict,key;

Где:
$Resourcesпризнак выражения
fileWithDict – файл словаря, должен находиться по адресу C:\Program Files\Common Files\microsoft shared\Web Server Extensions\15\Resources” и иметь имя fileWithDict.ru-ru.resx, ru-ru это культура.
key – ключ по которому ищется значение в файле-словаре

Задать переводное имя столбца можно даже при создании через web-интерфейс, вместо имени надо вписать выражение:


На самом деле там не словарь, а xml. Но вы об этом не думайте и воспринимайте как словарь.

Чтобы система показала соответствующий язык – ей надо знать предпочтения пользователя.
Чтобы указать языковые предпочтения перейдите в раздел "Мой язык и регион" как на картинке:

 
Потом выбираем используемые языки. Приоритет важен:


С виду всё, но чтобы работало надо еще и включить дополнительный язык в свойствах узла.
Переходим в настройки узла:



















Выбираем языковые параметры:

















Отмечаем дополнительный язык. Чтобы появился дополнительный язык, которого нет в списке - установите Language Pack.

Кстати, именно таким образом заданы встроенные поля. Проверим это созвав настраиваемый список и выведем все поля в представление:


А теперь поменяем добавим английский язык в список предпочитаемых или повысим его приоритет:


Отличный механизм. В моём случае приоритеты языков для пользователя были заданы принудительно в службе профилей на основе принадлежности к домену.

Так же можно переводить значения полей, подробнее описано в посте от Виталия Жукова.

SharePoint 2013. Проблема указания дня рождения. Ошибка "Введенная дата имеет недопустимый формат или лежит вне допустимого диапазона"

При попытке изменить дату рождения в службе профилей столкнулся с ошибкой:
"Введенная дата имеет недопустимый формат или лежит вне допустимого диапазона. Введите допустимую дату в формате 29 апреля."


Была попытка ввести дату без года в предложенном формате "29 апреля", но как оказалось, вводить дату надо в формате dd.mm, например так: 29.04