本地化日期不翻译日期

时间:2012-12-13 13:22:05

标签: iphone ios localization

以下是我如何本地化日子:

NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];

NSString *dayFormat = [NSDateFormatter dateFormatFromTemplate:@"EEEE" options:0 locale:[NSLocale currentLocale]];

[dateFormatter setDateFormat:dayFormat];
[dateFormatter setLocale:[NSLocale currentLocale]];

NSString *day = [dateFormatter stringFromDate:date];

然而它似乎正在返回一周中的英语日(星期一,星期二等),而不是设备语言(在模拟器中已设置为德语)。

知道我哪里出错了?

在对设备进行一些研究后,

更新我意识到它实际上是区域设置,而不是更改日期语言的语言设置。奇怪,但我想这是有原因的。

由于

2 个答案:

答案 0 :(得分:1)

日期的语言由区域而不是语言设置。这必须是一个错误。如果我在德国,但是说英语,我当然不想用德语发表约会对象?

无论如何,这就是原因。你必须改变语言和地区。

答案 1 :(得分:0)

我遇到了同样的问题。它不适用于模拟器,但它可以在设备上运行。你能试试吗?然而,我没有解决它,我甚至没有看到它,因为它在设备上完美运行,这确实是你的应用程序的主要目标。


编辑:

这来自Apple's doc

  

currentLocale

     

返回当前用户的逻辑语言环境。

     

+ (id)currentLocale

     

返回值

     

当前用户的逻辑区域设置。语言环境由当前用户所选系统区域设置的设置与用户在“系统偏好设置”中指定的任何自定义设置重叠而形成。

     

讨论

     

您从此区域设置获得的设置不会更改为用户的设置   首选项已更改,以便您的操作保持一致。   通常,您对返回的对象执行某些操作,然后执行   允许它被处置。此外,由于返回的对象可能是   缓存,你不需要无限期地坚持下去。对比   autoupdatingCurrentLocale。

也许您可以尝试使用:

  

preferredLanguages

     

将用户的语言首选项顺序作为字符串数组返回。

     

+ (NSArray *)preferredLanguages

     

返回值

     

用户的语言首选项顺序为NSString对象数组,每个对象都是一个规范化的IETF BCP 47语言标识符。