Я работаю над приложением SL5 с C # и хочу его интернационализировать. Я нашел следующее, чтобы установить культуру пользовательского интерфейса:
var culture = new CultureInfo(Thread.CurrentThread.CurrentUICulture.TwoLetterISOLanguageName);
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
Некоторые элементы управления, такие как DatePicker, похоже, улавливают это. Однако если я отформатирую любое datetime, используя строку формата 'd', я все равно получу формат по умолчанию «M / dd / yyyy».
Как именно SL интерпретирует культуру и как я могу правильно ее установить для всего приложения?
Спасибо
ОБНОВЛЕНИЕ:
Нашел ответ:
Прежде всего, установите соответствующие культуры в Application_Startup:
var culture = new CultureInfo("nl-BE");
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
Однако ключевым элементом является добавление следующего, чтобы принудительно установить язык и региональные параметры RootVisual:
var root = RootVisual as Page;
if (root != null)
{
root.Language = XmlLanguage.GetLanguage(Thread.CurrentThread.CurrentCulture.Name);
}