Ресурсы приложения и система управления ресурсамиApp resources and the Resource Management System

В этом разделе рассказывается, как создавать, упаковывать и использовать ресурсы вашего приложения со строками, изображениями и файлами.This section shows you how to author, package, and consume your app's string, image, and file resources. Например, можно упаковать вместе с казуальной игрой файл, содержащий определения уровней игры, и загружать его во время выполнения.For example, you might package a file along with your casual game containing a definition of the game's levels, and load the file at run-time. Мы также рассмотрим, как обеспечение независимости ресурсов от логики приложения позволяет легко локализовать и настраивать приложение для разных стран, дисплеев, параметров специальных возможностей и других контекстов с различными пользователями и компьютерами.We also show you how maintaining your resources independently of the app's logic makes it easy to localize and customize your app for different locales, device displays, accessibility settings, and other user and machine contexts. Ресурсы, такие как строки и изображения, обычно должны быть представлены в нескольких вариантах для различных языков, масштабов и контрастности.Resources such as strings and images typically need to exist in multiple language, scale, and contrast variants. Для таких ресурсов предлагается поддержка системы управления ресурсами.For resources such as that, you have the support of the Resource Management System.

Существуют два типа ресурсов приложений.There are two types of app resource.

  • Файловый ресурс — ресурс, хранимый в виде файла на диске.A file resource is a resource stored as a file on disk. Файловый ресурс может содержать точечный рисунок, XAML, XML, HTML или любые другие данные.A file resource can contain a bitmap image, XAML, XML, HTML, or any other kind of data.
  • Вложенный ресурс — ресурс, встроенный в определенный файл, содержащий ресурсы.An embedded resource is a resource that is embedded within some containing resource file. Наиболее распространенным примером является строковый ресурс, расположенный в файле ресурсов (RESW- или RESJSON-файле).The most common example is a string resource embedded within a Resources File (.resw or .resjson).

Дополнительные сведения о преимуществах локализации приложений см. в разделе Глобализация и локализация.For more info about the value proposition of localizing your app, see Globalization and localization.

СтатьяArticle ОписаниеDescription
Система управления ресурсамиResource Management System Во время выполнения сборки система управления ресурсами создает индекс всех различных вариантов ресурсов, которые упакованы с вашим приложением.At build time, the Resource Management System creates an index of all the different variants of the resources that are packaged up with your app. Во время выполнения система определяет текущие параметры пользователя и компьютера и загружает ресурсы, которые лучше всего подходят для этих параметров.At run-time, the system detects the user and machine settings that are in effect and loads the resources that are the best match for those settings.
Как система управления ресурсами сопоставляет и выбирает ресурсыHow the Resource Management System matches and chooses resources В момент запроса ресурса текущему контексту ресурса может в той или иной степени соответствовать несколько кандидатов.When a resource is requested, there may be several candidates that match the current resource context to some degree. Система управления ресурсами анализирует все кандидаты и выбирает из них лучший, который будет возвращен.The Resource Management System will analyze all of the candidates and determine the best candidate to return. В этом разделе данный процесс описывается подробно, а также приводятся примеры.This topic describes that process in detail and gives examples.
Как система управления ресурсами сопоставляет языковые тегиHow the Resource Management System matches language tags В предыдущем разделе Как система управления ресурсами сопоставляет и выбирает ресурсы приводятся общие сведения о сопоставлении квалификаторов.The previous topic (How the Resource Management System matches and chooses resources) looks at qualifier-matching in general. В данном разделе основное внимание уделяется сопоставлению языковых тегов.This topic focuses on language-tag-matching in more detail.
Адаптация ресурсов с учетом языка, масштаба, высокой контрастности и других квалификаторовTailor your resources for language, scale, high contrast, and other qualifiers В этом разделе описывается общая концепция квалификаторов ресурсов, особенности их использования и назначение каждого из имен квалификаторов.This topic explains the general concept of resource qualifiers, how to use them, and the purpose of each of the qualifier names.
Локализация строк в манифесте пакета приложения и интерфейсе пользователяLocalize strings in your UI and app package manifest Если вы хотите, чтобы ваше приложение поддерживало разные языки интерфейса, а в вашем коде или разметке XAML либо манифесте пакета приложения есть строковые литералы, переместите эти строки из кода или разметки в файл ресурсов (RESW-файл).If you want your app to support different display languages, and you have string literals in your code or XAML markup or app package manifest, then move those strings into a Resources File (.resw). Затем можно создать переведенную копию этого файла ресурсов для каждого языка, поддерживаемого вашим приложением.You can then make a translated copy of that Resources File for each language that your app supports.
Загрузка изображений и ресурсов, адаптированных по масштабу, теме, высокой контрастности и другим аспектамLoad images and assets tailored for scale, theme, high contrast, and others Приложение может загружать файлы ресурсов изображений, содержащие изображения, адаптированные к коэффициенту масштабирования дисплея, теме, высокой контрастности и другим параметрам времени выполнения.Your app can load image resource files containing images tailored for display scale factor, theme, high contrast, and other runtime contexts.
Схемы URIURI schemes Существует несколько схем URI (универсального кода ресурсов), которые можно использовать для формирования ссылок на файлы приложения, получаемые из пакета приложения, папок данных приложения или облака.There are several URI (Uniform Resource Identifier) schemes that you can use to refer to files that come from your app's package, your app's data folders, or the cloud. Можно также использовать схему URI для обозначения строк, загружаемых из RESW-файлов ресурсов приложения.You can also use a URI scheme to refer to strings loaded from your app's Resources Files (.resw).
Указание ресурсов по умолчанию, которые используются в приложенииSpecify the default resources that your app uses Если у приложения нет ресурсов, которые соответствуют определенным параметрам устройства клиента, используются ресурсы приложения по умолчанию.If your app doesn't have resources that match the particular settings of a customer device, then the app's default resources are used. В этом разделе описывается, как указать эти ресурсы.This topic explains how to specify what those default resources are.
Добавление ресурсов в пакет приложения, а не в пакет ресурсовBuild resources into your app package, instead of into a resource pack Некоторым видам приложений (многоязычные словари, средства перевода и т. д.) необходимо переопределить поведение пакета приложения по умолчанию и встроить ресурсы в пакет приложения, а не в отдельные пакеты ресурсов.Some kinds of apps (multilingual dictionaries, translation tools, etc.) need to override the default behavior of an app bundle, and build resources into the app package instead of having them in separate resource packages. В этом разделе объясняется, как это сделать.This topic explains how to do that.
Интерфейсы API индексирования ресурсов пакета (PRI) и пользовательские системы сборкиPackage resource indexing (PRI) APIs and custom build systems С помощью интерфейсов API индексирования ресурсов пакета (PRI) можно создать настраиваемую систему сборки для ресурсов приложения UWP.With the package resource indexing (PRI) APIs, you can develop a custom build system for your UWP app's resources. Система сборка сможет создавать файлы индекса ресурсов пакета (PRI), управлять версиями и создавать дампы файлов (в формате XML) пакетов (PRI) любого уровня сложности, требуемого приложению UWP.The build system will be able to create, version, and dump (as XML) package resource index (PRI) files to whatever level of complexity your UWP app needs.
Компиляция ресурсов вручную с помощью MakePri.exeCompile resources manually with MakePri.exe MakePri.exe — программа командной строки, которую можно использовать для создания и наполнения PRI-файлов.MakePri.exe is a command line tool that you can use to create and dump PRI files. Она интегрирована как часть MSBuild в Microsoft Visual Studio, но разработчики могут использовать ее для создания пакетов вручную или с помощью пользовательских систем сборки.It is integrated as part of MSBuild within Microsoft Visual Studio, but it could be useful to you for creating packages manually or with a custom build system.
Использование системы управления ресурсами Windows 10 в устаревшем приложении или игреUse the Windows 10 Resource Management System in a legacy app or game Упаковав свое приложение или игру .NET или Win32 в виде пакета MSIX или APPX, можно использовать систему управления ресурсами для загрузки ресурсов приложения, адаптированных к контексту среды выполнения.By packaging your .NET or Win32 app or game as an .msix or .appx package, you can leverage the Resource Management System to load app resources tailored to the run-time context. В этой статье подробно рассматриваются соответствующие методы.This in-depth topic describes the techniques.

См. также раздел Поддержка плитки и всплывающих уведомлений для языка, масштаба и высокой контрастности.Also see Tile and toast notification support for language, scale, and high contrast.