Интернациональные приложения ASP.NET
Локальные ресурсы
Локальные ресурсы – это особый тип ресурсных файлов, которые содержат значения для конкретной страницы, а не для всего приложения. Этот тип ресурсов удобно использовать когда требуется создать мультиязычный интерфейс для конкретной страницы.
Перевести страницу на несколько языков можно также используя глобальные ресурсы. Однако, в этом случае придется вручную задавать соответствие ключей ресурсного файла и элементов веб-формы. Если веб-форма большая по размеру, это может занимать длительное время. Поэтому в этом случае процесс разработки формы становится менее эффективным.
Вместо использования глобальных ресурсов, можно воспользоваться локальными ресурсами. Локальные ресурсы не могут быть использованы в рамках других программных компонент приложения, они доступны только в рамках той формы, для которой они были созданы.
Для создания формы, поддерживающей одновременно несколько языков, используется следующая последовательность действий:
- создается стандартная веб-форма с определенным набором элементов управления;
- для веб-формы генерируется файл ресурсов;
- при необходимости создаются дополнительные ресурсные файлы для поддержки дополнительных культур.
Давайте рассмотрим каждый из этапов создания формы, поддерживающей несколько культур.
Для начала необходимо определить веб-форму, которая будет содержать необходимый набор элементов управления.
Как видно, эта форма содержит достаточно стандартное определение. При этом форма будет имееть следующий внешний вид.
Созданная форма содержит метку, поле ввода и кнопку. Как видно, для данной формы значения метки и кнопки подлежат переводу на другой язык, если культура пользователя не является русскоязычной. Как упоминалось ранее, для этого можно воспользоваться глобальными ресурсами: самостоятельно определить значения ключей ресурсного файла и связать их с элементами формы. Однако, в данном случае будет правильно воспользоваться локальными ресурсами.
Для создания локальных ресурсов необходимо переключить режим редактирования страницы в режим "Design". После этого в главном меню "Tools" появится элемент "Generate Local Resource".
Воспользовавшись этим пунктом меню, мы можем создать файл локальных ресурсов для страницы. В этом случае в проект будет добавлена папка "App_LocalResources", в которой появится файл ресурсов, соответствующий данной странице.
Если посмотреть содержимое этого файла ресурсов, то в нем можно обнаружить набор ключей, которые соответствуют элементам управления на странице.
Если теперь обратиться к разметке страницы, то можно обнаружить изменения, которые сделала среда разработки при генерации файла ресурсов.
Как видно, при определении каждого элемента управления в данном случае задается соответствие ключу в файле ресурсов.
После этого можно скопировать файл ресурсов, добавив к его имени суффикс, соответствующий той культуре, для которой создается многоязычный интерфейс. Например, можно определить несколько ресурсных файлов для английского, русского, немецкого и др. языков. В этом случае среда исполнения также в автоматическом режиме будет определять текущую культуру пользователя, и использовать соответствующий файл ресурсов.
Таким образом, локальные ресурсы являются более удобным инструментом, чем глобальные ресурсы, когда требуется переопределить внешний вид элементов управления на странице.
Краткие итоги
Локальные ресурсы – это особый тип ресурсных файлов, которые ассоциируются с конкретной страницей веб-приложения. Данные из файлов локальных ресурсов могут использоваться только на той странице, к которой привязан файл ресурсов. Файл ресурсов генерируется средой разработки и автоматически привязывается к элементам управления веб-формы.
Контрольные вопросы
- Что такое культура?
- Какой класс содержит информацию о культуре?
- Какую информацию включает в себя класс, определяющий культуру?
- Каким образом задается культура? Какие бывают идентификаторы культуры?
- Каким образом среда исполнения ASP.NET узнает какой именно файл ресурсов следует использовать в данный момент?
- Каким образом среда исполнения ASP.NET определяет культуру для текущего пользователя?
- Что такое глобальные ресурсы?
- Каким образом осуществляется доступ к значениям из файла глобальных ресурсов?
- Что такое локальные ресурсы?
- Чем отличаются локальные ресурсы от глобальных?
- В каких случаях следует использовать глобальные ресурсы, а в каких локальные?
- Как осуществляется генерация локальных ресурсов?
- Как осуществляется связывание элементов формы с локальными ресурсами?
- В какой папке хранятся файлы локальных ресурсов?