go-vise

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

commit 9d3a16568871b29d8262461462e33a2b3b73c20d
parent 49b87d3a49b0878ee5908486fcd9592ff88fa206
Author: lash <dev@holbrook.no>
Date:   Thu,  2 Jan 2025 11:02:28 +0000

Add reverse gettext to resource generation

Diffstat:
Mdev/gettext/export/main.go | 53++++++++++++++++++++++++++++++++++++++++++++---------
Mdev/gettext/import/main.go | 2+-
2 files changed, 45 insertions(+), 10 deletions(-)

diff --git a/dev/gettext/export/main.go b/dev/gettext/export/main.go @@ -81,12 +81,47 @@ func(tr *translator) nodeFunc(node *debug.Node) error { if err != nil { return err } - logg.DebugCtxf(tr.ctx, "wrote node", "sym", sym, "bytes", c) + logg.DebugCtxf(tr.ctx, "wrote node", "sym", sym, "lang", ln.Code, "bytes", c) } } return nil } +func(tr *translator) menuFunc(sym string) error { + for i, ln := range(tr.langs) { + s, err := tr.rs.GetTemplate(tr.ctx, sym) + if err != nil { + logg.DebugCtxf(tr.ctx, "template not found", "sym", s) + continue + } + if s != sym { + if !tr.madePath { + err := os.MkdirAll(tr.outPath, 0700) + if err != nil { + return err + } + } + // TODO: use menu sym generator func instead + fb := sym + "_menu" + if i > 0 { + fb += "_" + ln.Code + } + // TODO: use lang filename generator func instead + fp := path.Join(tr.outPath, fb) + w, err := os.OpenFile(fp, os.O_WRONLY | os.O_CREATE, 0644) + if err != nil { + return err + } + c, err := w.Write([]byte(s)) + defer w.Close() + if err != nil { + return err + } + logg.DebugCtxf(tr.ctx, "wrote menu", "sym", sym, "lang", ln.Code, "bytes", c) + } + } +} + func(tr *translator) Close() error { return nil } @@ -181,13 +216,13 @@ func main() { } } -// for k, _ := range(debug.MenuIndex) { -// logg.Tracef("processing menu", "sym", k) -// err = tr.menuFunc(k) -// if err != nil { -// fmt.Fprintf(os.Stderr, "translate process error for menu %s: %v", k, err) -// os.Exit(1) -// } -// } + for k, _ := range(debug.MenuIndex) { + logg.Tracef("processing menu", "sym", k) + err = tr.menuFunc(k) + if err != nil { + fmt.Fprintf(os.Stderr, "translate process error for menu %s: %v", k, err) + os.Exit(1) + } + } } diff --git a/dev/gettext/import/main.go b/dev/gettext/import/main.go @@ -217,7 +217,7 @@ func main() { var newline bool var langs langVar - flag.StringVar(&dir, "i", ".", "resource dir to read from") + flag.StringVar(&dir, "d", ".", "node resource dir to read from") flag.StringVar(&outDir, "o", "locale", "output directory") flag.StringVar(&root, "root", "root", "entry point symbol") flag.BoolVar(&newline, "newline", false, "insert newlines in multiline strings")