各桁をローカライズせずに iPhone アプリ内でアラビア数字を表示する方法を知りたいです。
たとえば、コードに値 = 123 の整数があります。
各数字を独自にローカライズせずに ١٢٣ として表示し、ユーザーが選択した言語に関係なく、ローカライズ言語としてアプリにアラビア語を使用させたい
アプリケーション全体に動的に変化する多くの数値があるため、汎用のスマートなソリューションが必要です
各桁をローカライズせずに iPhone アプリ内でアラビア数字を表示する方法を知りたいです。
たとえば、コードに値 = 123 の整数があります。
各数字を独自にローカライズせずに ١٢٣ として表示し、ユーザーが選択した言語に関係なく、ローカライズ言語としてアプリにアラビア語を使用させたい
アプリケーション全体に動的に変化する多くの数値があるため、汎用のスマートなソリューションが必要です
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];
浮動小数点数がある場合は、初期化後にこの行を追加する必要が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];
詳細については、このリンクにアクセスしてください