Как я могу отображать родные цифры, зависящие от языка и региональных параметров, вместо арабских цифр?

Я хочу преобразовать числовое значение в строку, отображающую цифры, зависящие от языка и региональных параметров. Например, в языке дари, который используется в Афганистане (название культуры «prs-AF»), используются восточно-арабские цифры вместо арабских цифр , используемых в большинстве западных культур ( 0 , 1,2,3,4,5,6,7,8,9 ).

При изучении класса CultureInfo, встроенного в Framework, он перечисляет правильные собственные цифры (снимок экрана, сделанный из вывода в LinqPad) :

linqpad output

CultureInfo.CreateSpecificCulture("prs-AF").NumberFormat.NativeDigits

Однако при попытке преобразовать число в строку для отображения в этой культуре я не получаю собственные цифры:

linqpad output

var number = 123.5;
var culture = CultureInfo.CreateSpecificCulture("prs-AF");
Thread.CurrentThread.CurrentUICulture = culture;
Thread.CurrentThread.CurrentCulture = culture;
var text = number.ToString(culture);
Console.WriteLine(text);

Кто-нибудь может сказать мне, как отображать собственные цифры?

20
задан Kevin Babcock 4 June 2011 в 22:17
поделиться