Upload
nhung
View
52
Download
2
Embed Size (px)
DESCRIPTION
Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета. Технологии разработки Internet -приложений. ASP.NET приложения – локализация ресурсов приложения. - PowerPoint PPT Presentation
Citation preview
проф. В.К.Толстых, www.tolstykh.com
Технологии Технологии разработки разработки InternetInternet--приложенийприложений
ASP.NET ASP.NET приложения –приложения – локализация ресурсов приложениялокализация ресурсов приложения
Из цикла лекций «Технологии разработки Internet-приложений» для студентов 4-го курса кафедры Компьютерных технологий физического факультета Донецкого национального университета
Что такое локализация культуры?
Локализация — это процесс настройки приложения на работу в заданной региональной или
языковой среде. Основной частью локализации является перевод пользовательского
интерфейса на другой язык.
Один способ сделать это состоит в том, чтобы создать несколько вариантов страницы на
разных языках. Однако если исходная страница периодически меняется, то этот способ
может оказаться весьма трудоемким, с высокой вероятностью ошибок и сложным в
поддержке.
ASP.NET позволяет создавать страницу, которая может получать содержимое и прочие
данные, основываясь на языке, выбранном для браузера, или на явном выборе языка
пользователем. К содержимому и другим данным страница обращается как к ресурсам,
и такие данные могут храниться в файлах ресурсов или в других источниках.
Файл ресурсов — это XML-файл, содержащий строки, которые требуется перевести на
другие языки. Файл ресурсов содержит пары «ключ-значение». Регистр букв в именах
ключей не учитывается.
Далее рассмотрим пример поддержки культуры посредством сессий.
1. Определяем класс с нашими культурамиCulture.cs
2. Создаём базовый класс для всех страницПереопределяем метод InitializeCulture базового класса
Теперь все страницы приложения должны быть производными от BasePage:
В файл Global.asax в начале сессии устанавливаем начальное значение культуры :
3. Интерфейс выбора языка
Для возврата дополнительного аргумента
обработчику события с культурой страницы
4. При необходимости изменяем язык на странице
Сохраняем в сессии новую культуру, полученную от
щелчка на кнопке выбора языка
Можем форматировать вид страницы в зависимости от культуры, например:
Можем кэшировать вывод страницы в зависимости от культуры ( VaryByCustom="lang"). Для этого в файл Global.asax добавляем:
5. Создаём ресурсы локализации – .resx
Существует понятие глобальных и локальных ресурсов.
Глобальные ресурсы размещаются в корневом каталоге приложения App_GlobalResources в виде групп файлов, различных для каждой культуры, например:
global.resx , global.uk.resx, global.en.resx …
Доступ к глобальным ресурсам можно получить из любой страницы приложения и из любого
отдельного класса, размещённого в папке App_Code или Bin.
Локальные ресурсы размещаются в каталогах
App_LocalResources внутри каждой папки, где
необходимо реализовать локализацию страниц
приложения. Имя каждого файла-ресурса
создаётся на основе имени той страницы, которую
она локализует. Например, для двух культур
(языков) страницы organization.aspx в её же
каталоге должна быть папка App_LocalResources с двумя файлами:
Культура по умолчанию
Пример файлов-ресурсов (русский, украинский) в редакторе Visual Studio 2012 для страницы organization.aspx
5. Web-элементы локализации
Authors Авторы <b>проекта</b>
locText.Text Текст… <a href="Default.aspx?petition">ссылка</a> …
Для визуализации в дизайнере
Локализация свойств элементов, включая текст
Для локализации текста в CSS-свойстве HTML-элемента, в случае локальных ресурсов, лучше всего использовать конструкцию типа:
<h1 runat="server" id="h1" meta:resourcekey="h1" class="myh1">h1</h1>
Здесь текст для h1 размещается в виде InnerText тега с id="h1":
Для локализации нескольких свойств Web-элементов лучше всего использовать конструкции следующего типа, например, для свойств Text и NavigateUrl ссылки HyperLink:
<asp:HyperLink id="hlMyRef" runat="server" meta:resourcekey="hlMyRef">hlMyRef</asp:HyperLink>
где
Для визуализации в дизайнере
h1.InnerText Текст для h1… <i>курсив</i>…
Для визуализации в дизайнере
hlMyRef.Text Текст на ссылке hlMyRef…
hlMyRef.NavigateUrl MyRef.aspx
Page.Title Web-личность
notAuthorized Пользователь не авторизован