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/container"
"fyne.io/fyne/v2/theme"
"fyne.io/fyne/v2/widget"
"github.com/nicksnyder/go-i18n/v2/i18n"
)
type ItemsToConvertContract interface {
@@ -35,21 +34,23 @@ func NewItemsToConvert(itemsContainer *fyne.Container, ffplayService FFplayContr
line := canvas.NewLine(theme.Color(theme.ColorNameFocus))
line.StrokeWidth = 5
checkboxAutoRemove := widget.NewCheck(localizerService.GetMessage(&i18n.LocalizeConfig{
MessageID: "autoClearAfterAddingToQueue",
}), func(checked bool) {
ItemsToConvert.isAutoRemove = checked
})
checkboxAutoRemove := widget.NewCheck(
localizerService.GetMessage("autoClearAfterAddingToQueue"),
func(checked bool) {
ItemsToConvert.isAutoRemove = checked
},
)
checkboxAutoRemove.SetChecked(ItemsToConvert.isAutoRemove)
localizerService.AddChangeCallback("autoClearAfterAddingToQueue", func(text string) {
checkboxAutoRemove.Text = text
})
buttonClear := widget.NewButton(localizerService.GetMessage(&i18n.LocalizeConfig{
MessageID: "clearAll",
}), func() {
ItemsToConvert.clear()
})
buttonClear := widget.NewButton(
localizerService.GetMessage("clearAll"),
func() {
ItemsToConvert.clear()
},
)
buttonClear.Importance = widget.DangerImportance
localizerService.AddChangeCallback("clearAll", func(text string) {
buttonClear.Text = text