summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/nicksnyder/go-i18n/goi18n
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/github.com/nicksnyder/go-i18n/goi18n')
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/constants_command.go229
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/constants_command_test.go42
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/doc.go93
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/gendoc.sh12
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/goi18n.go55
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command.go239
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command_flat_test.go36
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command_test.go75
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.json34
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.toml25
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.yaml29
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.yaml35
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/R.go38
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/ar-ar.all.json65
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/ar-ar.untranslated.json50
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/en-us.all.json45
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/en-us.untranslated.json1
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/ar-ar.all.json43
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/ar-ar.untranslated.json32
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.all.json27
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.untranslated.json1
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.untranslated.json.json0
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/fr-fr.all.json27
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/fr-fr.untranslated.json27
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/fr-fr.all.json45
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/fr-fr.untranslated.json45
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/ar-ar.one.json54
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/ar-ar.two.json54
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.constants.json45
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.one.json30
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.two.json26
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/ar-ar.one.toml37
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/ar-ar.two.json45
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.constants.json34
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.one.yaml16
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.two.json19
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/fr-fr.json0
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/fr-fr.json0
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/ar-ar.one.json54
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/ar-ar.two.json54
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/en-us.one.yaml19
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/en-us.two.json26
-rw-r--r--vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/fr-fr.json0
43 files changed, 0 insertions, 1863 deletions
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/constants_command.go b/vendor/github.com/nicksnyder/go-i18n/goi18n/constants_command.go
deleted file mode 100644
index d877add32..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/constants_command.go
+++ /dev/null
@@ -1,229 +0,0 @@
-package main
-
-import (
- "flag"
- "fmt"
- "os"
- "path/filepath"
- "reflect"
- "regexp"
- "sort"
- "strconv"
- "strings"
- "text/template"
- "unicode"
-
- "github.com/nicksnyder/go-i18n/i18n/bundle"
- "github.com/nicksnyder/go-i18n/i18n/language"
- "github.com/nicksnyder/go-i18n/i18n/translation"
-)
-
-type constantsCommand struct {
- translationFiles []string
- packageName string
- outdir string
-}
-
-type templateConstants struct {
- ID string
- Name string
- Comments []string
-}
-
-type templateHeader struct {
- PackageName string
- Constants []templateConstants
-}
-
-var constTemplate = template.Must(template.New("").Parse(`// DON'T CHANGE THIS FILE MANUALLY
-// This file was generated using the command:
-// $ goi18n constants
-
-package {{.PackageName}}
-{{range .Constants}}
-// {{.Name}} is the identifier for the following localizable string template(s):{{range .Comments}}
-// {{.}}{{end}}
-const {{.Name}} = "{{.ID}}"
-{{end}}`))
-
-func (cc *constantsCommand) execute() error {
- if len(cc.translationFiles) != 1 {
- return fmt.Errorf("need one translation file")
- }
-
- bundle := bundle.New()
-
- if err := bundle.LoadTranslationFile(cc.translationFiles[0]); err != nil {
- return fmt.Errorf("failed to load translation file %s because %s\n", cc.translationFiles[0], err)
- }
-
- translations := bundle.Translations()
- lang := translations[bundle.LanguageTags()[0]]
-
- // create an array of id to organize
- keys := make([]string, len(lang))
- i := 0
-
- for id := range lang {
- keys[i] = id
- i++
- }
- sort.Strings(keys)
-
- tmpl := &templateHeader{
- PackageName: cc.packageName,
- Constants: make([]templateConstants, len(keys)),
- }
-
- for i, id := range keys {
- tmpl.Constants[i].ID = id
- tmpl.Constants[i].Name = toCamelCase(id)
- tmpl.Constants[i].Comments = toComments(lang[id])
- }
-
- filename := filepath.Join(cc.outdir, cc.packageName+".go")
- f, err := os.Create(filename)
- if err != nil {
- return fmt.Errorf("failed to create file %s because %s", filename, err)
- }
-
- defer f.Close()
-
- if err = constTemplate.Execute(f, tmpl); err != nil {
- return fmt.Errorf("failed to write file %s because %s", filename, err)
- }
-
- return nil
-}
-
-func (cc *constantsCommand) parse(arguments []string) {
- flags := flag.NewFlagSet("constants", flag.ExitOnError)
- flags.Usage = usageConstants
-
- packageName := flags.String("package", "R", "")
- outdir := flags.String("outdir", ".", "")
-
- flags.Parse(arguments)
-
- cc.translationFiles = flags.Args()
- cc.packageName = *packageName
- cc.outdir = *outdir
-}
-
-func (cc *constantsCommand) SetArgs(args []string) {
- cc.translationFiles = args
-}
-
-func usageConstants() {
- fmt.Printf(`Generate constant file from translation file.
-
-Usage:
-
- goi18n constants [options] [file]
-
-Translation files:
-
- A translation file contains the strings and translations for a single language.
-
- Translation file names must have a suffix of a supported format (e.g. .json) and
- contain a valid language tag as defined by RFC 5646 (e.g. en-us, fr, zh-hant, etc.).
-
-Options:
-
- -package name
- goi18n generates the constant file under the package name.
- Default: R
-
- -outdir directory
- goi18n writes the constant file to this directory.
- Default: .
-
-`)
-}
-
-// commonInitialisms is a set of common initialisms.
-// Only add entries that are highly unlikely to be non-initialisms.
-// For instance, "ID" is fine (Freudian code is rare), but "AND" is not.
-// https://github.com/golang/lint/blob/master/lint.go
-var commonInitialisms = map[string]bool{
- "API": true,
- "ASCII": true,
- "CPU": true,
- "CSS": true,
- "DNS": true,
- "EOF": true,
- "GUID": true,
- "HTML": true,
- "HTTP": true,
- "HTTPS": true,
- "ID": true,
- "IP": true,
- "JSON": true,
- "LHS": true,
- "QPS": true,
- "RAM": true,
- "RHS": true,
- "RPC": true,
- "SLA": true,
- "SMTP": true,
- "SQL": true,
- "SSH": true,
- "TCP": true,
- "TLS": true,
- "TTL": true,
- "UDP": true,
- "UI": true,
- "UID": true,
- "UUID": true,
- "URI": true,
- "URL": true,
- "UTF8": true,
- "VM": true,
- "XML": true,
- "XSRF": true,
- "XSS": true,
-}
-
-func toCamelCase(id string) string {
- var result string
-
- r := regexp.MustCompile(`[\-\.\_\s]`)
- words := r.Split(id, -1)
-
- for _, w := range words {
- upper := strings.ToUpper(w)
- if commonInitialisms[upper] {
- result += upper
- continue
- }
-
- if len(w) > 0 {
- u := []rune(w)
- u[0] = unicode.ToUpper(u[0])
- result += string(u)
- }
- }
- return result
-}
-
-func toComments(trans translation.Translation) []string {
- var result []string
- data := trans.MarshalInterface().(map[string]interface{})
-
- t := data["translation"]
-
- switch v := reflect.ValueOf(t); v.Kind() {
- case reflect.Map:
- for _, k := range []language.Plural{"zero", "one", "two", "few", "many", "other"} {
- vt := v.MapIndex(reflect.ValueOf(k))
- if !vt.IsValid() {
- continue
- }
- result = append(result, string(k)+": "+strconv.Quote(fmt.Sprint(vt.Interface())))
- }
- default:
- result = append(result, strconv.Quote(fmt.Sprint(t)))
- }
-
- return result
-}
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/constants_command_test.go b/vendor/github.com/nicksnyder/go-i18n/goi18n/constants_command_test.go
deleted file mode 100644
index 43dea3f38..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/constants_command_test.go
+++ /dev/null
@@ -1,42 +0,0 @@
-package main
-
-import "testing"
-
-func TestConstantsExecute(t *testing.T) {
- resetDir(t, "testdata/output")
-
- cc := &constantsCommand{
- translationFiles: []string{"testdata/input/en-us.constants.json"},
- packageName: "R",
- outdir: "testdata/output",
- }
-
- if err := cc.execute(); err != nil {
- t.Fatal(err)
- }
-
- expectEqualFiles(t, "testdata/output/R.go", "testdata/expected/R.go")
-}
-
-func TestToCamelCase(t *testing.T) {
- expectEqual := func(test, expected string) {
- result := toCamelCase(test)
- if result != expected {
- t.Fatalf("failed toCamelCase the test %s was expected %s but the result was %s", test, expected, result)
- }
- }
-
- expectEqual("", "")
- expectEqual("a", "A")
- expectEqual("_", "")
- expectEqual("__code__", "Code")
- expectEqual("test", "Test")
- expectEqual("test_one", "TestOne")
- expectEqual("test.two", "TestTwo")
- expectEqual("test_alpha_beta", "TestAlphaBeta")
- expectEqual("word word", "WordWord")
- expectEqual("test_id", "TestID")
- expectEqual("tcp_name", "TCPName")
- expectEqual("こんにちは", "こんにちは")
- expectEqual("test_a", "TestA")
-}
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/doc.go b/vendor/github.com/nicksnyder/go-i18n/goi18n/doc.go
deleted file mode 100644
index 97c7a7fb6..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/doc.go
+++ /dev/null
@@ -1,93 +0,0 @@
-// The goi18n command formats and merges translation files.
-//
-// go get -u github.com/nicksnyder/go-i18n/goi18n
-// goi18n -help
-//
-// Help documentation:
-//
-// goi18n manages translation files.
-//
-// Usage:
-//
-// goi18n merge Merge translation files
-// goi18n constants Generate constant file from translation file
-//
-// For more details execute:
-//
-// goi18n [command] -help
-//
-// Merge translation files.
-//
-// Usage:
-//
-// goi18n merge [options] [files...]
-//
-// Translation files:
-//
-// A translation file contains the strings and translations for a single language.
-//
-// Translation file names must have a suffix of a supported format (e.g. .json) and
-// contain a valid language tag as defined by RFC 5646 (e.g. en-us, fr, zh-hant, etc.).
-//
-// For each language represented by at least one input translation file, goi18n will produce 2 output files:
-//
-// xx-yy.all.format
-// This file contains all strings for the language (translated and untranslated).
-// Use this file when loading strings at runtime.
-//
-// xx-yy.untranslated.format
-// This file contains the strings that have not been translated for this language.
-// The translations for the strings in this file will be extracted from the source language.
-// After they are translated, merge them back into xx-yy.all.format using goi18n.
-//
-// Merging:
-//
-// goi18n will merge multiple translation files for the same language.
-// Duplicate translations will be merged into the existing translation.
-// Non-empty fields in the duplicate translation will overwrite those fields in the existing translation.
-// Empty fields in the duplicate translation are ignored.
-//
-// Adding a new language:
-//
-// To produce translation files for a new language, create an empty translation file with the
-// appropriate name and pass it in to goi18n.
-//
-// Options:
-//
-// -sourceLanguage tag
-// goi18n uses the strings from this language to seed the translations for other languages.
-// Default: en-us
-//
-// -outdir directory
-// goi18n writes the output translation files to this directory.
-// Default: .
-//
-// -format format
-// goi18n encodes the output translation files in this format.
-// Supported formats: json, yaml
-// Default: json
-//
-// Generate constant file from translation file.
-//
-// Usage:
-//
-// goi18n constants [options] [file]
-//
-// Translation files:
-//
-// A translation file contains the strings and translations for a single language.
-//
-// Translation file names must have a suffix of a supported format (e.g. .json) and
-// contain a valid language tag as defined by RFC 5646 (e.g. en-us, fr, zh-hant, etc.).
-//
-// Options:
-//
-// -package name
-// goi18n generates the constant file under the package name.
-// Default: R
-//
-// -outdir directory
-// goi18n writes the constant file to this directory.
-// Default: .
-//
-package main
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/gendoc.sh b/vendor/github.com/nicksnyder/go-i18n/goi18n/gendoc.sh
deleted file mode 100644
index f30df34e6..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/gendoc.sh
+++ /dev/null
@@ -1,12 +0,0 @@
-go install
-echo "// The goi18n command formats and merges translation files." > doc.go
-echo "//" >> doc.go
-echo "// go get -u github.com/nicksnyder/go-i18n/goi18n" >> doc.go
-echo "// goi18n -help" >> doc.go
-echo "//" >> doc.go
-echo "// Help documentation:" >> doc.go
-echo "//" >> doc.go
-goi18n | sed -e 's/^/\/\/ /' >> doc.go
-goi18n merge -help | sed -e 's/^/\/\/ /' >> doc.go
-goi18n constants -help | sed -e 's/^/\/\/ /' >> doc.go
-echo "package main" >> doc.go
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/goi18n.go b/vendor/github.com/nicksnyder/go-i18n/goi18n/goi18n.go
deleted file mode 100644
index 3bd763f47..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/goi18n.go
+++ /dev/null
@@ -1,55 +0,0 @@
-package main
-
-import (
- "flag"
- "fmt"
- "os"
-)
-
-type command interface {
- execute() error
- parse(arguments []string)
-}
-
-func main() {
- flag.Usage = usage
-
- if len(os.Args) == 1 {
- usage()
- }
-
- var cmd command
-
- switch os.Args[1] {
- case "merge":
- cmd = &mergeCommand{}
- cmd.parse(os.Args[2:])
- case "constants":
- cmd = &constantsCommand{}
- cmd.parse(os.Args[2:])
- default:
- cmd = &mergeCommand{}
- cmd.parse(os.Args[1:])
- }
-
- if err := cmd.execute(); err != nil {
- fmt.Println(err.Error())
- os.Exit(1)
- }
-}
-
-func usage() {
- fmt.Printf(`goi18n manages translation files.
-
-Usage:
-
- goi18n merge Merge translation files
- goi18n constants Generate constant file from translation file
-
-For more details execute:
-
- goi18n [command] -help
-
-`)
- os.Exit(1)
-}
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command.go b/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command.go
deleted file mode 100644
index 1b9d04fd3..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command.go
+++ /dev/null
@@ -1,239 +0,0 @@
-package main
-
-import (
- "encoding/json"
- "flag"
- "fmt"
- "io/ioutil"
- "path/filepath"
- "reflect"
- "sort"
-
- "gopkg.in/yaml.v2"
-
- "github.com/nicksnyder/go-i18n/i18n/bundle"
- "github.com/nicksnyder/go-i18n/i18n/language"
- "github.com/nicksnyder/go-i18n/i18n/translation"
- toml "github.com/pelletier/go-toml"
-)
-
-type mergeCommand struct {
- translationFiles []string
- sourceLanguage string
- outdir string
- format string
- flat bool
-}
-
-func (mc *mergeCommand) execute() error {
- if len(mc.translationFiles) < 1 {
- return fmt.Errorf("need at least one translation file to parse")
- }
-
- if lang := language.Parse(mc.sourceLanguage); lang == nil {
- return fmt.Errorf("invalid source locale: %s", mc.sourceLanguage)
- }
-
- bundle := bundle.New()
- for _, tf := range mc.translationFiles {
- if err := bundle.LoadTranslationFile(tf); err != nil {
- return fmt.Errorf("failed to load translation file %s: %s\n", tf, err)
- }
- }
-
- translations := bundle.Translations()
- sourceLanguageTag := language.NormalizeTag(mc.sourceLanguage)
- sourceTranslations := translations[sourceLanguageTag]
- if sourceTranslations == nil {
- return fmt.Errorf("no translations found for source locale %s", sourceLanguageTag)
- }
- for translationID, src := range sourceTranslations {
- for _, localeTranslations := range translations {
- if dst := localeTranslations[translationID]; dst == nil || reflect.TypeOf(src) != reflect.TypeOf(dst) {
- localeTranslations[translationID] = src.UntranslatedCopy()
- }
- }
- }
-
- for localeID, localeTranslations := range translations {
- lang := language.MustParse(localeID)[0]
- all := filter(localeTranslations, func(t translation.Translation) translation.Translation {
- return t.Normalize(lang)
- })
- if err := mc.writeFile("all", all, localeID); err != nil {
- return err
- }
-
- untranslated := filter(localeTranslations, func(t translation.Translation) translation.Translation {
- if t.Incomplete(lang) {
- return t.Normalize(lang).Backfill(sourceTranslations[t.ID()])
- }
- return nil
- })
- if err := mc.writeFile("untranslated", untranslated, localeID); err != nil {
- return err
- }
- }
- return nil
-}
-
-func (mc *mergeCommand) parse(arguments []string) {
- flags := flag.NewFlagSet("merge", flag.ExitOnError)
- flags.Usage = usageMerge
-
- sourceLanguage := flags.String("sourceLanguage", "en-us", "")
- outdir := flags.String("outdir", ".", "")
- format := flags.String("format", "json", "")
- flat := flags.Bool("flat", true, "")
-
- flags.Parse(arguments)
-
- mc.translationFiles = flags.Args()
- mc.sourceLanguage = *sourceLanguage
- mc.outdir = *outdir
- mc.format = *format
- if *format == "toml" {
- mc.flat = true
- } else {
- mc.flat = *flat
- }
-}
-
-func (mc *mergeCommand) SetArgs(args []string) {
- mc.translationFiles = args
-}
-
-func (mc *mergeCommand) writeFile(label string, translations []translation.Translation, localeID string) error {
- sort.Sort(translation.SortableByID(translations))
-
- var convert func([]translation.Translation) interface{}
- if mc.flat {
- convert = marshalFlatInterface
- } else {
- convert = marshalInterface
- }
-
- buf, err := mc.marshal(convert(translations))
- if err != nil {
- return fmt.Errorf("failed to marshal %s strings to %s: %s", localeID, mc.format, err)
- }
-
- filename := filepath.Join(mc.outdir, fmt.Sprintf("%s.%s.%s", localeID, label, mc.format))
-
- if err := ioutil.WriteFile(filename, buf, 0666); err != nil {
- return fmt.Errorf("failed to write %s: %s", filename, err)
- }
- return nil
-}
-
-func filter(translations map[string]translation.Translation, f func(translation.Translation) translation.Translation) []translation.Translation {
- filtered := make([]translation.Translation, 0, len(translations))
- for _, translation := range translations {
- if t := f(translation); t != nil {
- filtered = append(filtered, t)
- }
- }
- return filtered
-
-}
-
-func marshalFlatInterface(translations []translation.Translation) interface{} {
- mi := make(map[string]interface{}, len(translations))
- for _, translation := range translations {
- mi[translation.ID()] = translation.MarshalFlatInterface()
- }
- return mi
-}
-
-func marshalInterface(translations []translation.Translation) interface{} {
- mi := make([]interface{}, len(translations))
- for i, translation := range translations {
- mi[i] = translation.MarshalInterface()
- }
- return mi
-}
-
-func (mc mergeCommand) marshal(v interface{}) ([]byte, error) {
- switch mc.format {
- case "json":
- return json.MarshalIndent(v, "", " ")
- case "toml":
- return marshalTOML(v)
- case "yaml":
- return yaml.Marshal(v)
- }
- return nil, fmt.Errorf("unsupported format: %s\n", mc.format)
-}
-
-func marshalTOML(v interface{}) ([]byte, error) {
- m, ok := v.(map[string]interface{})
- if !ok {
- return nil, fmt.Errorf("invalid format for marshaling to TOML")
- }
- tree, err := toml.TreeFromMap(m)
- if err != nil {
- return nil, err
- }
- s, err := tree.ToTomlString()
- return []byte(s), err
-}
-
-func usageMerge() {
- fmt.Printf(`Merge translation files.
-
-Usage:
-
- goi18n merge [options] [files...]
-
-Translation files:
-
- A translation file contains the strings and translations for a single language.
-
- Translation file names must have a suffix of a supported format (e.g. .json) and
- contain a valid language tag as defined by RFC 5646 (e.g. en-us, fr, zh-hant, etc.).
-
- For each language represented by at least one input translation file, goi18n will produce 2 output files:
-
- xx-yy.all.format
- This file contains all strings for the language (translated and untranslated).
- Use this file when loading strings at runtime.
-
- xx-yy.untranslated.format
- This file contains the strings that have not been translated for this language.
- The translations for the strings in this file will be extracted from the source language.
- After they are translated, merge them back into xx-yy.all.format using goi18n.
-
-Merging:
-
- goi18n will merge multiple translation files for the same language.
- Duplicate translations will be merged into the existing translation.
- Non-empty fields in the duplicate translation will overwrite those fields in the existing translation.
- Empty fields in the duplicate translation are ignored.
-
-Adding a new language:
-
- To produce translation files for a new language, create an empty translation file with the
- appropriate name and pass it in to goi18n.
-
-Options:
-
- -sourceLanguage tag
- goi18n uses the strings from this language to seed the translations for other languages.
- Default: en-us
-
- -outdir directory
- goi18n writes the output translation files to this directory.
- Default: .
-
- -format format
- goi18n encodes the output translation files in this format.
- Supported formats: json, toml, yaml
- Default: json
-
- -flat
- goi18n writes the output translation files in flat format.
- Usage of '-format toml' automitically sets this flag.
- Default: true
-
-`)
-}
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command_flat_test.go b/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command_flat_test.go
deleted file mode 100644
index caa892d29..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command_flat_test.go
+++ /dev/null
@@ -1,36 +0,0 @@
-package main
-
-import "testing"
-
-func TestMergeExecuteFlat(t *testing.T) {
- files := []string{
- "testdata/input/flat/en-us.one.yaml",
- "testdata/input/flat/en-us.two.json",
- "testdata/input/flat/fr-fr.json",
- "testdata/input/flat/ar-ar.one.toml",
- "testdata/input/flat/ar-ar.two.json",
- }
- testFlatMergeExecute(t, files)
-}
-
-func testFlatMergeExecute(t *testing.T, files []string) {
- resetDir(t, "testdata/output/flat")
-
- mc := &mergeCommand{
- translationFiles: files,
- sourceLanguage: "en-us",
- outdir: "testdata/output/flat",
- format: "json",
- flat: true,
- }
- if err := mc.execute(); err != nil {
- t.Fatal(err)
- }
-
- expectEqualFiles(t, "testdata/output/flat/en-us.all.json", "testdata/expected/flat/en-us.all.json")
- expectEqualFiles(t, "testdata/output/flat/ar-ar.all.json", "testdata/expected/flat/ar-ar.all.json")
- expectEqualFiles(t, "testdata/output/flat/fr-fr.all.json", "testdata/expected/flat/fr-fr.all.json")
- expectEqualFiles(t, "testdata/output/flat/en-us.untranslated.json", "testdata/expected/flat/en-us.untranslated.json")
- expectEqualFiles(t, "testdata/output/flat/ar-ar.untranslated.json", "testdata/expected/flat/ar-ar.untranslated.json")
- expectEqualFiles(t, "testdata/output/flat/fr-fr.untranslated.json", "testdata/expected/flat/fr-fr.untranslated.json")
-}
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command_test.go b/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command_test.go
deleted file mode 100644
index 425a6b62d..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/merge_command_test.go
+++ /dev/null
@@ -1,75 +0,0 @@
-package main
-
-import (
- "bytes"
- "io/ioutil"
- "os"
- "testing"
-)
-
-func TestMergeExecuteJSON(t *testing.T) {
- files := []string{
- "testdata/input/en-us.one.json",
- "testdata/input/en-us.two.json",
- "testdata/input/fr-fr.json",
- "testdata/input/ar-ar.one.json",
- "testdata/input/ar-ar.two.json",
- }
- testMergeExecute(t, files)
-}
-
-func TestMergeExecuteYAML(t *testing.T) {
- files := []string{
- "testdata/input/yaml/en-us.one.yaml",
- "testdata/input/yaml/en-us.two.json",
- "testdata/input/yaml/fr-fr.json",
- "testdata/input/yaml/ar-ar.one.json",
- "testdata/input/yaml/ar-ar.two.json",
- }
- testMergeExecute(t, files)
-}
-
-func testMergeExecute(t *testing.T, files []string) {
- resetDir(t, "testdata/output")
-
- mc := &mergeCommand{
- translationFiles: files,
- sourceLanguage: "en-us",
- outdir: "testdata/output",
- format: "json",
- flat: false,
- }
- if err := mc.execute(); err != nil {
- t.Fatal(err)
- }
-
- expectEqualFiles(t, "testdata/output/en-us.all.json", "testdata/expected/en-us.all.json")
- expectEqualFiles(t, "testdata/output/ar-ar.all.json", "testdata/expected/ar-ar.all.json")
- expectEqualFiles(t, "testdata/output/fr-fr.all.json", "testdata/expected/fr-fr.all.json")
- expectEqualFiles(t, "testdata/output/en-us.untranslated.json", "testdata/expected/en-us.untranslated.json")
- expectEqualFiles(t, "testdata/output/ar-ar.untranslated.json", "testdata/expected/ar-ar.untranslated.json")
- expectEqualFiles(t, "testdata/output/fr-fr.untranslated.json", "testdata/expected/fr-fr.untranslated.json")
-}
-
-func resetDir(t *testing.T, dir string) {
- if err := os.RemoveAll(dir); err != nil {
- t.Fatal(err)
- }
- if err := os.Mkdir(dir, 0777); err != nil {
- t.Fatal(err)
- }
-}
-
-func expectEqualFiles(t *testing.T, expectedName, actualName string) {
- actual, err := ioutil.ReadFile(actualName)
- if err != nil {
- t.Fatal(err)
- }
- expected, err := ioutil.ReadFile(expectedName)
- if err != nil {
- t.Fatal(err)
- }
- if !bytes.Equal(actual, expected) {
- t.Errorf("contents of files did not match: %s, %s", expectedName, actualName)
- }
-}
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.json
deleted file mode 100644
index f67d21cac..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "program_greeting": {
- "other": "Hello world"
- },
-
- "person_greeting": {
- "other": "Hello {{.Person}}"
- },
-
- "my_height_in_meters": {
- "one": "I am {{.Count}} meter tall.",
- "other": "I am {{.Count}} meters tall."
- },
-
- "your_unread_email_count": {
- "one": "You have {{.Count}} unread email.",
- "other": "You have {{.Count}} unread emails."
- },
-
- "person_unread_email_count": {
- "one": "{{.Person}} has {{.Count}} unread email.",
- "other": "{{.Person}} has {{.Count}} unread emails."
- },
-
- "person_unread_email_count_timeframe": {
- "one": "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}.",
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- },
-
- "d_days": {
- "one": "{{.Count}} day.",
- "other": "{{.Count}} days."
- }
-}
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.toml b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.toml
deleted file mode 100644
index 5623a6c2e..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.toml
+++ /dev/null
@@ -1,25 +0,0 @@
-[program_greeting]
-other = "Hello world"
-
-[person_greeting]
-other = "Hello {{.Person}}"
-
-[my_height_in_meters]
-one = "I am {{.Count}} meter tall."
-other = "I am {{.Count}} meters tall."
-
-[your_unread_email_count]
-one = "You have {{.Count}} unread email."
-other = "You have {{.Count}} unread emails."
-
-[person_unread_email_count]
-one = "{{.Person}} has {{.Count}} unread email."
-other = "{{.Person}} has {{.Count}} unread emails."
-
-[person_unread_email_count_timeframe]
-one = "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}."
-other = "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
-
-[d_days]
-one = "{{.Count}} day"
-other = "{{.Count}} days"
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.yaml b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.yaml
deleted file mode 100644
index 664128907..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.flat.yaml
+++ /dev/null
@@ -1,29 +0,0 @@
-
-
-# Comment
-# Comment
-program_greeting:
- other: "Hello world"
-
-person_greeting:
- other: "Hello {{.Person}}"
-
-my_height_in_meters:
- one: "I am {{.Count}} meter tall."
- other: "I am {{.Count}} meters tall."
-
-your_unread_email_count:
- one: "You have {{.Count}} unread email."
- other: "You have {{.Count}} unread emails."
-
-person_unread_email_count:
- one: "{{.Person}} has {{.Count}} unread email."
- other: "{{.Person}} has {{.Count}} unread emails."
-
-person_unread_email_count_timeframe:
- one: "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}."
- other: "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
-
-d_days:
- one: "{{.Count}} day"
- other: "{{.Count}} days"
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.yaml b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.yaml
deleted file mode 100644
index a8f5ed9be..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/en-us.yaml
+++ /dev/null
@@ -1,35 +0,0 @@
-
-
-
-# Comment
-# Comment
-- id: program_greeting
- translation: "Hello world"
-
-- id: person_greeting
- translation: "Hello {{.Person}}"
-
-- id: my_height_in_meters
- translation:
- one: "I am {{.Count}} meter tall."
- other: "I am {{.Count}} meters tall."
-
-- id: your_unread_email_count
- translation:
- one: "You have {{.Count}} unread email."
- other: "You have {{.Count}} unread emails."
-
-- id: person_unread_email_count
- translation:
- one: "{{.Person}} has {{.Count}} unread email."
- other: "{{.Person}} has {{.Count}} unread emails."
-
-- id: person_unread_email_count_timeframe
- translation:
- one: "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}."
- other: "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
-
-- id: d_days
- translation:
- one: "{{.Count}} day"
- other: "{{.Count}} days"
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/R.go b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/R.go
deleted file mode 100644
index 9b5334a7e..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/R.go
+++ /dev/null
@@ -1,38 +0,0 @@
-// DON'T CHANGE THIS FILE MANUALLY
-// This file was generated using the command:
-// $ goi18n constants
-
-package R
-
-// DDays is the identifier for the following localizable string template(s):
-// one: "{{.Count}} day"
-// other: "{{.Count}} days"
-const DDays = "d_days"
-
-// MyHeightInMeters is the identifier for the following localizable string template(s):
-// one: "I am {{.Count}} meter tall."
-// other: "I am {{.Count}} meters tall."
-const MyHeightInMeters = "my_height_in_meters"
-
-// PersonGreeting is the identifier for the following localizable string template(s):
-// "Hello {{.Person}}"
-const PersonGreeting = "person_greeting"
-
-// PersonUnreadEmailCount is the identifier for the following localizable string template(s):
-// one: "{{.Person}} has {{.Count}} unread email."
-// other: "{{.Person}} has {{.Count}} unread emails."
-const PersonUnreadEmailCount = "person_unread_email_count"
-
-// PersonUnreadEmailCountTimeframe is the identifier for the following localizable string template(s):
-// one: "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}."
-// other: "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
-const PersonUnreadEmailCountTimeframe = "person_unread_email_count_timeframe"
-
-// ProgramGreeting is the identifier for the following localizable string template(s):
-// "Hello world"
-const ProgramGreeting = "program_greeting"
-
-// YourUnreadEmailCount is the identifier for the following localizable string template(s):
-// one: "You have {{.Count}} unread email."
-// other: "You have {{.Count}} unread emails."
-const YourUnreadEmailCount = "your_unread_email_count"
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/ar-ar.all.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/ar-ar.all.json
deleted file mode 100644
index 26a72ff30..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/ar-ar.all.json
+++ /dev/null
@@ -1,65 +0,0 @@
-[
- {
- "id": "d_days",
- "translation": {
- "few": "new arabic few translation of d_days",
- "many": "arabic many translation of d_days",
- "one": "arabic one translation of d_days",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "my_height_in_meters",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "person_greeting",
- "translation": "new arabic translation of person_greeting"
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "few": "arabic few translation of person_unread_email_count",
- "many": "arabic many translation of person_unread_email_count",
- "one": "arabic one translation of person_unread_email_count",
- "other": "arabic other translation of person_unread_email_count",
- "two": "arabic two translation of person_unread_email_count",
- "zero": "arabic zero translation of person_unread_email_count"
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "program_greeting",
- "translation": ""
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- }
-] \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/ar-ar.untranslated.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/ar-ar.untranslated.json
deleted file mode 100644
index a19fa0bee..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/ar-ar.untranslated.json
+++ /dev/null
@@ -1,50 +0,0 @@
-[
- {
- "id": "d_days",
- "translation": {
- "few": "new arabic few translation of d_days",
- "many": "arabic many translation of d_days",
- "one": "arabic one translation of d_days",
- "other": "{{.Count}} days",
- "two": "{{.Count}} days",
- "zero": "{{.Count}} days"
- }
- },
- {
- "id": "my_height_in_meters",
- "translation": {
- "few": "I am {{.Count}} meters tall.",
- "many": "I am {{.Count}} meters tall.",
- "one": "I am {{.Count}} meters tall.",
- "other": "I am {{.Count}} meters tall.",
- "two": "I am {{.Count}} meters tall.",
- "zero": "I am {{.Count}} meters tall."
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "few": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}.",
- "many": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}.",
- "one": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}.",
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}.",
- "two": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}.",
- "zero": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- }
- },
- {
- "id": "program_greeting",
- "translation": "Hello world"
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "few": "You have {{.Count}} unread emails.",
- "many": "You have {{.Count}} unread emails.",
- "one": "You have {{.Count}} unread emails.",
- "other": "You have {{.Count}} unread emails.",
- "two": "You have {{.Count}} unread emails.",
- "zero": "You have {{.Count}} unread emails."
- }
- }
-] \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/en-us.all.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/en-us.all.json
deleted file mode 100644
index 5aedc235a..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/en-us.all.json
+++ /dev/null
@@ -1,45 +0,0 @@
-[
- {
- "id": "d_days",
- "translation": {
- "one": "{{.Count}} day",
- "other": "{{.Count}} days"
- }
- },
- {
- "id": "my_height_in_meters",
- "translation": {
- "one": "I am {{.Count}} meter tall.",
- "other": "I am {{.Count}} meters tall."
- }
- },
- {
- "id": "person_greeting",
- "translation": "Hello {{.Person}}"
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "one": "{{.Person}} has {{.Count}} unread email.",
- "other": "{{.Person}} has {{.Count}} unread emails."
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "one": "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}.",
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- }
- },
- {
- "id": "program_greeting",
- "translation": "Hello world"
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "one": "You have {{.Count}} unread email.",
- "other": "You have {{.Count}} unread emails."
- }
- }
-] \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/en-us.untranslated.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/en-us.untranslated.json
deleted file mode 100644
index 0637a088a..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/en-us.untranslated.json
+++ /dev/null
@@ -1 +0,0 @@
-[] \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/ar-ar.all.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/ar-ar.all.json
deleted file mode 100644
index 1adb99ca9..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/ar-ar.all.json
+++ /dev/null
@@ -1,43 +0,0 @@
-{
- "d_days": {
- "few": "new arabic few translation of d_days",
- "many": "arabic many translation of d_days",
- "one": "arabic one translation of d_days",
- "other": "",
- "two": "",
- "zero": ""
- },
- "my_height_in_meters": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- },
- "person_greeting": {
- "other": "new arabic translation of person_greeting"
- },
- "person_unread_email_count": {
- "few": "arabic few translation of person_unread_email_count",
- "many": "arabic many translation of person_unread_email_count",
- "one": "arabic one translation of person_unread_email_count",
- "other": "arabic other translation of person_unread_email_count",
- "two": "arabic two translation of person_unread_email_count",
- "zero": "arabic zero translation of person_unread_email_count"
- },
- "person_unread_email_count_timeframe": {
- "other": ""
- },
- "program_greeting": {
- "other": ""
- },
- "your_unread_email_count": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
-} \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/ar-ar.untranslated.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/ar-ar.untranslated.json
deleted file mode 100644
index ea7aa7d19..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/ar-ar.untranslated.json
+++ /dev/null
@@ -1,32 +0,0 @@
-{
- "d_days": {
- "few": "new arabic few translation of d_days",
- "many": "arabic many translation of d_days",
- "one": "arabic one translation of d_days",
- "other": "{{.Count}} days",
- "two": "{{.Count}} days",
- "zero": "{{.Count}} days"
- },
- "my_height_in_meters": {
- "few": "I am {{.Count}} meters tall.",
- "many": "I am {{.Count}} meters tall.",
- "one": "I am {{.Count}} meters tall.",
- "other": "I am {{.Count}} meters tall.",
- "two": "I am {{.Count}} meters tall.",
- "zero": "I am {{.Count}} meters tall."
- },
- "person_unread_email_count_timeframe": {
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- },
- "program_greeting": {
- "other": "Hello world"
- },
- "your_unread_email_count": {
- "few": "You have {{.Count}} unread emails.",
- "many": "You have {{.Count}} unread emails.",
- "one": "You have {{.Count}} unread emails.",
- "other": "You have {{.Count}} unread emails.",
- "two": "You have {{.Count}} unread emails.",
- "zero": "You have {{.Count}} unread emails."
- }
-} \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.all.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.all.json
deleted file mode 100644
index 766b2a77c..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.all.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "d_days": {
- "one": "{{.Count}} day",
- "other": "{{.Count}} days"
- },
- "my_height_in_meters": {
- "one": "I am {{.Count}} meter tall.",
- "other": "I am {{.Count}} meters tall."
- },
- "person_greeting": {
- "other": "Hello {{.Person}}"
- },
- "person_unread_email_count": {
- "one": "{{.Person}} has {{.Count}} unread email.",
- "other": "{{.Person}} has {{.Count}} unread emails."
- },
- "person_unread_email_count_timeframe": {
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- },
- "program_greeting": {
- "other": "Hello world"
- },
- "your_unread_email_count": {
- "one": "You have {{.Count}} unread email.",
- "other": "You have {{.Count}} unread emails."
- }
-} \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.untranslated.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.untranslated.json
deleted file mode 100644
index 9e26dfeeb..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.untranslated.json
+++ /dev/null
@@ -1 +0,0 @@
-{} \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.untranslated.json.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.untranslated.json.json
deleted file mode 100644
index e69de29bb..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/en-us.untranslated.json.json
+++ /dev/null
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/fr-fr.all.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/fr-fr.all.json
deleted file mode 100644
index b0ee0311f..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/fr-fr.all.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "d_days": {
- "one": "",
- "other": ""
- },
- "my_height_in_meters": {
- "one": "",
- "other": ""
- },
- "person_greeting": {
- "other": ""
- },
- "person_unread_email_count": {
- "one": "",
- "other": ""
- },
- "person_unread_email_count_timeframe": {
- "other": ""
- },
- "program_greeting": {
- "other": ""
- },
- "your_unread_email_count": {
- "one": "",
- "other": ""
- }
-} \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/fr-fr.untranslated.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/fr-fr.untranslated.json
deleted file mode 100644
index e6d5c4fb6..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/flat/fr-fr.untranslated.json
+++ /dev/null
@@ -1,27 +0,0 @@
-{
- "d_days": {
- "one": "{{.Count}} days",
- "other": "{{.Count}} days"
- },
- "my_height_in_meters": {
- "one": "I am {{.Count}} meters tall.",
- "other": "I am {{.Count}} meters tall."
- },
- "person_greeting": {
- "other": "Hello {{.Person}}"
- },
- "person_unread_email_count": {
- "one": "{{.Person}} has {{.Count}} unread emails.",
- "other": "{{.Person}} has {{.Count}} unread emails."
- },
- "person_unread_email_count_timeframe": {
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- },
- "program_greeting": {
- "other": "Hello world"
- },
- "your_unread_email_count": {
- "one": "You have {{.Count}} unread emails.",
- "other": "You have {{.Count}} unread emails."
- }
-} \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/fr-fr.all.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/fr-fr.all.json
deleted file mode 100644
index 20e0b8736..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/fr-fr.all.json
+++ /dev/null
@@ -1,45 +0,0 @@
-[
- {
- "id": "d_days",
- "translation": {
- "one": "",
- "other": ""
- }
- },
- {
- "id": "my_height_in_meters",
- "translation": {
- "one": "",
- "other": ""
- }
- },
- {
- "id": "person_greeting",
- "translation": ""
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "one": "",
- "other": ""
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "one": "",
- "other": ""
- }
- },
- {
- "id": "program_greeting",
- "translation": ""
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "one": "",
- "other": ""
- }
- }
-] \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/fr-fr.untranslated.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/fr-fr.untranslated.json
deleted file mode 100644
index e2d3967c5..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/expected/fr-fr.untranslated.json
+++ /dev/null
@@ -1,45 +0,0 @@
-[
- {
- "id": "d_days",
- "translation": {
- "one": "{{.Count}} days",
- "other": "{{.Count}} days"
- }
- },
- {
- "id": "my_height_in_meters",
- "translation": {
- "one": "I am {{.Count}} meters tall.",
- "other": "I am {{.Count}} meters tall."
- }
- },
- {
- "id": "person_greeting",
- "translation": "Hello {{.Person}}"
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "one": "{{.Person}} has {{.Count}} unread emails.",
- "other": "{{.Person}} has {{.Count}} unread emails."
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "one": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}.",
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- }
- },
- {
- "id": "program_greeting",
- "translation": "Hello world"
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "one": "You have {{.Count}} unread emails.",
- "other": "You have {{.Count}} unread emails."
- }
- }
-] \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/ar-ar.one.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/ar-ar.one.json
deleted file mode 100644
index f5af1d6f4..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/ar-ar.one.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
- {
- "id": "d_days",
- "translation": {
- "few": "arabic few translation of d_days",
- "many": "arabic many translation of d_days",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "person_greeting",
- "translation": "arabic translation of person_greeting"
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "few": "arabic few translation of person_unread_email_count",
- "many": "arabic many translation of person_unread_email_count",
- "one": "arabic one translation of person_unread_email_count",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "program_greeting",
- "translation": ""
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- }
-]
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/ar-ar.two.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/ar-ar.two.json
deleted file mode 100644
index e98d7e9b2..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/ar-ar.two.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
- {
- "id": "d_days",
- "translation": {
- "few": "new arabic few translation of d_days",
- "many": "",
- "one": "arabic one translation of d_days",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "person_greeting",
- "translation": "new arabic translation of person_greeting"
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "arabic other translation of person_unread_email_count",
- "two": "arabic two translation of person_unread_email_count",
- "zero": "arabic zero translation of person_unread_email_count"
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "program_greeting",
- "translation": ""
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- }
-]
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.constants.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.constants.json
deleted file mode 100644
index 5aedc235a..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.constants.json
+++ /dev/null
@@ -1,45 +0,0 @@
-[
- {
- "id": "d_days",
- "translation": {
- "one": "{{.Count}} day",
- "other": "{{.Count}} days"
- }
- },
- {
- "id": "my_height_in_meters",
- "translation": {
- "one": "I am {{.Count}} meter tall.",
- "other": "I am {{.Count}} meters tall."
- }
- },
- {
- "id": "person_greeting",
- "translation": "Hello {{.Person}}"
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "one": "{{.Person}} has {{.Count}} unread email.",
- "other": "{{.Person}} has {{.Count}} unread emails."
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "one": "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}.",
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- }
- },
- {
- "id": "program_greeting",
- "translation": "Hello world"
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "one": "You have {{.Count}} unread email.",
- "other": "You have {{.Count}} unread emails."
- }
- }
-] \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.one.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.one.json
deleted file mode 100644
index 63a9d6ffb..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.one.json
+++ /dev/null
@@ -1,30 +0,0 @@
-[
- {
- "id": "program_greeting",
- "translation": "Hello world"
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "one": "You have {{.Count}} unread email.",
- "other": "You have {{.Count}} unread emails."
- }
- },
- {
- "id": "my_height_in_meters",
- "translation": {
- "one": "I am {{.Count}} meter tall.",
- "other": "I am {{.Count}} meters tall."
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "one": "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}."
- }
- },
- {
- "id": "d_days",
- "translation": "this should get overwritten"
- }
-]
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.two.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.two.json
deleted file mode 100644
index dcc715c43..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/en-us.two.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
- {
- "id": "person_greeting",
- "translation": "Hello {{.Person}}"
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "one": "{{.Person}} has {{.Count}} unread email.",
- "other": "{{.Person}} has {{.Count}} unread emails."
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- }
- },
- {
- "id": "d_days",
- "translation": {
- "one": "{{.Count}} day",
- "other": "{{.Count}} days"
- }
- }
-]
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/ar-ar.one.toml b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/ar-ar.one.toml
deleted file mode 100644
index 364a62cfe..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/ar-ar.one.toml
+++ /dev/null
@@ -1,37 +0,0 @@
-[d_days]
-few = "arabic few translation of d_days"
-many = "arabic many translation of d_days"
-one = ""
-other = ""
-two = ""
-zero = ""
-
-[person_greeting]
-other = "arabic translation of person_greeting"
-
-[person_unread_email_count]
-few = "arabic few translation of person_unread_email_count"
-many = "arabic many translation of person_unread_email_count"
-one = "arabic one translation of person_unread_email_count"
-other = ""
-two = ""
-zero = ""
-
-[person_unread_email_count_timeframe]
-few = ""
-many = ""
-one = ""
-other = ""
-two = ""
-zero = ""
-
-[program_greeting]
-other = ""
-
-[your_unread_email_count]
-few = ""
-many = ""
-one = ""
-other = ""
-two = ""
-zero = ""
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/ar-ar.two.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/ar-ar.two.json
deleted file mode 100644
index 5e6fba41b..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/ar-ar.two.json
+++ /dev/null
@@ -1,45 +0,0 @@
-{
- "d_days": {
- "few": "new arabic few translation of d_days",
- "many": "",
- "one": "arabic one translation of d_days",
- "other": "",
- "two": "",
- "zero": ""
- },
-
- "person_greeting": {
- "other": "new arabic translation of person_greeting"
- },
-
- "person_unread_email_count": {
- "few": "",
- "many": "",
- "one": "",
- "other": "arabic other translation of person_unread_email_count",
- "two": "arabic two translation of person_unread_email_count",
- "zero": "arabic zero translation of person_unread_email_count"
- },
-
- "person_unread_email_count_timeframe": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- },
-
- "program_greeting": {
- "other": ""
- },
-
- "your_unread_email_count": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
-}
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.constants.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.constants.json
deleted file mode 100644
index c41b2b97f..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.constants.json
+++ /dev/null
@@ -1,34 +0,0 @@
-{
- "d_days": {
- "one": "{{.Count}} day",
- "other": "{{.Count}} days"
- },
-
- "my_height_in_meters": {
- "one": "I am {{.Count}} meter tall.",
- "other": "I am {{.Count}} meters tall."
- },
-
- "person_greeting": {
- "other": "Hello {{.Person}}"
- },
-
- "person_unread_email_count": {
- "one": "{{.Person}} has {{.Count}} unread email.",
- "other": "{{.Person}} has {{.Count}} unread emails."
- },
-
- "person_unread_email_count_timeframe": {
- "one": "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}.",
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- },
-
- "program_greeting": {
- "other": "Hello world"
- },
-
- "your_unread_email_count": {
- "one": "You have {{.Count}} unread email.",
- "other": "You have {{.Count}} unread emails."
- }
-}
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.one.yaml b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.one.yaml
deleted file mode 100644
index 02ae0011b..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.one.yaml
+++ /dev/null
@@ -1,16 +0,0 @@
-program_greeting:
- other: "Hello world"
-
-your_unread_email_count:
- one: "You have {{.Count}} unread email."
- other: "You have {{.Count}} unread emails."
-
-my_height_in_meters:
- one: "I am {{.Count}} meter tall."
- other: "I am {{.Count}} meters tall."
-
-person_unread_email_count_timeframe:
- other: "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}."
-
-d_days:
- other: "this should get overwritten"
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.two.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.two.json
deleted file mode 100644
index 06bd28dcd..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/en-us.two.json
+++ /dev/null
@@ -1,19 +0,0 @@
-{
- "person_greeting": {
- "other": "Hello {{.Person}}"
- },
-
- "person_unread_email_count": {
- "one": "{{.Person}} has {{.Count}} unread email.",
- "other": "{{.Person}} has {{.Count}} unread emails."
- },
-
- "person_unread_email_count_timeframe": {
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- },
-
- "d_days": {
- "one": "{{.Count}} day",
- "other": "{{.Count}} days"
- }
-}
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/fr-fr.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/fr-fr.json
deleted file mode 100644
index e69de29bb..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/flat/fr-fr.json
+++ /dev/null
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/fr-fr.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/fr-fr.json
deleted file mode 100644
index e69de29bb..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/fr-fr.json
+++ /dev/null
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/ar-ar.one.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/ar-ar.one.json
deleted file mode 100644
index f5af1d6f4..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/ar-ar.one.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
- {
- "id": "d_days",
- "translation": {
- "few": "arabic few translation of d_days",
- "many": "arabic many translation of d_days",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "person_greeting",
- "translation": "arabic translation of person_greeting"
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "few": "arabic few translation of person_unread_email_count",
- "many": "arabic many translation of person_unread_email_count",
- "one": "arabic one translation of person_unread_email_count",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "program_greeting",
- "translation": ""
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- }
-]
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/ar-ar.two.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/ar-ar.two.json
deleted file mode 100644
index e98d7e9b2..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/ar-ar.two.json
+++ /dev/null
@@ -1,54 +0,0 @@
-[
- {
- "id": "d_days",
- "translation": {
- "few": "new arabic few translation of d_days",
- "many": "",
- "one": "arabic one translation of d_days",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "person_greeting",
- "translation": "new arabic translation of person_greeting"
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "arabic other translation of person_unread_email_count",
- "two": "arabic two translation of person_unread_email_count",
- "zero": "arabic zero translation of person_unread_email_count"
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- },
- {
- "id": "program_greeting",
- "translation": ""
- },
- {
- "id": "your_unread_email_count",
- "translation": {
- "few": "",
- "many": "",
- "one": "",
- "other": "",
- "two": "",
- "zero": ""
- }
- }
-]
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/en-us.one.yaml b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/en-us.one.yaml
deleted file mode 100644
index 3ca8e380d..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/en-us.one.yaml
+++ /dev/null
@@ -1,19 +0,0 @@
-- id: program_greeting
- translation: Hello world
-
-- id: your_unread_email_count
- translation:
- one: You have {{.Count}} unread email.
- other: You have {{.Count}} unread emails.
-
-- id: my_height_in_meters
- translation:
- one: I am {{.Count}} meter tall.
- other: I am {{.Count}} meters tall.
-
-- id: person_unread_email_count_timeframe
- translation:
- one: "{{.Person}} has {{.Count}} unread email in the past {{.Timeframe}}."
-
-- id: d_days
- translation: this should get overwritten \ No newline at end of file
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/en-us.two.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/en-us.two.json
deleted file mode 100644
index dcc715c43..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/en-us.two.json
+++ /dev/null
@@ -1,26 +0,0 @@
-[
- {
- "id": "person_greeting",
- "translation": "Hello {{.Person}}"
- },
- {
- "id": "person_unread_email_count",
- "translation": {
- "one": "{{.Person}} has {{.Count}} unread email.",
- "other": "{{.Person}} has {{.Count}} unread emails."
- }
- },
- {
- "id": "person_unread_email_count_timeframe",
- "translation": {
- "other": "{{.Person}} has {{.Count}} unread emails in the past {{.Timeframe}}."
- }
- },
- {
- "id": "d_days",
- "translation": {
- "one": "{{.Count}} day",
- "other": "{{.Count}} days"
- }
- }
-]
diff --git a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/fr-fr.json b/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/fr-fr.json
deleted file mode 100644
index e69de29bb..000000000
--- a/vendor/github.com/nicksnyder/go-i18n/goi18n/testdata/input/yaml/fr-fr.json
+++ /dev/null