// 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 message_test import ( "fmt" "net/http" "golang.org/x/text/language" "golang.org/x/text/message" ) func Example_http() { // languages supported by this service: http.HandleFunc("/", func(w http.ResponseWriter, r *http.Request) { lang, _ := r.Cookie("lang") accept := r.Header.Get("Accept-Language") fallback := "en" tag := message.MatchLanguage(lang.String(), accept, fallback) p := message.NewPrinter(tag) p.Fprintln(w, "User language is", tag) }) } func ExamplePrinter_numbers() { for _, lang := range []string{"en", "de", "de-CH", "fr", "bn"} { p := message.NewPrinter(language.Make(lang)) p.Printf("%-6s %g\n", lang, 123456.78) } // Output: // en 123,456.78 // de 123.456,78 // de-CH 123’456.78 // 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. }