SwiftUI 在新的 Foundation Formatters iOS 15 中更改语言

Posted

技术标签:

【中文标题】SwiftUI 在新的 Foundation Formatters iOS 15 中更改语言【英文标题】:SwiftUI Change language in new Foundation Formatters iOS 15 【发布时间】:2021-10-04 17:33:21 【问题描述】:

大家好,我在翻译日历中月份和日期的名称时一直遇到问题..

对于ios 14我正在使用

DateFormatter() (或Calendar.current.shortMonthSymbols

对于日历月份和iOS 15 的格式,我使用Foundation 中的新格式

Date().formatted(.dateTime.year().month())

在这两种情况下,我都无法将日期和月份的名称从 English 翻译成 Italian

前段时间我没有遇到这些问题,因为翻译是直接从用户真实设备的语言完成的,而不是现在,因为我在真实设备上安装了iOS 15,翻译不再自动发生,我无法理解我如何使用优雅的方式解决它

有人遇到过这些问题吗?有什么帮助吗?

【问题讨论】:

【参考方案1】:

只需确保设置您的日历语言环境属性:

var cal = Calendar.current
cal.locale = Locale(identifier: "it_IT")
cal.shortMonthSymbols  // ["gen", "feb", "mar", "apr", "mag", "giu", "lug", "ago", "set", "

【讨论】:

感谢您的建议 .. 使用日历我正在使用 @Environment (\. calendar) var calendar 我该如何优化这个? @kAiN ***.com/a/65846026/2303865 我试图创建它并将其插入 contentView 但它仍然无法翻译..我错在哪里? struct ContentView: View var body: some View Reservation() .environment(\.calendar, var calendar = Calendar.current calendar.locale = Locale(identifier: "it_IT") return calendar ()) 展示您如何使用自定义日历 这样解决了@available(iOS 15, *) func formatMonthName(style: Date.FormatStyle.Symbol.Month) -> String self.formatted(.dateTime.locale(Locale(identifier: "it")).month(style))

以上是关于SwiftUI 在新的 Foundation Formatters iOS 15 中更改语言的主要内容,如果未能解决你的问题,请参考以下文章

SwiftUI 如何在新视图中链接 ForEach 索引和照片索引?

css Blockgrid for Foundation。为中型屏幕启用布局。注意:此网格中的中断点为600px而不是fo

css Blockgrid for Foundation。为中型屏幕启用布局。注意:此网格中的中断点为600px而不是fo

css Blockgrid for Foundation。为中型屏幕启用布局。注意:此网格中的中断点为600px而不是fo

css Blockgrid for Foundation。为中型屏幕启用布局。注意:此网格中的中断点为600px而不是fo

css Blockgrid for Foundation。为中型屏幕启用布局。注意:此网格中的中断点为600px而不是fo