fix: always display system language in language selector

This commit is contained in:
Cody Bromley
2025-05-27 13:40:40 -05:00
parent dc466067db
commit 2a45cf8e5d
3 changed files with 25 additions and 3 deletions
+23 -2
View File
@@ -22,9 +22,30 @@ struct Language: Hashable, Identifiable, Equatable {
}
static var system: Language {
Language(
// Read the system's actual language preference from UserDefaults global domain
let globalDomain = UserDefaults(suiteName: UserDefaults.globalDomain)
let systemLanguages = globalDomain?.object(forKey: "AppleLanguages") as? [String]
let systemLanguageCode = systemLanguages?.first ?? "en"
// For display, we want just the base language code (e.g., "en" from "en-US")
let languageCode =
systemLanguageCode.split(separator: "-").first.map(String.init) ?? systemLanguageCode
// Create a locale for the system language to get its native name
let systemLocale = Locale(identifier: languageCode)
// Get the language name in its own locale (e.g., "English" for en, "Español" for es)
let languageName = systemLocale.localizedString(forLanguageCode: languageCode) ?? languageCode
// Show "System (Language)" where System is in the current app language
let displayName =
"\(NSLocalizedString("System", comment: "System default language option")) (\(languageName))"
print("🌐 System language from global domain: code=\(languageCode), name=\(languageName)")
return Language(
code: "system",
displayName: NSLocalizedString("System", comment: "System default language option"),
displayName: displayName,
icon: "globe")
}
+1 -1
View File
@@ -105,7 +105,7 @@ struct PreferencesView: View {
}
.pickerStyle(.menu)
.labelsHidden()
.frame(width: 180)
.frame(width: 220)
}
var body: some View {
+1
View File
@@ -13,6 +13,7 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- Improved French (Français) translations - thanks to **ma203**
- Improved Simple Chinese (中文) translations
- Fixed an issue where the app wasn't restarting properly after language changes
- Improved translation credits layout
## [1.0.8] - 2025-05-21