define([
  'jquery',
  'require'
], function ($, require) {
  function Translation (dict) {
    this.dict = dict || {};
  }
  Translation.prototype.all = function () {
    return this.dict;
  };
  Translation.prototype.get = function (key) {
    return this.dict[key];
  };
  Translation.prototype.extend = function (translation) {
    this.dict = $.extend({}, translation.all(), this.dict);
  };
  // Static functions
  Translation._cache = {};
  Translation.loadPath = function (path) {
    if (!(path in Translation._cache)) {
      var translations = require(path);
      Translation._cache[path] = translations;
    }
    return new Translation(Translation._cache[path]);
  };
  return Translation;
});
 
  |