новичок здесь. Собственно, первый вопрос.Как определить культуру пользователя в Интернете на основе их часового пояса?
Я использую NodaTime (на ASP.Net MVC 3 C#), чтобы обойти различные часовые пояса, и я действительно доволен результатами. Но ... Мне было интересно, есть ли способ получить информацию о культуре пользователя на основе часового пояса - то есть: отобразить дату/время.
Заранее благодарим за любую помощь!
UPDATE
Позвольте мне быть более ясным на этом ...
Я в состоянии определить время пользователя зоны с помощью jsTimeZoneDetect и NodaTime. Он работает отлично. Теперь мне нужно узнать информацию локали пользователя (формат даты/времени и т. Д.), Чтобы иметь возможность правильно отображать эту информацию. т.е.: пользователь, основанный на США, увидит дату как 3/21/2013.
Я попытался получить локаль из Request.UserLanguages безрезультатно. IE правильно возвращает мою локаль (en-GB), но Firefox и Chrome всегда возвращаются в США. Я также изменил web.config и добавил следующий элемент:
<globalization culture="auto" uiCulture="auto" enableClientBasedCulture="true" />
И это кусок кода, я работал на:
var userLanguages = Request.UserLanguages;
CultureInfo ci;
if (userLanguages.Length > 0)
{
try
{
ci = new CultureInfo(userLanguages[0]);
}
catch (CultureNotFoundException)
{
ci = CultureInfo.InvariantCulture;
}
}
else
{
ci = CultureInfo.InvariantCulture;
}
string cultureName = ci.Name /* Always returns en-US */
Подобно тому, как другой точки, чтобы спросить пользователь, чтобы выбрать свою локальную информацию, не является для меня вариантом. т.е.: DropdownList на сайте и т. д.
Дальнейшая помощь? Заранее спасибо.
UPDATE 2
Следуя совет @JonSkeet, я изменил заголовок вопроса и этикетки, чтобы соответствовать моему вопросу лучше.
UPDATE 3
Только что узнал что-то. Возврат языка (языкового стандарта) зависит от браузера:
- Internet Explorer возвращает язык, заданный в настройках ОС или в браузере.
- Firefox, Chrome, Safari и Opera возвращают язык, установленный в настройках браузера.
Учитывая это, я не могу даже думать об использовании этой информации в том виде, в каком она есть, потому что нет возможности гарантировать, что каждый пользователь изменит настройки своего браузера. Единственная информация, на которую я могу положиться, - это тот, который поступает из настроек ОС.
У меня нет подсказки о том, что теперь делать.
Как вы начинаете использовать часовой пояс пользователя? Я ожидаю, что будет легче получить культуру через информацию запроса HTTP. –
Часовой пояс действительно не достаточно гранулирован для определения культуры. Существует несколько часовых поясов, которые содержат несколько типов культуры. – jmoerdyk