2
0
mirror of https://github.com/miguelmota/cointop synced 2024-11-16 21:25:38 +00:00
cointop/vendor/github.com/jeandeaual/go-locale
2021-10-08 08:36:00 +11:00
..
.gitattributes Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
.gitignore Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
.golangci.yml Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
LICENSE Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
locale_android.c Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
locale_android.go Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
locale_darwin.go Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
locale_ios.go Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
locale_ios.m Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
locale_js.go Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
locale_unix.go Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
locale_windows.go Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
README.md Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00
util.go Add github.com/jeandeaual/go-locale for locale-detection across platform 2021-10-08 08:36:00 +11:00

go-locale

PkgGoDev Go Report Card Coverage Status test

Go library used to retrieve the current locale(s) of the operating system.

OS Support

Usage

GetLocales

GetLocales returns the user's preferred locales, by order of preference, as a slice of IETF BCP 47 language tag (e.g. []string{"en-US", "fr-FR", "ja-JP"}).

This works if the user set multiple languages on macOS and other Unix systems. Otherwise, it returns a slice with a single locale.

userLocales, err := locale.GetLocales()
if err == nil {
	fmt.Println("Locales:", userLocales)
}

This can be used with golang.org/x/text or go-i18n to set the localizer's language preferences:

import (
	"github.com/jeandeaual/go-locale"
	"golang.org/x/text/message"
)

func main() {
	userLocales, _ := locale.GetLocales()
	p := message.NewPrinter(message.MatchLanguage(userLocales...))
	...
}
import (
	"github.com/jeandeaual/go-locale"
	"github.com/nicksnyder/go-i18n/v2/i18n"
	"golang.org/x/text/language"
)

func main() {
	userLocales, _ := locale.GetLocales()
	bundle := i18n.NewBundle(language.English)
	localizer := i18n.NewLocalizer(bundle, userLocales...)
	...
}

For a complete example, see here.

GetLocale

GetLocale returns the current locale as defined in IETF BCP 47 (e.g. "en-US").

userLocale, err := locale.GetLocale()
if err == nil {
	fmt.Println("Locale:", userLocale)
}

GetLanguage

GetLanguage returns the current language as an ISO 639 language code (e.g. "en").

userLanguage, err := locale.GetLanguage()
if err == nil {
	fmt.Println("Language:", userLocale)
}

GetRegion

GetRegion returns the current language as an ISO 3166 country code (e.g. "US").

userRegion, err := locale.GetRegion()
if err == nil {
	fmt.Println("Region:", userRegion)
}

Aknowledgements

Inspired by jibber_jabber.