Command line client for Write.as https://write.as/apps/cli
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

58 lines
1.0 KiB

  1. // +build darwin freebsd linux netbsd openbsd
  2. package jibber_jabber
  3. import (
  4. "errors"
  5. "os"
  6. "strings"
  7. )
  8. func getLangFromEnv() (locale string) {
  9. locale = os.Getenv("LC_ALL")
  10. if locale == "" {
  11. locale = os.Getenv("LANG")
  12. }
  13. return
  14. }
  15. func getUnixLocale() (unix_locale string, err error) {
  16. unix_locale = getLangFromEnv()
  17. if unix_locale == "" {
  18. err = errors.New(COULD_NOT_DETECT_PACKAGE_ERROR_MESSAGE)
  19. }
  20. return
  21. }
  22. func DetectIETF() (locale string, err error) {
  23. unix_locale, err := getUnixLocale()
  24. if err == nil {
  25. language, territory := splitLocale(unix_locale)
  26. locale = language
  27. if territory != "" {
  28. locale = strings.Join([]string{language, territory}, "-")
  29. }
  30. }
  31. return
  32. }
  33. func DetectLanguage() (language string, err error) {
  34. unix_locale, err := getUnixLocale()
  35. if err == nil {
  36. language, _ = splitLocale(unix_locale)
  37. }
  38. return
  39. }
  40. func DetectTerritory() (territory string, err error) {
  41. unix_locale, err := getUnixLocale()
  42. if err == nil {
  43. _, territory = splitLocale(unix_locale)
  44. }
  45. return
  46. }