From b1247d2d0d51108c910a73891ff3116e5f032ab1 Mon Sep 17 00:00:00 2001 From: "Kali Kaneko (leap communications)" Date: Sat, 12 Jan 2019 18:39:45 +0100 Subject: [pkg] all your deps are vendored to us --- .../message/pipeline/testdata/ssa/catalog_gen.go | 37 +++ .../pipeline/testdata/ssa/extracted.gotext.json | 298 +++++++++++++++++++++ .../x/text/message/pipeline/testdata/ssa/ssa.go | 202 ++++++++++++++ .../message/pipeline/testdata/test1/catalog_gen.go | 85 ++++++ .../pipeline/testdata/test1/catalog_gen.go.want | 85 ++++++ .../pipeline/testdata/test1/catalog_test.go | 49 ++++ .../pipeline/testdata/test1/extracted.gotext.json | 188 +++++++++++++ .../testdata/test1/extracted.gotext.json.want | 188 +++++++++++++ .../testdata/test1/locales/de/messages.gotext.json | 123 +++++++++ .../testdata/test1/locales/de/out.gotext.json | 137 ++++++++++ .../testdata/test1/locales/de/out.gotext.json.want | 137 ++++++++++ .../test1/locales/en-US/messages.gotext.json | 91 +++++++ .../testdata/test1/locales/en-US/out.gotext.json | 154 +++++++++++ .../test1/locales/en-US/out.gotext.json.want | 154 +++++++++++ .../testdata/test1/locales/zh/messages.gotext.json | 135 ++++++++++ .../testdata/test1/locales/zh/out.gotext.json | 137 ++++++++++ .../testdata/test1/locales/zh/out.gotext.json.want | 137 ++++++++++ .../text/message/pipeline/testdata/test1/test1.go | 75 ++++++ 18 files changed, 2412 insertions(+) create mode 100644 vendor/golang.org/x/text/message/pipeline/testdata/ssa/catalog_gen.go create mode 100644 vendor/golang.org/x/text/message/pipeline/testdata/ssa/extracted.gotext.json create mode 100644 vendor/golang.org/x/text/message/pipeline/testdata/ssa/ssa.go create mode 100644 vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_gen.go create mode 100644 vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_gen.go.want create mode 100644 vendor/golang.org/x/text/message/pipeline/testdata/test1/catalog_test.go create mode 100644 vendor/golang.org/x/text/message/pipeline/testdata/test1/extracted.gotext.json create mode 100644 vendor/golang.org/x/text/message/pipeline/testdata/test1/extracted.gotext.json.want create mode 100755 vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/messages.gotext.json create mode 100755 vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/out.gotext.json create mode 100755 vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/de/out.gotext.json.want create mode 100755 vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/messages.gotext.json create mode 100755 vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/out.gotext.json create mode 100755 vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/en-US/out.gotext.json.want create mode 100755 vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/messages.gotext.json create mode 100755 vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/out.gotext.json create mode 100755 vendor/golang.org/x/text/message/pipeline/testdata/test1/locales/zh/out.gotext.json.want create mode 100644 vendor/golang.org/x/text/message/pipeline/testdata/test1/test1.go (limited to 'vendor/golang.org/x/text/message/pipeline/testdata') 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) +} -- cgit v1.2.3