Использование функций локализации в примере надстройки Office 365
В примере Core.CreateContentTypes показано, как использовать функции локализации Office 365 на сайтах, списках, типах контента и столбцах сайта. В этом примере кода консольное приложение используется для выполнения следующих действий:
- Создание типов контента, столбцов сайта и списков, а также связывание столбцов сайта с типами контента.
- Локализуйте тип контента, столбец сайта, список и предоставленный пользователем сайт.
Примечание.
Функции локализации, описанные в этой статье, доступны только в Office 365. Сведения о функциях локализации, доступных в Office 365 Dedicated или SharePoint Server в локальной среде, см. в статье Локализация надстроек SharePoint и Локализация решений SharePoint.
Подготовка к работе
Чтобы приступить к работе, скачайте пример надстройки Core.CreateContentTypes из проекта Office 365 Шаблоны и методики разработчика на сайте GitHub.
Перед выполнением этого примера кода выполните следующие действия.
Настройка языковых параметров на сайте
На сайте группы выберите Параметры Параметры>Параметры сайта.
В разделе Администрирование сайта выберите Языковые параметры.
На странице Языковые параметры в разделе Альтернативные языки выберите альтернативные языки, которые должен поддерживать ваш сайт. Например, можно выбрать финский и французский языки, как показано на следующем рисунке.
Нажмите кнопку OK.
Настройка языка интерфейса на странице профиля пользователя
В верхней части сайта Office 365 выберите изображение своего профиля и щелкните Обо мне.
На странице Обо мне выберите Изменить профиль.
Выберите ... (дополнительные параметры), а затем выберите Язык и регион.
В разделе Мои языки интерфейса выберите новый язык, аналогичный языку, заданному на сайте, в списке Выберите новый язык , а затем нажмите кнопку Добавить. Например, выберите финский и французский языки , как показано ниже. Вы можете переместить предпочитаемый язык вверх или вниз, щелкнув стрелки вверх и вниз.
Нажмите кнопку Сохранить все и закрыть.
Примечание.
Отрисовка сайта на выбранных языках может занять несколько минут.
Запуск примера приложения Core.CreateContentTypes
При выполнении этого примера кода отображается консольное приложение, как показано на следующем рисунке. Необходимо указать сайт для локализации и учетные данные администратора Office 365.
При запуске консольного приложения метод Main в Файле Program.cs выполняет следующие задачи:
Вызывает метод CreateContentTypeIfDoesNotExist для создания типа контента Contoso Document.
Вызывает метод CreateSiteColumn для создания столбца сайта с именем Contoso String.
Вызывает метод AddSiteColumnToContentType , чтобы связать столбец сайта Contoso String с типом контента Документа Contoso .
Вызывает метод CreateCustomList для создания нового списка с именем MyList.
Затем метод Main вызывает метод LocalizeSiteAndList и LocalizeContentTypeAndField .
Метод LocalizeSiteAndList показывает, как сделать следующее:
Задайте различные локализованные значения для заголовка и описания сайта с помощью метода SetValueForUICulture в свойствах TitleResource и DescriptionResourceвеб-объекта .
Задайте различные локализованные значения для заголовка и описания сайта с помощью метода SetValueForUICulture в свойствах TitleResource и DescriptionResourceвеб-объекта .
Метод LocalizeContentTypeAndField показывает, как выполнить следующие действия:
Задайте различные локализованные значения для имени и описания типа контента с помощью метода SetValueForUICulture в свойствах NameResource и DescriptionResource объекта ContentType .
Задайте различные локализованные значения для заголовка и описания сайта с помощью метода SetValueForUICulture в свойствах TitleResource и DescriptionResource объекта Field .
Примечание.
Код, приведенный в этой статье, предоставляется "как есть" без какой-либо явной или подразумеваемой гарантии, включая подразумеваемые гарантии пригодности для какой-либо цели, для продажи или гарантии отсутствия нарушения прав иных правообладателей.
private static void LocalizeSiteAndList(ClientContext cc, Web web)
{
// Localize the site title.
web.TitleResource.SetValueForUICulture("en-US", "Hello World");
web.TitleResource.SetValueForUICulture("fi-FI", "Hello World - Finnish");
web.TitleResource.SetValueForUICulture("fr-FR", "Hello World - French");
// Localize the site description.
web.DescriptionResource.SetValueForUICulture("en-US", "Hello World site sample");
web.DescriptionResource.SetValueForUICulture("fi-FI", " Hello World site sample - Finnish");
web.DescriptionResource.SetValueForUICulture("fr-FR", " Hello World site sample - French");
web.Update();
cc.ExecuteQuery();
// Localize the custom list that was created previously.
List list = cc.Web.Lists.GetByTitle("MyList");
cc.Load(list);
cc.ExecuteQuery();
// Localize the list title.
list.TitleResource.SetValueForUICulture("en-US", "Hello World");
list.TitleResource.SetValueForUICulture("fi-FI", "Hello World - Finnish");
list.TitleResource.SetValueForUICulture("fr-FR", " Hello World - French");
// Localize the list description.
list.DescriptionResource.SetValueForUICulture("en-US", "This example localizes a list using CSOM.");
list.DescriptionResource.SetValueForUICulture("fi-FI", "This example localizes a list using CSOM - Finnish.");
list.DescriptionResource.SetValueForUICulture("fr-FR", "This example localizes a list using CSOM - French.");
list.Update();
cc.ExecuteQuery();
}
private static void LocalizeContentTypeAndField(ClientContext cc, Web web)
{
ContentTypeCollection contentTypes = web.ContentTypes;
ContentType myContentType = contentTypes.GetById("0x0101009189AB5D3D2647B580F011DA2F356FB2");
cc.Load(contentTypes);
cc.Load(myContentType);
cc.ExecuteQuery();
// Localize content type name.
myContentType.NameResource.SetValueForUICulture("en-US", "Contoso Document");
myContentType.NameResource.SetValueForUICulture("fi-FI", "Contoso Document - Finnish");
myContentType.NameResource.SetValueForUICulture("fr-FR", "Contoso Document - French");
// Localize content type description.
myContentType.DescriptionResource.SetValueForUICulture("en-US", "This is the Contoso Document.");
myContentType.DescriptionResource.SetValueForUICulture("fi-FI", " This is the Contoso Document - Finnish.");
myContentType.DescriptionResource.SetValueForUICulture("fr-FR", " This is the Contoso Document - French.");
myContentType.Update(true);
cc.ExecuteQuery();
// Localize the site column.
FieldCollection fields = web.Fields;
Field fld = fields.GetByInternalNameOrTitle("ContosoString");
// Localize site column title.
fld.TitleResource.SetValueForUICulture("en-US", "Contoso String");
fld.TitleResource.SetValueForUICulture("fi-FI", "Contoso String - Finnish");
fld.TitleResource.SetValueForUICulture("fr-FR", "Contoso String - French");
// Localize site column description.
fld.DescriptionResource.SetValueForUICulture("en-US", "Used to store Contoso specific metadata.");
fld.DescriptionResource.SetValueForUICulture("fi-FI", "Used to store Contoso specific metadata - Finnish.");
fld.DescriptionResource.SetValueForUICulture("fr-FR", "Used to store Contoso specific metadata - French.");
fld.UpdateAndPushChanges(true);
cc.ExecuteQuery();
}
Как показано на следующем рисунке, на вашем сайте отображается настраиваемое французское название Hello World — французский, который был задан с помощью метода LocalizeSiteAndList.