mirror of
https://github.com/restic/restic.git
synced 2024-09-09 12:49:58 +02:00
117 lines
3.0 KiB
Go
117 lines
3.0 KiB
Go
|
// 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
|
||
|
}
|