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


Локализация команд меню

Вы можете предоставить локализованный текст для команд меню и панели инструментов, создав локализованные VSCT-файлы и локализованные RESX-файлы для VSPackage, а затем обновив файлы проекта, чтобы включить изменения.

Сведения о локализации процесса установки см. в разделе "Локализация пакетов VSIX".

Локализация имен команд

В VSPackage команды меню и кнопки панели инструментов определяются в VSCT-файле .

  1. В Обозреватель решений измените имя VSCT-файла с filename.vsct на filename.en-US.vsct.

  2. Создайте копию filename.en-US.vsct для каждого локализованного языка.

    Назовите имя каждого файла копирования .{ Locale}.vsct, где {Locale} — это определенное имя языка и региональных параметров. Список значений имен языка и региональных параметров см. в разделе Идентификаторы языкового стандарта, назначенные корпорацией Майкрософт.

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

  3. Откройте каждое имя файла. Locale.vsct-файл для локализации текста.

    1. Измените значения элементов ButtonText соответствующим образом для конкретного языка.

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

      В следующем примере показан текст кнопки "Английский" и "Испанский" для команды, чтобы открыть окно инструментов "Дерево семьи" Обозреватель.

      [FamilyTree.en-US.vsct]

    <Button guid="guidLocalizedPackageCmdSet" id="cmdidFamilyTree" priority="0x0100" type="Button">
      <Parent guid="guidSHLMainMenu" id="IDG_VS_WNDO_OTRWNDWS1"/>
      <Icon guid="guidImages" id="bmpPic2" />
      <Strings>
        <CommandName>cmdidFamilyTree</CommandName>
        <ButtonText>Family Tree Explorer</ButtonText>
      </Strings>
    </Button>
    

    [FamilyTree.es-ES.vsct]

    <Button guid="guidLocalizedPackageCmdSet" id="cmdidFamilyTree" priority="0x0100" type="Button">
      <Parent guid="guidSHLMainMenu" id="IDG_VS_WNDO_OTRWNDWS1"/>
      <Icon guid="guidImages" id="bmpPic2" />
      <Strings>
        <CommandName>cmdidFamilyTree</CommandName>
        <ButtonText>Explorar el arbol genealogico</ButtonText>
      </Strings>
    </Button>
    

Локализация других текстовых ресурсов

Текстовые ресурсы, отличные от имен команд, определяются в файлах ресурсов (RESX).

  1. Переименуйте VSPackage.resx в VSPackage.en-US.resx.

  2. Создайте копию ФАЙЛА VSPackage.en-US.resx для каждого локализованного языка.

    Назовите каждую копию VSPackage.{ Locale}.resx, где {Locale} — это определенное имя языка и региональных параметров.

  3. Переименуйте Resources.resx в Resources.en-US.resx.

  4. Создайте копию файла Resources.en-US.resx для каждого локализованного языка.

    Имя каждого копирования Resources.{ Locale}.resx, где {Locale} — это определенное имя языка и региональных параметров.

  5. Откройте каждый RESX-файл , чтобы изменить строковые значения в соответствии с определенным языком и региональными параметрами. В следующем примере показано локализованное определение ресурса для заголовка окна инструментов.

    [Resources.en-US.resx]

    <data name="ToolWindowTitle" xml:space="preserve">
      <value>Family Tree Explorer</value>
    </data>
    

    [Resources.es-ES.resx]

    <data name="ToolWindowTitle" xml:space="preserve">
      <value>Explorador del arbol genealogico</value>
    </data>
    

Включение локализованных ресурсов в проект

Необходимо изменить файл assemblyinfo.cs и файл проекта, чтобы включить локализованные ресурсы.

  1. На узле "Свойства" в Обозреватель решений откройте assemblyinfo.cs или assemblyinfo.vb в редакторе.

  2. Добавьте следующую запись.

    [assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
    

    Это задает английский язык США как язык по умолчанию.

  3. Выгрузите проект.

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

  5. В корневом Project элементе добавьте PropertyGroup элемент с элементом UICulture , соответствующим языку по умолчанию.

    <PropertyGroup>
      <UICulture>en-US</UICulture>
    </PropertyGroup>
    

    Это задает язык и региональные параметры пользовательского интерфейса по умолчанию для элементов управления Windows Presentation Foundation (WPF).

  6. ItemGroup Найдите элемент, содержащий EmbeddedResource элементы.

  7. В элементе, вызывающем EmbeddedResource VSPackage.en-US.resx, замените ManifestResourceName элемент LogicalName элементом, заданным VSPackage.en-US.Resourcesследующим образом:

    <EmbeddedResource Include="VSPackage.en-US.resx">
      <MergeWithCTO>true</MergeWithCTO>
      <LogicalName>VSPackage.en-US.Resources</LogicalName>
    </EmbeddedResource>
    
  8. Для каждого локализованного языка скопируйте EmbeddedResource элемент для VsPackage.en-USи задайте атрибут Include и элемент LogicalName копии в целевой языковой стандарт.

  9. Для каждого локализованного VSCTCompile элемента добавьте элемент, указывающий ResourceName на Menus.ctmenuэлемент, как показано в следующем примере:

    <ItemGroup>
      <VSCTCompile Include="LocalizedPackage.es-ES.vsct">
        <ResourceName>Menus.ctmenu</ResourceName>
      </VSCTCompile>
    </ItemGroup>
    
  10. Сохраните файл проекта и перезагрузите проект.

  11. Выполните сборку проекта.

    Это создает основную сборку и сборки ресурсов для каждого языка. Сведения о локализации процесса развертывания см. в разделе "Локализация пакетов VSIX"