Files
bibliomane/internal/i18nresource/main.go

33 lines
801 B
Go

package i18nresource
import (
"embed"
"git.artlef.fr/bibliomane/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
}