github.com/liquid-dev/text@v0.3.3-liquid/message/examples_test.go (about)

     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  
     5  package message_test
     6  
     7  import (
     8  	"fmt"
     9  	"net/http"
    10  
    11  	"github.com/liquid-dev/text/language"
    12  	"github.com/liquid-dev/text/message"
    13  )
    14  
    15  func 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  
    29  func 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  
    43  func 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  }