|
|
|
Локализация приложений это тема, которой зачастую не находится места в книгах, посвященных программированию. В принципе это понятно: там, где обсуждаются языковые конструкции и синтаксис это вроде и не к чему, да и далеко не каждый программист сталкивается с необходимостью локализации созданных им приложений. Однако в ASP.NET методы локализации настолько просты, что даже начинающий разработчик может их изучить и использовать.
Здесь можно выделить два направления: поддержку различных кодировок и различных 'культур'. Культура - термин ASP.NET, обозначающий в совокупности характеристики, присущие конкретным государствам. Культурой определяется, например, формат вывода даты и времени. Помимо календаря культура еще определяет язык и систему написания. Под системой написания я имею в виду, что культурой определяется работа со строками, например их сортировка и сравнение. Еще один важный момент: Культура определяется клиентом при установке свойства locales во время инсталляции системы.
Чтобы определить, какая культура используется в данный момент, нужно проделать следующее:
Сначала добавить директиву
<%@Import Namespace="System.Globalization"%> |
Теперь можно обращаться к подключенному пространству имен и использовать его классы. Ниже показано, как можно получить требумое свойство:
<%=CultureInfo.CurrentCulture.NativeName%> |
Мы можем также устанавливать новую культуру по своему желанию. Для этого нам понадобится создать новый объект класса CultureInfo.
MyCulture = new CultureInfo(CultureName); |
При этом передаваемый параметр должен представлять из себя предопределенную строковую константу. Теперь осталось присвоить полученное значение необходимому свойству CultutureInfo:
Thread.CurrentThread.CurrentCulture = MyCulture; |
Теперь обратимся к формату даты и времени, о котором я уже упоминал. Устранить существующие проблемы, связанные с представлением дат поможет использование
DateTime.Now.Format("f", null);
|
Этот метод принимает два параметра: строку, определяющую, в каком виде возвращается дата, и второй параметр, определяющий формат, специфичный для конкретной культуры. В случае передачи null берется текущая культура потока. Если же хочется задать определенную культуру, то следует вызвать что-то типа
DateTime.Now.Format("f", new System.Globalization.CultureInfo("ru"))%
|
Для России это будет ru или ru-RU. Теперь мы спокойны за даты и уделим немного времени кодировке. В принципе, здесь стоит упомянуть только одну директиву, которая позволяет установить кодировку выходного файла.
<%@Page Language="C#" ResponseEncoding="UTF-8"%> |
Еще одна интересная возможность, включенная в ASP.NET - работа с региональными установками (Regional Settings). Она полностью аналогична работе с культурой и классом CultureInfo, за исключением имени - теперь это RegionInfo. В свойствах RegionInfo хранится полное, английское, национальное имена региона, знак валюты, признак использования метрической системы и другие характеристики. Ниже приведен пример, показывающий как извлечь текущие установки.
<%@Page Language="C#" ResponseEncoding="utf-8" %>
<%@Import Namespace="System.Threading"%>
<%@Import Namespace="System.Globalization"%>
<%
RegionInfo region = null;
region = RegionInfo.CurrentRegion;
%>
<html>
<body>
<p>Мы живем в стране <%=region.DisplayName%>, а валюта у нас
<%= region.CurrencySymbol %> - вот так.
</p>
</body>
</html>
|
На машине, где тестировался код, с установленным всем английским за исключением региона и locales мы получили результат:
Мы живем в стране Russia, а валюта у нас р. - вот так. |
Обсудив RegionInfo и CultureInfo перейдем к заключительной части и поговорим о настройках в конфигурационных файлах Config.web. Отдел <globalization> служит основным средством управления локализацией через конфигурационные файлы и содержит следующие атрибуты:
requestencoding - ожидаемая кодировка входищих запросов
responseencoding - кодировка по умолчанию для исходящих запросов
fleeencoding - кодировка по умолчанию для программных файлов ASP.NET
culture - культура по умолчанию для обработки входящих запросов
uiculture - культура по умолчанию для поиска ресурсов
| << Предыдущая | Следующая >> |
| Контакт | Реклама на сайте | Спонсорам | Веб мастерам |
Лицензионное соглашение
- © 2000-2012 dotSITE
Хостинг .NET предоставлен
PARKING.RU
Поддержку сайта осуществляет Murano Software Inc., Offshore software development