//go:build darwin
|
|
package language
|
|
import (
|
"os/exec"
|
"strings"
|
)
|
|
func platformLocale() string {
|
out, err := exec.Command("/usr/bin/defaults", "read", "-g", "AppleLocale").Output()
|
if err == nil && strings.TrimSpace(string(out)) != "" {
|
return strings.TrimSpace(string(out))
|
}
|
out, err = exec.Command("/usr/bin/defaults", "read", "-g", "AppleLanguages").Output()
|
if err == nil {
|
return firstAppleLanguage(string(out))
|
}
|
return ""
|
}
|
|
func firstAppleLanguage(raw string) string {
|
raw = strings.TrimSpace(raw)
|
raw = strings.TrimPrefix(raw, "(")
|
raw = strings.TrimSuffix(raw, ")")
|
for _, part := range strings.Split(raw, ",") {
|
part = strings.TrimSpace(part)
|
part = strings.Trim(part, "\"")
|
if part != "" {
|
return part
|
}
|
}
|
return ""
|
}
|