22 lines
514 B
Go
22 lines
514 B
Go
package preview
|
|
|
|
import (
|
|
"golang.org/x/text/language"
|
|
"golang.org/x/text/language/display"
|
|
)
|
|
|
|
// languageNames derives native names from CLDR for the generated preview locales.
|
|
func languageNames(locales []string) map[string]string {
|
|
names := make(map[string]string, len(locales))
|
|
for _, locale := range locales {
|
|
name := locale
|
|
if tag, err := language.Parse(locale); err == nil {
|
|
if native := display.Self.Name(tag); native != "" {
|
|
name = native
|
|
}
|
|
}
|
|
names[locale] = name
|
|
}
|
|
return names
|
|
}
|