package main import ( "fmt" "os" "strings" "github.com/leonelquinteros/gotext" ) func main() { // Set locale from environment locale := getLocale() // Configure gettext gotext.Configure("locales", locale, "default") // Translate and print fmt.Println(gotext.Get("Hello World")) fmt.Println(gotext.Get("Goodbye World")) } // Determine locale from environment variables func getLocale() string { // Check LC_MESSAGES first if loc := os.Getenv("LC_MESSAGES"); loc != "" { return normalizeLocale(loc) } // Fallback to LANG if LC_MESSAGES is empty if loc := os.Getenv("LANG"); loc != "" { return normalizeLocale(loc) } // Default to English return "en_US" } // Normalize locale format (es_ES.UTF-8 → es_ES) func normalizeLocale(loc string) string { if idx := strings.Index(loc, "."); idx != -1 { return loc[:idx] } if idx := strings.Index(loc, "@"); idx != -1 { return loc[:idx] } return loc }