func GetN(str, plural string, n int, vars ...interface{}) string {
	return GetND(GetDomain(), str, plural, n, vars...)
}
GetN retrieves the (N)th plural form of Translation for the given string in the default domain.
Supports optional parameters (vars... interface{}) to be inserted on the formatted string using the fmt.Printf syntax.
package gotext
import (
	"encoding/gob"
	"sync"
)
type config struct {
	sync.RWMutex
	domain string
	language string
	library string
	storage *Locale
}
var globalConfig *config
func init() {
	globalConfig = &config{
		domain:   "default",
		language: "en_US",
		library:  "/usr/local/share/locale",
		storage:  nil,
	}
	gob.Register(TranslatorEncoding{})
}
func loadStorage(force bool) {
	globalConfig.Lock()
	if globalConfig.storage == nil || force {
		globalConfig.storage = NewLocale(globalConfig.library, globalConfig.language)
	}
	if _, ok := globalConfig.storage.Domains[globalConfig.domain]; !ok || force {
		globalConfig.storage.AddDomain(globalConfig.domain)
	}
	globalConfig.storage.SetDomain(globalConfig.domain)
	globalConfig.Unlock()
}
func GetDomain() string {
	var dom string
	globalConfig.RLock()
	if globalConfig.storage != nil {
		dom = globalConfig.storage.GetDomain()
	}
	if dom == "" {
		dom = globalConfig.domain
	}
	globalConfig.RUnlock()
	return dom
}
func SetDomain(dom string) {
	globalConfig.Lock()
	globalConfig.domain = dom
	if globalConfig.storage != nil {
		globalConfig.storage.SetDomain(dom)
	}
	globalConfig.Unlock()
	loadStorage(true)
}
func GetLanguage() string {
	globalConfig.RLock()
	lang := globalConfig.language
	globalConfig.RUnlock()
	return lang
}
func SetLanguage(lang string) {
	globalConfig.Lock()
	globalConfig.language = SimplifiedLocale(lang)
	globalConfig.Unlock()
	loadStorage(true)
}
func GetLibrary() string {
	globalConfig.RLock()
	lib := globalConfig.library
	globalConfig.RUnlock()
	return lib
}
func SetLibrary(lib string) {
	globalConfig.Lock()
	globalConfig.library = lib
	globalConfig.Unlock()
	loadStorage(true)
}
func Configure(lib, lang, dom string) {
	globalConfig.Lock()
	globalConfig.library = lib
	globalConfig.language = SimplifiedLocale(lang)
	globalConfig.domain = dom
	globalConfig.Unlock()
	loadStorage(true)
}
func Get(str string, vars ...interface{}) string {
	return GetD(GetDomain(), str, vars...)
}