vendor: update all dependencies

This commit is contained in:
Nick Craig-Wood
2018-03-19 15:51:38 +00:00
parent 940df88eb2
commit d64789528d
4309 changed files with 1327230 additions and 1001070 deletions
+1 -1
View File
@@ -63,7 +63,7 @@ var testCases = []testCase{{
},
match: []string{
"gr -> en",
"en-US -> en",
"en-US -> en-u-rg-uszzzz",
},
tags: langs("en"),
}, {
+5 -2
View File
@@ -18,12 +18,16 @@ func TestMatchLanguage(t *testing.T) {
c.SetString(language.English, "", "")
c.SetString(language.German, "", "")
saved := DefaultCatalog
defer func() { DefaultCatalog = saved }()
DefaultCatalog = c
testCases := []struct {
args string // '|'-separated list
want string
}{{
args: "de-CH",
want: "de",
want: "de-u-rg-chzzzz",
}, {
args: "bn-u-nu-latn|en-US,en;q=0.9,de;q=0.8,nl;q=0.7",
want: "bn-u-nu-latn",
@@ -32,7 +36,6 @@ func TestMatchLanguage(t *testing.T) {
want: "en",
}}
for _, tc := range testCases {
DefaultCatalog = c
t.Run(tc.args, func(t *testing.T) {
got := MatchLanguage(strings.Split(tc.args, "|")...)
if got != language.Make(tc.want) {
+1
View File
@@ -31,6 +31,7 @@
// - flag # always resorts to fmt for printing
// - verb 'f', 'e', 'g', 'd' use localized formatting unless the '#' flag is
// specified.
// - verb 'm' inserts a translation of a string argument.
//
// See package fmt for more options.
//
+31 -3
View File
@@ -5,6 +5,7 @@
package message_test
import (
"fmt"
"net/http"
"golang.org/x/text/language"
@@ -13,13 +14,11 @@ import (
func Example_http() {
// languages supported by this service:
matcher := language.NewMatcher(message.DefaultCatalog.Languages())
http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
lang, _ := r.Cookie("lang")
accept := r.Header.Get("Accept-Language")
fallback := "en"
tag, _ := language.MatchStrings(matcher, lang.String(), accept, fallback)
tag := message.MatchLanguage(lang.String(), accept, fallback)
p := message.NewPrinter(tag)
@@ -40,3 +39,32 @@ func ExamplePrinter_numbers() {
// fr 123 456,78
// bn ১,২৩,৪৫৬.৭৮
}
func ExamplePrinter_mVerb() {
message.SetString(language.Dutch, "You have chosen to play %m.", "U heeft ervoor gekozen om %m te spelen.")
message.SetString(language.Dutch, "basketball", "basketbal")
message.SetString(language.Dutch, "hockey", "ijshockey")
message.SetString(language.Dutch, "soccer", "voetbal")
message.SetString(language.BritishEnglish, "soccer", "football")
for _, sport := range []string{"soccer", "basketball", "hockey"} {
for _, lang := range []string{"en", "en-GB", "nl"} {
p := message.NewPrinter(language.Make(lang))
fmt.Printf("%-6s %s\n", lang, p.Sprintf("You have chosen to play %m.", sport))
}
fmt.Println()
}
// Output:
// en You have chosen to play soccer.
// en-GB You have chosen to play football.
// nl U heeft ervoor gekozen om voetbal te spelen.
//
// en You have chosen to play basketball.
// en-GB You have chosen to play basketball.
// nl U heeft ervoor gekozen om basketbal te spelen.
//
// en You have chosen to play hockey.
// en-GB You have chosen to play hockey.
// nl U heeft ervoor gekozen om ijshockey te spelen.
}
+7
View File
@@ -156,6 +156,13 @@ func lookupAndFormat(p *printer, r Reference, a []interface{}) {
}
}
type rawPrinter struct {
p *printer
}
func (p rawPrinter) Render(msg string) { p.p.WriteString(msg) }
func (p rawPrinter) Arg(i int) interface{} { return nil }
// Arg implements catmsg.Renderer.
func (p *printer) Arg(i int) interface{} { // TODO, also return "ok" bool
i--
+12 -1
View File
@@ -128,7 +128,7 @@ func TestLocalization(t *testing.T) {
{"und", "hello %-42%%s ", joeAndMary, "hello %Joe %!(EXTRA string=Mary)"},
},
}, {
desc: "number formatting", // work around limitation of fmt
desc: "number formatting",
cat: []entry{
{"und", "files", "%d files left"},
{"und", "meters", "%.2f meters"},
@@ -141,6 +141,17 @@ func TestLocalization(t *testing.T) {
{"de-CH", "files", args(1234), "1’234 Dateien übrig"},
{"de-CH-u-nu-mong", "files", args(1234), "᠑’᠒᠓᠔ Dateien übrig"},
},
}, {
desc: "substitute translation",
cat: []entry{
{"en", "google", "Google"},
{"en", "sub", "%s"},
{"en", "visit", "Lookup: %m."},
},
test: []test{
{"en", "visit", args("google"), "Lookup: Google."},
{"en", "visit", args("sub"), "Lookup: %s."},
},
}}
for _, tc := range testCases {
+5
View File
@@ -467,6 +467,11 @@ func (p *printer) fmtString(v string, verb rune) {
p.fmt.fmt_sx(v, udigits)
case 'q':
p.fmt.fmt_q(v)
case 'm':
ctx := p.cat.Context(p.tag, rawPrinter{p})
if ctx.Execute(v) == catalog.ErrNotFound {
p.WriteString(v)
}
default:
p.badVerb(verb)
}