Files
gotext/cli/xgotext/main.go
2020-02-23 09:51:48 +01:00

61 lines
1.1 KiB
Go

package main
import (
"flag"
"log"
"os"
"path/filepath"
"github.com/leonelquinteros/gotext/cli/xgotext/parser"
)
var (
dirName = flag.String("in", "", "input dir: /path/to/go/pkg")
outputDir = flag.String("out", "", "output dir: /path/to/i18n/files")
)
func main() {
flag.Parse()
// Init logger
log.SetFlags(0)
if *dirName == "" {
log.Fatal("No input directory given")
}
if *outputDir == "" {
log.Fatal("No output directory given")
}
data, err := parser.ParseDirRec(*dirName)
if err != nil {
log.Fatal(err)
}
err = os.MkdirAll(*outputDir, os.ModePerm)
if err != nil {
log.Fatalf("failed to create output dir: %s", err)
}
for name, domain := range data {
outFile := filepath.Join(*outputDir, name+".po")
file, err := os.Create(outFile)
if err != nil {
log.Fatalf("failed to save po file for %s: %s", name, err)
}
file.WriteString(`msgid ""
msgstr ""
"Plural-Forms: nplurals=2; plural=(n != 1);\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
"Language: \n"
"X-Generator: xgotext\n"
`)
file.WriteString(domain.Dump())
file.Close()
}
}