Commit cdce2537 authored by Steffen van Bergerem's avatar Steffen van Bergerem Committed by Benjamin Neff
Browse files

Reduce i18n.load side effects

closes #7184
parent a951c40b
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -2,6 +2,7 @@

## Refactor
* Use string-direction gem for rtl detection [#7181](https://github.com/diaspora/diaspora/pull/7181)
* Reduce i18n.load side effects [#7184](https://github.com/diaspora/diaspora/pull/7184)

## Bug fixes
* Fix fetching comments after fetching likes [#7167](https://github.com/diaspora/diaspora/pull/7167)
+1 −1
Original line number Diff line number Diff line
@@ -18,7 +18,7 @@ Diaspora.I18n = {
  },

  updateLocale: function(locale, data) {
    locale.data = $.extend(locale.data, data);
    locale.data = $.extend({}, locale.data, data);

    var rule = locale.data.pluralization_rule;
    if (typeof rule !== "undefined") {
+22 −0
Original line number Diff line number Diff line
@@ -45,6 +45,28 @@ describe("Diaspora.I18n", function() {

      expect(Diaspora.I18n.locale.data).toEqual(extended);
    });

    it("overrides existing translations", function() {
      var oldLocale = {name: "Bob"};
      var newLocale = {name: "Alice"};
      Diaspora.I18n.load(oldLocale, "en");
      expect(Diaspora.I18n.locale.data.name).toBe("Bob");
      Diaspora.I18n.load(newLocale, "en");
      expect(Diaspora.I18n.locale.data.name).toBe("Alice");

      Diaspora.I18n.reset(oldLocale);
      expect(Diaspora.I18n.locale.data.name).toBe("Bob");
      Diaspora.I18n.load(newLocale, "en");
      expect(Diaspora.I18n.locale.data.name).toBe("Alice");
    });

    it("doesn't change locale objects given in ealier calls", function() {
      var oldLocale = {name: "Bob"};
      var newLocale = {name: "Alice"};
      Diaspora.I18n.reset(oldLocale);
      Diaspora.I18n.load(newLocale, "en");
      expect(oldLocale.name).toBe("Bob");
    });
  });

  describe("::t", function() {