1// Copyright 2017 The Go Authors. All rights reserved.
2// Use of this source code is governed by a BSD-style
3// license that can be found in the LICENSE file.
4
5package message_test
6
7import (
8	"fmt"
9	"net/http"
10
11	"golang.org/x/text/language"
12	"golang.org/x/text/message"
13)
14
15func Example_http() {
16	// languages supported by this service:
17	http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) {
18		lang, _ := r.Cookie("lang")
19		accept := r.Header.Get("Accept-Language")
20		fallback := "en"
21		tag := message.MatchLanguage(lang.String(), accept, fallback)
22
23		p := message.NewPrinter(tag)
24
25		p.Fprintln(w, "User language is", tag)
26	})
27}
28
29func ExamplePrinter_numbers() {
30	for _, lang := range []string{"en", "de", "de-CH", "fr", "bn"} {
31		p := message.NewPrinter(language.Make(lang))
32		p.Printf("%-6s %g\n", lang, 123456.78)
33	}
34
35	// Output:
36	// en     123,456.78
37	// de     123.456,78
38	// de-CH  123’456.78
39	// fr     123 456,78
40	// bn     ১,২৩,৪৫৬.৭৮
41}
42
43func ExamplePrinter_mVerb() {
44	message.SetString(language.Dutch, "You have chosen to play %m.", "U heeft ervoor gekozen om %m te spelen.")
45	message.SetString(language.Dutch, "basketball", "basketbal")
46	message.SetString(language.Dutch, "hockey", "ijshockey")
47	message.SetString(language.Dutch, "soccer", "voetbal")
48	message.SetString(language.BritishEnglish, "soccer", "football")
49
50	for _, sport := range []string{"soccer", "basketball", "hockey"} {
51		for _, lang := range []string{"en", "en-GB", "nl"} {
52			p := message.NewPrinter(language.Make(lang))
53			fmt.Printf("%-6s %s\n", lang, p.Sprintf("You have chosen to play %m.", sport))
54		}
55		fmt.Println()
56	}
57
58	// Output:
59	// en     You have chosen to play soccer.
60	// en-GB  You have chosen to play football.
61	// nl     U heeft ervoor gekozen om voetbal te spelen.
62	//
63	// en     You have chosen to play basketball.
64	// en-GB  You have chosen to play basketball.
65	// nl     U heeft ervoor gekozen om basketbal te spelen.
66	//
67	// en     You have chosen to play hockey.
68	// en-GB  You have chosen to play hockey.
69	// nl     U heeft ervoor gekozen om ijshockey te spelen.
70}
71