summaryrefslogtreecommitdiff
path: root/vendor/golang.org/x/text/unicode/cldr/examples_test.go
blob: 85d79d1eebe9f479a18c7a79a4c23c64f04f1078 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
package cldr_test

import (
	"fmt"
	"os"
	"path/filepath"

	"golang.org/x/text/internal/gen"
	"golang.org/x/text/unicode/cldr"
)

func ExampleDecoder() {
	// Obtain the default CLDR reader (only for x/text packages).

	var d cldr.Decoder

	// Speed up decoding by setting filters for only what you need.
	d.SetDirFilter("main", "supplemental")
	d.SetSectionFilter("numbers", "plurals")

	cldr, err := d.DecodeZip(gen.OpenCLDRCoreZip())
	if err != nil {
		fmt.Println("ERROR", err)
		return
	}
	supplemental := cldr.Supplemental()

	fmt.Println(supplemental.MeasurementData.MeasurementSystem[0].Type)
	for _, lang := range cldr.Locales() {
		data := cldr.RawLDML(lang)
		fmt.Println(lang, data.Identity.Version.Number)
	}
}

func ExampleDecoder_DecodePath() {
	// This directory will exist if a go generate has been run in any of the
	// packages in x/text using the cldr package.
	path := filepath.FromSlash("../../DATA/cldr/" + cldr.Version)

	var d cldr.Decoder

	// Speed up decoding by setting filters for only what you need.
	d.SetDirFilter("main")
	d.SetSectionFilter("numbers")

	cldr, err := d.DecodePath(path)
	if err != nil {
		// handle error
		fmt.Println("ERROR", err)
		return
	}
	for _, lang := range cldr.Locales() {
		if numbers := cldr.RawLDML(lang).Numbers; numbers != nil {
			fmt.Println(lang, len(numbers.Symbols))
		}
	}
}

func ExampleDecoder_DecodeZip() {
	// This directory will exist if a go generate has been run in any of the
	// packages in x/text using the cldr package.
	path := filepath.FromSlash("../../DATA/cldr/" + cldr.Version)

	var d cldr.Decoder

	r, err := os.Open(filepath.Join(path, "core.zip"))
	if err != nil {
		fmt.Println("error:", err)
		return
	}

	// Only loading supplemental data can be done much faster using a dir
	// filter.
	d.SetDirFilter("supplemental")
	cldr, err := d.DecodeZip(r)
	if err != nil {
		fmt.Println("error:", err)
		return
	}

	fmt.Println(cldr.Supplemental().MeasurementData.MeasurementSystem[0].Type)
}

func ExampleSlice() {
	var dr *cldr.CLDR // assume this is initialized

	x, _ := dr.LDML("en")
	cs := x.Collations.Collation
	// remove all but the default
	cldr.MakeSlice(&cs).Filter(func(e cldr.Elem) bool {
		return e.GetCommon().Type != x.Collations.Default()
	})
	for i, c := range cs {
		fmt.Println(i, c.Type)
	}
}