我的应用程序显示按钮数量,数字符号。
iOS是否可以根据语言选择生成数字符号的本地化,如果是这样的话?
我正在输出字符串,我想我需要某种区域格式化功能?
答案 0 :(得分:1)
首先,让您的项目支持中文:
第二次,添加带有翻译文本的Localizable.strings文件,如:
第三次,将文件本地化为中文:
最后,您可以使用以下翻译:
self.helloLabel.text = NSLocalizedString(@"Hello!", @"A text for saying hello label");
“你好!”如果您的iPhone语言是中文,则会显示。
对于号码转换:
NSString *localizedString = [NSNumberFormatter localizedStringFromNumber: @(1314)
numberStyle: NSNumberFormatterSpellOutStyle];
NSLog(@"Formatted string:%@",localizedString);
//Formatted string:一千三百一十四 (if system region is China)
如果您想直接转换数字符号:
- (NSString *)getNumberSymbols:(NSInteger)number {
NSArray *symbols = @[@"零",@"一",@"二",@"三",@"四",@"五",@"六",@"七",@"八",@"九"];
NSMutableString *result = [NSMutableString stringWithFormat:@"%ld",(long)number];
for (int i = 0;i<symbols.count;i++) {
[result replaceOccurrencesOfString:
[NSMutableString stringWithFormat: @"%ld",(long)i]
withString: symbols[i]
options: NSCaseInsensitiveSearch
range: NSMakeRange(0, result.length)];
}
return result;
}
或者:
- (NSString *)getNumberSymbols:(NSInteger)number {
NSMutableString *result = [NSMutableString stringWithFormat:@"%ld",(long)number];
for (int i = 0;i<=9;i++) {
NSString *localizedNumber = [NSNumberFormatter localizedStringFromNumber:@(i)
numberStyle:NSNumberFormatterSpellOutStyle];
[result replaceOccurrencesOfString:
[NSMutableString stringWithFormat:@"%ld",(long)i]
withString: localizedNumber
options: NSCaseInsensitiveSearch
range: NSMakeRange(0, result.length)];
}
return result;
}
使用它:
NSString *result = [self getNumberSymbols:134]; //Output: 一三四