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)
}
}
|