Обнаружение и использование ресурсов для определенного языка и региональных параметров
Обновлен: Ноябрь 2007
Среда CLR поддерживает извлечение ресурсов, зависящих от языка и региональных параметров, упакованных и развертываемых во вспомогательных сборках. Вспомогательные сборки содержат только файлы ресурсов или неупакованные ресурсы, например GIF-файлы. Они не содержат никакого исполняемого кода.
В модели развертывания вспомогательных сборок создается приложение со сборкой по умолчанию (основной сборкой) и несколькими вспомогательными сборками. Следует упаковывать ресурсы для сборки по умолчанию или нейтральной сборки с основной сборкой и создавать отдельные вспомогательные сборки для каждого языка, поддерживаемого приложением. Поскольку эти вспомогательные сборки не являются частью основной сборки, можно легко заменять или обновлять ресурсы, относящиеся к определенному языку и региональным параметрам, не заменяя основную сборку для приложения.
Класс ResourceManager предоставляет доступ к ресурсам, зависимым от языка и региональных параметров, во время выполнения программы и управляет извлечением ресурсов приложением с помощью процесса перехода к другим ресурсам. Дополнительные сведения см. в подразделе "Процесс использования резервных ресурсов" раздела Упаковка и развертывание ресурсов.
Объект ResourceManager определяет, какие ресурсы должны быть извлечены, на основании свойства CurrentUICulture текущего потока. Например, если приложение компилируется с ресурсами на английском языке по умолчанию в основной сборке и двух вспомогательных сборках, содержащих ресурсы для французского и немецкого языка, и для свойства CurrentUICulture задано значение "de", объект ResourceManager извлекает ресурсы на немецком языке.
Свойство CurrentUICulture можно задать несколькими способами. Необходимо помнить, что способ, которым задано это свойство, повлияет на то, каким образом объект ResourceManager будет извлекать ресурсы, зависящие от языка и региональных параметров.
Можно задать свойство CurrentUICulture для конкретного языка и региональных параметров в коде приложения. Явное задание этого свойства в приложении гарантирует извлечение ресурсов для этого языка и региональных параметров независимо от того, какие языки используются в обозревателе или в операционной системе на компьютере пользователя. Рассмотрим приложение, которое скомпилировано с ресурсами на английском языке по умолчанию и двумя вспомогательными сборками, содержащими ресурсы на французском и немецком языках. Если для свойства CurrentUICulture задано значение "de", то объект ResourceManager будет всегда извлекать ресурсы на немецком языке, даже если пользователь выберет в качестве языка операционной системы французский. Перед явным заданием этого свойства в приложении необходимо удостовериться, что это действительно требуемое поведение.
Примечание. В приложениях ASP.NET необходимо задавать свойство CurrentUICulture явно, поскольку маловероятна ситуация, когда параметр на сервере совпадет с входящими запросами клиента.
Свойство CurrentUICulture задано неявно, если в приложении действительно определен параметр CurrentUICulture. Если это свойство не задано явно в приложении, оно задается функцией GetUserDefaultUILanguage в многоязычном пользовательском интерфейсе (MUI) операционных систем Windows 2000 и Windows XP, где пользователь может задать язык по умолчанию. Если пользователь не задал язык пользовательского интерфейса, будет выбран язык, заданный системой, то есть язык ресурсов операционной системы.
Примечание. Если это веб-приложение, то в нем свойство CurrentUICulture может быть задано явно как язык, который воспринимается веб-обозревателем пользователя.
Примеры установки свойства CurrentUICulture см. в разделе Using the CurrentUICulture Property.
Дополнительные сведения об извлечении ресурсов для конкретного языка и региональных параметров см. в разделах Retrieving Resources in Satellite Assemblies и Resources in ASP.NET Assemblies.