Как установить текст из двух надписей с двумя различными вариантами форматирования культуры / региона?
Как установить текст из двух надписей с двумя различными вариантами форматирования культуры / региона? Для первого ярлыка ar-EG : Arabic - Egypt
и второй будет en-US : English - United States
?
Это должно быть сделано для чисел / даты / времени / валюты.
2 ответа
Используйте культуру явно в методе ToString(). Например:
DateTime dt = DateTime.Now;
CultureInfo arabic = CultureInfo.GetCultureInfo("ar-EG");
label1.Text = dt.ToString(arabic.DateTimeFormat);
CultureInfo english = CultureInfo.GetCultureInfo("en-US");
label2.Text = dt.ToString(english.DateTimeFormat);
Используйте CultureInfo.NumberFormat для форматирования чисел.
Я думаю, что это может решить вашу проблему:
Мне нужно было показать разные денежные ценности в двух разных культурных форматах. Так что я сделал это сразу после каждой строки кода, определяющей значение:
CultureInfo US = new CultureInfo("en-US");
Thread.CurrentThread.CurrentCulture = US;
// Asign your label here
CultureInfo AR = new CultureInfo("ar-EG");
Thread.CurrentThread.CurrentCulture = AR;
//Asign label here
Просто не забудьте добавить следующее пространство имен в начало вашего кода:
using System.Threading;
using System.Globalization;
и восстановить прежнюю культуру. Вы даже можете переопределить информацию о культуре системы, просто добавив эти строки в program.cs