|
- package main
-
- import (
- "code.as/writeas/internal"
- "encoding/json"
- "fmt"
- "io/ioutil"
- "os"
- "strings"
- )
-
- func main() {
- if len(os.Args) < 3 {
- internal.ErrQuit("usage: json-to-l10n filename lang")
- }
-
- file := os.Args[1]
- lang := os.Args[2]
-
- phrases := parseJSON(file)
- out := `package l10n
-
- var phrases` + strings.ToUpper(lang) + ` = map[string]string{
- `
- for t, p := range phrases {
- out += fmt.Sprintf("\t\"%s\": \"%s\",\n", t, p)
- }
- out += "}"
-
- fmt.Println(out)
- }
-
- func parseJSON(filename string) map[string]string {
- raw, err := ioutil.ReadFile(filename)
- if err != nil {
- internal.ErrQuit("unable to read file: %v", err)
- }
-
- r := map[string]string{}
- var c map[string]map[string]string
- json.Unmarshal(raw, &c)
- for _, obj := range c {
- for k, v := range obj {
- r[k] = v
- }
- }
- return r
- }
|