123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116 |
- // Copyright 2014 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 display_test
- import (
- "fmt"
- "golang.org/x/text/language"
- "golang.org/x/text/language/display"
- "golang.org/x/text/message"
- )
- func ExampleFormatter() {
- message.SetString(language.Dutch, "In %v people speak %v.", "In %v spreekt men %v.")
- fr := language.French
- region, _ := fr.Region()
- for _, tag := range []string{"en", "nl"} {
- p := message.NewPrinter(language.Make(tag))
- p.Printf("In %v people speak %v.", display.Region(region), display.Language(fr))
- p.Println()
- }
- // Output:
- // In France people speak French.
- // In Frankrijk spreekt men Frans.
- }
- func ExampleNamer() {
- supported := []string{
- "en-US", "en-GB", "ja", "zh", "zh-Hans", "zh-Hant", "pt", "pt-PT", "ko", "ar", "el", "ru", "uk", "pa",
- }
- en := display.English.Languages()
- for _, s := range supported {
- t := language.MustParse(s)
- fmt.Printf("%-20s (%s)\n", en.Name(t), display.Self.Name(t))
- }
- // Output:
- // American English (American English)
- // British English (British English)
- // Japanese (日本語)
- // Chinese (中文)
- // Simplified Chinese (简体中文)
- // Traditional Chinese (繁體中文)
- // Portuguese (português)
- // European Portuguese (português europeu)
- // Korean (한국어)
- // Arabic (العربية)
- // Greek (Ελληνικά)
- // Russian (русский)
- // Ukrainian (українська)
- // Punjabi (ਪੰਜਾਬੀ)
- }
- func ExampleTags() {
- n := display.Tags(language.English)
- fmt.Println(n.Name(language.Make("nl")))
- fmt.Println(n.Name(language.Make("nl-BE")))
- fmt.Println(n.Name(language.Make("nl-CW")))
- fmt.Println(n.Name(language.Make("nl-Arab")))
- fmt.Println(n.Name(language.Make("nl-Cyrl-RU")))
- // Output:
- // Dutch
- // Flemish
- // Dutch (Curaçao)
- // Dutch (Arabic)
- // Dutch (Cyrillic, Russia)
- }
- // ExampleDictionary shows how to reduce the amount of data linked into your
- // binary by only using the predefined Dictionary variables of the languages you
- // wish to support.
- func ExampleDictionary() {
- tags := []language.Tag{
- language.English,
- language.German,
- language.Japanese,
- language.Russian,
- }
- dicts := []*display.Dictionary{
- display.English,
- display.German,
- display.Japanese,
- display.Russian,
- }
- m := language.NewMatcher(tags)
- getDict := func(t language.Tag) *display.Dictionary {
- _, i, confidence := m.Match(t)
- // Skip this check if you want to support a fall-back language, which
- // will be the first one passed to NewMatcher.
- if confidence == language.No {
- return nil
- }
- return dicts[i]
- }
- // The matcher will match Swiss German to German.
- n := getDict(language.Make("gsw")).Languages()
- fmt.Println(n.Name(language.German))
- fmt.Println(n.Name(language.Make("de-CH")))
- fmt.Println(n.Name(language.Make("gsw")))
- // Output:
- // Deutsch
- // Schweizer Hochdeutsch
- // Schweizerdeutsch
- }
|