当使用句点与逗号分隔小数点分隔符时,用户报告了我的应用程序的一些内部化问题。当我用美国地区(时期)和德国地区(逗号)测试时,一切正常。
我让他给我发送他的语言和屏幕截图他的主要设置应用程序和他的区域中的区域设置设置为加拿大,他安装了两种语言:法语和英语,但首先是法语。他的手机显然主要使用法语:
此外,其屏幕截图底部的格式示例清楚地显示系统应使用逗号作为小数分隔符。
当他试图在我的应用程序的某个字段中输入数字时,他的键盘清楚地显示一个逗号,并且他能够用逗号输入值,但是当我尝试处理输入的值时,我的格式化程序没有得到正确的值,因为格式化程序的语言环境显然是错误的。
当我设置我的数字格式化程序时,我正在使用系统的语言环境:
self.simpleNumberFormatter = [[NSNumberFormatter alloc] init];
self.simpleNumberFormatter.numberStyle = NSNumberFormatterDecimalStyle;
self.simpleNumberFormatter.locale = [NSLocale currentLocale];
当我检查[NSLocale currentLocale]
返回的内容时,我发现它正在返回en_CA
,这是英语加拿大应该给我fr_CA
因为用户明确要求法语作为他们的主要人物。
为什么系统会报告en_CA
而不是fr_CA
?我做错了什么?