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.
76 lines
2.6 KiB
Go
76 lines
2.6 KiB
Go
package main
|
|
|
|
import (
|
|
"fyne.io/fyne/v2"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/convertor"
|
|
error2 "git.kor-elf.net/kor-elf/gui-for-ffmpeg/error"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/handler"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/kernel"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/localizer"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/menu"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/setting"
|
|
"git.kor-elf.net/kor-elf/gui-for-ffmpeg/theme"
|
|
)
|
|
|
|
var application kernel.AppContract
|
|
var ffPathUtilities *kernel.FFPathUtilities
|
|
|
|
func init() {
|
|
iconResource, _ := fyne.LoadResourceFromPath("icon.png")
|
|
appMetadata := &fyne.AppMetadata{
|
|
ID: "net.kor-elf.projects.gui-for-ffmpeg",
|
|
Name: "GUI for FFmpeg",
|
|
Version: "0.9.0",
|
|
Icon: iconResource,
|
|
}
|
|
|
|
ffPathUtilities = &kernel.FFPathUtilities{FFmpeg: "", FFprobe: "", FFplay: ""}
|
|
convertorService := kernel.NewService(ffPathUtilities)
|
|
ffplayService := kernel.NewFFplay(ffPathUtilities)
|
|
|
|
queue := kernel.NewQueueList()
|
|
application = kernel.NewApp(
|
|
appMetadata,
|
|
queue,
|
|
ffplayService,
|
|
convertorService,
|
|
)
|
|
}
|
|
|
|
func main() {
|
|
errorView := error2.NewView(application)
|
|
|
|
settingRepository := setting.NewRepository(application.GetAppFyne())
|
|
settingDirectoryForSaving := setting.NewSettingDirectoryForSaving(settingRepository)
|
|
|
|
convertorRepository := convertor.NewRepository(settingRepository)
|
|
ffPathUtilities.FFmpeg = convertorRepository.GetPathFfmpeg()
|
|
ffPathUtilities.FFprobe = convertorRepository.GetPathFfprobe()
|
|
ffPathUtilities.FFplay = convertorRepository.GetPathFfplay()
|
|
|
|
application.RunConvertor()
|
|
defer application.AfterClosing()
|
|
|
|
localizerView := localizer.NewView(application)
|
|
convertorView := convertor.NewView(application)
|
|
itemsToConvertService := kernel.NewItemsToConvert(
|
|
application.GetWindow().GetLayout().GetRightTabs().GetAddedFilesContainer(),
|
|
application.GetFFplayService(),
|
|
application.GetLocalizerService(),
|
|
)
|
|
convertorHandler := handler.NewConvertorHandler(application, convertorView, errorView, convertorRepository, settingDirectoryForSaving, itemsToConvertService)
|
|
|
|
themeRepository := theme.NewRepository(settingRepository)
|
|
themeService := theme.NewTheme(application, themeRepository)
|
|
|
|
menuView := menu.NewView(application)
|
|
menuSettingView := menu.NewViewSetting(application, themeService)
|
|
mainMenu := handler.NewMenuHandler(application, convertorHandler, menuView, menuSettingView, localizerView, themeService)
|
|
|
|
mainHandler := handler.NewMainHandler(application, convertorHandler, mainMenu)
|
|
mainHandler.Start()
|
|
|
|
application.GetWindow().SetMainMenu(mainMenu.GetMainMenu())
|
|
application.GetWindow().ShowAndRun()
|
|
}
|