blob: 85d79d1eebe9f479a18c7a79a4c23c64f04f1078 [file] [log] [blame]
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)
}
}