Skip to content

Commit 7c965a5

Browse files
authored
Merge pull request #39 from mprevel/I18N_no_varargs
I18N multiple substitutions support
2 parents 6d75f02 + d8988e4 commit 7c965a5

File tree

2 files changed

+13
-4
lines changed

2 files changed

+13
-4
lines changed

bindings/src/main/scala/chrome/i18n/I18N.scala

Lines changed: 11 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,9 @@ import scala.concurrent.{Future, Promise}
44
import scala.scalajs.js
55
import chrome.utils.ErrorHandling._
66

7+
import js.JSConverters._
8+
import scala.scalajs.js.|
9+
710
object I18N {
811

912
def getAcceptLanguages: Future[js.Array[String]] = {
@@ -14,9 +17,14 @@ object I18N {
1417
promise.future
1518
}
1619

17-
def getMessage(messageName: String,
18-
substitutions: String*): js.UndefOr[String] =
19-
bindings.I18N.getMessage(messageName, substitutions: _*)
20+
def getMessage(messageName: String, substitutions: String*): js.UndefOr[String] = {
21+
if(substitutions.isEmpty) {
22+
bindings.I18N.getMessage(messageName)
23+
} else {
24+
val jsArraySubstitutions = substitutions.toJSArray.asInstanceOf[String | js.Array[String]]
25+
bindings.I18N.getMessage(messageName, Some(jsArraySubstitutions).orUndefined)
26+
}
27+
}
2028

2129
def getUILanguage: String = bindings.I18N.getUILanguage()
2230

bindings/src/main/scala/chrome/i18n/bindings/I18N.scala

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package chrome.i18n.bindings
22

33
import scala.scalajs.js
44
import scala.scalajs.js.annotation.JSGlobal
5+
import scala.scalajs.js.|
56

67
@js.native
78
@JSGlobal("chrome.i18n")
@@ -11,7 +12,7 @@ object I18N extends js.Object {
1112
js.native
1213

1314
def getMessage(messageName: String,
14-
substitutions: String*): js.UndefOr[String] = js.native
15+
substitutions: js.UndefOr[String | js.Array[String]] = js.undefined): js.UndefOr[String] = js.native
1516

1617
def getUILanguage(): String = js.native
1718

0 commit comments

Comments
 (0)