我正在本地化/国际化我的iPhone应用程序,并有一个问题。在我的应用程序中的一个位置,我显示了一年中12个月的列表。由于它处于目前非本地化的状态,我只需将1月至12月的月份硬编码为NSArray。我想使用NSCalendar以编程方式根据用户的语言环境构建几个月的NSArray。这样做的最佳方式是什么?
答案 0 :(得分:12)
您可以从NSDateFormatter获取月份的本地化名称:
NSDateFormatter *df = [[NSDateFormatter alloc] init];
for ( int i = 0; i < 12; ++i ) {
NSString *monthName = [[df monthSymbols] objectAtIndex:i];
[...]
}
[df release];
答案 1 :(得分:2)
无需进行迭代,只需直接获取月份:
NSDateFormatter dateFormatter = [[NSDateFormatter alloc] init];
NSLog(@"Months = %@", dateFormatter.monthSymbols);
<强>夫特:强>
let dateFormatter = NSDateFormatter()
print("Months = \(dateFormatter.monthSymbols)")
答案 2 :(得分:1)
Swift版本....在游乐场尝试
提供区域设置或使用currentlocale
var str = "Hello, playground"
var formatter = NSDateFormatter()
formatter.locale = NSLocale(localeIdentifier: "sv_SE")
//formatter.locale = NSLocale.currentLocale() // use this to find it automatically
print(formatter.monthSymbols)
结果
"["januari", "februari", "mars", "april", "maj", "juni", "juli", "augusti", "september", "oktober", "november", "december"]\n"