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