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


Локализация приложений ClickOnce

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

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

В этом разделе описано три способа развертывания приложения ClickOnce для других языков и региональных параметров.

  • Включение всех вспомогательных сборок в одно развертывание.

  • Создание одного развертывания для каждого языка и региональных параметров, содержащего одну вспомогательную сборку.

  • Загрузка вспомогательных сборок по требованию

Включение всех вспомогательных сборок в развертывание

Вместо публикации нескольких развертываний ClickOnce можно опубликовать одно развертывание ClickOnce, содержащее все вспомогательные сборки.

Этот метод используется по умолчанию в Visual Studio. Чтобы использовать этот метод в Visual Studio, вам не нужно выполнять дополнительную работу.

Для использования этого метода с инструментом MageUI.exe необходимо в MageUI.exe задать нейтральный язык и региональные параметры для вашего приложения. Затем необходимо вручную включить в развертывание все вспомогательные сборки. В MageUI.exe можно добавить вспомогательные сборки с помощью кнопки Заполнить на вкладке Файлы манифеста приложения.

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

Примечание.

При использовании этого подхода предполагается, что приложение изменяет высоту, ширину и положение элементов управления автоматически, адаптируя внешний вид с учетом разного размера текстовых строк в разных культурах. Windows Forms содержит разнообразные элементы управления и технологии, которые позволяют разрабатывать форму так, чтобы ее было удобно локализовать, включая элементы управления FlowLayoutPanel и TableLayoutPanel, а также свойство AutoSize. Дополнительные сведения см. в статье "Практическое руководство . Поддержка локализации в формах Windows с помощью autoSize и элемента управления TableLayoutPanel".

Создание одного развертывания для каждого языка и региональных параметров

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

Чтобы использовать этот метод в Visual Studio, задайте свойство "Язык публикации" на вкладке "Публикация" в нужном регионе. Visual Studio будет автоматически включать вспомогательные сборки, необходимые для выбранного региона, и исключит все остальные вспомогательные сборки из развертывания.

Примечание.

В ClickOnce для .NET Core 3.1 и .NET 5 или более поздней версии вы устанавливаете свойства развертывания с помощью средства публикации вместо мастера публикации и страницы публикации конструктора проектов. Дополнительные сведения см. в статье "Развертывание приложения .NET Для Windows с помощью ClickOnce и ClickOnce для .NET".

Вы можете выполнить то же самое с помощью средства MageUI.exe в пакете средств разработки программного обеспечения Microsoft Windows (SDK). Используйте кнопку Заполнить на вкладке Файлы манифеста приложения, чтобы исключить из каталога приложений все остальные вспомогательные сборки, а затем задайте нужное значение в поле Язык и региональные параметры на вкладке Имя вашего манифеста развертывания в MageUI.exe. Эти действия позволяют не только включить нужную вспомогательную сборку, но и задать соответствующий язык и региональные параметры для атрибута language элемента assemblyIdentity в манифесте развертывания.

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

Загрузка вспомогательных сборок по требованию

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

Примечание.

Класс ApplicationDeployment и API в System.Deployment.Application пространстве имен не поддерживаются в .NET Core и .NET 5 и более поздних версиях. В .NET 7 поддерживается новый метод доступа к свойствам развертывания приложения. Дополнительные сведения см. в разделе "Свойства развертывания Access ClickOnce" в .NET. .NET 7 не поддерживает эквивалент методов ApplicationDeployment.

Загрузка вспомогательных сборок по требованию несколько отличается от загрузки по требованию других типов сборок. Дополнительные сведения и примеры кода о том, как включить этот сценарий с помощью средств Windows SDK для ClickOnce, см. в пошаговом руководстве. Скачивание вспомогательных сборок по запросу с помощью API развертывания ClickOnce.

Этот сценарий также можно включить в Visual Studio. Дополнительные сведения см. в пошаговом руководстве. Скачивание вспомогательных сборок по запросу с помощью API развертывания ClickOnce с помощью конструктора.

Тестирование локализованных приложений ClickOnce перед развертыванием

Вспомогательная сборка будет использоваться для приложения Windows Forms только в том случае, если для свойства CurrentUICulture для основного потока приложения задан язык и региональные параметры вспомогательной сборки . Клиенты на местах, вероятно, уже пользуются локализованной версией Windows, в которой нужный язык и региональные параметры по умолчанию заданы правильно.

Существует три варианта тестирования локализованных развертываний до предоставления приложения пользователям.

  • Приложение ClickOnce можно запустить в соответствующих локализованных версиях Windows.

  • Можно задать свойство CurrentUICulture в своем приложении программным образом. (Это свойство нужно задать до вызова метода Run).