tui: remove language from transcription edit flow, use Language menu
This commit is contained in:
@@ -114,7 +114,13 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
||||
}
|
||||
cfg.Transcription.Provider = selectedProvider
|
||||
|
||||
modelOptions := getTranscriptionModelOptions(selectedProvider, cfg.Transcription.Language)
|
||||
// use effective language for model compatibility display
|
||||
effectiveLanguage := cfg.General.Language
|
||||
if cfg.Transcription.Language != "" {
|
||||
effectiveLanguage = cfg.Transcription.Language
|
||||
}
|
||||
|
||||
modelOptions := getTranscriptionModelOptions(selectedProvider, effectiveLanguage)
|
||||
selectedModel := cfg.Transcription.Model
|
||||
if selectedModel == "" && len(modelOptions) > 0 {
|
||||
selectedModel = modelOptions[0].Value
|
||||
@@ -125,17 +131,6 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
||||
modelDesc = fmt.Sprintf("Currently: %s", cfg.Transcription.Model)
|
||||
}
|
||||
|
||||
selectedLanguage := cfg.Transcription.Language
|
||||
|
||||
// get current model for language compatibility warnings
|
||||
var currentModel *provider.Model
|
||||
registryName := mapConfigProviderToRegistry(selectedProvider)
|
||||
if m, err := provider.GetModel(registryName, selectedModel); err == nil {
|
||||
currentModel = m
|
||||
}
|
||||
|
||||
languageOptions := getLanguageOptions(currentModel)
|
||||
|
||||
modelForm := huh.NewForm(
|
||||
huh.NewGroup(
|
||||
huh.NewSelect[string]().
|
||||
@@ -143,12 +138,6 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
||||
Description(modelDesc).
|
||||
Options(modelOptions...).
|
||||
Value(&selectedModel),
|
||||
huh.NewSelect[string]().
|
||||
Title("Language").
|
||||
Description("Select language for transcription").
|
||||
Options(languageOptions...).
|
||||
Filtering(true).
|
||||
Value(&selectedLanguage),
|
||||
),
|
||||
).WithTheme(getTheme())
|
||||
|
||||
@@ -157,17 +146,16 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
||||
}
|
||||
|
||||
// validate language-model compatibility before saving
|
||||
registryName = mapConfigProviderToRegistry(selectedProvider)
|
||||
if err := provider.ValidateModelLanguage(registryName, selectedModel, selectedLanguage); err != nil {
|
||||
// show error dialog and let user fix
|
||||
registryName := mapConfigProviderToRegistry(selectedProvider)
|
||||
if err := provider.ValidateModelLanguage(registryName, selectedModel, effectiveLanguage); err != nil {
|
||||
// show error dialog - user needs to change language in Language menu
|
||||
fmt.Println()
|
||||
fmt.Println(StyleError.Render("Language-Model Incompatibility"))
|
||||
fmt.Println(StyleMuted.Render(err.Error()))
|
||||
fmt.Println()
|
||||
fmt.Println(StyleMuted.Render("You can:"))
|
||||
fmt.Println(StyleMuted.Render(" - Change to a different model"))
|
||||
fmt.Println(StyleMuted.Render(" - Select 'Auto-detect' for language"))
|
||||
fmt.Println(StyleMuted.Render(" - Choose a supported language"))
|
||||
fmt.Println(StyleMuted.Render(" - Choose a different model that supports your language"))
|
||||
fmt.Println(StyleMuted.Render(" - Change language to 'Auto-detect' in the Language menu"))
|
||||
fmt.Println()
|
||||
|
||||
var retry bool
|
||||
@@ -175,8 +163,8 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
||||
huh.NewGroup(
|
||||
huh.NewConfirm().
|
||||
Title("Try again?").
|
||||
Description("Return to fix the incompatibility").
|
||||
Affirmative("Yes, let me fix it").
|
||||
Description("Choose a different model").
|
||||
Affirmative("Yes, let me pick another model").
|
||||
Negative("Cancel").
|
||||
Value(&retry),
|
||||
),
|
||||
@@ -187,7 +175,7 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
||||
}
|
||||
|
||||
if retry {
|
||||
// recurse to let user fix the issue
|
||||
// recurse to let user pick another model
|
||||
return editTranscription(cfg, configuredProviders)
|
||||
}
|
||||
return configuredProviders, nil
|
||||
@@ -245,7 +233,8 @@ func editTranscription(cfg *config.Config, configuredProviders []string) ([]stri
|
||||
}
|
||||
|
||||
cfg.Transcription.Model = selectedModel
|
||||
cfg.Transcription.Language = selectedLanguage
|
||||
// language is now set in the Language menu (cfg.General.Language)
|
||||
// cfg.Transcription.Language can still be used as override but not set here
|
||||
|
||||
return configuredProviders, nil
|
||||
}
|
||||
|
||||
@@ -547,3 +547,13 @@ Started: Sun Feb 1 12:22:47 AM CET 2026
|
||||
- Shows warning dialog with 3 options: keep incompatible language, use auto-detect, or choose different language
|
||||
- Recursive retry flow if user chooses "Choose a different language"
|
||||
- All tests passing, typecheck passes
|
||||
|
||||
### Task 6: Remove language from transcription edit flow
|
||||
- Removed language select from `editTranscription()` model form in configure_transcription.go
|
||||
- Model form now only shows model selection (no language picker)
|
||||
- Added `effectiveLanguage` calculation: `cfg.Transcription.Language || cfg.General.Language`
|
||||
- Language validation still happens using effective language before saving
|
||||
- Updated error message to point users to Language menu: "Change language to 'Auto-detect' in the Language menu"
|
||||
- Only `cfg.Transcription.Model` saved now, not language
|
||||
- `cfg.Transcription.Language` can still be used as manual override but not set via TUI
|
||||
- All tests passing, typecheck passes
|
||||
+1
-1
@@ -97,7 +97,7 @@
|
||||
"Language validation still occurs using effective language",
|
||||
"Typecheck passes"
|
||||
],
|
||||
"passes": false
|
||||
"passes": true
|
||||
},
|
||||
{
|
||||
"title": "Enable streaming models in TUI model picker",
|
||||
|
||||
Reference in New Issue
Block a user