message/pipeline: fix extraction bug

NOTE: tests will be added soon, but in different CL

Change-Id: I4873c549938eaa2cd22ff2d725bb52bd26b26960
Reviewed-on: https://go-review.googlesource.com/83656
Run-TryBot: Marcel van Lohuizen <mpvl@golang.org>
Reviewed-by: Nigel Tao <nigeltao@golang.org>
diff --git a/cmd/gotext/examples/extract/locales/de/out.gotext.json b/cmd/gotext/examples/extract/locales/de/out.gotext.json
index 354e8e6..2ab70e1 100755
--- a/cmd/gotext/examples/extract/locales/de/out.gotext.json
+++ b/cmd/gotext/examples/extract/locales/de/out.gotext.json
@@ -106,13 +106,13 @@
             "position": "golang.org/x/text/cmd/gotext/examples/extract/main.go:56:10"
         },
         {
-            "id": "{} files remaining!",
+            "id": "{2} files remaining!",
             "key": "%d files remaining!",
-            "message": "{} files remaining!",
+            "message": "{2} files remaining!",
             "translation": "",
             "placeholders": [
                 {
-                    "id": "",
+                    "id": "2",
                     "string": "%[1]d",
                     "type": "int",
                     "underlyingType": "int",
diff --git a/cmd/gotext/examples/extract/locales/en-US/out.gotext.json b/cmd/gotext/examples/extract/locales/en-US/out.gotext.json
index fea86e5..27d8b56 100755
--- a/cmd/gotext/examples/extract/locales/en-US/out.gotext.json
+++ b/cmd/gotext/examples/extract/locales/en-US/out.gotext.json
@@ -106,13 +106,13 @@
             "position": "golang.org/x/text/cmd/gotext/examples/extract/main.go:56:10"
         },
         {
-            "id": "{} files remaining!",
+            "id": "{2} files remaining!",
             "key": "%d files remaining!",
-            "message": "{} files remaining!",
+            "message": "{2} files remaining!",
             "translation": "",
             "placeholders": [
                 {
-                    "id": "",
+                    "id": "2",
                     "string": "%[1]d",
                     "type": "int",
                     "underlyingType": "int",
diff --git a/cmd/gotext/examples/extract/locales/extracted.gotext.json b/cmd/gotext/examples/extract/locales/extracted.gotext.json
index fea86e5..27d8b56 100755
--- a/cmd/gotext/examples/extract/locales/extracted.gotext.json
+++ b/cmd/gotext/examples/extract/locales/extracted.gotext.json
@@ -106,13 +106,13 @@
             "position": "golang.org/x/text/cmd/gotext/examples/extract/main.go:56:10"
         },
         {
-            "id": "{} files remaining!",
+            "id": "{2} files remaining!",
             "key": "%d files remaining!",
-            "message": "{} files remaining!",
+            "message": "{2} files remaining!",
             "translation": "",
             "placeholders": [
                 {
-                    "id": "",
+                    "id": "2",
                     "string": "%[1]d",
                     "type": "int",
                     "underlyingType": "int",
diff --git a/cmd/gotext/examples/extract/locales/zh/out.gotext.json b/cmd/gotext/examples/extract/locales/zh/out.gotext.json
index 88739a3..067af28 100755
--- a/cmd/gotext/examples/extract/locales/zh/out.gotext.json
+++ b/cmd/gotext/examples/extract/locales/zh/out.gotext.json
@@ -106,13 +106,13 @@
             "position": "golang.org/x/text/cmd/gotext/examples/extract/main.go:56:10"
         },
         {
-            "id": "{} files remaining!",
+            "id": "{2} files remaining!",
             "key": "%d files remaining!",
-            "message": "{} files remaining!",
+            "message": "{2} files remaining!",
             "translation": "",
             "placeholders": [
                 {
-                    "id": "",
+                    "id": "2",
                     "string": "%[1]d",
                     "type": "int",
                     "underlyingType": "int",
diff --git a/message/pipeline/extract.go b/message/pipeline/extract.go
index e202fe4..406d7b9 100644
--- a/message/pipeline/extract.go
+++ b/message/pipeline/extract.go
@@ -249,7 +249,7 @@
 		if unicode.IsSpace(r) || r == '-' {
 			return '_'
 		}
-		if !unicode.In(r, unicode.Letter, unicode.Mark) {
+		if !unicode.In(r, unicode.Letter, unicode.Mark, unicode.Number) {
 			return -1
 		}
 		return r