2012-07-26 24 views
7

Quiero saber cómo mostrar los números arábigos dentro de las aplicaciones de iPhone sin localizar cada dígito.cómo mostrar los números arábigos dentro de las aplicaciones de iPhone sin localizar cada dígito

como por ejemplo, tengo un número entero en el código cuyo valor = 123

Quiero mostrarlo como 123 sin tener que localizar cada dígito por sí mismo y forzar a la aplicación para utilizar árabe como la localización lengua sin importar el idioma elegido por el usuario

porque tengo muchos números de toda la aplicación que cambia de forma dinámica, por lo que necesito una solución inteligente genérica

+2

¿Quiere decir "números arábigos del Este", en contraposición a los "números arábigos occidentales ". – Hassan

Respuesta

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]; 
+0

gracias, funcionó! – Evronia

+0

Gracias, me ahorró mucho tiempo. –

+0

funcionan bien con los números, pero en caso de que tenga valores de flotación como 12.75, le devolverá solo 12 ... de todos modos mi voto para las soluciones. – Ans

1

en caso de tener punto flotante números que hay que añadir esta línea después de sus iniciales NSNumberFormatter[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; por lo tanto, la modificación del código anterior como sigue

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]; 

Para obtener más información, visite this link

Cuestiones relacionadas