From c92612347847fdaee53ba2f5dd23f51734c349bc Mon Sep 17 00:00:00 2001 From: James Kyburz Date: Thu, 10 Aug 2017 07:47:49 +0200 Subject: [PATCH] fix: allow support for falsy values like 0 in tagged literal (#45) --- index.js | 2 +- test/y18n-test.js | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/index.js b/index.js index 922f8c49..d7206816 100644 --- a/index.js +++ b/index.js @@ -49,7 +49,7 @@ Y18N.prototype._taggedLiteral = function (parts) { parts.forEach(function (part, i) { var arg = args[i + 1] str += part - if (arg) { + if (typeof arg !== 'undefined') { str += '%s' } }) diff --git a/test/y18n-test.js b/test/y18n-test.js index 089746ff..2ef27377 100644 --- a/test/y18n-test.js +++ b/test/y18n-test.js @@ -38,6 +38,14 @@ describe('y18n', function () { __`Hi, ${'Ben'} ${'Coe'}!`.should.equal('Yarr! Shiver me timbers, why \'tis Ben Coe!') }) + it('can be used as a tag for template literals with falsy arguments', function () { + var __ = y18n({ + locale: 'pirate', + directory: path.join(__dirname, 'locales') + }).__ + + __`Hi, ${'Ben'} ${''}!`.should.equal('Yarr! Shiver me timbers, why \'tis Ben !') + }) it('uses replacements from the default locale if none is configured', function () { var __ = y18n({ directory: path.join(__dirname, 'locales')