Вопрос по arabic, numbers, localization, iphone – как отображать арабские цифры в приложениях iPhone без локализации каждой цифры

7

Я хочу знать, как отображать арабские цифры в приложениях iPhone без локализации каждой цифры.

как например у меня есть целое число в коде, значение которого = 123

Я хочу отобразить его как & # x661; & # x662; & # x663; без необходимости локализовывать каждую цифру самостоятельно и заставлять приложение использовать арабский язык в качестве языка локализации независимо от выбранного языка пользователя

потому что у меня есть много номеров по всему приложению, которые меняются динамически, поэтому мне нужно общее умное решение

Вы имеете в виду «восточно-арабские цифры», а не «западно-арабские цифры». Hassan

Ваш Ответ

2   ответа
22
NSDecimalNumber *someNumber = [NSDecimalNumber decimalNumberWithString:@"123"];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
NSLocale *arLocale = [[[NSLocale alloc] initWithLocaleIdentifier:@"ar"] autorelease];
[formatter setLocale:arLocale];
NSLog(@"%@", [formatter stringFromNumber:someNumber]); // Prints in Arabic
[formatter setLocale:[NSLocale currentLocale]];
NSLog(@"%@", [formatter stringFromNumber:someNumber]); // Prints in Current Locale
[formatter release];
отлично работает с числами, но если у вас есть плавающие значения, такие как 12,75, он вернет вам только 12 ... во всяком случае, мой голос за решения.
спасибо, это сработало! Evronia
Спасибо, это сэкономило мне много времени.
1

вы должны добавить эту строку после инициализацииNSNumberFormatter [formatter setNumberStyle:NSNumberFormatterDecimalStyle]; поэтому изменение вышеуказанного кода будет следующим

NSString *test = [NSString stringWithFormat:@"%lu", fileSizeEvet];
//    NSString *test = [NSString stringWithFormat:@"%f", (double)folderSize/1024/2014];
NSDecimalNumber *someNumber = [NSDecimalNumber decimalNumberWithString:test];
NSNumberFormatter *formatter = [[NSNumberFormatter alloc] init];
[formatter setNumberStyle:NSNumberFormatterDecimalStyle];
NSLocale *gbLocale = [[NSLocale alloc] initWithLocaleIdentifier:@"ar"];

[formatter setLocale:gbLocale];
float myInt = [someNumber floatValue]/1024/1024;
//    NSLog(@"%@", [formatter stringFromNumber:[NSNumber numberWithFloat:myInt]]);
//    NSLog(@"%@", [formatter stringFromNumber:someNumber]); // Prints in Arabic
NSString *folderSizeInArabic = [formatter stringFromNumber:[NSNumber numberWithFloat:myInt]];
fileSizeLabel.text = [NSString stringWithFormat:@" قه‌باره‌ی فایل: %@ مب", folderSizeInArabic];

Для получения дополнительной информации посетитеэта ссылка

Похожие вопросы