From d18c42abd5992c5d40b33140bb73d5312cce8f67 Mon Sep 17 00:00:00 2001 From: Vinoth Kannan Date: Wed, 27 Dec 2017 11:23:53 +0530 Subject: [PATCH] FIX: Ignore if the default localization node is not an object (#5439) --- .../javascripts/discourse/initializers/localization.js.es6 | 4 +++- test/javascripts/initializers/localization-test.js.es6 | 7 +++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/app/assets/javascripts/discourse/initializers/localization.js.es6 b/app/assets/javascripts/discourse/initializers/localization.js.es6 index 5d3ce55f98..2603ddaf4b 100644 --- a/app/assets/javascripts/discourse/initializers/localization.js.es6 +++ b/app/assets/javascripts/discourse/initializers/localization.js.es6 @@ -55,7 +55,9 @@ export default { node = node[segs[i]]; } - node[segs[segs.length-1]] = v; + if (typeof node === "object") { + node[segs[segs.length-1]] = v; + } }); } diff --git a/test/javascripts/initializers/localization-test.js.es6 b/test/javascripts/initializers/localization-test.js.es6 index 0113be6c71..299aab839d 100644 --- a/test/javascripts/initializers/localization-test.js.es6 +++ b/test/javascripts/initializers/localization-test.js.es6 @@ -41,3 +41,10 @@ QUnit.test("translation overrides", function(assert) { assert.equal(I18n.t("composer.reply"), "WAT", "overrides existing translation in current locale"); assert.equal(I18n.t("topic.reply.help"), "foobar", "overrides translation in default locale"); }); + +QUnit.test("skip translation override if parent node is not an object", function(assert) { + PreloadStore.store('translationOverrides', {"js.composer.reply":"WAT","js.composer.reply.help":"foobar"}); + LocalizationInitializer.initialize(this.registry); + + assert.equal(I18n.t("composer.reply.help"), "[fr.composer.reply.help]"); +});