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