import PreloadStore from 'preload-store'; import LocalizationInitializer from 'discourse/initializers/localization'; QUnit.module("initializer:localization", { _locale: I18n.locale, _translations: I18n.translations, beforeEach() { I18n.locale = "fr"; I18n.translations = { "fr": { "js": { "composer": { "reply": "RĂ©pondre" } } }, "en": { "js": { "topic": { "reply": { "help": "begin composing a reply to this topic" } } } } }; }, afterEach() { I18n.locale = this._locale; I18n.translations = this._translations; } }); QUnit.test("translation overrides", function(assert) { PreloadStore.store('translationOverrides', {"js.composer.reply":"WAT","js.topic.reply.help":"foobar"}); LocalizationInitializer.initialize(this.registry); 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]"); });