Культура в приложении Silverlight - PullRequest
3 голосов
/ 19 ноября 2011

Я разрабатываю приложение Silverlight, которое переведено на несколько языков.Это бизнес-приложение, которым пользуются люди из разных стран.

Строки в пользовательском интерфейсе приложения будут зависеть от используемого UICulture, который устанавливается в зависимости от того, на каком языке настроен веб-браузер.Если браузер пользователя настроен на использование языка, на который мы не переводили, мы просто переопределяем UICulture для отображения перевода на английский язык.Например, если пользователь использует язык en-GB, мы предпочитаем отображать перевод en-US.

Теперь я пытаюсь понять, нужно ли что-то подобное для Культуры приложения (примечание: не UICulture).Например, если пользователь из Великобритании использует мое приложение Silverlight, он хочет, чтобы его даты были представлены в формате ДД / ММ / ГГГГ.Но если пользователь из США использует его, он хочет отформатировать его в соответствии с MM / DD / YYYY.Если приходит шведский парень, он хочет YYYY-MM-DD.Насколько я могу судить, обо всем этом заботятся автоматически (это зависит от языка, выбранного в веб-браузере).И до тех пор, пока я использую надлежащие типы данных для представления значений (например, DateTime для представления даты) и не допускаю глупостей (например, предположим, что DateTime.Now.ToString () всегда будет возвращать дату в формате YYYY-MM-DD независимо от культуры пользователя. Мне кажется, мне не нужно делать что-то особенное в отношении культуры.

Я понимаю, что веб-сервисы, вызываемые приложением, должны либо принимать DateTime в качестве параметра, либо, если Интернетслужба всегда принимает даты в строковом формате ГГГГММДД, код клиента должен правильно отформатировать дату перед вызовом веб-службы.

Мой вопрос:

В некоторых случаях необходимо переопределить стандартную культуруприложение Silverlight для предотвращения поломки материала?

Я также понимаю, что некоторые пользователи могут предпочесть выбрать Культуру самостоятельно, а не приложение, полагающееся на настройки веб-браузера, но это еще не требование.пытаясь понять, может ли НЕ преобладающая культура в некоторых случаях сломатьs.

1 Ответ

0 голосов
/ 01 декабря 2011

Вы можете использовать это:

System.Globalization.CultureInfo ci = new System.Globalization.CultureInfo("en-GB");
ci.DateTimeFormat.ShortDatePattern = "MM/dd/yyyy";
ci.DateTimeFormat.ShortTimePattern = "HH:mm:ss tt";

и предположим, что ваша дата указана в DATE var.

, затем используйте ее как

var date= System.DateTime.Parse(VitalinfoArray[2].Trim(),ci);

Это будетукажите дату в соответствии с культурой вашего браузера.

...