diff --git a/.idea/go-thousands.iml b/.idea/go-thousands.iml
new file mode 100644
index 0000000..7ee078d
--- /dev/null
+++ b/.idea/go-thousands.iml
@@ -0,0 +1,4 @@
+
+
+
+
\ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index c10e400..b2d0a8d 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -4,9 +4,7 @@
-
-
-
+
@@ -32,28 +30,59 @@
- {
+ "keyToString": {
+ "DefaultGoTemplateProperty": "Go File",
+ "RunOnceActivity.ShowReadmeOnStart": "true",
+ "RunOnceActivity.go.formatter.settings.were.checked": "true",
+ "RunOnceActivity.go.migrated.go.modules.settings": "true",
+ "RunOnceActivity.go.modules.go.list.on.any.changes.was.set": "true",
+ "WebServerToolWindowFactoryState": "false",
+ "go.import.settings.migrated": "true",
+ "last_opened_file_path": "/var/www/GoProjects/oldperl/go-thousands",
+ "node.js.detected.package.eslint": "true",
+ "node.js.selected.package.eslint": "(autodetect)"
}
-}]]>
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
+
true
diff --git a/go.mod b/go.mod
index 906ff99..8ed568e 100644
--- a/go.mod
+++ b/go.mod
@@ -1,3 +1,5 @@
module gitport.de/oldperl/go-thousands
go 1.24
+
+require golang.org/x/text v0.26.0
diff --git a/go.sum b/go.sum
new file mode 100644
index 0000000..b69360c
--- /dev/null
+++ b/go.sum
@@ -0,0 +1,2 @@
+golang.org/x/text v0.26.0 h1:P42AVeLghgTYr4+xUnTRKDMqpar+PtX7KWuNQL21L8M=
+golang.org/x/text v0.26.0/go.mod h1:QK15LZJUUQVJxhz7wXgxSy/CJaTFjd0G+YLonydOVQA=
diff --git a/thousands.go b/thousands.go
index 28c3c8c..81ca405 100644
--- a/thousands.go
+++ b/thousands.go
@@ -2,12 +2,19 @@ package thousands
import (
"fmt"
- "strings"
+ language2 "golang.org/x/text/language"
+ "golang.org/x/text/message"
)
func Separate(Number interface{}, language ...string) (string, error) {
- switch Number.(type) {
+ lang := map[string]string{"de": "German", "en": "English"}
+ useLang := lang[language[0]]
+
+ p := message.NewPrinter(language2.Make(useLang))
+ formattedNumber := ""
+
+ switch n := Number.(type) {
case int:
case int8:
case int16:
@@ -17,9 +24,13 @@ func Separate(Number interface{}, language ...string) (string, error) {
case float64:
default:
- return "", fmt.Errorf("no valid number format")
+ return "", fmt.Errorf("%T is no valid number format", n)
}
+ formattedNumber = p.Sprintf("%f", Number)
+
+ /**
+
formattedNumber := fmt.Sprintf("%.2f", Number)
if len(language) < 1 {
@@ -95,6 +106,6 @@ func Separate(Number interface{}, language ...string) (string, error) {
return formattedNumber, nil
}
-
+ */
return formattedNumber, nil
}