Как установить текст из двух надписей с двумя различными вариантами форматирования культуры / региона?

Как установить текст из двух надписей с двумя различными вариантами форматирования культуры / региона? Для первого ярлыка 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

Другие вопросы по тегам