diff --git a/go.mod b/go.mod index ed273421a..8a73cf156 100644 --- a/go.mod +++ b/go.mod @@ -70,7 +70,7 @@ require ( github.com/mlnoga/rct v0.1.2-0.20250202175314-91abcbf32e53 github.com/muka/go-bluetooth v0.0.0-20240701044517-04c4f09c514e github.com/mxschmitt/golang-combinations v1.2.0 - github.com/nicksnyder/go-i18n/v2 v2.4.1 + github.com/nicksnyder/go-i18n/v2 v2.5.1 github.com/olekukonko/tablewriter v0.0.5 github.com/philippseith/signalr v0.6.3 github.com/prometheus-community/pro-bing v0.6.0 diff --git a/util/locale/locale.go b/util/locale/locale.go index 884512071..7469c24ab 100644 --- a/util/locale/locale.go +++ b/util/locale/locale.go @@ -32,9 +32,26 @@ func Init() error { } for _, d := range dir { - if _, err := Bundle.LoadMessageFileFS(assets.I18n, d.Name()); err != nil { + var data map[string]map[string]map[string]any + if _, err := toml.DecodeFS(assets.I18n, d.Name(), &data); err != nil { return fmt.Errorf("loading locales failed: %w", err) } + + // load sessions.csv only + if sessions := data["sessions"]; sessions != nil && len(sessions["csv"]) != 0 { + b, err := toml.Marshal(map[string]any{ + "sessions": map[string]any{ + "csv": sessions["csv"], + }, + }) + if err != nil { + return fmt.Errorf("marshal session.csv failed: %w", err) + } + + if _, err := Bundle.ParseMessageFileBytes(b, d.Name()); err != nil { + return fmt.Errorf("loading locales failed: %w", err) + } + } } Language, err = jibber_jabber.DetectLanguage()