|
|
@@ -76,26 +76,13 @@ enum AppLanguage: CaseIterable {
|
|
76
|
76
|
return .english
|
|
77
|
77
|
}
|
|
78
|
78
|
|
|
79
|
|
- /// Settings language picker labels — fixed English names, not localized.
|
|
|
79
|
+ /// Settings language picker labels in each language's native form (autonym).
|
|
80
|
80
|
var localizedDisplayName: String {
|
|
81
|
|
- switch self {
|
|
82
|
|
- case .english:
|
|
83
|
|
- return "English"
|
|
84
|
|
- case .german:
|
|
85
|
|
- return "German"
|
|
86
|
|
- case .swedish:
|
|
87
|
|
- return "Swedish"
|
|
88
|
|
- case .frenchCanada:
|
|
89
|
|
- return "French (Canada)"
|
|
90
|
|
- case .french:
|
|
91
|
|
- return "French"
|
|
92
|
|
- case .arabic:
|
|
93
|
|
- return "Arabic"
|
|
94
|
|
- case .chineseSimplified:
|
|
95
|
|
- return "Chinese (Simplified)"
|
|
96
|
|
- case .chineseTraditional:
|
|
97
|
|
- return "Chinese (Traditional)"
|
|
|
81
|
+ let locale = Locale(identifier: localeIdentifier)
|
|
|
82
|
+ guard let name = locale.localizedString(forIdentifier: localeIdentifier) else {
|
|
|
83
|
+ return localeIdentifier
|
|
98
|
84
|
}
|
|
|
85
|
+ return name.capitalized(with: locale)
|
|
99
|
86
|
}
|
|
100
|
87
|
}
|
|
101
|
88
|
|