// parseCollation parses XML files in the collation directory of the CLDR core.zip file. func parseCollation(b *build.Builder) { d := &cldr.Decoder{} d.SetDirFilter("collation") data := decodeCLDR(d) for _, loc := range data.Locales() { x, err := data.LDML(loc) failOnError(err) if skipLang(x.Identity.Language.Type) { continue } cs := x.Collations.Collation sl := cldr.MakeSlice(&cs) if !types.all { sl.SelectAnyOf("type", append(types.s, x.Collations.Default())...) } sl.SelectOnePerGroup("alt", altInclude()) for _, c := range cs { locale := loc if c.Type != x.Collations.Default() { locale += "_u_co_" + c.Type } t := b.Tailoring(locale) c.Process(processor{t}) } } }
func ExampleSlice() { var dr *cldr.CLDR // assume this is initalized 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) } }