commit c09a397c9b66d0a9cdf6ecf5a105556aaa92ffe3
parent 81605c84f97c182736c1564f3137a486e1de08ef
Author: lash <dev@holbrook.no>
Date: Thu, 2 Jan 2025 16:54:32 +0000
Implement new structure in poresource
Diffstat:
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 {