【发布时间】:2012-07-31 07:16:59
【问题描述】:
我目前正在为 iPhone 编写一个可大量使用日期的应用程序。我正在使用NSDateFormatter 将日期转换为字符串。方便的是,NSDateFormatter 根据区域格式自动创建用户语言的字符串。
因为我无法在所有可能的语言和地区本地化我的应用程序,所以该应用程序仅本地化为英语、德语、西班牙语和其他几种语言。
例如,当应用程序为法语用户运行时,应用程序默认为英语。这很好,但日期仍将使用法语进行转换。这会产生像“Month: Juillet”这样的字符串,而不是“Month: July”。
如何使NSDateFormatter 始终使用应用程序运行的语言?
我知道我可以使用NSLocalizedString() 来本地化NSLocale 标识符,但这会导致区域设置不正确。
当用户通常使用“en_GB”区域并且我的应用程序通常针对英语进行本地化时,我希望NSDateFormatter 使用“en_GB”而不仅仅是“en”或“en_US”。当用户运行法语时,我希望语言环境为“en”,如果他在“de_DE”区域运行应用程序,我也希望日期格式为“de_DE”,因为该应用程序支持德语。
问候, 费边
【问题讨论】:
标签: ios cocoa localization nsdateformatter nslocale