簡単に言えば、正の整数 [9, 393, 3, 993] があり、それを特定の言語 [٩, ٣٩٣ ,٣ ,٩٣٩] にローカライズしたいと考えています。
を使用するNSNumberFormatter
と、ユーザーのロケールに従って番号がローカライズされます。ただし、それをオーバーライドして、数値を翻訳するロケールを選択したいと考えています。
私は次のことを試しましたが、うまくいきませんでした:
// user locale is @"en"
NSNumberFormatter* formatter = [NSNumberFormatter new];
[formatter setNumberStyle:NSNumberFormatterNoStyle];
[formatter setLocale:[[NSLocale alloc] initWithLocaleIdentifier:@"ar"]];
[formatter setMinimumIntegerDigits:padding];
return [formatter stringFromNumber:@(num)];
返される文字列は英語です。
の非常によく似たコード スニペットがありますが、期待どおりに動作することに注意してくださいNSDateFormatter
。オブジェクトは、設定されたNSDateFormatter
ロケールに従います。