package thousands import ( "fmt" language2 "golang.org/x/text/language" "golang.org/x/text/message" ) func Separate(Number interface{}, language ...string) (string, error) { lang := map[string]string{"de": "German", "en": "English"} useLang := lang[language[0]] p := message.NewPrinter(language2.Make(useLang)) switch n := Number.(type) { case int: case int8: case int16: case int32: case int64: case float32: case float64: default: return "", fmt.Errorf("%T is no valid number format", n) } formattedNumber := p.Sprintf("%d", Number) return formattedNumber, nil }