Add localized error handling for database timeout
Introduced a new localized error message "errorDatabaseTimeout" in multiple languages (English, Kazakh, Russian) and updated the `PanicError` method to handle database timeout errors more gracefully. This improves user feedback by providing context-specific error messages.
This commit is contained in:
@@ -1,11 +1,14 @@
|
||||
package error
|
||||
|
||||
import (
|
||||
"errors"
|
||||
"fyne.io/fyne/v2/container"
|
||||
"fyne.io/fyne/v2/lang"
|
||||
"fyne.io/fyne/v2/widget"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/kernel"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/localizer"
|
||||
"github.com/nicksnyder/go-i18n/v2/i18n"
|
||||
"go.etcd.io/bbolt"
|
||||
)
|
||||
|
||||
type ViewContract interface {
|
||||
@@ -13,24 +16,38 @@ type ViewContract interface {
|
||||
}
|
||||
|
||||
type View struct {
|
||||
app kernel.AppContract
|
||||
app kernel.AppContract
|
||||
isSetLanguage bool
|
||||
}
|
||||
|
||||
func NewView(app kernel.AppContract) *View {
|
||||
return &View{
|
||||
app: app,
|
||||
app: app,
|
||||
isSetLanguage: true,
|
||||
}
|
||||
}
|
||||
|
||||
func (v View) PanicError(err error) {
|
||||
if v.isSetLanguage {
|
||||
v.isSetLanguage = false
|
||||
_ = v.app.GetLocalizerService().SetCurrentLanguageByCode(lang.SystemLocale().LanguageString())
|
||||
}
|
||||
|
||||
messageHead := v.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
|
||||
MessageID: "error",
|
||||
})
|
||||
|
||||
messagetText := err.Error()
|
||||
if errors.Is(err, bbolt.ErrTimeout) {
|
||||
messagetText = v.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
|
||||
MessageID: "errorDatabaseTimeout",
|
||||
})
|
||||
}
|
||||
|
||||
v.app.GetWindow().SetContent(container.NewBorder(
|
||||
container.NewVBox(
|
||||
widget.NewLabel(messageHead),
|
||||
widget.NewLabel(err.Error()),
|
||||
widget.NewLabel(messagetText),
|
||||
),
|
||||
nil,
|
||||
nil,
|
||||
@@ -42,6 +59,11 @@ func (v View) PanicError(err error) {
|
||||
}
|
||||
|
||||
func (v View) PanicErrorWriteDirectoryData() {
|
||||
if v.isSetLanguage {
|
||||
v.isSetLanguage = false
|
||||
_ = v.app.GetLocalizerService().SetCurrentLanguageByCode(lang.SystemLocale().LanguageString())
|
||||
}
|
||||
|
||||
message := v.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
|
||||
MessageID: "errorDatabase",
|
||||
})
|
||||
|
Reference in New Issue
Block a user