add language menu item to tui configuration

This commit is contained in:
leonardotrapani
2026-02-01 13:19:21 +01:00
parent 1f6fce6941
commit e005184303
5 changed files with 39 additions and 1 deletions
+7
View File
@@ -37,6 +37,7 @@ type ConfigSection string
const (
SectionProviders ConfigSection = "providers"
SectionLanguage ConfigSection = "language"
SectionTranscription ConfigSection = "transcription"
SectionLLM ConfigSection = "llm"
SectionKeywords ConfigSection = "keywords"
@@ -110,6 +111,11 @@ func runEditExisting(cfg *config.Config) (*ConfigureResult, error) {
}
configuredProviders = getConfiguredProviders(cfg)
case SectionLanguage:
if err := editLanguage(cfg); err != nil {
continue
}
case SectionTranscription:
var err error
configuredProviders, err = editTranscription(cfg, configuredProviders)
@@ -154,6 +160,7 @@ func runEditExisting(cfg *config.Config) (*ConfigureResult, error) {
func selectSection(cfg *config.Config) (ConfigSection, error) {
options := []huh.Option[ConfigSection]{
huh.NewOption(formatProvidersLabel(cfg), SectionProviders),
huh.NewOption(formatLanguageMenuLabel(cfg), SectionLanguage),
huh.NewOption(formatTranscriptionLabel(cfg), SectionTranscription),
huh.NewOption(formatLLMLabel(cfg), SectionLLM),
huh.NewOption(formatKeywordsLabel(cfg), SectionKeywords),
+11
View File
@@ -6,6 +6,7 @@ import (
"github.com/charmbracelet/huh"
"github.com/leonardotrapani/hyprvoice/internal/config"
"github.com/leonardotrapani/hyprvoice/internal/language"
)
// formatProvidersLabel formats the providers menu option
@@ -13,6 +14,16 @@ func formatProvidersLabel(cfg *config.Config) string {
return "Providers"
}
// formatLanguageMenuLabel formats the language menu option showing current setting
func formatLanguageMenuLabel(cfg *config.Config) string {
langCode := cfg.General.Language
if langCode == "" {
return "Language (Auto-detect)"
}
lang := language.FromCode(langCode)
return fmt.Sprintf("Language (%s)", lang.Name)
}
// formatTranscriptionLabel formats the transcription menu option
func formatTranscriptionLabel(cfg *config.Config) string {
return "Transcription"
+11
View File
@@ -0,0 +1,11 @@
package tui
import (
"github.com/leonardotrapani/hyprvoice/internal/config"
)
// editLanguage allows the user to select the global transcription language
func editLanguage(cfg *config.Config) error {
// implementation in task 5
return nil
}
+9
View File
@@ -528,3 +528,12 @@ Started: Sun Feb 1 12:22:47 AM CET 2026
- Removed `language = ""` from `[transcription]` section
- Added commented `# language = ""` in transcription section with note about override
- All tests passing, typecheck passes
### Task 4: Add SectionLanguage to TUI configure menu
- Added `SectionLanguage ConfigSection = "language"` constant in configure.go
- Added Language option to selectSection() options list after Providers
- Created `formatLanguageMenuLabel(cfg)` helper in configure_helpers.go (renamed from formatLanguageLabel to avoid collision with languages.go)
- Shows "Language (Auto-detect)" when empty, "Language ({name})" when set
- Added case SectionLanguage in runEditExisting switch calling editLanguage()
- Created stub configure_language.go with editLanguage() function (implementation in Task 5)
- All tests passing, typecheck passes
+1 -1
View File
@@ -62,7 +62,7 @@
"Selecting Language enters language edit flow",
"Typecheck passes"
],
"passes": false
"passes": true
},
{
"title": "Create editLanguage function in TUI",