2012-07-26 4 views
7

Ich möchte wissen, wie arabische Zahlen in iPhone Apps angezeigt werden, ohne jede Ziffer zu lokalisieren.Wie arabische Zahlen in iPhone Apps angezeigt werden, ohne jede Ziffer zu lokalisieren

wie zum Beispiel habe ich eine ganze Zahl in dem Code, dessen Wert = 123

Ich möchte, um es anzuzeigen als 123 ohne jede Ziffer auf seinem eigenen zu lokalisieren und mit der App erzwingen arabicum als die Lokalisierung zu verwenden Sprache unabhängig von der

, weil ich viele Zahlen in der ganzen Anwendung, die sich dynamisch ändern

gewählte Sprache des Benutzers, so brauche ich eine generische intelligente Lösung

+2

Sie meinen, „Eastern arabischen Ziffern“, im Gegensatz zu „westlichen arabischen Ziffern ". – Hassan

Antwort

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

danke, es hat funktioniert! – Evronia

+0

Danke, es hat mir viel Zeit gespart. –

+0

funktioniert gut mit Zahlen, aber wenn Sie Float-Werte wie 12,75 haben, wird es Ihnen nur 12 zurückgeben ... jedenfalls meine Stimme für die Lösungen. – Ans

1

Falls Sie Floating-Point Zahlen müssen Sie diese Zeile nach NSNumberFormatter[formatter setNumberStyle:NSNumberFormatterDecimalStyle]; daher initialing fügen die Änderung der obigen Code würde wie folgt

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

Für weitere Informationen besuchen this link