Локализация решений SharePoint

Процесс подготовки приложений, чтобы их можно было использовать во всем мире, называется локализацией. Локализация — это преобразование ресурсов для приведения их в соответствие с конкретным языком и региональными параметрами. Дополнительные сведения см. в разделе Глобализация и локализация приложений. В этом разделе содержится обзор локализации решения SharePoint.

Чтобы локализовать решение, необходимо удалить из кода жестко заданные строки и выделить их в файлы ресурсов. Файл ресурса — это XML-файл с расширением .resx . Файл ресурсов содержит переведенные версии строк, используемых в вашем решении. Дополнительные сведения см. в разделе Ресурсы в приложениях.

Примечание.

Добавляйте в файлы ресурсов решения SharePoint только строковые ресурсы. Хотя редактор ресурсов позволяет добавлять нестроковые ресурсы, нестроковые ресурсы не развертываются в SharePoint.

Файлы ресурсов

Существует три типа файлов ресурсов: по умолчанию, не зависящие от языка и зависящие от языка.

Тип файла ресурсов Description
По умолч. Файлы ресурсов по умолчанию, также называемые резервными ресурсами, содержат строки, локализованные для языка и региональных параметров по умолчанию, например для английского языка. Они используются, если локализованные файлы ресурсов для указанного языка не найдены. Ресурсы по умолчанию не имеют отдельных файлов, они хранятся в основной сборке приложения.
Не зависящий от языка Файл ресурсов, который содержит строки, локализованные для языка, но не для конкретных региональных параметров. Например, "fr" для французского языка.
Языковые настройки Файл ресурсов, который содержит строки, локализованные для языка и региональных параметров. Например, "fr-CA" для канадского варианта французского языка.

Дополнительные сведения см. в разделе Иерархическая организация ресурсов для локализации.

Чтобы указать файлы ресурсов по умолчанию в проектах SharePoint, которые вы разрабатываете в Visual Studio, выберите invariant Language (Invariant Country) в списке языков и региональных параметров диалогового окна "Добавить ресурс" при добавлении файла ресурса.

Добавление файла ресурсов

Команды для добавления файлов ресурсов находятся в контекстном меню узла решения и узлов компонентов в Обозреватель решений.

Добавление глобального файла ресурсов в решение SharePoint

  1. В Visual Studio откройте решение SharePoint.

  2. В Обозреватель решений выберите узел проекта SharePoint, а затем в строке меню выберите "Добавить новый элемент проекта>".

  3. В диалоговом окне "Добавить новый элемент" выберите шаблон "Файл глобальных ресурсов" и нажмите кнопку "Добавить".

    Примечание.

    Шаблон элемента проекта "Файл глобальных ресурсов" отображается только в том случае, если выбран элемент проекта SharePoint.

  4. В диалоговом окне "Добавление ресурса" выберите язык и региональные параметры для файла ресурсов, например английский (США).

    Этот шаг добавляет глобальный файл ресурсов в решение в формате, {Resource_x_}.{culture}.resxнапример Resource1.en-US.resx.

  5. Когда редактор ресурсов откроется в Visual Studio, добавьте ресурсы в файл ресурсов.

Добавление файла ресурсов компонента в компонент SharePoint

  1. Если решение SharePoint еще не открыто в Visual Studio, откройте решение.

  2. В Обозреватель решений откройте контекстное меню для имени компонента в узле "Компоненты", а затем нажмите кнопку "Добавить ресурс компонента".

    Этот шаг добавляет файл ресурса в функцию в формате, {ResourceFileName}.{culture}{.resx}например Feature1.en-US.resx.

  3. Когда редактор ресурсов откроется в Visual Studio, добавьте ресурсы в файл ресурсов.

Локализация решений SharePoint в Visual Studio

При локализации решения следует учитывать все текстовые данные, которые отображаются в решении для пользователей. Информационные сообщения, сообщения об ошибках и строки пользовательского интерфейса должны быть преобразованы, а эти переводы помещаются в файлы ресурсов.

Каждая строка в файле ресурсов имеет уникальный идентификатор. Используйте один и тот же идентификатор для переведенной строки в каждом файле ресурсов. Например, если "String1" — это идентификатор первой строки в файле ресурсов по умолчанию, используйте тот же идентификатор для первой строки в файлах ресурсов, относящихся к разным языкам.

Обычно в приложениях Visual Studio SharePoint используется три области: функции, разметка страницы ASPX и код. Для иллюстрации в следующих разделах предполагается, что у вас есть решение SharePoint, которое необходимо локализовать на немецком и японском языках. По умолчанию используется английский язык.

Локализация компонентов

Для локализации компонента необходимо заменить жестко заданный заголовок и описание компонента на выражение, которое ссылается на переведенный заголовок и строку в локализованном файле ресурсов. Это изменение в конструкторе компонентов в Visual Studio.

Чтобы локализовать англоязычный компонент на немецком и японском языках, добавьте в ваш проект три элемента проекта Resource File — по одному для английского, немецкого и японского языков. Файлы ресурсов компонентов нельзя использовать для локализации разметки ИЛИ кода ASPX; для них требуются отдельные файлы ресурсов.

После создания файлов ресурсов компонента добавьте в них переведенные строки. Для доступа к локализованным строкам используется выражение в следующем формате:

$Resources:String ID

Ресурсы компонентов в Visual Studio всегда называются ресурсами. Если выбрать язык, отличный от инвариантного языка, в имя файла ресурса добавляется идентификатор языка и региональных параметров. Например, если добавить файл ресурсов компонента для инвариантного языка (по умолчанию), он будет называться Resources.resx. Если добавить ресурс компонента для конкретного языка, выбрав язык и региональные параметры Japanese (Japan), файл будет называться Resources.ja-JP.resx. Имена файлов ресурсов компонентов автоматически назначаются и не могут быть изменены.

Область ресурсов компонентов является локальным для добавляемой функции. Чтобы создать ресурсы, которые могут использоваться любым файлом компонента или элемента в решении, добавьте элемент проекта Global Resources File (Глобальный файл ресурсов) вместо файла ресурсов компонента. Элемент проекта Global Resources File находится в папке 2010 в разделе SharePoint в диалоговом окне Добавление нового элемента. Файлы глобальных ресурсов развертываются во вложенную папку \Resources корневой папки SharePoint.

Локализация функции

  1. В Обозреватель решений откройте контекстное меню узла Feature1 и нажмите кнопку "Добавить ресурс компонента".

  2. В диалоговом окне "Добавить ресурс" выберите invariant Language из списка в качестве языка и региональных параметров для файла ресурсов компонента языка по умолчанию.

  3. Повторите предыдущий шаг для каждого локализованного языка, выбрав выбранные языки для локализованных файлов ресурсов компонентов.

    Создаются отдельные файлы ресурсов компонентов: один для языка по умолчанию и один для каждого локализованного языка, который требуется поддерживать.

  4. Откройте каждый файл ресурсов в редакторе ресурсов, а затем введите все идентификаторы строк и их значения.

    Например, в файле ресурсов компонента по умолчанию введите строковый идентификатор заголовка со значением "Мой заголовок функции", а второй строковый идентификатор описания с значением "Мое описание функции". Для каждого локализованного файла ресурсов используйте те же идентификаторы строк, которые используются в ресурсе компонентов по умолчанию, но введите локализованные строки для значений.

  5. После ввода всех значений ресурсов откройте контекстное меню функции (например, Feature1.feature), а затем выберите конструктор представлений, чтобы открыть функцию в конструкторе компонентов.

  6. Чтобы локализовать поля Title и Description в функции, используйте следующий формат, чтобы ввести значения в их полях:

    $Resources:Идентификатор строки

    Например, введите $Resources:Title в поле "Название компонента" и $Resources:Description в поле "Описание компонента".

    Идентификаторы строк должны соответствовать тем, которые используются в файлах ресурсов.

  7. Выберите ключ F5 для сборки и запуска приложения.

  8. В SharePoint откройте меню "Действия сайта", выберите "Сайт Параметры", а затем в разделе "Действия сайта" выберите ссылку "Управление функциями сайта".

  9. В SharePoint измените язык отображения по умолчанию.

    Локализованное название и описание функции отображаются в приложении. Чтобы отобразить локализованные ресурсы, сервер SharePoint должен установить языковой пакет, соответствующий языку и региональным параметрам файла ресурса.

Локализация разметки страницы ASPX

Чтобы локализовать страницы ASP.NET, добавьте три элемента проекта "Файл ресурсов" в проект: один для английского языка, один для немецкого языка и один для японского языка. Если вам не нужно локализовать код в дополнение к разметке, можно добавить глобальные файлы ресурсов.

ASP.NET страницы (ASPX) обычно используют жестко закодированные строковые значения. Чтобы локализовать эти строки, замените их выражениями, ссылающимися на локализованные ресурсы.

Локализация разметки ASPX

  1. Добавьте отдельные файлы ресурсов: один для языка по умолчанию и один для каждого локализованного языка.

    Если вы локализуете только разметку, а не код, добавьте элемент проекта Global Resources File. Если вы локализуете код и разметку, добавьте элемент проекта "Файл ресурсов".

    1. Чтобы добавить файл глобальных ресурсов, в Обозреватель решений откройте контекстное меню для элемента проекта SharePoint и нажмите кнопку "Добавить>новый элемент". В узле SharePoint 2010 выберите шаблон глобального файла ресурсов.

    2. Чтобы добавить файл ресурсов, в Обозреватель решений откройте контекстное меню для элемента проекта SharePoint и нажмите кнопку "Добавить>новый элемент". Выберите шаблон файла ресурсов.

    Примечание.

    Обязательно добавьте файлы ресурсов в элемент проекта SharePoint, чтобы включить свойство типа развертывания. Это свойство необходимо позже в этой процедуре. Если у вашего решения нет элемента проекта SharePoint, можно добавить пустой проект SharePoint и удалить его файл Elements.xml по умолчанию.

  2. Присвойте файлу ресурсов языка по умолчанию имя выбранного .resx расширения, например MyAppResources.resx. Используйте одно и то же базовое имя для каждого локализованного файла ресурсов, но добавьте идентификатор языка и региональных параметров. Например, назовите локализованный немецкий ресурс MyAppResources.de-DE.resx.

  3. Измените значение свойства типа развертывания каждого файла ресурса на AppGlobalResource , чтобы вызвать их развертывание в папке App_GlobalResources сервера. Папка App_GlobalResources находится в папке C:\inetpub\wwwroot\wss\VirtualDirectory\<port number>\App_GlobalResources.

  4. Если вы используете ресурсы для локализации кода в дополнение к разметке ASPX, оставьте значение свойства "Действие сборки" каждого файла в качестве внедренного ресурса. Если вы используете файлы ресурсов только для локализации разметки, то при необходимости можно изменить значение свойства файлов на Content. Дополнительные сведения см. в разделе "Локализация решений SharePoint".

    Примечание.

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

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

  6. В разметке XML для страницы ИЛИ элемента управления ASPX замените жестко закодированные строки значениями, которые используют следующий формат:

    <%$Resources:Resource File Name, String ID%>
    

    Например, чтобы локализовать текст для элемента управления меткой на странице приложения, изменится:

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="Label text"></asp:Label>
    </asp:Content>
    

    до

    <asp:Content ID="Main" ContentPlaceHolderID="PlaceHolderMain" runat="server">
    <asp:Label ID="lbl" runat="server" Text="<%$Resources:MyAppResources,String1%>"></asp:Label>
    </asp:Content>
    
  7. Выберите ключ F5 для сборки и запуска приложения.

  8. В SharePoint измените язык отображения по умолчанию.

    Локализованные строки отображаются в приложении. Чтобы отобразить локализованные ресурсы, сервер SharePoint должен установить языковой пакет, соответствующий языку и региональным параметрам файла ресурса.

Локализация кода

Помимо локализации строк компонентов и разметки ASP.NET, также необходимо локализовать строки сообщения и строки ошибок, которые отображаются в коде решения. Локализованные информационные сообщения и сообщения об ошибках содержатся во вспомогательных сборках. Вспомогательные сборки содержат строки, видимые пользователям, например текст пользовательского интерфейса и выходные сообщения, такие как исключения.

Visual Studio использует стандартную модель платформа .NET Framework концентратора и периферийной модели. Центр звезды или основная сборка программы содержит ресурсы языка по умолчанию. Лучи или вспомогательные сборки содержат ресурсы для конкретного языка. Дополнительные сведения см. в статье Упаковка и развертывание ресурсов. Вспомогательные сборки компилируются из файлов ресурсов (.resx). При добавлении файлов ресурсов для конкретного языка в проект и пакета решения Visual Studio компилирует файлы ресурсов в вспомогательные сборки с именем {Project Name}.resources.dll.

Локализация кода

  1. В Обозреватель решений откройте контекстное меню для элемента проекта и нажмите кнопку "Добавить>модуль".

    Выберите шаблон файла ресурсов.

    Примечание.

    Обязательно добавьте файл ресурса в элемент проекта SharePoint, чтобы свойство типа развертывания было доступно. Это свойство необходимо позже в этой процедуре.

  2. Присвойте файлу ресурсов языка по умолчанию имя выбранного .resx расширения, например MyAppResources.resx.

  3. Повторите шаги 1 и 2, чтобы добавить отдельные файлы ресурсов в элемент проекта SharePoint: по одному для каждого языка локализации.

    Используйте одно и то же базовое имя для каждого локализованного файла ресурсов, но добавьте идентификатор языка и региональных параметров. Например, назовите локализованный немецкий ресурс MyAppResources.de-DE.resx.

  4. Откройте каждый файл ресурса и добавьте локализованные строки. Используйте в каждом файле одинаковые идентификаторы строки.

  5. Измените значение свойства типа развертывания каждого файла ресурса на AppGlobalResource , чтобы каждый файл был развернут в папке App_GlobalResources сервера.

  6. Оставьте значение свойства Действия сборки каждого файла в качестве внедренного ресурса.

    Внедренные ресурсы компилируются в DLL проекта.

  7. Создайте проект, чтобы создать вспомогательные библиотеки DLL ресурсов.

  8. В конструкторе пакетов выберите вкладку "Дополнительно", а затем добавьте вспомогательные сборки.

  9. В поле "Расположение" добавьте папку идентификатора языка и региональных параметров в путь расположения, например de-DE\<Project Item Name.resources.dll>.

  10. Если решение еще не ссылается на сборку System.Web , добавьте в него ссылку и добавьте директиву в код System.Web.

  11. Найдите все жестко заданные строки в коде, отображаемые пользователям, например, текст пользовательского интерфейса, ошибок и текст сообщений. Замените их вызовом метода GetGlobalResourceObject, используя следующий синтаксис:

    HttpContext.GetGlobalResourceObject("Resource File Name", "String ID")
    
  12. Выберите ключ F5 для сборки и запуска приложения.

  13. В SharePoint измените язык отображения по умолчанию.

    Локализованные строки отображаются в приложении. Чтобы отобразить локализованные ресурсы, сервер SharePoint должен установить языковой пакет, соответствующий языку и региональным параметрам файла ресурса.

Нелокализованный код использует жестко закодированные строковые значения. Чтобы локализовать строки кода, замените их вызовами GetGlobalResourceObject, который является методом, который ссылается на локализованные ресурсы.

Локализация кода веб-части

В веб-частях имеется компонент редактора пользовательских свойств, который включает атрибуты кода, использующие жестко заданные строки, такие как WebDisplayName, Category и WebDescription. Чтобы заменить строковые значения для этих атрибутов, создайте отдельный класс, производный от класса атрибута. В этих классах задайте свойство атрибута. Свойство атрибута зависит от базового класса. Например, DisplayNameValue является свойством атрибута WebDisplayName, а DescriptionValue — свойством атрибута WebDescription.

В производном классе сошлитесь на идентификатор строки из файла ресурсов и объект ResourceManager, чтобы получить локализованное значение для идентификатора строки. Верните это значение в атрибут редактора свойств.

См. также