summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/text/message/pipeline/testdata
diff options
context:
space:
mode:
Diffstat (limited to 'vendor/golang.org/x/text/message/pipeline/testdata')
-rw-r--r--vendor/golang.org/x/text/message/pipeline/testdata/ssa/catalog_gen.go37
-rw-r--r--vendor/golang.org/x/text/message/pipeline/testdata/ssa/extracted.gotext.json298
-rw-r--r--vendor/golang.org/x/text/message/pipeline/testdata/ssa/ssa.go202
-rw-r--r--vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_gen.go85
-rw-r--r--vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_gen.go.want85
-rw-r--r--vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_test.go49
-rw-r--r--vendor/golang.org/x/text/message/pipeline/testdata/test1/extracted.gotext.json188
-rw-r--r--vendor/golang.org/x/text/message/pipeline/testdata/test1/extracted.gotext.json.want188
-rwxr-xr-xvendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/messages.gotext.json123
-rwxr-xr-xvendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/out.gotext.json137
-rwxr-xr-xvendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/out.gotext.json.want137
-rwxr-xr-xvendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/messages.gotext.json91
-rwxr-xr-xvendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/out.gotext.json154
-rwxr-xr-xvendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/out.gotext.json.want154
-rwxr-xr-xvendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/messages.gotext.json135
-rwxr-xr-xvendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/out.gotext.json137
-rwxr-xr-xvendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/out.gotext.json.want137
-rw-r--r--vendor/golang.org/x/text/message/pipeline/testdata/test1/test1.go75
18 files changed, 2412 insertions, 0 deletions
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/ssa/catalog_gen.go b/vendor/golang.org/x/text/message/pipeline/testdata/ssa/catalog_gen.go
new file mode 100644
index 0000000..2e14d5a
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/ssa/catalog_gen.go
@@ -0,0 +1,37 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+package main
+
+import (
+ "golang.org/x/text/language"
+ "golang.org/x/text/message"
+ "golang.org/x/text/message/catalog"
+)
+
+type dictionary struct {
+ index []uint32
+ data string
+}
+
+func (d *dictionary) Lookup(key string) (data string, ok bool) {
+ p := messageKeyToIndex[key]
+ start, end := d.index[p], d.index[p+1]
+ if start == end {
+ return "", false
+ }
+ return d.data[start:end], true
+}
+
+func init() {
+ dict := map[string]catalog.Dictionary{}
+ fallback := language.MustParse("en-US")
+ cat, err := catalog.NewFromMap(dict, catalog.Fallback(fallback))
+ if err != nil {
+ panic(err)
+ }
+ message.DefaultCatalog = cat
+}
+
+var messageKeyToIndex = map[string]int{}
+
+// Total table size 0 bytes (0KiB); checksum: 811C9DC5
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/ssa/extracted.gotext.json b/vendor/golang.org/x/text/message/pipeline/testdata/ssa/extracted.gotext.json
new file mode 100644
index 0000000..0d886b3
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/ssa/extracted.gotext.json
@@ -0,0 +1,298 @@
+{
+ "language": "en-US",
+ "messages": [
+ {
+ "id": "inline {ARG1}",
+ "key": "inline %s",
+ "message": "inline {ARG1}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "ARG1",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "\"ARG1\""
+ }
+ ],
+ "position": "testdata/ssa/ssa.go:16:7"
+ },
+ {
+ "id": "global printer used {ARG1}",
+ "key": "global printer used %s",
+ "message": "global printer used {ARG1}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "ARG1",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "\"ARG1\""
+ }
+ ],
+ "position": "testdata/ssa/ssa.go:17:8"
+ },
+ {
+ "id": "number: {2}, string: {STRING_ARG}, bool: {True}",
+ "key": "number: %d, string: %s, bool: %v",
+ "message": "number: {2}, string: {STRING_ARG}, bool: {True}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "2"
+ },
+ {
+ "id": "STRING_ARG",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "\"STRING ARG\""
+ },
+ {
+ "id": "True",
+ "string": "%[3]v",
+ "type": "bool",
+ "underlyingType": "bool",
+ "argNum": 3,
+ "expr": "true"
+ }
+ ],
+ "position": "testdata/ssa/ssa.go:22:9"
+ },
+ {
+ "id": "empty string",
+ "key": "empty string",
+ "message": "empty string",
+ "translation": "",
+ "position": "testdata/ssa/ssa.go:23:9"
+ },
+ {
+ "id": "Lovely weather today!",
+ "key": "Lovely weather today!",
+ "message": "Lovely weather today!",
+ "translation": "",
+ "position": "testdata/ssa/ssa.go:24:8"
+ },
+ {
+ "id": "number one",
+ "key": "number one",
+ "message": "number one",
+ "translation": "",
+ "position": "testdata/ssa/ssa.go:32:8"
+ },
+ {
+ "id": [
+ "v",
+ "number: {C}"
+ ],
+ "key": "number: %d",
+ "message": "number: {C}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "C",
+ "string": "%[1]d",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "c"
+ }
+ ],
+ "position": "testdata/ssa/ssa.go:79:10"
+ },
+ {
+ "id": [
+ "format",
+ "constant local {Args}"
+ ],
+ "key": "constant local %s",
+ "message": "constant local {Args}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Args",
+ "string": "%[1]s",
+ "type": "[]interface{}",
+ "underlyingType": "[]interface{}",
+ "argNum": 1,
+ "expr": "args"
+ }
+ ],
+ "position": "testdata/ssa/ssa.go:88:11"
+ },
+ {
+ "id": [
+ "a",
+ "foo {Arg1} {B}"
+ ],
+ "key": "foo %s %s",
+ "message": "foo {Arg1} {B}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Arg1",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "arg1"
+ },
+ {
+ "id": "B",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "b"
+ }
+ ],
+ "position": "testdata/ssa/ssa.go:139:7"
+ },
+ {
+ "id": [
+ "a",
+ "bar {Arg1} {B}"
+ ],
+ "key": "bar %s %s",
+ "message": "bar {Arg1} {B}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Arg1",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "arg1"
+ },
+ {
+ "id": "B",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "b"
+ }
+ ],
+ "position": "testdata/ssa/ssa.go:139:7"
+ },
+ {
+ "id": [
+ "a",
+ "foo"
+ ],
+ "key": "foo",
+ "message": "foo",
+ "translation": "",
+ "position": "testdata/ssa/ssa.go:153:8"
+ },
+ {
+ "id": [
+ "a",
+ "bar"
+ ],
+ "key": "bar",
+ "message": "bar",
+ "translation": "",
+ "position": "testdata/ssa/ssa.go:153:8"
+ },
+ {
+ "id": [
+ "a",
+ "baz"
+ ],
+ "key": "baz",
+ "message": "baz",
+ "translation": "",
+ "position": "testdata/ssa/ssa.go:153:8"
+ },
+ {
+ "id": [
+ "str",
+ "const str"
+ ],
+ "key": "const str",
+ "message": "const str",
+ "translation": "",
+ "position": "testdata/ssa/ssa.go:168:11"
+ },
+ {
+ "id": [
+ "globalStr",
+ "See you around in {City}!"
+ ],
+ "key": "See you around in %s!",
+ "message": "See you around in {City}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "city"
+ }
+ ],
+ "position": "testdata/ssa/ssa.go:181:5"
+ },
+ {
+ "id": [
+ "constFood",
+ "Please eat your {Food}!"
+ ],
+ "key": "Please eat your %s!",
+ "message": "Please eat your {Food}!",
+ "translation": "",
+ "comment": "Ho ho ho",
+ "placeholders": [
+ {
+ "id": "Food",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "food",
+ "comment": "the food to be consumed by the subject"
+ }
+ ],
+ "position": "testdata/ssa/ssa.go:193:2"
+ },
+ {
+ "id": [
+ "msgHello",
+ "Hello, {Integer} and {Arg_2}!"
+ ],
+ "key": "Hello, %d and %s!",
+ "message": "Hello, {Integer} and {Arg_2}!",
+ "translation": "",
+ "comment": "Ho ho ho",
+ "placeholders": [
+ {
+ "id": "Integer",
+ "string": "%[1]d",
+ "type": "",
+ "underlyingType": "int",
+ "argNum": 1
+ },
+ {
+ "id": "Arg_2",
+ "string": "%[2]s",
+ "type": "",
+ "underlyingType": "string",
+ "argNum": 2
+ }
+ ],
+ "position": "testdata/ssa/ssa.go:193:2"
+ }
+ ]
+} \ No newline at end of file
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/ssa/ssa.go b/vendor/golang.org/x/text/message/pipeline/testdata/ssa/ssa.go
new file mode 100644
index 0000000..1591242
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/ssa/ssa.go
@@ -0,0 +1,202 @@
+package main
+
+import (
+ "golang.org/x/text/language"
+ "golang.org/x/text/message"
+)
+
+// In this test, lowercap strings are ones that need to be picked up for
+// translation, whereas uppercap strings should not be picked up.
+
+func main() {
+ p := message.NewPrinter(language.English)
+
+ // TODO: probably should use type instead of string content for argument
+ // substitution.
+ wrapf(p, "inline %s", "ARG1")
+ gwrapf("global printer used %s", "ARG1")
+
+ w := wrapped{p}
+
+ // Comment about wrapf.
+ w.wrapf("number: %d, string: %s, bool: %v", 2, "STRING ARG", true)
+ w.wrapf("empty string")
+ w.wrap("Lovely weather today!")
+
+ more(&w)
+}
+
+var printer = message.NewPrinter(language.English)
+
+func more(w wrapper) {
+ w.wrap("number one")
+ w.wrapf("speed of light: %s", "C")
+}
+
+func gwrapf(format string, args ...interface{}) {
+ v := format
+ a := args
+ printer.Printf(v, a...)
+}
+
+func wrapf(p *message.Printer, format string, args ...interface{}) {
+ v := format
+ a := args
+ p.Printf(v, a...)
+}
+
+func wrap(p *message.Printer, format string) {
+ v := format
+ b := "0"
+ a := []interface{}{3, b}
+ s := a[:]
+ p.Printf(v, s...)
+}
+
+type wrapper interface {
+ wrapf(format string, args ...interface{})
+ wrap(msg string)
+}
+
+type wrapped struct {
+ p *message.Printer
+}
+
+// TODO: calls over interfaces do not get picked up. It looks like this is
+// because w is not a pointer receiver, while the other method is. Mixing of
+// receiver types does not seem to be allowed by callgraph/cha.
+func (w wrapped) wrapf(format string, args ...interface{}) {
+ w.p.Printf(format, args...)
+}
+
+func (w *wrapped) wrap(msg string) {
+ w.p.Printf(msg)
+}
+
+func fint(p *message.Printer, x int) {
+ v := "number: %d"
+ const c = "DAFDA"
+ p.Printf(v, c)
+}
+
+const format = "constant local" + " %s"
+
+// NOTE: pass is not called. Ensure it is picked up anyway.
+func pass(p *message.Printer, args ...interface{}) {
+ // TODO: find an example caller to find substituted types and argument
+ // examples.
+ p.Sprintf(format, args...)
+}
+
+func lookup(p *message.Printer, x int) {
+ // TODO: pick up all elements from slice foo.
+ p.Printf(foo[x])
+}
+
+var foo = []string{
+ "aaaa",
+ "bbbb",
+}
+
+func field(p *message.Printer, x int) {
+ // TODO: pick up strings in field BAR from all composite literals of
+ // typeof(strct.Foo.Bar).
+ p.Printf(strct.Foo.Bar, x)
+}
+
+type fooStruct struct {
+ Foo barStruct
+}
+
+type barStruct struct {
+ other int
+ Bar string
+}
+
+var strct = fooStruct{
+ Foo: barStruct{0, "foo %d"},
+}
+
+func call(p *message.Printer, x int) {
+ // TODO: pick up constant return values.
+ p.Printf(fn())
+}
+
+func fn() string {
+ return "const str"
+}
+
+// Both strings get picked up.
+func ifConst(p *message.Printer, cond bool, arg1 string) {
+ a := "foo %s %s"
+ if cond {
+ a = "bar %s %s"
+ }
+ b := "FOO"
+ if cond {
+ b = "BAR"
+ }
+ wrapf(p, a, arg1, b)
+}
+
+// Pick up all non-empty strings in this function.
+func ifConst2(x int) {
+ a := ""
+ switch x {
+ case 0:
+ a = "foo"
+ case 1:
+ a = "bar"
+ case 2:
+ a = "baz"
+ }
+ gwrapf(a)
+}
+
+// TODO: pick up strings passed to the second argument in calls to freeVar.
+func freeVar(p *message.Printer, str string) {
+ fn := func(p *message.Printer) {
+ p.Printf(str)
+ }
+ fn(p)
+}
+
+func freeConst(p *message.Printer) {
+ // str is a message
+ const str = "const str"
+ fn := func(p *message.Printer) {
+ p.Printf(str)
+ }
+ fn(p)
+}
+
+func global(p *message.Printer) {
+ // city describes the expected next meeting place
+ city := "Amsterdam"
+ // See a person around.
+ p.Printf(globalStr, city)
+}
+
+// globalStr is a global variable with a string constant assigned to it.
+var globalStr = "See you around in %s!"
+
+func global2(p *message.Printer) {
+ const food = "Pastrami"
+ wrapf(p, constFood,
+ food, // the food to be consumed by the subject
+ )
+}
+
+// Comment applying to all constants in a block are ignored.
+var (
+ // Ho ho ho
+ notAMessage, constFood, msgHello = "NOPE!", consume, hello
+)
+
+// A block comment.
+var (
+ // This comment takes precedence.
+ hello = "Hello, %d and %s!"
+
+ consume = "Please eat your %s!"
+)
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_gen.go b/vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_gen.go
new file mode 100644
index 0000000..7d93f48
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_gen.go
@@ -0,0 +1,85 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+package main
+
+import (
+ "golang.org/x/text/language"
+ "golang.org/x/text/message"
+ "golang.org/x/text/message/catalog"
+)
+
+type dictionary struct {
+ index []uint32
+ data string
+}
+
+func (d *dictionary) Lookup(key string) (data string, ok bool) {
+ p := messageKeyToIndex[key]
+ start, end := d.index[p], d.index[p+1]
+ if start == end {
+ return "", false
+ }
+ return d.data[start:end], true
+}
+
+func init() {
+ dict := map[string]catalog.Dictionary{
+ "de": &dictionary{index: deIndex, data: deData},
+ "en_US": &dictionary{index: en_USIndex, data: en_USData},
+ "zh": &dictionary{index: zhIndex, data: zhData},
+ }
+ fallback := language.MustParse("en-US")
+ cat, err := catalog.NewFromMap(dict, catalog.Fallback(fallback))
+ if err != nil {
+ panic(err)
+ }
+ message.DefaultCatalog = cat
+}
+
+var messageKeyToIndex = map[string]int{
+ "%.2[1]f miles traveled (%[1]f)": 8,
+ "%[1]s is visiting %[3]s!\n": 3,
+ "%d files remaining!": 4,
+ "%d more files remaining!": 5,
+ "%s is out of order!": 7,
+ "%s is visiting %s!\n": 2,
+ "Hello %s!\n": 1,
+ "Hello world!\n": 0,
+ "Use the following code for your discount: %d\n": 6,
+}
+
+var deIndex = []uint32{ // 10 elements
+ 0x00000000, 0x00000011, 0x00000023, 0x0000003d,
+ 0x00000057, 0x00000075, 0x00000094, 0x00000094,
+ 0x00000094, 0x00000094,
+} // Size: 64 bytes
+
+const deData string = "" + // Size: 148 bytes
+ "\x04\x00\x01\x0a\x0c\x02Hallo Welt!\x04\x00\x01\x0a\x0d\x02Hallo %[1]s!" +
+ "\x04\x00\x01\x0a\x15\x02%[1]s besucht %[2]s!\x04\x00\x01\x0a\x15\x02%[1]" +
+ "s besucht %[3]s!\x02Noch zwei Bestände zu gehen!\x02Noch %[1]d Bestände " +
+ "zu gehen!"
+
+var en_USIndex = []uint32{ // 10 elements
+ 0x00000000, 0x00000012, 0x00000024, 0x00000042,
+ 0x00000060, 0x00000077, 0x000000ba, 0x000000ef,
+ 0x00000106, 0x00000125,
+} // Size: 64 bytes
+
+const en_USData string = "" + // Size: 293 bytes
+ "\x04\x00\x01\x0a\x0d\x02Hello world!\x04\x00\x01\x0a\x0d\x02Hello %[1]s!" +
+ "\x04\x00\x01\x0a\x19\x02%[1]s is visiting %[2]s!\x04\x00\x01\x0a\x19\x02" +
+ "%[1]s is visiting %[3]s!\x02%[1]d files remaining!\x14\x01\x81\x01\x00" +
+ "\x02\x14\x02One file remaining!\x00&\x02There are %[1]d more files remai" +
+ "ning!\x04\x00\x01\x0a0\x02Use the following code for your discount: %[1]" +
+ "d\x02%[1]s is out of order!\x02%.2[1]f miles traveled (%[1]f)"
+
+var zhIndex = []uint32{ // 10 elements
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+} // Size: 64 bytes
+
+const zhData string = ""
+
+// Total table size 633 bytes (0KiB); checksum: 74B32E70
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_gen.go.want b/vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_gen.go.want
new file mode 100644
index 0000000..7d93f48
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_gen.go.want
@@ -0,0 +1,85 @@
+// Code generated by running "go generate" in golang.org/x/text. DO NOT EDIT.
+
+package main
+
+import (
+ "golang.org/x/text/language"
+ "golang.org/x/text/message"
+ "golang.org/x/text/message/catalog"
+)
+
+type dictionary struct {
+ index []uint32
+ data string
+}
+
+func (d *dictionary) Lookup(key string) (data string, ok bool) {
+ p := messageKeyToIndex[key]
+ start, end := d.index[p], d.index[p+1]
+ if start == end {
+ return "", false
+ }
+ return d.data[start:end], true
+}
+
+func init() {
+ dict := map[string]catalog.Dictionary{
+ "de": &dictionary{index: deIndex, data: deData},
+ "en_US": &dictionary{index: en_USIndex, data: en_USData},
+ "zh": &dictionary{index: zhIndex, data: zhData},
+ }
+ fallback := language.MustParse("en-US")
+ cat, err := catalog.NewFromMap(dict, catalog.Fallback(fallback))
+ if err != nil {
+ panic(err)
+ }
+ message.DefaultCatalog = cat
+}
+
+var messageKeyToIndex = map[string]int{
+ "%.2[1]f miles traveled (%[1]f)": 8,
+ "%[1]s is visiting %[3]s!\n": 3,
+ "%d files remaining!": 4,
+ "%d more files remaining!": 5,
+ "%s is out of order!": 7,
+ "%s is visiting %s!\n": 2,
+ "Hello %s!\n": 1,
+ "Hello world!\n": 0,
+ "Use the following code for your discount: %d\n": 6,
+}
+
+var deIndex = []uint32{ // 10 elements
+ 0x00000000, 0x00000011, 0x00000023, 0x0000003d,
+ 0x00000057, 0x00000075, 0x00000094, 0x00000094,
+ 0x00000094, 0x00000094,
+} // Size: 64 bytes
+
+const deData string = "" + // Size: 148 bytes
+ "\x04\x00\x01\x0a\x0c\x02Hallo Welt!\x04\x00\x01\x0a\x0d\x02Hallo %[1]s!" +
+ "\x04\x00\x01\x0a\x15\x02%[1]s besucht %[2]s!\x04\x00\x01\x0a\x15\x02%[1]" +
+ "s besucht %[3]s!\x02Noch zwei Bestände zu gehen!\x02Noch %[1]d Bestände " +
+ "zu gehen!"
+
+var en_USIndex = []uint32{ // 10 elements
+ 0x00000000, 0x00000012, 0x00000024, 0x00000042,
+ 0x00000060, 0x00000077, 0x000000ba, 0x000000ef,
+ 0x00000106, 0x00000125,
+} // Size: 64 bytes
+
+const en_USData string = "" + // Size: 293 bytes
+ "\x04\x00\x01\x0a\x0d\x02Hello world!\x04\x00\x01\x0a\x0d\x02Hello %[1]s!" +
+ "\x04\x00\x01\x0a\x19\x02%[1]s is visiting %[2]s!\x04\x00\x01\x0a\x19\x02" +
+ "%[1]s is visiting %[3]s!\x02%[1]d files remaining!\x14\x01\x81\x01\x00" +
+ "\x02\x14\x02One file remaining!\x00&\x02There are %[1]d more files remai" +
+ "ning!\x04\x00\x01\x0a0\x02Use the following code for your discount: %[1]" +
+ "d\x02%[1]s is out of order!\x02%.2[1]f miles traveled (%[1]f)"
+
+var zhIndex = []uint32{ // 10 elements
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000, 0x00000000, 0x00000000,
+ 0x00000000, 0x00000000,
+} // Size: 64 bytes
+
+const zhData string = ""
+
+// Total table size 633 bytes (0KiB); checksum: 74B32E70
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_test.go b/vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_test.go
new file mode 100644
index 0000000..eeb7c25
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_test.go
@@ -0,0 +1,49 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import (
+ "path"
+ "testing"
+
+ "golang.org/x/text/message"
+)
+
+func TestCatalog(t *testing.T) {
+ args := func(a ...interface{}) []interface{} { return a }
+ testCases := []struct {
+ lang string
+ key string
+ args []interface{}
+ want string
+ }{{
+ lang: "en",
+ key: "Hello world!\n",
+ want: "Hello world!\n",
+ }, {
+ lang: "de",
+ key: "Hello world!\n",
+ want: "Hallo Welt!\n",
+ }, {
+ lang: "en",
+ key: "%d more files remaining!",
+ args: args(1),
+ want: "One file remaining!",
+ }, {
+ lang: "en-u-nu-fullwide",
+ key: "%d more files remaining!",
+ args: args(5),
+ want: "There are 5 more files remaining!",
+ }}
+ for _, tc := range testCases {
+ t.Run(path.Join(tc.lang, tc.key), func(t *testing.T) {
+ p := message.NewPrinter(message.MatchLanguage(tc.lang))
+ got := p.Sprintf(tc.key, tc.args...)
+ if got != tc.want {
+ t.Errorf("got %q; want %q", got, tc.want)
+ }
+ })
+ }
+}
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/extracted.gotext.json b/vendor/golang.org/x/text/message/pipeline/testdata/test1/extracted.gotext.json
new file mode 100644
index 0000000..4d317af
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/extracted.gotext.json
@@ -0,0 +1,188 @@
+{
+ "language": "en-US",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "key": "Hello world!\n",
+ "message": "Hello world!",
+ "translation": "",
+ "position": "testdata/test1/test1.go:19:10"
+ },
+ {
+ "id": "Hello {City}!",
+ "key": "Hello %s!\n",
+ "message": "Hello {City}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "city"
+ }
+ ],
+ "position": "testdata/test1/test1.go:24:10"
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "key": "%s is visiting %s!\n",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "person",
+ "comment": "The person of matter."
+ },
+ {
+ "id": "Place",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "place",
+ "comment": "Place the person is visiting."
+ }
+ ],
+ "position": "testdata/test1/test1.go:30:10"
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "key": "%[1]s is visiting %[3]s!\n",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "",
+ "comment": "Field names are placeholders.",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "pp.Person"
+ },
+ {
+ "id": "Place",
+ "string": "%[3]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 3,
+ "expr": "pp.Place",
+ "comment": "Place the person is visiting."
+ },
+ {
+ "id": "Extra",
+ "string": "%[2]v",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 2,
+ "expr": "pp.extra"
+ }
+ ],
+ "position": "testdata/test1/test1.go:44:10"
+ },
+ {
+ "id": "{2} files remaining!",
+ "key": "%d files remaining!",
+ "message": "{2} files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "2"
+ }
+ ],
+ "position": "testdata/test1/test1.go:51:10"
+ },
+ {
+ "id": "{N} more files remaining!",
+ "key": "%d more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "N",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "n"
+ }
+ ],
+ "position": "testdata/test1/test1.go:56:10"
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "key": "Use the following code for your discount: %d\n",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "ReferralCode",
+ "string": "%[1]d",
+ "type": "./testdata/test1.referralCode",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "c"
+ }
+ ],
+ "position": "testdata/test1/test1.go:64:10"
+ },
+ {
+ "id": [
+ "msgOutOfOrder",
+ "{Device} is out of order!"
+ ],
+ "key": "%s is out of order!",
+ "message": "{Device} is out of order!",
+ "translation": "",
+ "comment": "This comment wins.\n",
+ "placeholders": [
+ {
+ "id": "Device",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "device"
+ }
+ ],
+ "position": "testdata/test1/test1.go:70:10"
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "key": "%.2[1]f miles traveled (%[1]f)",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Miles",
+ "string": "%.2[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ },
+ {
+ "id": "Miles_1",
+ "string": "%[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ }
+ ],
+ "position": "testdata/test1/test1.go:74:10"
+ }
+ ]
+} \ No newline at end of file
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/extracted.gotext.json.want b/vendor/golang.org/x/text/message/pipeline/testdata/test1/extracted.gotext.json.want
new file mode 100644
index 0000000..4d317af
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/extracted.gotext.json.want
@@ -0,0 +1,188 @@
+{
+ "language": "en-US",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "key": "Hello world!\n",
+ "message": "Hello world!",
+ "translation": "",
+ "position": "testdata/test1/test1.go:19:10"
+ },
+ {
+ "id": "Hello {City}!",
+ "key": "Hello %s!\n",
+ "message": "Hello {City}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "city"
+ }
+ ],
+ "position": "testdata/test1/test1.go:24:10"
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "key": "%s is visiting %s!\n",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "person",
+ "comment": "The person of matter."
+ },
+ {
+ "id": "Place",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "place",
+ "comment": "Place the person is visiting."
+ }
+ ],
+ "position": "testdata/test1/test1.go:30:10"
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "key": "%[1]s is visiting %[3]s!\n",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "",
+ "comment": "Field names are placeholders.",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "pp.Person"
+ },
+ {
+ "id": "Place",
+ "string": "%[3]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 3,
+ "expr": "pp.Place",
+ "comment": "Place the person is visiting."
+ },
+ {
+ "id": "Extra",
+ "string": "%[2]v",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 2,
+ "expr": "pp.extra"
+ }
+ ],
+ "position": "testdata/test1/test1.go:44:10"
+ },
+ {
+ "id": "{2} files remaining!",
+ "key": "%d files remaining!",
+ "message": "{2} files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "2"
+ }
+ ],
+ "position": "testdata/test1/test1.go:51:10"
+ },
+ {
+ "id": "{N} more files remaining!",
+ "key": "%d more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "N",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "n"
+ }
+ ],
+ "position": "testdata/test1/test1.go:56:10"
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "key": "Use the following code for your discount: %d\n",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "ReferralCode",
+ "string": "%[1]d",
+ "type": "./testdata/test1.referralCode",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "c"
+ }
+ ],
+ "position": "testdata/test1/test1.go:64:10"
+ },
+ {
+ "id": [
+ "msgOutOfOrder",
+ "{Device} is out of order!"
+ ],
+ "key": "%s is out of order!",
+ "message": "{Device} is out of order!",
+ "translation": "",
+ "comment": "This comment wins.\n",
+ "placeholders": [
+ {
+ "id": "Device",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "device"
+ }
+ ],
+ "position": "testdata/test1/test1.go:70:10"
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "key": "%.2[1]f miles traveled (%[1]f)",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Miles",
+ "string": "%.2[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ },
+ {
+ "id": "Miles_1",
+ "string": "%[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ }
+ ],
+ "position": "testdata/test1/test1.go:74:10"
+ }
+ ]
+} \ No newline at end of file
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/messages.gotext.json b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/messages.gotext.json
new file mode 100755
index 0000000..f92e4a1
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/messages.gotext.json
@@ -0,0 +1,123 @@
+{
+ "language": "de",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "key": "Hello world!\n",
+ "message": "Hello world!",
+ "translation": "Hallo Welt!"
+ },
+ {
+ "id": "Hello {City}!",
+ "key": "Hello %s!\n",
+ "message": "Hello {City}!",
+ "translation": "Hallo {City}!",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "key": "%s is visiting %s!\n",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "{Person} besucht {Place}!",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s"
+ },
+ {
+ "id": "Place",
+ "string": "%[2]s"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "key": "%[1]s is visiting %[3]s!\n",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "{Person} besucht {Place}!",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s"
+ },
+ {
+ "id": "Place",
+ "string": "%[3]s"
+ },
+ {
+ "id": "Extra",
+ "string": "%[2]v"
+ }
+ ]
+ },
+ {
+ "id": "{2} files remaining!",
+ "key": "%d files remaining!",
+ "message": "{N} files remaining!",
+ "translation": "Noch zwei Bestände zu gehen!",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d"
+ }
+ ]
+ },
+ {
+ "id": "{N} more files remaining!",
+ "key": "%d more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": "Noch {N} Bestände zu gehen!",
+ "placeholders": [
+ {
+ "id": "N",
+ "string": "%[1]d"
+ }
+ ]
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "key": "Use the following code for your discount: %d\n",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "ReferralCode",
+ "string": "%[1]d"
+ }
+ ]
+ },
+ {
+ "id": [ "msgOutOfOrder", "{Device} is out of order!" ],
+ "key": "%s is out of order!",
+ "message": "{Device} is out of order!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Device",
+ "string": "%[1]s"
+ }
+ ]
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "key": "%.2[1]f miles traveled (%[1]f)",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Miles",
+ "string": "%.2[1]f"
+ },
+ {
+ "id": "Miles_1",
+ "string": "%[1]f"
+ }
+ ]
+ }
+ ]
+}
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/out.gotext.json b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/out.gotext.json
new file mode 100755
index 0000000..f19e21d
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/out.gotext.json
@@ -0,0 +1,137 @@
+{
+ "language": "de",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "message": "Hello world!",
+ "translation": "Hallo Welt!"
+ },
+ {
+ "id": "Hello {City}!",
+ "message": "Hello {City}!",
+ "translation": "Hallo {City}!",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "city"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "{Person} besucht {Place}!",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "person",
+ "comment": "The person of matter."
+ },
+ {
+ "id": "Place",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "place",
+ "comment": "Place the person is visiting."
+ }
+ ]
+ },
+ {
+ "id": "{2} files remaining!",
+ "message": "{2} files remaining!",
+ "translation": "Noch zwei Bestände zu gehen!",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "2"
+ }
+ ]
+ },
+ {
+ "id": "{N} more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": "Noch {N} Bestände zu gehen!",
+ "placeholders": [
+ {
+ "id": "N",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "n"
+ }
+ ]
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "ReferralCode",
+ "string": "%[1]d",
+ "type": "./testdata/test1.referralCode",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "c"
+ }
+ ]
+ },
+ {
+ "id": [
+ "msgOutOfOrder",
+ "{Device} is out of order!"
+ ],
+ "message": "{Device} is out of order!",
+ "translation": "",
+ "comment": "This comment wins.\n",
+ "placeholders": [
+ {
+ "id": "Device",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "device"
+ }
+ ]
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Miles",
+ "string": "%.2[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ },
+ {
+ "id": "Miles_1",
+ "string": "%[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/out.gotext.json.want b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/out.gotext.json.want
new file mode 100755
index 0000000..f19e21d
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/out.gotext.json.want
@@ -0,0 +1,137 @@
+{
+ "language": "de",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "message": "Hello world!",
+ "translation": "Hallo Welt!"
+ },
+ {
+ "id": "Hello {City}!",
+ "message": "Hello {City}!",
+ "translation": "Hallo {City}!",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "city"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "{Person} besucht {Place}!",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "person",
+ "comment": "The person of matter."
+ },
+ {
+ "id": "Place",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "place",
+ "comment": "Place the person is visiting."
+ }
+ ]
+ },
+ {
+ "id": "{2} files remaining!",
+ "message": "{2} files remaining!",
+ "translation": "Noch zwei Bestände zu gehen!",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "2"
+ }
+ ]
+ },
+ {
+ "id": "{N} more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": "Noch {N} Bestände zu gehen!",
+ "placeholders": [
+ {
+ "id": "N",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "n"
+ }
+ ]
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "ReferralCode",
+ "string": "%[1]d",
+ "type": "./testdata/test1.referralCode",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "c"
+ }
+ ]
+ },
+ {
+ "id": [
+ "msgOutOfOrder",
+ "{Device} is out of order!"
+ ],
+ "message": "{Device} is out of order!",
+ "translation": "",
+ "comment": "This comment wins.\n",
+ "placeholders": [
+ {
+ "id": "Device",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "device"
+ }
+ ]
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Miles",
+ "string": "%.2[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ },
+ {
+ "id": "Miles_1",
+ "string": "%[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/messages.gotext.json b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/messages.gotext.json
new file mode 100755
index 0000000..b984242
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/messages.gotext.json
@@ -0,0 +1,91 @@
+{
+ "language": "en-US",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "key": "Hello world!\n",
+ "message": "Hello world!",
+ "translation": "Hello world!"
+ },
+ {
+ "id": "Hello {City}!",
+ "key": "Hello %s!\n",
+ "message": "Hello {City}!",
+ "translation": "Hello {City}!"
+ },
+ {
+ "id": "Hello {Town}!",
+ "key": "Hello %s!\n",
+ "message": "Hello {Town}!",
+ "translation": "Hello {Town}!",
+ "placeholders": [
+ {
+ "id": "Town",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "town",
+ "comment": "Town"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "key": "%s is visiting %s!\n",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "{Person} is visiting {Place}!"
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "key": "%[1]s is visiting %[3]s!\n",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "{Person} is visiting {Place}!"
+ },
+ {
+ "id": "{2} files remaining!",
+ "key": "%d files remaining!",
+ "message": "{N} files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d"
+ }
+ ]
+ },
+ {
+ "id": "{N} more files remaining!",
+ "key": "%d more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": {
+ "select": {
+ "feature": "plural",
+ "arg": "N",
+ "cases": {
+ "one": "One file remaining!",
+ "other": "There are {N} more files remaining!"
+ }
+ }
+ }
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "key": "Use the following code for your discount: %d\n",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": ""
+ },
+ {
+ "id": [ "msgOutOfOrder", "{Device} is out of order!" ],
+ "key": "%s is out of order!",
+ "message": "{Device} is out of order!",
+ "translation": "{Device} is out of order!"
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "key": "%.2[1]f miles traveled (%[1]f)",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "{Miles} miles traveled ({Miles_1})"
+ }
+ ]
+}
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/out.gotext.json b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/out.gotext.json
new file mode 100755
index 0000000..59f92a5
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/out.gotext.json
@@ -0,0 +1,154 @@
+{
+ "language": "en-US",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "message": "Hello world!",
+ "translation": "Hello world!"
+ },
+ {
+ "id": "Hello {City}!",
+ "message": "Hello {City}!",
+ "translation": "Hello {City}!",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "city"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "{Person} is visiting {Place}!",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "person",
+ "comment": "The person of matter."
+ },
+ {
+ "id": "Place",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "place",
+ "comment": "Place the person is visiting."
+ }
+ ]
+ },
+ {
+ "id": "{2} files remaining!",
+ "message": "{2} files remaining!",
+ "translation": "{2} files remaining!",
+ "translatorComment": "Copied from source.",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "2"
+ }
+ ],
+ "fuzzy": true
+ },
+ {
+ "id": "{N} more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": {
+ "select": {
+ "feature": "plural",
+ "arg": "N",
+ "cases": {
+ "one": {
+ "msg": "One file remaining!"
+ },
+ "other": {
+ "msg": "There are {N} more files remaining!"
+ }
+ }
+ }
+ },
+ "placeholders": [
+ {
+ "id": "N",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "n"
+ }
+ ]
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": "Use the following code for your discount: {ReferralCode}",
+ "translatorComment": "Copied from source.",
+ "placeholders": [
+ {
+ "id": "ReferralCode",
+ "string": "%[1]d",
+ "type": "./testdata/test1.referralCode",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "c"
+ }
+ ],
+ "fuzzy": true
+ },
+ {
+ "id": [
+ "msgOutOfOrder",
+ "{Device} is out of order!"
+ ],
+ "message": "{Device} is out of order!",
+ "translation": "{Device} is out of order!",
+ "comment": "This comment wins.\n",
+ "placeholders": [
+ {
+ "id": "Device",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "device"
+ }
+ ]
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "{Miles} miles traveled ({Miles_1})",
+ "placeholders": [
+ {
+ "id": "Miles",
+ "string": "%.2[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ },
+ {
+ "id": "Miles_1",
+ "string": "%[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/out.gotext.json.want b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/out.gotext.json.want
new file mode 100755
index 0000000..59f92a5
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/out.gotext.json.want
@@ -0,0 +1,154 @@
+{
+ "language": "en-US",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "message": "Hello world!",
+ "translation": "Hello world!"
+ },
+ {
+ "id": "Hello {City}!",
+ "message": "Hello {City}!",
+ "translation": "Hello {City}!",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "city"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "{Person} is visiting {Place}!",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "person",
+ "comment": "The person of matter."
+ },
+ {
+ "id": "Place",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "place",
+ "comment": "Place the person is visiting."
+ }
+ ]
+ },
+ {
+ "id": "{2} files remaining!",
+ "message": "{2} files remaining!",
+ "translation": "{2} files remaining!",
+ "translatorComment": "Copied from source.",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "2"
+ }
+ ],
+ "fuzzy": true
+ },
+ {
+ "id": "{N} more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": {
+ "select": {
+ "feature": "plural",
+ "arg": "N",
+ "cases": {
+ "one": {
+ "msg": "One file remaining!"
+ },
+ "other": {
+ "msg": "There are {N} more files remaining!"
+ }
+ }
+ }
+ },
+ "placeholders": [
+ {
+ "id": "N",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "n"
+ }
+ ]
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": "Use the following code for your discount: {ReferralCode}",
+ "translatorComment": "Copied from source.",
+ "placeholders": [
+ {
+ "id": "ReferralCode",
+ "string": "%[1]d",
+ "type": "./testdata/test1.referralCode",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "c"
+ }
+ ],
+ "fuzzy": true
+ },
+ {
+ "id": [
+ "msgOutOfOrder",
+ "{Device} is out of order!"
+ ],
+ "message": "{Device} is out of order!",
+ "translation": "{Device} is out of order!",
+ "comment": "This comment wins.\n",
+ "placeholders": [
+ {
+ "id": "Device",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "device"
+ }
+ ]
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "{Miles} miles traveled ({Miles_1})",
+ "placeholders": [
+ {
+ "id": "Miles",
+ "string": "%.2[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ },
+ {
+ "id": "Miles_1",
+ "string": "%[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/messages.gotext.json b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/messages.gotext.json
new file mode 100755
index 0000000..c80d1d2
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/messages.gotext.json
@@ -0,0 +1,135 @@
+{
+ "language": "zh",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "key": "Hello world!\n",
+ "message": "Hello world!",
+ "translation": ""
+ },
+ {
+ "id": "Hello {City}!",
+ "key": "Hello %s!\n",
+ "message": "Hello {City}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s"
+ }
+ ]
+ },
+ {
+ "id": "Hello {Town}!",
+ "key": "Hello %s!\n",
+ "message": "Hello {Town}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Town",
+ "string": "%[1]s"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "key": "%s is visiting %s!\n",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s"
+ },
+ {
+ "id": "Place",
+ "string": "%[2]s"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "key": "%[1]s is visiting %[3]s!\n",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s"
+ },
+ {
+ "id": "Place",
+ "string": "%[3]s"
+ },
+ {
+ "id": "Extra",
+ "string": "%[2]v"
+ }
+ ]
+ },
+ {
+ "id": "{2} files remaining!",
+ "key": "%d files remaining!",
+ "message": "{2} files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "",
+ "string": "%[1]d"
+ }
+ ]
+ },
+ {
+ "id": "{N} more files remaining!",
+ "key": "%d more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "N",
+ "string": "%[1]d"
+ }
+ ]
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "key": "Use the following code for your discount: %d\n",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "ReferralCode",
+ "string": "%[1]d"
+ }
+ ]
+ },
+ {
+ "id": [ "{Device} is out of order!", "msgOutOfOrder" ],
+ "key": "%s is out of order!",
+ "message": "{Device} is out of order!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Device",
+ "string": "%[1]s"
+ }
+ ]
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "key": "%.2[1]f miles traveled (%[1]f)",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Miles",
+ "string": "%.2[1]f"
+ },
+ {
+ "id": "Miles_1",
+ "string": "%[1]f"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/out.gotext.json b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/out.gotext.json
new file mode 100755
index 0000000..9bede65
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/out.gotext.json
@@ -0,0 +1,137 @@
+{
+ "language": "zh",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "message": "Hello world!",
+ "translation": ""
+ },
+ {
+ "id": "Hello {City}!",
+ "message": "Hello {City}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "city"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "person",
+ "comment": "The person of matter."
+ },
+ {
+ "id": "Place",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "place",
+ "comment": "Place the person is visiting."
+ }
+ ]
+ },
+ {
+ "id": "{2} files remaining!",
+ "message": "{2} files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "2"
+ }
+ ]
+ },
+ {
+ "id": "{N} more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "N",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "n"
+ }
+ ]
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "ReferralCode",
+ "string": "%[1]d",
+ "type": "./testdata/test1.referralCode",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "c"
+ }
+ ]
+ },
+ {
+ "id": [
+ "msgOutOfOrder",
+ "{Device} is out of order!"
+ ],
+ "message": "{Device} is out of order!",
+ "translation": "",
+ "comment": "This comment wins.\n",
+ "placeholders": [
+ {
+ "id": "Device",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "device"
+ }
+ ]
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Miles",
+ "string": "%.2[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ },
+ {
+ "id": "Miles_1",
+ "string": "%[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/out.gotext.json.want b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/out.gotext.json.want
new file mode 100755
index 0000000..9bede65
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/out.gotext.json.want
@@ -0,0 +1,137 @@
+{
+ "language": "zh",
+ "messages": [
+ {
+ "id": "Hello world!",
+ "message": "Hello world!",
+ "translation": ""
+ },
+ {
+ "id": "Hello {City}!",
+ "message": "Hello {City}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "City",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "city"
+ }
+ ]
+ },
+ {
+ "id": "{Person} is visiting {Place}!",
+ "message": "{Person} is visiting {Place}!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Person",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "person",
+ "comment": "The person of matter."
+ },
+ {
+ "id": "Place",
+ "string": "%[2]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 2,
+ "expr": "place",
+ "comment": "Place the person is visiting."
+ }
+ ]
+ },
+ {
+ "id": "{2} files remaining!",
+ "message": "{2} files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "2",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "2"
+ }
+ ]
+ },
+ {
+ "id": "{N} more files remaining!",
+ "message": "{N} more files remaining!",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "N",
+ "string": "%[1]d",
+ "type": "int",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "n"
+ }
+ ]
+ },
+ {
+ "id": "Use the following code for your discount: {ReferralCode}",
+ "message": "Use the following code for your discount: {ReferralCode}",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "ReferralCode",
+ "string": "%[1]d",
+ "type": "./testdata/test1.referralCode",
+ "underlyingType": "int",
+ "argNum": 1,
+ "expr": "c"
+ }
+ ]
+ },
+ {
+ "id": [
+ "msgOutOfOrder",
+ "{Device} is out of order!"
+ ],
+ "message": "{Device} is out of order!",
+ "translation": "",
+ "comment": "This comment wins.\n",
+ "placeholders": [
+ {
+ "id": "Device",
+ "string": "%[1]s",
+ "type": "string",
+ "underlyingType": "string",
+ "argNum": 1,
+ "expr": "device"
+ }
+ ]
+ },
+ {
+ "id": "{Miles} miles traveled ({Miles_1})",
+ "message": "{Miles} miles traveled ({Miles_1})",
+ "translation": "",
+ "placeholders": [
+ {
+ "id": "Miles",
+ "string": "%.2[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ },
+ {
+ "id": "Miles_1",
+ "string": "%[1]f",
+ "type": "float64",
+ "underlyingType": "float64",
+ "argNum": 1,
+ "expr": "miles"
+ }
+ ]
+ }
+ ]
+} \ No newline at end of file
diff --git a/vendor/golang.org/x/text/message/pipeline/testdata/test1/test1.go b/vendor/golang.org/x/text/message/pipeline/testdata/test1/test1.go
new file mode 100644
index 0000000..88051f9
--- /dev/null
+++ b/vendor/golang.org/x/text/message/pipeline/testdata/test1/test1.go
@@ -0,0 +1,75 @@
+// Copyright 2017 The Go Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style
+// license that can be found in the LICENSE file.
+
+package main
+
+import "golang.org/x/text/message"
+
+func main() {
+ p := message.NewPrinter(message.MatchLanguage("en"))
+
+ // NOT EXTRACTED: strings passed to Println are not extracted.
+ p.Println("Hello world!")
+
+ // NOT EXTRACTED: strings passed to Print are not extracted.
+ p.Print("Hello world!\n")
+
+ // Extract and trim whitespace (TODO).
+ p.Printf("Hello world!\n")
+
+ // NOT EXTRACTED: city is not used as a pattern or passed to %m.
+ city := "Amsterdam"
+ // This comment is extracted.
+ p.Printf("Hello %s!\n", city)
+
+ person := "Sheila"
+ place := "Zürich"
+
+ // Substitutions replaced by variable names.
+ p.Printf("%s is visiting %s!\n",
+ person, // The person of matter.
+ place, // Place the person is visiting.
+ )
+
+ pp := struct {
+ Person string // The person of matter. // TODO: get this comment.
+ Place string
+ extra int
+ }{
+ person, place, 4,
+ }
+
+ // extract will drop this comment in favor of the one below.
+ p.Printf("%[1]s is visiting %[3]s!\n", // Field names are placeholders.
+ pp.Person,
+ pp.extra,
+ pp.Place, // Place the person is visiting.
+ )
+
+ // Numeric literal becomes placeholder.
+ p.Printf("%d files remaining!", 2)
+
+ const n = 2
+
+ // Constant identifier becomes placeholder.
+ p.Printf("%d more files remaining!", n)
+
+ // Infer better names from type names.
+ type referralCode int
+
+ const c = referralCode(5)
+
+ // Use type name as placeholder.
+ p.Printf("Use the following code for your discount: %d\n", c)
+
+ // Use constant name as message ID.
+ const msgOutOfOrder = "%s is out of order!" // This comment wins.
+ const device = "Soda machine"
+ // This message has two IDs.
+ p.Printf(msgOutOfOrder, device)
+
+ // Multiple substitutions for same argument.
+ miles := 1.2345
+ p.Printf("%.2[1]f miles traveled (%[1]f)", miles)
+}