Refactor localization system and migrate to Fyne's built-in support
Replaced the `i18n` and `toml` dependencies with Fyne's built-in language system for localization management. Updated the `Localizer` implementation to handle translations using JSON files and embed functionality. Simplified language selection and persisted settings via Fyne's preferences API.
This commit is contained in:
@@ -6,7 +6,6 @@ import (
|
||||
"fyne.io/fyne/v2/widget"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/kernel"
|
||||
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/theme"
|
||||
"github.com/nicksnyder/go-i18n/v2/i18n"
|
||||
"image/color"
|
||||
)
|
||||
|
||||
@@ -40,7 +39,7 @@ func (v ViewSetting) Main(save func(*SettingForm) error, cancel func()) {
|
||||
errorMessage.TextStyle = fyne.TextStyle{Bold: true}
|
||||
|
||||
viewSettingForm := &SettingForm{
|
||||
Language: v.app.GetLocalizerService().GetCurrentLanguage().Lang,
|
||||
Language: v.app.GetLocalizerService().GetCurrentLanguage(),
|
||||
ThemeInfo: v.themeService.GetCurrentThemeInfo(),
|
||||
}
|
||||
|
||||
@@ -55,7 +54,7 @@ func (v ViewSetting) Main(save func(*SettingForm) error, cancel func()) {
|
||||
viewSettingForm.Language = lang
|
||||
}
|
||||
})
|
||||
selectLanguage.Selected = v.app.GetLocalizerService().GetCurrentLanguage().Lang.Title
|
||||
selectLanguage.Selected = v.app.GetLocalizerService().GetCurrentLanguage().Title
|
||||
|
||||
themeItems := []string{}
|
||||
themeByTitle := map[string]theme.ThemeInfoContract{}
|
||||
@@ -73,24 +72,18 @@ func (v ViewSetting) Main(save func(*SettingForm) error, cancel func()) {
|
||||
form := &widget.Form{
|
||||
Items: []*widget.FormItem{
|
||||
{
|
||||
Text: v.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
|
||||
MessageID: "menuSettingsLanguage",
|
||||
}),
|
||||
Text: v.app.GetLocalizerService().GetMessage("menuSettingsLanguage"),
|
||||
Widget: selectLanguage,
|
||||
},
|
||||
{
|
||||
Text: v.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
|
||||
MessageID: "menuSettingsTheme",
|
||||
}),
|
||||
Text: v.app.GetLocalizerService().GetMessage("menuSettingsTheme"),
|
||||
Widget: selectTheme,
|
||||
},
|
||||
{
|
||||
Widget: errorMessage,
|
||||
},
|
||||
},
|
||||
SubmitText: v.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
|
||||
MessageID: "save",
|
||||
}),
|
||||
SubmitText: v.app.GetLocalizerService().GetMessage("save"),
|
||||
OnSubmit: func() {
|
||||
err := save(viewSettingForm)
|
||||
if err != nil {
|
||||
@@ -100,13 +93,9 @@ func (v ViewSetting) Main(save func(*SettingForm) error, cancel func()) {
|
||||
}
|
||||
if cancel != nil {
|
||||
form.OnCancel = cancel
|
||||
form.CancelText = v.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
|
||||
MessageID: "cancel",
|
||||
})
|
||||
form.CancelText = v.app.GetLocalizerService().GetMessage("cancel")
|
||||
}
|
||||
|
||||
messageHead := v.app.GetLocalizerService().GetMessage(&i18n.LocalizeConfig{
|
||||
MessageID: "settings",
|
||||
})
|
||||
messageHead := v.app.GetLocalizerService().GetMessage("settings")
|
||||
v.app.GetWindow().SetContent(widget.NewCard(messageHead, "", form))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user