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:
2025-06-01 15:20:33 +05:00
parent d69767f5e9
commit 3241b88158
40 changed files with 917 additions and 1869 deletions

View File

@@ -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))
}