v/GTT
1
0
mirror of https://github.com/eeeXun/GTT.git synced 2025-05-29 05:50:17 -07:00

show error when translate

This commit is contained in:
eeeXun 2022-10-23 00:23:44 +08:00
parent 374bd4c0e1
commit 12e00a7486
2 changed files with 15 additions and 7 deletions

View File

@ -56,7 +56,7 @@ func (t Translator) Translate(message string) (string, error) {
return "", errors.New("Translation not found") return "", errors.New("Translation not found")
} }
func (t Translator) PlaySound(lang string, message string) { func (t Translator) PlaySound(lang string, message string) error {
url_str := fmt.Sprintf( url_str := fmt.Sprintf(
sound_url, sound_url,
url.QueryEscape(message), url.QueryEscape(message),
@ -64,15 +64,15 @@ func (t Translator) PlaySound(lang string, message string) {
) )
res, err := http.Get(url_str) res, err := http.Get(url_str)
if err != nil { if err != nil {
panic(err) return err
} }
decoder, err := mp3.NewDecoder(res.Body) decoder, err := mp3.NewDecoder(res.Body)
if err != nil { if err != nil {
panic(err) return err
} }
otoCtx, readyChan, err := oto.NewContext(decoder.SampleRate(), 2, 2) otoCtx, readyChan, err := oto.NewContext(decoder.SampleRate(), 2, 2)
if err != nil { if err != nil {
panic(err) return err
} }
<-readyChan <-readyChan
player := otoCtx.NewPlayer(decoder) player := otoCtx.NewPlayer(decoder)
@ -81,6 +81,8 @@ func (t Translator) PlaySound(lang string, message string) {
time.Sleep(time.Second) time.Sleep(time.Second)
} }
if err = player.Close(); err != nil { if err = player.Close(); err != nil {
panic(err) return err
} }
return nil
} }

10
ui.go
View File

@ -118,9 +118,15 @@ func TranslatePageHandler(event *tcell.EventKey) *tcell.EventKey {
case tcell.KeyCtrlQ: case tcell.KeyCtrlQ:
src_box.SetText("", true) src_box.SetText("", true)
case tcell.KeyCtrlN: case tcell.KeyCtrlN:
translator.PlaySound(translator.src_lang, src_box.GetText()) err := translator.PlaySound(translator.src_lang, src_box.GetText())
if err != nil {
src_box.SetText(err.Error(), true)
}
case tcell.KeyCtrlP: case tcell.KeyCtrlP:
translator.PlaySound(translator.dst_lang, dst_box.GetText(false)) err := translator.PlaySound(translator.dst_lang, dst_box.GetText(false))
if err != nil {
dst_box.SetText(err.Error())
}
case tcell.KeyCtrlS: case tcell.KeyCtrlS:
translator.src_lang, translator.dst_lang = translator.dst_lang, translator.src_lang translator.src_lang, translator.dst_lang = translator.dst_lang, translator.src_lang
updateLang() updateLang()