Complete Phase 4: Comprehensive preferences, localization, and UX polish

- Rename application from MenuWhisper to Tell me with new domain com.fmartingr.tellme
- Implement comprehensive preferences window with 6 tabs (General, Models, Text Insertion, Interface, Advanced, Permissions)
- Add full English/Spanish localization for all UI elements
- Create functional onboarding flow with model download capability
- Implement preview dialog for transcription editing
- Add settings export/import functionality
- Fix HUD content display issues and add comprehensive permission checking
- Enhance build scripts and app bundle creation for proper localization support
This commit is contained in:
Felipe M 2025-09-19 13:55:46 +02:00
parent 7ba5895406
commit 54c3b65d4a
Signed by: fmartingr
GPG key ID: CCFBC5637D4000A8
25 changed files with 3086 additions and 235 deletions

View file

@ -2,16 +2,17 @@ import Foundation
import AVFoundation
import AppKit
import CoreUtils
import CoreSettings
public class SoundManager: ObservableObject {
private let logger = Logger(category: "SoundManager")
@Published public var soundsEnabled: Bool = true
private let settings: CoreSettings.Settings
private var startSound: AVAudioPlayer?
private var stopSound: AVAudioPlayer?
public init() {
public init(settings: CoreSettings.Settings) {
self.settings = settings
setupSounds()
}
@ -28,7 +29,7 @@ public class SoundManager: ObservableObject {
}
public func playStartSound() {
guard soundsEnabled else { return }
guard settings.playSounds else { return }
logger.debug("Playing start sound")
// Use a subtle system sound for start
@ -36,7 +37,7 @@ public class SoundManager: ObservableObject {
}
public func playStopSound() {
guard soundsEnabled else { return }
guard settings.playSounds else { return }
logger.debug("Playing stop sound")
// Use a different system sound for stop