我在项目中支持的语言很少,包括法语。
self.lblMax.text=[NSString localizedStringWithFormat:@"%@%@",[NSNumber numberWithFloat:[self.arrValues.lastObject floatValue]],self.strUnit];
在上面的代码行中, arrValues 包含[NSNumber numberWithFloat:val]
个对象的列表。我将lastObject作为最大数字,并通过localizedStringWithFormat
的{{1}}方法追加其单位。
假设,arrValues数组的最后一个对象是24000所以我得到的值是“24 000ms”(带空格)而不是正常的“24000ms”
因为我已经设置了法语和法国地区。
有时它在UILabel中显示逗号“24,000ms”,但实际值仅为24000。我使用NSString
方法删除逗号。
请帮助并纠正我如果我为法语本地化做错了什么。
提前致谢,
答案 0 :(得分:0)
在某些区域设置(包括法国)中,将号码24000显示为24 000
是完全正常的。某些区域设置将其显示为24,000
。有人将其显示为24.000
。有些人可能会以其他方式表明。你所看到的一切都没有错。
您可以考虑使用NSNumberFormatter
格式化数字。
如果您的应用仅支持iOS 10及更高版本,则应考虑使用NSMeasurement
和NSMeasurementFormatter
而不是创建自己的格式字符串,以确保您的数量和单位真正显示给定的区域设置。