From dc207a0138b3a346ad4fed7c01831d6d4982e7f2 Mon Sep 17 00:00:00 2001 From: decentral1se Date: Sat, 6 Sep 2025 08:38:38 +0200 Subject: [PATCH] test: lang parsing See https://git.coopcloud.tech/toolshed/abra/pulls/652 --- pkg/i18n/i18n.go | 10 +++++----- pkg/i18n/i18n_test.go | 21 +++++++++++++++++++++ 2 files changed, 26 insertions(+), 5 deletions(-) create mode 100644 pkg/i18n/i18n_test.go diff --git a/pkg/i18n/i18n.go b/pkg/i18n/i18n.go index 8bbbb961..3a8d1768 100644 --- a/pkg/i18n/i18n.go +++ b/pkg/i18n/i18n.go @@ -18,9 +18,11 @@ var assetFS embed.FS var ( DefaultLocale = "en" Locale = DefaultLocale + _, Mo = LoadLocale() + G = Mo.Get ) -func LoadLocale() *gotext.Mo { +func LoadLocale() (string, *gotext.Mo) { entries, err := assetFS.ReadDir("locales") if err != nil { log.Fatalf("i18n: unable to read embedded locales directory: %s", err) @@ -49,7 +51,7 @@ func LoadLocale() *gotext.Mo { } if Locale == DefaultLocale { - return gotext.NewMo() + return Locale, gotext.NewMo() } b, err := assetFS.ReadFile(fmt.Sprintf("locales/%s.mo", Locale)) @@ -60,7 +62,5 @@ func LoadLocale() *gotext.Mo { mo := gotext.NewMo() mo.Parse(b) - return mo + return Locale, mo } - -var G = LoadLocale().Get diff --git a/pkg/i18n/i18n_test.go b/pkg/i18n/i18n_test.go new file mode 100644 index 00000000..d30268a3 --- /dev/null +++ b/pkg/i18n/i18n_test.go @@ -0,0 +1,21 @@ +package i18n_test + +import ( + "os" + "testing" + + "coopcloud.tech/abra/pkg/i18n" +) + +func TestLoadLocale(t *testing.T) { + originalLang := os.Getenv("LANG") + os.Setenv("LANG", "es_ES.UTF-8") + t.Cleanup(func() { + os.Setenv("LANG", originalLang) + }) + + locale, _ := i18n.LoadLocale() + if locale != "es" { + t.Fatalf("expected 'es', locale was '%s'", locale) + } +} -- 2.49.0