iOS 如何在 UIDatePicker 中本地化月份的文本,如果可能的话?

How in iOS to localize text of the month in UIDatePicker, and if it is possible at all?

我进行了搜索,到目前为止我看到 UIDatePicker 正在处理设备的本地化。

我的应用程序具有内部本地化功能。我需要根据我的内部本地化更改月份的文本。正如我所读,这似乎是不可能的——我必须制作自己的自定义选择器。

有没有办法在没有自定义 Dat 选择器的情况下实现这一点?

默认情况下,UIDatePicker 使用 [NSLocale currentLocale] 指定的任何内容。

UIDatePicker 上的语言环境 属性 在 iOS 5 中已弃用,但您可以试试这个:

NSLocale *loc = [[NSLocale alloc] initWithLocaleIdentifier:@"..."];
NSCalendar *cal = [NSCalendar currentCalendar];
[cal setLocale:loc];
[myDatePicker setCalendar:cal];

UIDatePicker 本地化取决于设备的 "Region Format" 设置。

设置 > 通用 > 国际 > 区域格式

我认为选择 UIDatepicker 控件是不可能的,也许您可​​以使用 UIPickerview 来完成。请检查此 link。 (你可以这样做) UI appearance Datepicker
要么 Custom Color of Datepicker 希望对你有所帮助

使用 UIDatePicker 的区域设置 属性。我看不到 属性 已弃用的任何迹象。

此代码会将选择器本地化为日语。

[datePicker setLocale: [NSLocale localeWithLocaleIdentifier:@"ja"]];

将 "ja" 替换为您需要的任何语言代码。

和Swift

let datePicker:UIDatePicker = UIDatePicker()
datePicker.locale = NSLocale.init(localeIdentifier: "it_IT")

it_IT 字符串(对于 讲意大利语的 人)替换为您的区域设置标识符。英语的常见情况是:

  • en 通用 英语
  • en_US 说英语 的美国居民
  • en_GB 在英国讲英语 的人

有关区域设置标识符的更多信息,请参阅 Apple Locale IDs section of "Internationalization and Localization Guide"

如果您有兴趣获取当前语言环境,请参阅

Swift 3.0 和新版本

此代码会将区域设置选择器设置为中文。 这里datePicker是UIDatePicker的对象。

datePicker.locale = Locale.init(localeIdentifier: "zh-Hans")
  • 英语使用 "en" 而不是 "zh-Hans"
  • 阿拉伯语使用 "az-Arab" 而不是 "zh-Hans"
  • 对拉丁语使用 "uz-Latn" 而不是 "zh-Hans"

更多:click here