пятница, 6 апреля 2012 г.
Создание многоязычного Webpart в SharePoint 2010
Как включить локализацию в SharePoint 2010?
Итак, как сделать веб-части, которые могут адаптироваться на разных языках. Для тех, кто работает с. Net платформой знает, что это может быть сделано с использованием файлов ресурсов (.RESX). Файлы ресурсов не что иное, как список пар ключ/значение представленный в XML формате.
Ниже приведены шаги, создания Webpart, который определяет текущий язык SharePoint и отображает содержание согласно нему, извлекая локализацию из файлов ресурсов.
1. Открываем Visual Studio 2010 -> File -> New -> Project.
2. Выбираем Visual C# -> SharePoint -> 2010 [Framework] .Net Framework 3.5 [Project] -> Empty SharePoint 2010 Project. Имя проекта : vsProject.
3. В SharePoint Customization Wizard, введите URL для локального сайта (http://vsnet/) и выбирите пункт Deploy as a farm solution.
4. Создаем файл ресурсов. Ресурсы должны быть размещены в корневой SharePoint "Resources" папке. В Solution Explorer выбирите "vsProject", правой кнопкой и выбирите Add -> SharePoint Mapped Folder.
5. В окне выбираем папку "Resources".
6. Теперь пустая папка "Resources" создалась внутри SharePoint проекта. Любые файлы размещенные втунтри будут скопированы в SharePoint Root (14)\Resources Folder в процессе загрузки проекта на сервер.
7. Правой кнопкой на папке Resources и выбираем Add -> New Folder -> vsProject [Имя папки]. Правой кнопкой на только что созданной папке и выбирите New -> New Item.
8. В окне New Item выбирите Visual C# -> General -> Resources File -> Имя файла, такое же как "vsProject.resx". Это для создания универсальной локали, она конечно же английская (LCID для неё: 1033).
9. Выбирите vsProject.resx файл, правой кнопкой и откройте его. Добавляем Name и Value значения на английском языке.
10. Повторяем с 7 шага, для создания немецкой локали. Имя "vsProject.de-DE.resx".
11. Открываем файл "vsProject.de-DE.resx" и вводим такое же имя как для файла vsProject.resx. Заполняем значение на немецком языке.
12. Создаем Webpart. Правой кнопкой на проекте "vsProject" и "Add -> New Item", выбираем "Visual C# -> SharePoint -> 2010 -> Web Part". Имя : "LocalizationDemo".
13. Вставляем следующий код в LocalizationDemo класс:
protected override void CreateChildControls()
{
int intLCID = System.Threading.Thread.CurrentThread.CurrentUICulture.LCID;
Label lblWelcomeText = new Label();
lblWelcomeText.Text = "Value : " + getLocalizedValue("WelcomeText", intLCID);
this.Controls.Add(lblWelcomeText);
}
public string getLocalizedValue(string strInput, int intLCID)
{
// Function to retreive specified Language Variation Value
string strLocalizedValue = "";
strLocalizedValue = Microsoft.SharePoint.Utilities.SPUtility.GetLocalizedString("$Resources: " + strInput, "vsProject\\vsProject", (uint)intLCID);
return strLocalizedValue;
}
Сохраняем, выполняем команды Build и Deploy. Проект будет загружен на сервер.
14. Открываем SharePoint сайт и любую страницу, и наживаем "Edit" (или Site Actions -> Edit page).
15. Выбираем "Editing Tools [Tab] -> Insert [Tab] -> Web Part -> Custom [Categories] -> LocalizationDemo -> Add [Button]".
Как только webpart добавиться на страницу, выполним "Save and close".
16. Сейчас контент отображается в локали по умолчанию (English - 1033). Выбираем "User Menu" и выполняем "Select Display Language -> Deutsch".
17. Язык на форме измениться автоматически.
Полезные ссылки:
Установка языкового пакета SharePoint 2010.
Оригинал статьи и locale ID (LCID)
Итак, как сделать веб-части, которые могут адаптироваться на разных языках. Для тех, кто работает с. Net платформой знает, что это может быть сделано с использованием файлов ресурсов (.RESX). Файлы ресурсов не что иное, как список пар ключ/значение представленный в XML формате.
Ниже приведены шаги, создания Webpart, который определяет текущий язык SharePoint и отображает содержание согласно нему, извлекая локализацию из файлов ресурсов.
1. Открываем Visual Studio 2010 -> File -> New -> Project.
2. Выбираем Visual C# -> SharePoint -> 2010 [Framework] .Net Framework 3.5 [Project] -> Empty SharePoint 2010 Project. Имя проекта : vsProject.
3. В SharePoint Customization Wizard, введите URL для локального сайта (http://vsnet/) и выбирите пункт Deploy as a farm solution.
4. Создаем файл ресурсов. Ресурсы должны быть размещены в корневой SharePoint "Resources" папке. В Solution Explorer выбирите "vsProject", правой кнопкой и выбирите Add -> SharePoint Mapped Folder.
5. В окне выбираем папку "Resources".
6. Теперь пустая папка "Resources" создалась внутри SharePoint проекта. Любые файлы размещенные втунтри будут скопированы в SharePoint Root (14)\Resources Folder в процессе загрузки проекта на сервер.
7. Правой кнопкой на папке Resources и выбираем Add -> New Folder -> vsProject [Имя папки]. Правой кнопкой на только что созданной папке и выбирите New -> New Item.
8. В окне New Item выбирите Visual C# -> General -> Resources File -> Имя файла, такое же как "vsProject.resx". Это для создания универсальной локали, она конечно же английская (LCID для неё: 1033).
9. Выбирите vsProject.resx файл, правой кнопкой и откройте его. Добавляем Name и Value значения на английском языке.
10. Повторяем с 7 шага, для создания немецкой локали. Имя "vsProject.de-DE.resx".
11. Открываем файл "vsProject.de-DE.resx" и вводим такое же имя как для файла vsProject.resx. Заполняем значение на немецком языке.
12. Создаем Webpart. Правой кнопкой на проекте "vsProject" и "Add -> New Item", выбираем "Visual C# -> SharePoint -> 2010 -> Web Part". Имя : "LocalizationDemo".
13. Вставляем следующий код в LocalizationDemo класс:
protected override void CreateChildControls()
{
int intLCID = System.Threading.Thread.CurrentThread.CurrentUICulture.LCID;
Label lblWelcomeText = new Label();
lblWelcomeText.Text = "Value : " + getLocalizedValue("WelcomeText", intLCID);
this.Controls.Add(lblWelcomeText);
}
public string getLocalizedValue(string strInput, int intLCID)
{
// Function to retreive specified Language Variation Value
string strLocalizedValue = "";
strLocalizedValue = Microsoft.SharePoint.Utilities.SPUtility.GetLocalizedString("$Resources: " + strInput, "vsProject\\vsProject", (uint)intLCID);
return strLocalizedValue;
}
Сохраняем, выполняем команды Build и Deploy. Проект будет загружен на сервер.
14. Открываем SharePoint сайт и любую страницу, и наживаем "Edit" (или Site Actions -> Edit page).
15. Выбираем "Editing Tools [Tab] -> Insert [Tab] -> Web Part -> Custom [Categories] -> LocalizationDemo -> Add [Button]".
16. Сейчас контент отображается в локали по умолчанию (English - 1033). Выбираем "User Menu" и выполняем "Select Display Language -> Deutsch".
17. Язык на форме измениться автоматически.
Полезные ссылки:
Установка языкового пакета SharePoint 2010.
Оригинал статьи и locale ID (LCID)
Подписаться на:
Сообщения (Atom)