Перейти к содержимому

Как добавить ресурс в visual studio

  • автор:

Как внедрить файлы в ресурсы программы

введите сюда описание изображения

Внедрил три текстовых файла в проект. Думал они все время будут в проекте, однако они ссылаются на файлы в папке debug, что не есть хорошо, так как если этих файлов нет на диске — то и при компиляции возникают ошибки.

Отслеживать
14k 13 13 золотых знаков 38 38 серебряных знаков 63 63 бронзовых знака
задан 15 сен 2016 в 17:45
155 2 2 золотых знака 2 2 серебряных знака 7 7 бронзовых знаков
«Они ссылаются на файлы в папке debug» — непонятно. Кто на кого ссылается?
15 сен 2016 в 17:52

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

15 сен 2016 в 17:53
Кто такие «они»?
15 сен 2016 в 17:55
что показано на скриншоте и как это относится к вопросу?
15 сен 2016 в 18:17

Как я понял, он хочет, что бы файлы были вшиты в программу и на стороне клиента не было в них нужны. @Grundy, а как ты ссылаешь на файле в коде? Мне казалось, что VS по умолчанию их в код зашивает.

15 сен 2016 в 18:53

1 ответ 1

Сортировка: Сброс на вариант по умолчанию

Для добавления ресурсов в проект необходимо щелкнуть правой кнопкой мыши узел Свойства в проекте в Обозревателе решений, щелкнуть Открыть, а затем на странице Ресурсы в Конструкторе проектов нажать кнопку Добавить ресурс. Ресурсы можно добавить в проект в качестве связанных ресурсов (внешние файлы) или как внедренные ресурсы (внедренные непосредственно в файл RESX).

  • При добавлении связанного ресурса в файле RESX со сведениями о ресурсах проекта будет указан только относительный путь на файл ресурса на диске. Если в качестве связанных ресурсов добавить изображения, видео или другие сложные файлы, их можно будет изменять в редакторе по умолчанию, сопоставленном с соответствующим типом файла в конструкторе ресурсов.
  • В случае внедренных ресурсов, данные хранятся непосредственно в файле ресурсов проекта (RESX). Строки могут храниться только как внедренные ресурсы.

После добавления файлов в ресурсы, добавленные файлы помещаются в папку Resources, находящуюся в корне проекта.

Также можно задать действие при построении:

  • None — файл не включается в выходную группу проекта и не компилируется в процессе построения. Примером такого файла является текстовый файл документации, например файл Readme.
  • Compile — файл компилируется в выходные файлы построения. Эта настройка используется для файлов кода.
  • Content — файл не компилируется, но включается в выходную группу «Содержимое». Этот вариант используется по умолчанию для файлов HTM и других веб-файлов.
  • Embedded Resource — файл внедряется в основные выходные файлы построения проекта в виде DLL или исполняемого файла. Обычно это значение используется для файлов ресурсов.

Для задания свойства Действие при построении ( Build Action ) или свойства Копировать в выходной каталог( Copy to Output Directory ) необходимо зайти в свойства у файла ресурсов и изменить необходимое свойство.

Собственно говоря, Вас интересует свойство Действие при построении ( Build Action ) — которое необходимо указать под Ваши нужды.

Полезные ссылки для изучения:

  1. Свойства файла
  2. Связанные и внедренные ресурсы
  3. Ресурсы в файле формата .Resx
  4. Ресурсы в приложениях
  5. Упаковка и развертывание ресурсов

Работа с файлами ресурсов

Этот раздел относится к классическим приложениям Windows, написанным на C++.

Сведения о ресурсах в универсальная платформа Windows приложениях, написанных на C++, см. в разделе «Определение ресурсов приложений» или добавление ресурсов в проекты C++/CLI (управляемые) см. в статье «Ресурсы в классических приложениях» в руководстве разработчика платформа .NET Framework разработчика.

Ресурсы могут состоять из широкого спектра элементов, таких как:

  • Элементы интерфейса, предоставляющие пользователю такие сведения, как растровое изображение, значок или курсор.
  • Пользовательские ресурсы, содержащие данные, необходимые приложению.
  • Ресурсы версии, используемые API установки.
  • Ресурсы меню и диалогового окна.

Вы можете добавить новые ресурсы в проект и изменить их с помощью соответствующего редактора ресурсов. Большинство мастеров Visual C++ автоматически создают RC-файл для проекта.

Редакторы ресурсов и представление ресурсов недоступны в выпусках Express.

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

Сведения о глобализации и локализации ресурсов в управляемых приложениях см. в статье «Глобализация и локализация платформа .NET Framework приложений».

В этом разделе

Файлы ресурсов
Описывает файлы ресурсов и их использование в классических приложениях Windows. Также содержит ссылки на статьи, описывающие использование файлов ресурсов.

Идентификаторы ресурсов (символы)
В этой статье описываются символы и использование диалогового окна Символы ресурсов для управления символами в проекте.

Resource Editors
Описывает редакторы ресурсов, предоставляемые в Visual Studio, и типы ресурсов, которые можно изменить с помощью каждого редактора. Также содержит ссылки на подробные сведения об использовании каждого редактора.

Связанные разделы

C++ в Visual Studio
Ссылки на документацию по Visual C++.

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

Создание файлов ресурсов для приложений .NET

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

  • Создайте текстовый файл, содержащий строковые ресурсы. Для преобразования текстового файла в двоичный файл ресурсов (RESOURCES-файл) можно использовать генератор файлов ресурсов (resgen.exe). Затем двоичный файл ресурсов можно внедрить в исполняемый файл приложения или библиотеку приложения с помощью компилятора языка или во вспомогательную сборку с помощью компоновщика сборок (Al.exe). Дополнительные сведения см. в разделе Ресурсы в текстовых файлах.
  • Создайте XML-файл ресурсов (RESX-файл), который содержит строки, изображения или данные объектов. Для преобразования RESX-файла в двоичный файл ресурсов (RESOURCES-файл) можно использовать генератор файлов ресурсов (resgen.exe). Затем двоичный файл ресурсов можно внедрить в исполняемый файл приложения или библиотеку приложения с помощью компилятора языка или во вспомогательную сборку с помощью компоновщика сборок (Al.exe). Дополнительные сведения см. в разделе Ресурсы в RESX-файлах.
  • Создайте XML-файл ресурсов (RESX-файл) программным способом с помощью типов в пространстве имен System.Resources. Можно создать RESX-файл, перечислить его ресурсы и извлечь конкретные ресурсы по имени. Дополнительные сведения см. в разделе Работа с RESX-файлами программным способом.
  • Создайте двоичный файл ресурсов (RESOURCES-файл) программным способом. Затем этот файл можно внедрить в исполняемый файл приложения или библиотеку приложения с помощью компилятора языка или во вспомогательную сборку с помощью компоновщика сборок (Al.exe). Дополнительные сведения см. в разделе Ресурсы в RESOURCES-файлах.
  • Создайте файл ресурсов в Visual Studio и включите этот файл в проект. В Visual Studio есть редактор ресурсов,с помощью которого можно добавлять, удалять и изменять ресурсы. Во время компиляции файл ресурсов автоматически преобразуется в двоичный RESOURCES-файл и внедряется в сборку приложения или вспомогательную сборку. Дополнительные сведения см. в разделе Файлы ресурсов в Visual Studio.

Ресурсы в формате текстовых файлов

В текстовых файлах (TXT или RESTEXT) можно сохранять только строковые ресурсы. Для нестроковых ресурсов используйте RESX-файлы или создавайте их программными средствами. Текстовые файлы, содержащие строковые ресурсы, имеют следующий формат.

# This is an optional comment. name = value ; This is another optional comment. name = value ; The following supports conditional compilation if X is defined. #ifdef X name1=value1 name2=value2 #endif # The following supports conditional compilation if Y is undefined. #if !Y name1=value1 name2=value2 #endif 

Форматы TXT- и RESTEXT-файлов ресурсов идентичны. Расширение файла RESTEX служит для того, чтобы текстовые файлы сразу опознавались как файлы ресурсов на основе текста.

Строковые ресурсы представляются в виде пар имя/значение, где имя — строка, определяющая ресурс, а значение — строка ресурса, которая возвращается при передаче имени методу извлечения ресурсов, например, ResourceManager.GetString. Имя и значение должны быть разделены знаком равенства (=). Пример:

FileMenuName=File EditMenuName=Edit ViewMenuName=View HelpMenuName=Help 

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

В текстовых файлах допускаются пустые строки (то есть, ресурсы, значение которых равно String.Empty). Пример:

EmptyString= 

Начиная с .NET Framework 4.5 и во всех версиях .NET Core текстовые файлы поддерживают условную компиляцию с конструкциями #ifdef символ. #endif и #if ! символ. #endif . Для определения символов можно использовать генератор файлов ресурсов (resgen.exe) с параметром /define . Каждый ресурс должен иметь собственную конструкцию #ifdef символ. #endif или #if ! символ. #endif . Если при использовании оператора #ifdef указан символ, связанный ресурс добавляется в RESOURCES-файл; в противном случае он не добавляется. Если при использовании оператора #if ! символ не указан, связанный ресурс добавляется в RESOURCES-файл; в противном случае он не добавляется.

Комментарии в текстовых файлах необязательны и начинаются с точки с запятой (;) или знака решетки (#) в начале строки. Строки с комментариями могут находиться в любом месте файла. Комментарии не включаются в скомпилированный RESOURCES-файл, созданный с помощью генератора файлов ресурсов (resgen.exe).

Любые пустые строки в текстовых файлах считаются содержащими пробелы и игнорируются.

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

#Define resources for buttons in the user interface. OKButton=OK CancelButton=Cancel 

Если в текстовом файле содержатся дубликаты имен, генератор файлов ресурсов (resgen.exe) отображает предупреждение и игнорирует второе имя.

Значение не может содержать новые символы строки, но можно использовать escape-символы языка C, например \n , для представления новой строки и \t табуляции. Можно также включить символ обратной косой черты, если он экранирован (например, «\\»). Также допускаются пустые строки.

Сохраняйте ресурсы в формате текстового файла с кодировкой UTF-8 или UTF-16 с прямым или обратным порядком байтов. Но генератор файлов ресурсов (resgen.exe), преобразующий TXT-файл в RESOURCES-файл, по умолчанию обрабатывает файлы в кодировке UTF-8. Если вы хотите, чтобы программа Resgen.exe могла работать с файлом в кодировке UTF-16, необходимо указать метку порядка байтов Юникода (U+FEFF) в начале файла.

Чтобы внедрить файл ресурсов в текстовом формате в сборку .NET, необходимо преобразовать текстовый файл в двоичный файл ресурсов (RESOURCES) с помощью генератора файлов ресурсов (resgen.exe). Затем можно внедрить RESOURCES-файл в сборку .NET с помощью компилятора языка или во вспомогательную сборку с помощью компоновщика сборок (Al.exe).

В следующем примере используется файл ресурсов в текстовом формате GreetingResources.txt для простого консольного приложения «Hello World». В этом текстовом файле определены две строки — prompt и greeting , которые предлагают пользователю ввести свое имя и отображают приветствие.

# GreetingResources.txt # A resource file in text format for a "Hello World" application. # # Initial prompt to the user. prompt=Enter your name: # Format string to display the result. greeting=Hello, ! 

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

resgen GreetingResources.txt 

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

using System; using System.Reflection; using System.Resources; public class Example < public static void Main() < ResourceManager rm = new ResourceManager("GreetingResources", typeof(Example).Assembly); Console.Write(rm.GetString("prompt")); string name = Console.ReadLine(); Console.WriteLine(rm.GetString("greeting"), name); >> // The example displays output like the following: // Enter your name: Wilberforce // Hello, Wilberforce! 
Imports System.Reflection Imports System.Resources Module Example Public Sub Main() Dim rm As New ResourceManager("GreetingResources", GetType(Example).Assembly()) Console.Write(rm.GetString("prompt")) Dim name As String = Console.ReadLine() Console.WriteLine(rm.GetString("greeting"), name) End Sub End Module ' The example displays output like the following: ' Enter your name: Wilberforce ' Hello, Wilberforce! 

Если вы используете Visual Basic и файл с исходным кодом называется Greeting.vb, используйте следующую команду для создания исполняемого файла, содержащего внедренный RESOURCES-файл:

vbc greeting.vb -resource:GreetingResources.resources 

Если вы используете C# и файл исходного кода называется Greeting.cs, исполняемый файл, содержащий внедренный RESOURCES-файл, создается с помощью следующей команды:

csc greeting.cs -resource:GreetingResources.resources 

Ресурсы в RESX-файлах

В отличие от текстовых файлов, в которых могут храниться только строковые ресурсы, в XML-файлах ресурсов (RESX) могут храниться строки, двоичные данные (такие как изображения, значки и аудиоклипы) и программные объекты. RESX-файл содержит стандартный заголовок, который описывает формат записей ресурсов и включает сведения о версии XML, которые используются для анализа данных. За заголовком XML следуют данные в файле ресурсов. Каждый элемент данных состоит из пары «имя-значение», заключенной в тег data . Атрибут name этого тега определяет имя ресурса, а вложенный тег value содержит значение ресурса. Для строковых данных тег value содержит строку.

Например, следующий тег data определяет строковый ресурс с именем prompt и значением «Enter your name:».

 Enter your name:  

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

Для объектов ресурсов тег data содержит атрибут type , указывающий тип данных ресурса. Для объектов, состоящих из двоичных данных, тег data также включает атрибут mimetype , который указывает тип base64 двоичных данных.

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

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

 20   AAEAAAD/////AQAAAAAAAAAMAgAAADtTeX…  

Так как RESX-файлы должны представлять собой XML-код с правильным, заранее определенным форматом, с ними не рекомендуется работать вручную, особенно если они содержат нестроковые ресурсы. Вместо этого в Visual Studio предусмотрен прозрачный интерфейс для создания RESX-файлов и управления ими. Дополнительные сведения см. в разделе Файлы ресурсов в Visual Studio. Создавать RESX-файлы и управлять ими можно также программно. Дополнительные сведения см. в разделе Работа с RESX-файлами программным способом.

Ресурсы в RESOURCES-файлах

Для программного создания двоичного файла ресурсов (RESOURCES-файла) непосредственно из кода можно использовать класс System.Resources.ResourceWriter. Для создания RESOURCES-файла из текстового файла или RESX-файла можно также использовать генератор файлов ресурсов (resgen.exe). Помимо строковых данных, RESOURCES-файл может содержать двоичные данные (массивы байтов) и данные объектов. Для программного создания RESOURCES-файла необходимо выполнить следующие действия.

  1. Создайте объект ResourceWriter с уникальным именем файла. Это можно сделать, указав имя файла или файловый поток для конструктора класса ResourceWriter.
  2. Вызовите одну из перегрузок метода ResourceWriter.AddResource для каждого именованного ресурса, который требуется добавить в файл. Ресурсом может быть строка, объект или коллекция двоичных данных (массив байтов).
  3. Вызовете метод ResourceWriter.Close, чтобы записать ресурсы в файл и закрыть объект ResourceWriter.

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

В следующем примере программным способом создается RESOURCES-файл с именем CarResources.resources, в котором хранятся шесть строк, значок и два объекта, определяемые приложением (два объекта Automobile ). Класс Automobile , определенный и созданный в этом примере, отмечен атрибутом SerializableAttribute, который позволяет ему сохраняться модулем форматирования при двоичной сериализации.

using System; using System.Drawing; using System.Resources; [Serializable()] public class Automobile < private string carMake; private string carModel; private int carYear; private int carDoors; private int carCylinders; public Automobile(string make, string model, int year) : this(make, model, year, 0, 0) < >public Automobile(string make, string model, int year, int doors, int cylinders) < this.carMake = make; this.carModel = model; this.carYear = year; this.carDoors = doors; this.carCylinders = cylinders; >public string Make < get < return this.carMake; >> public string Model < get < return this.carModel; >> public int Year < get < return this.carYear; >> public int Doors < get < return this.carDoors; >> public int Cylinders < get < return this.carCylinders; >> > public class Example < public static void Main() < // Instantiate an Automobile object. Automobile car1 = new Automobile("Ford", "Model N", 1906, 0, 4); Automobile car2 = new Automobile("Ford", "Model T", 1909, 2, 4); // Define a resource file named CarResources.resx. using (ResourceWriter rw = new ResourceWriter(@".\CarResources.resources")) < rw.AddResource("Title", "Classic American Cars"); rw.AddResource("HeaderString1", "Make"); rw.AddResource("HeaderString2", "Model"); rw.AddResource("HeaderString3", "Year"); rw.AddResource("HeaderString4", "Doors"); rw.AddResource("HeaderString5", "Cylinders"); rw.AddResource("Information", SystemIcons.Information); rw.AddResource("EarlyAuto1", car1); rw.AddResource("EarlyAuto2", car2); >> > 
Imports System.Drawing Imports System.Resources Public Class Automobile Private carMake As String Private carModel As String Private carYear As Integer Private carDoors AS Integer Private carCylinders As Integer Public Sub New(make As String, model As String, year As Integer) Me.New(make, model, year, 0, 0) End Sub Public Sub New(make As String, model As String, year As Integer, doors As Integer, cylinders As Integer) Me.carMake = make Me.carModel = model Me.carYear = year Me.carDoors = doors Me.carCylinders = cylinders End Sub Public ReadOnly Property Make As String Get Return Me.carMake End Get End Property Public ReadOnly Property Model As String Get Return Me.carModel End Get End Property Public ReadOnly Property Year As Integer Get Return Me.carYear End Get End Property Public ReadOnly Property Doors As Integer Get Return Me.carDoors End Get End Property Public ReadOnly Property Cylinders As Integer Get Return Me.carCylinders End Get End Property End Class Module Example Public Sub Main() ' Instantiate an Automobile object. Dim car1 As New Automobile("Ford", "Model N", 1906, 0, 4) Dim car2 As New Automobile("Ford", "Model T", 1909, 2, 4) ' Define a resource file named CarResources.resx. Using rw As New ResourceWriter(".\CarResources.resources") rw.AddResource("Title", "Classic American Cars") rw.AddResource("HeaderString1", "Make") rw.AddResource("HeaderString2", "Model") rw.AddResource("HeaderString3", "Year") rw.AddResource("HeaderString4", "Doors") rw.AddResource("HeaderString5", "Cylinders") rw.AddResource("Information", SystemIcons.Information) rw.AddResource("EarlyAuto1", car1) rw.AddResource("EarlyAuto2", car2) End Using End Sub End Module 

После создания RESOURCES-файла его можно внедрить в исполняемый файл среды выполнения или библиотеку, используя параметр /resource компилятора языка, или во вспомогательную сборку с помощью компоновщик сборок (Al.exe).

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

При добавлении файла ресурсов в проект Visual Studio среда Visual Studio создает RESX-файл в каталоге проекта. В Visual Studio имеются редакторы ресурсов, позволяющие добавлять строки, изображения и двоичные объекты. Так как редакторы предназначены для обработки только статических данных, их нельзя использовать для хранения программных объектов; данные объектов необходимо записывать в RESX- или RESOURCES-файл программным способом. Дополнительные сведения см. в статье Работа с RESX-файлами программным способом и разделе Ресурсы в RESOURCES-файлах.

При добавлении локализованных ресурсов указывайте для них то же имя корневого файла, что и для основного файла ресурсов. Также в имени файла необходимо указать язык и региональные параметры. Например, если добавить файл ресурсов с именем Resources.resx, можно также создать файлы ресурсов с именами Resources.en-US.resx и Resources.fr-FR.resx для хранения локализованных ресурсов для английского языка (США) и французского языка (Франция) соответственно. Следует также указать язык и региональные параметры по умолчанию для приложения. Это язык и региональные параметры, ресурсы которых используются в том случае, если для конкретного языка и региональных параметров никаких локализованных ресурсов обнаружить не удается.

Чтобы указать язык и региональные параметры по умолчанию, в Обозреватель решений в Visual Studio:

  • Откройте свойства проекта, щелкните проект правой кнопкой мыши и выберите пункт Свойства (или ALT + ВВОД при выборе проекта).
  • Перейдите на вкладку Package (Пакет).
  • В области Общие выберите соответствующий язык или язык и региональные параметры в элементе управления Нейтральная сборка языка .
  • Сохраните изменения.

Во время компиляции среда Visual Studio сначала преобразует RESX-файлы проекта в двоичные файлы ресурсов (RESOURCES) и сохраняет их в подкаталоге каталога obj проекта. Visual Studio внедряет любые файлы ресурсов, не содержащие локализованные ресурсы, в основную сборку, созданную проектом. Если в каких-либо файлах ресурсов есть локализованные ресурсы, Visual Studio внедряет их в отдельные вспомогательные сборки для каждого локализованного языка и региональных параметров. Затем Visual Studio сохраняет каждую вспомогательную сборку в каталоге, имя которого соответствует локализованному языку и региональным параметрам. Например, локализованные ресурсы английского языка (США) сохраняются во вспомогательной сборке в подкаталоге en-US.

См. также

  • System.Resources
  • Ресурсы в приложениях .NET
  • Упаковка и развертывание ресурсов

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

Область применения:yesVisual Studio Visual Studio для Mac noVisual Studio Code no

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

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

  1. Если решение SharePoint еще не открыто в Visual Studio, откройте решение.
  2. В Обозреватель решений откройте контекстное меню для имени компонента в узле «Компоненты«, а затем нажмите кнопку «Добавить ресурс компонента». Этот шаг добавляет файл ресурса в функцию в формате, .например 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 по умолчанию.

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

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

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

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

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

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

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

    HttpContext.GetGlobalResourceObject("Resource File Name", "String ID") 

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

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

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

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

    См. также

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *