package i18nresource import ( "embed" "git.artlef.fr/PersonalLibraryManager/internal/appcontext" "github.com/nicksnyder/go-i18n/v2/i18n" "github.com/pelletier/go-toml" "golang.org/x/text/language" ) //go:embed locale.*.toml var localeFS embed.FS func InitializeI18n() *i18n.Bundle { bundle := i18n.NewBundle(language.English) bundle.RegisterUnmarshalFunc("toml", toml.Unmarshal) bundle.LoadMessageFileFS(localeFS, "locale.en.toml") bundle.LoadMessageFileFS(localeFS, "locale.fr.toml") return bundle } func GetTranslatedMessage(ac *appcontext.AppContext, messageID string) string { localizer := i18n.NewLocalizer(ac.I18n, ac.C.GetHeader("Accept-Language")) message, err := localizer.LocalizeMessage(&i18n.Message{ ID: messageID, }) if err != nil { message = err.Error() } return message }