summaryrefslogtreecommitdiffstats
path: root/vendor/github.com/cloudfoundry/jibber_jabber/jibber_jabber_unix.go
blob: 374d7617630a6646a9946d4a09c16c9f3666136e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
// +build darwin freebsd linux netbsd openbsd

package jibber_jabber

import (
	"errors"
	"os"
	"strings"
)

func getLangFromEnv() (locale string) {
	locale = os.Getenv("LC_ALL")
	if locale == "" {
		locale = os.Getenv("LANG")
	}
	return
}

func getUnixLocale() (unix_locale string, err error) {
	unix_locale = getLangFromEnv()
	if unix_locale == "" {
		err = errors.New(COULD_NOT_DETECT_PACKAGE_ERROR_MESSAGE)
	}

	return
}

func DetectIETF() (locale string, err error) {
	unix_locale, err := getUnixLocale()
	if err == nil {
		language, territory := splitLocale(unix_locale)
		locale = language
		if territory != "" {
			locale = strings.Join([]string{language, territory}, "-")
		}
	}

	return
}

func DetectLanguage() (language string, err error) {
	unix_locale, err := getUnixLocale()
	if err == nil {
		language, _ = splitLocale(unix_locale)
	}

	return
}

func DetectTerritory() (territory string, err error) {
	unix_locale, err := getUnixLocale()
	if err == nil {
		_, territory = splitLocale(unix_locale)
	}

	return
}