go-vise

Constrained Size Output Virtual Machine
Info | Log | Files | Refs | README | LICENSE

commit c09a397c9b66d0a9cdf6ecf5a105556aaa92ffe3
parent 81605c84f97c182736c1564f3137a486e1de08ef
Author: lash <dev@holbrook.no>
Date:   Thu,  2 Jan 2025 16:54:32 +0000

Implement new structure in poresource

Diffstat:
Mresource/gettext.go | 16++++++++++++++--
Mresource/gettext_test.go | 8++++----
2 files changed, 18 insertions(+), 6 deletions(-)

diff --git a/resource/gettext.go b/resource/gettext.go @@ -36,6 +36,10 @@ func(p *PoResource) WithLanguage(ln lang.Language) *PoResource { o := gotext.NewLocale(p.path, ln.Code) o.AddDomain(MenuPoDomain) o.AddDomain(TemplatePoDomain) + if ln.Code == p.defaultLanguage.Code { + o.AddDomain(TemplateKeyPoDomain) + o.AddDomain(MenuKeyPoDomain) + } p.tr[ln.Code] = o return p } @@ -46,9 +50,17 @@ func(p *PoResource) get(ctx context.Context, sym string, domain string) (string, if !ok { ln = p.defaultLanguage } - o, ok := p.tr[ln.Code] + o, ok := p.tr[p.defaultLanguage.Code] if ok { - s = o.GetD(domain, sym) + keyDomain := TemplateKeyPoDomain + if domain == MenuPoDomain { + keyDomain = MenuKeyPoDomain + } + s = o.GetD(keyDomain, sym) + o, ok := p.tr[ln.Code] + if ok { + s = o.GetD(domain, s) + } } return s, nil } diff --git a/resource/gettext_test.go b/resource/gettext_test.go @@ -35,18 +35,18 @@ func TestPoGetNotExist(t *testing.T) { } func TestPoGet(t *testing.T) { - ln, err := lang.LanguageFromCode("nor") + ln, err := lang.LanguageFromCode("eng") if err != nil { t.Fatal(err) } rs := NewPoResource(ln, testlocale.LocaleDir) - ctx := context.WithValue(context.Background(), "Language", ln) - ln, err = lang.LanguageFromCode("eng") + lnn, err := lang.LanguageFromCode("nor") if err != nil { t.Fatal(err) } - rs = rs.WithLanguage(ln) + rs = rs.WithLanguage(lnn) + ctx := context.WithValue(context.Background(), "Language", lnn) s, err := rs.GetMenu(ctx, "foo") if err != nil {