Я не уверен, правильно ли я понимаю этот код или правильно его использую, но у меня сложилось впечатление, что на веб-сайте ASP.NET 2.0 AJAX я мог запустить javascript, например:
var c = Sys.CultureInfo.CurrentCulture
, и это даст мне настройки языка / языка, которые пользователь указал в своем браузере во время посещения. Однако, для меня это всегда возвращается «en-US» независимо от того, какой язык я выбираю в Firefox или IE.
Этот серверный код однако:
string[] languages = HttpContext.Current.Request.UserLanguages;
if (languages == null || languages.Length == 0)
return null;
try
{
string language = languages[0].ToLowerInvariant().Trim();
return CultureInfo.CreateSpecificCulture(language);
}
catch (ArgumentException)
{
return null;
}
возвращает язык, который я сейчас установил. Но мне нужно сделать это на стороне клиента, потому что мне нужно проанализировать строку в datetime и выполнить некоторые проверки перед отправкой, и строка может быть ММ / ДД / ГГГГ или ДД / ММ / ГГГГ, или чем-то подобным.
Чего мне не хватает?
EDIT:
Хорошо, я наткнулся на эту библиотеку http://www.datejs.com/. Выглядит довольно мило, и в ней есть ниндзя, так что я уже почти продан. Но в их документе я заметил, что вам нужно включить один из языковых js-файлов для включения. Я полагаю, что вам придется принять такое решение на стороне сервера и создать правильный тег включения сценария, который заставил меня задуматься. Я должен делать это с ASP.NET AJAX? то есть проверка серверной культуры (которая работает) и установка Sys.CultureInfo.CurrentCulture в js на основании этого? Я надеялся, что он просто автоматически получит его из клиентской части браузера.