Поделиться через


Пошаговое руководство. Локализация столбцов, типов контента и списков

Дата последнего изменения: 7 декабря 2010 г.

Применимо к: SharePoint Foundation 2010

В этой статье
Сценарий
Создание проекта SharePoint
Создание компонента с областью действия на уровне семейства веб-сайтов
Добавление глобальных ресурсов в проект
Создание столбцов сайта, типа контента и определения списка
Создание компонента для подготовки экземпляра списка
Добавление ресурсов компонента
Тестирование проекта

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

  • Использование выражений ресурсов в XML-определениях для столбцов, типов контента и списков.

  • Развертывание ресурсов локализации для одного компонента.

  • Развертывание общих ресурсов локализации для нескольких компонентов.

Необходимые компоненты

Общие требования см. в статье, в которой описываются требования к разработке решений SharePoint. Помимо этого для работы с данным пошаговым руководством потребуется:

Сценарий

В данном пошаговом руководстве в Microsoft Visual Studio 2010 будет создан проект SharePoint под названием WingtipReports. Проект включает два компонента: один с областью действия на уровне семейства веб-сайтов, что позволит включать его для всего семейства сайтов, и другой с областью действия на уровне веб-сайта, что позволит включать его для отдельных веб-сайтов в семействе.

Первый компонент добавляет несколько новых элементов в семейство веб-сайтов, включая ряд настраиваемых столбцов сайта, настраиваемый тип контента сайта под названием Weekly Status Report и настраиваемый шаблон списка под названием Weekly Status Reports. Все эти элементы локализуются путем замены отображаемых строк из кода на выражения ресурсов Microsoft ASP.NET, которые извлекают значения локализованных строк из файлов языковых ресурсов (.resx). Файлы языковых ресурсов устанавливаются в виде глобальных ресурсов, что обеспечивает общий доступ к ним для других компонентов, созданных в других развертываниях разработчиками Wingtip.

Второй компонент с областью действия на уровне веб-сайта предоставляет экземпляр списка Weekly Status Reports. Большая часть отображаемого текста для этого экземпляра списка находится в столбцах сайта и типах контента сайта, которые предоставляются при включении первого компонента. (Поэтому в определении второго компонента указывается, что его включение зависит от состояния первого компонента.) Однако у экземпляра списка имеется собственное название и описание, и этот текст локализуется путем извлечения переводов из другого набора файлов ресурсов. Поскольку в этих ресурсах локализуется только один экземпляр списка, они устанавливаются в виде локальных ресурсов, доступных только для компонента, из которого они устанавливаются.

Создание проекта SharePoint

Сначала создайте проект SharePoint в Visual Studio 2010 и назовите его WingtipReports.

Чтобы создать проект SharePoint, выполните следующие действия:

  1. Запустите Visual Studio 2010 от имени администратора.

  2. Откройте диалоговое окно Создать проект, указав пункт Создать в меню Файл и выбрав Создать проект.

  3. Разверните узел SharePoint в разделе Visual C# или Visual Basic и выберите 2010.

  4. В области Шаблоны выберите Пустой проект SharePoint, измените название проекта на WingtipReports и нажмите кнопку OK.

    Появится мастер настройки SharePoint.

  5. На странице Укажите сайт и уровень безопасности для отладки введите URL-адрес для сайта SharePoint, в который нужно добавить новый элемент настраиваемого поля, или воспользуйтесь расположением по умолчанию (http://< имя_системы>/).

  6. В разделе Какова степень доверия для этого решения SharePoint? выберите Развернуть как решение фермы.

  7. Нажмите кнопку Готово.

    Проект появится в обозревателе решений.

  8. В обозревателе решений щелкните узел проекта и нажмите клавишу F4.

    Появится окно Свойства.

  9. Установите для свойства Включить сборку в пакет значение False.

    В проекте нет кода и для него не нужно разворачивать сборку.

  10. Нажмите Ctrl+Shift+S, чтобы сохранить все изменения.

Создание компонента с областью действия на уровне семейства веб-сайтов

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

Чтобы создать компонент с областью действия на уровне семейства веб-сайтов, выполните следующие действия:

  1. В обозревателе решений щелкните правой кнопкой мыши папку Компоненты и выберите пункт Добавить компонент.

    Будет добавлена папка с именем Feature1, и откроется Конструктор компонентов.

  2. Щелкните правой кнопкой мыши папку Feature1, выберите пункт Переименовать и введите WeeklyStatusReport.

  3. В конструкторе компонентов замените автоматически подставленное значение для поля Название следующей строкой:

    $Resources:WeeklyStatusFeature
    

    Эта строка является выражением ASP.NET. Знак доллара ($) указывает, что за ним следует выражение. Часть Resources указывает тип выражения. Вторая часть после двоеточия (:) — это значение выражения, которое будет вычисляться. В данном случае WeeklyStatusFeature — это ключ в файле ресурсов. SharePoint Foundation вычисляет выражение и заменяет его на локализованное значение, найденное в файле ресурсов. Далее в этом пошаговом руководстве будет создан файл ресурсов, в котором находится правильная пара "ключ-значение".

    Иногда попадаются выражения ресурсов аналогичные следующему:

    $Resources:wingtip,WeeklyStatusFeature
    

    Значение до запятой (,) указывает имя основное имя для файла ресурсов, wingtip. Для выражения ресурса в данном шаге можно использовать такой же синтаксис, однако в шаге 8 будет задано свойство, которое делает ненужным указание основного имени файла.

  4. В поле Описание вставьте следующую строку:

    $Resources:WeeklyStatusFeatureDesc
    
  5. В списке Область выберите Сайт.

  6. Если окно Обозреватель пакетов не открыто, в меню Вид укажите пункт Другие окна и выберите Обозреватель пакетов.

  7. В Обозревателе пакетов выберите узел $Resources:WeeklyStatusFeature и нажмите клавишу F4, чтобы открыть окно Свойства.

  8. В окне Свойства задайте для свойства Файл ресурсов по умолчанию значение wingtip.

  9. Измените значение свойства Путь развертывания на WingtipReports.

  10. Нажмите Ctrl+Shift+S, чтобы сохранить все изменения.

Добавление глобальных ресурсов в проект

Следующим шагом является добавление файлов ресурсов локализации в решение SharePoint. Файлы, добавляемые на данном этапе, развертываются как глобальные ресурсы. Глобальные ресурсы устанавливаются в папку %ProgramFiles%\Common Files\Microsoft Shared\web server extensions\14\Resources на всех серверах в ферме, где они находятся в общем доступе для разных компонентов, включая компоненты, развертываемые другими пользователями. В данном пошаговом руководстве предполагается, что создаваемые сейчас столбцы сайта и типы контента будут использоваться в других компонентах, которые будут разрабатываться для будущих проектов.

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

Чтобы добавить файлы глобальных ресурсов, выполните следующие действия:

  1. В обозревателе решений щелкните узел проекта. Затем в меню Проект выберите пункт Добавить сопоставленную папку SharePoint.

  2. В диалоговом окне Сопоставленная папка SharePoint выберите Resources и нажмите кнопку ОК.

    В проект будет добавлена папка "Resources". Проверьте свойства этой папки. Обратите внимание, что свойство DeploymentLocation имеет значение {SharePointRoot}\Resources

  3. В обозревателе решений выберите папку Resources. В меню Проект выберите пункт Добавить элемент.

  4. В диалоговом окне Добавление элемента разверните узел Visual C#, если разработка ведется на языке C#, или Обычные элементы, если работа ведется в Visual Basic. Выберите пункт Общие. В области шаблона выберите Файл ресурсов. Назовите его Wingtip.resx и нажмите кнопку Добавить.

    Файл ресурсов будет добавлен в проект и откроется в редакторе управляемых ресурсов.

    СоветСовет

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

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

  6. В диалоговом окне Открыть с помощью в разделе Выберите программу, которую необходимо использовать для открытия этого файла выберите Редактор XML (текст). Затем нажмите кнопку ОК.

    Ресурс откроется в редакторе XML.

  7. В редакторе XML прокрутите файл до конца и вставьте пустую строку над конечным тегом </root>. Установите курсор на пустую строку и вставьте следующий XML-код.

    <data name="Accomplishments" xml:space="preserve">
        <value>Accomplishments (invariant)</value>
      </data>
      <data name="BlockingIssues" xml:space="preserve">
        <value>Blocking Issues (invariant)</value>
      </data>
      <data name="Direction" xml:space="preserve">
        <value>LTR</value>
        <comment>Can be LTR, RTL, or none</comment>
      </data>
      <data name="FromDate" xml:space="preserve">
        <value>From (invariant)</value>
      </data>
      <data name="PlanForNextWeek" xml:space="preserve">
        <value>Plan For Next Week (invariant)</value>
      </data>
      <data name="SubmittedBy" xml:space="preserve">
        <value>Submitted By (invariant)</value>
      </data>
      <data name="ToDate" xml:space="preserve">
        <value>To (invariant)</value>
      </data>
      <data name="WeeklyStatusFeature" xml:space="preserve">
        <value>Weekly Status Reports (invariant)</value>
      </data>
      <data name="WeeklyStatusFeatureDesc" xml:space="preserve">
        <value>Provides support for weekly status report lists. (invariant)</value>
      </data>
      <data name="WeeklyStatusListTemplate" xml:space="preserve">
        <value>Weekly Status Reports List (invariant)</value>
      </data>
      <data name="WeeklyStatusListTemplateDesc" xml:space="preserve">
        <value>A list of weekly progress reports. (invariant)</value>
      </data>
      <data name="WeeklyStatusReportCT" xml:space="preserve">
        <value>Weekly Status Report (invariant)</value>
      </data>
      <data name="WeeklyStatusReportCTDesc" xml:space="preserve">
        <value>Add a new weekly status report. (invariant)</value>
      </data>
    
  8. Нажмите Ctrl+S, чтобы сохранить файл. Затем в меню Файл нажмите кнопку Закрыть, чтобы закрыть файл.

  9. В обозревателе решений выберите файл Wingtip.resx. В меню Правка выберите команду Копировать. Затем выберите команду Вставить.

    В папку "Resources" добавляется файл с названием "Копия Wingtip.resx".

  10. Щелкните правой кнопкой мыши файл "Копия Wingtip.resx" и выберите пункт Переименовать. Переименуйте его в Wingtip.язык-СТРАНА/РЕГИОН.resx, гдеязык — это двухбуквенный код языка веб-сайта по умолчанию, а СТРАНА/РЕГИОН — это двухбуквенный код для субкультуры.

    Например, если языком по умолчанию является английский, то именем файла будет Wingtip**.en-US**.resx.

    Сведения о языковых идентификаторах см. в описании класса System.Globalization.CultureInfo.

    Важное примечаниеВажно!

    В выражениях ресурсов указание на файл ресурсов дается с помощью его основного имени файла, например "Wingtip". Извлекая значение ресурса, SharePoint Foundation находит файл ресурсов с данным основным именем файла, за которым следует языковой идентификатор, соответствующий значению свойства CurrentUICulture выполняющегося в данный момент потока. SharePoint Foundation ищет точное совпадение. Например, если языковой идентификатор текущего потока равен "pt-BR", SharePoint Foundation будет искать файл ресурсов с именем "BaseFilename.pt-BR.resx". Файлы с таким же языковым кодом, но другой субкультурой, например "основное_имя_файла.pt.resx" и "основное_имя_файла.pt-PT.resx", игнорируются.

    Если SharePoint Foundation не находит файл ресурсов, соответствующий языковому идентификатору выполняющегося потока, он ищет резервный файл ресурсов. Первым кандидатом на роль такого файла является файл ресурсов с инвариантной культурой, то есть не имеющий языкового идентификатора в конце имени файла. Например, в текущем проекте файлом ресурсов с инвариантной культурой является Wingtip.resx. Если SharePoint Foundation не может найти файл ресурсов с инвариантной культурой, он пытается воспользоваться языком по умолчанию. Если файл ресурсов для языка по умолчанию не найден, отображается имя ресурсов.

  11. Повторите шаги 9 и 10, добавив идентификатор культуры для альтернативного языка, включенного на веб-сайте.

  12. Откройте оба созданных файла языковых ресурсов для разных культур и замените слово "invariant" на языковой идентификатор для файла. Например, в файле Wingtip.en-US.resx строка "Accomplishments (invariant)" превратится в " Accomplishments (en-US)".

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

  13. Нажмите Ctrl+Shift+S, чтобы сохранить все изменения.

Создание столбцов сайта, типа контента и определения списка

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

Чтобы создать столбцы сайта, тип контента и определение списка, выполните следующие действия:

  1. В обозревателе решений щелкните узел проекта. Затем в меню Проект выберите Добавить элемент.

  2. Разверните узел SharePoint в разделе Visual C# или Visual Basic и выберите 2010.

  3. В области Шаблоны выберите Пустой элемент, измените название элемента на Fields и нажмите кнопку Добавить.

    В обозревателе решений появится папка Fields. В папке находится файл с названием Elements.xml.

  4. Откройте файл Elements.xml в редакторе.

  5. В файле Elements.xml между открывающим тегом <Elements> и закрывающим тегом </Elements> добавьте следующие определения полей.

      <Field ID="{fcc46300-de6e-481e-ac2c-5bc369946712}"
             Name="SubmittedBy"
             DisplayName="$Resources:SubmittedBy"
             Type="User" List="UserInfo" ShowField="NameWithPicture"
             UserSelectionMode="PeopleOnly" UserSelectionScope="0"
             Required="TRUE" />
      <Field ID="{ab597cd8-5392-4c9a-bf99-51de026408d0}"
             Name="FromDate" 
             DisplayName="$Resources:FromDate"
             Type="DateTime" Format="DateOnly"
             Required="TRUE" >
        <Default>[today]</Default>
      </Field>
      <Field ID="{a69582b1-6756-40af-ab7a-7beab306afc9}"
             Name="ToDate" 
             DisplayName="$Resources:ToDate"
             Type="Calculated" Format="DateOnly" ResultType="DateTime" 
             ReadOnly="TRUE" Required="FALSE">
        <Formula>=StartDate+7</Formula>
        <FieldRefs>
          <FieldRef Name="FromDate"/>
        </FieldRefs>
      </Field>
      <Field ID="{3aaad916-127b-48ad-9c07-9b20d5c82aea}"
             Name="Accomplishments"
             DisplayName="$Resources:Accomplishments"
             Type="Note" NumLines="10" RichText="TRUE" RichTextMode="FullHtml"
             Required="TRUE"/>
      <Field ID="{300423a8-5cd6-43de-be09-58318aebe443}"
             Name="PlanForNextWeek"
             DisplayName="$Resources:PlanForNextWeek"
             Type="Note" NumLines="6" RichText="TRUE" RichTextMode="FullHtml"
             Required="FALSE" />   
      <Field ID="{a757c55d-85de-40ca-9cc9-b2ba31a0221d}"
             Name="BlockingIssues"
             DisplayName="$Resources:BlockingIssues"
             Type="Note" NumLines="4" RichText="TRUE" RichTextMode="FullHtml"
             Required="FALSE" />
    
  6. Нажмите Ctrl+S, чтобы сохранить файл Elements.xml, и затем закройте его.

  7. В обозревателе решений щелкните узел проекта. Затем в меню Проект выберите Добавить элемент.

  8. В области Шаблоны выберите Тип контента, измените название элемента на ContentTypes и нажмите кнопку Добавить.

  9. В мастере настройки SharePoint в поле От какого базового типа контента должен наследовать этот тип контента? выберите Элемент. Нажмите кнопку Готово.

    В обозревателе решений появится папка ContentTypes. В папке находится другой файл с названием Elements.xml.

  10. В новом файле Elements.xml удалите всю разметку между открывающим тегом <Elements> и закрывающим тегом </Elements>. Затем вставьте следующее определение типа контента.

    <!-- Parent ContentType: Item (0x01) -->
      <ContentType ID="0x010013573845130047cdb90148d52e593cef"
                   Name="$Resources:WeeklyStatusReportCT"
                   Group="Custom Content Types"
                   Description="$Resources:WeeklyStatusReportCTDesc"
                   Inherits="TRUE"
                   Version="0">
        <FieldRefs>
          <FieldRef ID="{fa564e0f-0c70-4ab9-b863-0177e6ddd247}" Name="Title" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{fcc46300-de6e-481e-ac2c-5bc369946712}" Name="SubmittedBy" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{ab597cd8-5392-4c9a-bf99-51de026408d0}" Name="FromDate" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{a69582b1-6756-40af-ab7a-7beab306afc9}" Name="ToDate" Required="FALSE" ShowInNewForm="FALSE" ShowInEditForm="FALSE"/>
          <FieldRef ID="{3aaad916-127b-48ad-9c07-9b20d5c82aea}" Name="Accomplishments" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{300423a8-5cd6-43de-be09-58318aebe443}" Name="PlanForNextWeek" Required="TRUE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
          <FieldRef ID="{a757c55d-85de-40ca-9cc9-b2ba31a0221d}" Name="BlockingIssues" Required="FALSE" ShowInNewForm="TRUE" ShowInEditForm="TRUE"/>
        </FieldRefs>
      </ContentType>
    
  11. Нажмите Ctrl+S, чтобы сохранить файл Elements.xml. Затем закройте файл.

  12. В обозревателе решений щелкните узел проекта. Затем в меню Проект выберите Добавить элемент.

  13. В области Шаблоны выберите Определение списка из типа контента, измените название элемента на ListDefinitions и нажмите кнопку Добавить.

  14. В мастере настройки SharePoint в поле Отображаемое имя определения списка: вставьте следующее выражение ресурса.

    $Resources:WeeklyStatusListTemplate
    
  15. Убедитесь, что значением Тип контента для определения списка: является $Resources:WeeklyStatusReportCT (WingtipReports\ContentTypes).

  16. Снимите флажок Добавить экземпляр списка для этого определения списка и нажмите кнопку Готово.

    В обозревателе решений появится папка ListDefinitions. В папке находится другой файл с названием Elements.xml, а также файл Schema.xml.

  17. В новом файле Elements.xml замените значение атрибута Description на следующее выражение ресурса.

    $Resources:WeeklyStatusListTemplateDesc"
    
  18. Нажмите Ctrl+S, чтобы сохранить файл Elements.xml. Затем закройте файл.

  19. В обозревателе решений дважды щелкните компонент WeeklyStatusReport.feature, чтобы открыть его в конструкторе.

  20. В конструкторе компонентов убедитесь, что в списке Элементы в компоненте имеются следующие элементы.

    • Ресурсы

    • Поля

    • ContentTypes

    • ListDefinitions

  21. Щелкните Манифест (внизу). Убедитесь, что манифест идентичен следующей разметке XML (за исключением значения атрибута Id):

    <Feature xmlns="https://schemas.microsoft.com/sharepoint/" 
             DefaultResourceFile="wingtip" 
             Description="$Resources:WeeklyStatusFeatureDesc" 
             Id="e18a0885-083e-43f6-94fe-b6d378a2468c" 
             Scope="Site" 
             Title="$Resources:WeeklyStatusFeature">
      <ElementManifests>
        <ElementManifest Location="Resources\Elements.xml" />
        <ElementManifest Location="Fields\Elements.xml" />
        <ElementManifest Location="ContentTypes\Elements.xml" />
        <ElementManifest Location="ListDefinitions\Elements.xml" />
        <ElementFile Location="ListDefinitions\Schema.xml" />
      </ElementManifests>
    </Feature>
    

Создание компонента для подготовки экземпляра списка

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

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

Чтобы создать компонент для подготовки экземпляра списка, выполните следующие действия:

  1. В обозревателе решений щелкните правой кнопкой мыши папку Компоненты и выберите пункт Добавить компонент.

    Будет добавлена папка с именем Feature1, и откроется Конструктор компонентов.

  2. Щелкните правой кнопкой мыши папку Feature1, выберите пункт Переименовать и введите WeeklyStatusList.

  3. В конструкторе компонентов замените автоматически подставленное значение для поля Название следующей строкой:

    $Resources:WeeklyStatusListFeature
    
  4. В поле Описание вставьте следующую строку:

    $Resources:WeeklyStatusListFeatureDesc
    
  5. Убедитесь, что значением списка Область является Веб-сайт.

  6. Щелкните узел Зависимости активации компонента (внизу) и разверните область зависимостей. После этого нажмите кнопку Добавить.

    Появится диалоговое окно Добавить зависимости активации компонента.

  7. Щелкните $Resources:WeeklyStatusFeature и нажмите кнопку Добавить.

  8. В обозревателе решений щелкните узел проекта. Затем в меню Проект выберите Добавить элемент.

    Появится диалоговое окно Добавить новый элемент.

  9. Разверните узел SharePoint в разделе Visual C# или Visual Basic и выберите 2010.

  10. В области Шаблоны выберите Экземпляр списка. Примите имя по умолчанию и нажмите кнопку Добавить.

  11. В мастере настройки SharePoint замените значение Отображаемое имя списка: на следующую строку:

    $Resources:WeeklyStatusList
    
  12. Убедитесь, что поле Создать экземпляр списка: имеет значение $Resources:WeeklyStatusListTemplate (WingtipReports\ListDefinitions).

  13. Замените значение поля Описание на следующую строку:

    $Resources:WeeklyStatusListDesc
    
  14. Убедитесь, что установлен флажок Добавить этот экземпляр списка на панель быстрого запуска, и нажмите кнопку Готово.

    В обозревателе решений появится папка ListInstance1, а в папке появится файл Elements.xml, который будет открыт в редакторе. Обратите внимание, что выражения ресурсов предоставляют значения для атрибутов Title и Description элемента ListInstance.

  15. Нажмите Ctrl+Shift+S, чтобы сохранить все изменения.

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

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

Чтобы добавить в компонент локальные ресурсы, выполните следующие действия:

  1. В обозревателе решений щелкните правой кнопкой мыши папку WeeklyStatusList и выберите пункт Добавить ресурс компонента.

  2. В диалоговом окне Добавить ресурс в поле Выберите культуру файла ресурсов: укажите "Инвариантный язык (Инвариантная страна)". Затем нажмите кнопку ОК.

    В папку WeeklyStatusList будет добавлен файл ресурсов. Обратите внимание, что основным именем файла является Resources. Это основное имя файла всегда используется для локальных ресурсов компонента. При развертывании компонента файлы локальных ресурсов помещаются в папку Resources в папке компонента в файловой системе.

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

  4. В диалоговом окне Открыть с помощью в разделе Выберите программу, которую необходимо использовать для открытия этого файла: выберите Редактор XML (текст). Затем нажмите кнопку ОК.

    Ресурс откроется в редакторе XML.

  5. В редакторе XML прокрутите файл до конца и вставьте пустую строку над конечным тегом </root>. Установите курсор на пустую строку и вставьте следующий XML-код.

      <data name="WeeklyStatusList" xml:space="preserve">
        <value>Weekly Status Reports (invariant)</value>
      </data>
      <data name="WeeklyStatusListDesc" xml:space="preserve">
        <value>Use the Weekly Status Reports list to submit progress reports. (invariant)</value>
      </data>
      <data name="WeeklyStatusListFeature" xml:space="preserve">
        <value>Weekly Status Report List (invariant)</value>
      </data>
      <data name="WeeklyStatusListFeatureDesc" xml:space="preserve">
        <value>Creates a weekly status report list. (invariant)</value>
      </data>
    
  6. Нажмите Ctrl+S, чтобы сохранить файл ресурсов, а затем закройте его.

  7. Повторите шаги 1–6, создав файл ресурсов для языка по умолчанию для веб-сайта. На шаге 5 замените слово "invariant" кодом языка по умолчанию (например, "en-US").

  8. Повторите шаги 1–6, создав файл ресурсов для альтернативного языка, поддерживаемого на веб-сайте. На шаге 5 замените слово "invariant" кодом альтернативного языка (например, "es-ES").

  9. В обозревателе решений дважды щелкните компонент WeeklyStatusLis, чтобы открыть его в конструкторе.

  10. Убедитесь, что единственным элементом в списке Элементы в компоненте: является ListInstance1 (WingtipReports).

  11. В конструкторе компонентов щелкните Манифест (внизу). Убедитесь, что манифест аналогичен следующему XML-коду:

    <Feature xmlns="https://schemas.microsoft.com/sharepoint/" 
             Title="$Resources:WeeklyStatusListFeature" 
             Description="$Resources:WeeklyStatusListFeatureDesc" 
             Id="30444f12-2c40-4d2a-92dd-68a30192f0ae" Scope="Web">
      <ActivationDependencies>
        <ActivationDependency FeatureDescription="$Resources:WeeklyStatusFeatureDesc" 
                              FeatureId="e18a0885-083e-43f6-94fe-b6d378a2468c"
                              FeatureTitle="$Resources:WeeklyStatusFeature" />
      </ActivationDependencies>
      <ElementManifests>
        <ElementManifest Location="ListInstance1\Elements.xml" />
        <ElementFile Location="Resources\Resources.en-US.resx" />
        <ElementFile Location="Resources\Resources.es-ES.resx" />
      </ElementManifests>
    </Feature>
    

    В этом манифесте у атрибута Id будет другое значение. Имена культур для файлов ресурсов также могут отличаться.

  12. Нажмите Ctrl+Shift+S, чтобы сохранить все изменения.

Тестирование проекта

Запустите проект, чтобы убедиться в его правильной работе.

Тестирование проекта

  1. В Visual Studio нажмите клавишу F5, чтобы начать отладку.

    В области Вывод помещаются отчеты о процессе сборки и развертывания. В конечном счете веб-сайт появится в браузере.

  2. В панели быстрого запуска найдите ссылку на список Weekly Status Reports. Название списка должно быть на языке интерфейса сайта по умолчанию.

  3. Щелкните стрелку рядом со своим именем пользователя в верхнем правом углу страницы. Щелкните Язык интерфейса и выберите имя альтернативного языка, который использовался в пошаговом руководстве. Убедитесь, что название ссылки для списка Weekly Status Reports изменилось на альтернативный язык.

  4. Щелкните ссылку на список Weekly Status Reports. Затем нажмите кнопку Добавить новый элемент или ее эквивалент на альтернативном языке.

    Появится форма Создать элемент.

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

  6. Выполните аналогичные действия и убедитесь, что в столбцах сайта, типе контента и шаблоне списка правильно используются ресурсы локализации.

  7. Убедитесь, что Weekly Status Reports является компонентом с областью действия на уровне семейства веб-сайтов, а Weekly Status Report List является компонентом с областью действия на уровне сайта.

См. также

Задачи

Пошаговое руководство. Локализация веб-части

Концепции

Основные сведения о многоязыковом пользовательском интерфейсе