此问题已经在这里有了答案:
当使用像这样的DateComponentFormatter时
let formatter = DateComponentsFormatter()
formatter.unitsStyle = .full
formatter.includesApproximationPhrase = false
formatter.includesTimeRemainingPhrase = false
formatter.allowedUnits = [.hour]
var components = DateComponents()
components.hour = 4
let outputString = formatter.string(from: components)
当我的语言/地区为英语/美国时,输出为'4 hours'。当将语言/地区更改为法语/法国时,我曾预期输出为“ 4 heures”,但仍为“ 4 hours”。关于如何使DateComponentFormatter进行翻译的任何建议?
更改电话上的语言/地区似乎无效。
可能是,您的应用未本地化为其他语言。我按照https://www.raywenderlich.com/250-internationalizing-your-ios-app-getting-started在我的应用中添加了本地化。
上面的根本原因是,Apple改变了iOS11中格式化程序的行为,而我没有发现这一点。 NSDateFormatter and current language in iOS11
回答了这个问题