» Главная
eXcode.ru » Статьи » ASP / ASP.NET
» Новости
» Опросы
» Файлы
» Журнал



Пользователей: 0
Гостей: 7





Упрощенная локализация Web-приложений




Определение региональных настроек пользователя

Для локализации приложений в ASP.NET 1.x разработчику часто приходилось писать код для определения региональных настроек пользователя. Этот код часто помещался в global.asax и его задачей стояла установка языка пользователя в качестве языка текущего процесса, путем создания объекта CultureInfo и присвоения его свойствам CurrentCulture и CurrentUICulture объекта CurrentThread:

void Application_BeginRequest (Object sender, EventArgs e){  if (Request.UserLanguages.Length > 0)   {    
CultureInfo UserCulture = CultureInfo.CreateSpecificCulture(Request.UserLanguages[0]);    
Thread.CurrentThread.CurrentCulture = UserCulture;    
Thread.CurrentThread.CurrentUICulture = UserCulture; }}

В ASP.NET 2.0 существует возможность переложить определение региональных настроек пользователя на среду выполнения. Достаточно установить атрибуты Culture="auto"и UICulture="auto" директивы @Page, чтобы для страницы региональные настройки пользователя определялись автоматически. В случае. если необходимо достичь этого эффекта на всех страницах сайта, достаточно в файл web.config добавить следующую строку:

<globalization culture="auto" uiCulture="auto" />

Выражения для локализации

ASP.NET 2.0 позволяет генерировать сборки с локальными ресурсами для каждой страницы и связывать элементы управления с данными, хранимыми в этих ресурсах с помощью выражений, размещаемых непосредственно в коде представления в ASPX файле. Для этого используется атрибут meta:resourcekey, значение которого анализируется во время выполнения страницы.

<asp:LinkButton id="lnkSelectLanguage" PostBackUrl="SelectLanguage.aspx" runat="server"  
meta:resourcekey="SelectLanguageResource">Select Language</asp:LinkButton>

Либо может быть использовано новое выражение <%$ resources: [applicationkey], resourcekey%>:

<asp:ImageButton id="btnSelectLanguage" Runat="server" ImageUrl="~/Images/SelectLanguage.jpg" 
AlternateText='<%$ Resources: SelectLanguage %>' PostBackUrl="SelectLanguage.aspx" />

Для того, чтобы таким же образом можно было локализовать статический текст, в ASP.NET 2.0 появился новый элемент управления Localize, позволяющий использовать указанные выше выражения локализации.

<asp:Localize id="localText" runat="server" meta:resourcekey="TheText">Text</asp:Localize>

или

<asp:Localize id="localText" runat="server" 
text='<%$ resources: TextResources, TheText %>'>Text</asp:Localize>

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

Заключение

В этой статье приведены лишь некоторые основные сведения о новшествах в технологии ASP.NET 2.0 по сравнению с ASP.NET 1.x. Особенности ASP.NET были очень описаны кратко и данная статья может служить отправной точной для изучению этой передовой технологии. Для более подробного описания упомянутых в статье технологий и новых возможностей, рекомендуется обратиться к списку дополнительной литературы. В статье не был затронут ряд важных нововведений - асинхронное выполнение кода, новые элементы управления, шифрование фрагментов файла web.config,новые механизмы доступа к данным и многое-многое другое. Все это является материалом, которому можно посвятить не одну книгу. По возможности автор постарается осветить эти нововведения в будущих статьях.

Источник: www.cyberguru.ru

К началу статьи





Добавил: LedWormДата публикации: 2008-02-14 08:55:22

Рейтинг статьи:0.00 [Голосов 0]Кол-во просмотров: 7516
Оцените статью:

Комментарии читателей

Всего комментариев: 0
Ваше имя: *
Текст записи: *
Имя:

Пароль:



Регистрация

Как вы относитесь к AJAX?
Считаю это ЗЛОМ
11% (12)
Бесполезная технология
2% (2)
Мне параллельно
9% (10)
Неплохая технология
20% (23)
Рулез, как я без нее жил!
7% (8)
Я разработчик AJAX-приложений
5% (6)
А что? Хороший футбольный клуб!
12% (14)
Я в танке!!!
34% (38)

Проголосовало: 113
Юзeру надоел его принтер: то бумагу зажуёт, то расходники кончатся, то текст размажет... Решил юзeр от принтера избавиться. Но как? Продать - никто не купит. Подарить - врагов нет, а друзей оскорблять неохота. Выбросить из окна - а вдруг на чью-то голову... и т.п. Наконец придумал утопить. Бросил в реку, а он поверху плавает. Топил, топил - всплывает! "Вот чёрт! А ведь правду говорят - д@рьмо не тонет!"
Рейтинг: 4/10 (3)
Посмотреть все анекдоты