120 lines
3.6 KiB
JavaScript
120 lines
3.6 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports.getGettextBuilder = getGettextBuilder;
|
|
|
|
require("core-js/modules/es.regexp.exec.js");
|
|
|
|
require("core-js/modules/es.string.replace.js");
|
|
|
|
require("core-js/modules/es.object.define-property.js");
|
|
|
|
require("core-js/modules/es.object.to-string.js");
|
|
|
|
require("core-js/modules/es.regexp.to-string.js");
|
|
|
|
var _nodeGettext = _interopRequireDefault(require("node-gettext"));
|
|
|
|
var _ = require(".");
|
|
|
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
|
|
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
|
|
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, descriptor.key, descriptor); } }
|
|
|
|
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
|
|
var GettextBuilder = /*#__PURE__*/function () {
|
|
function GettextBuilder() {
|
|
_classCallCheck(this, GettextBuilder);
|
|
|
|
this.translations = {};
|
|
this.debug = false;
|
|
}
|
|
|
|
_createClass(GettextBuilder, [{
|
|
key: "setLanguage",
|
|
value: function setLanguage(language) {
|
|
this.locale = language;
|
|
return this;
|
|
}
|
|
}, {
|
|
key: "detectLocale",
|
|
value: function detectLocale() {
|
|
return this.setLanguage((0, _.getLanguage)().replace('-', '_'));
|
|
}
|
|
}, {
|
|
key: "addTranslation",
|
|
value: function addTranslation(language, data) {
|
|
this.translations[language] = data;
|
|
return this;
|
|
}
|
|
}, {
|
|
key: "enableDebugMode",
|
|
value: function enableDebugMode() {
|
|
this.debug = true;
|
|
return this;
|
|
}
|
|
}, {
|
|
key: "build",
|
|
value: function build() {
|
|
return new GettextWrapper(this.locale || 'en', this.translations, this.debug);
|
|
}
|
|
}]);
|
|
|
|
return GettextBuilder;
|
|
}();
|
|
|
|
var GettextWrapper = /*#__PURE__*/function () {
|
|
function GettextWrapper(locale, data, debug) {
|
|
_classCallCheck(this, GettextWrapper);
|
|
|
|
this.gt = new _nodeGettext.default({
|
|
debug: debug,
|
|
sourceLocale: 'en'
|
|
});
|
|
|
|
for (var key in data) {
|
|
this.gt.addTranslations(key, 'messages', data[key]);
|
|
}
|
|
|
|
this.gt.setLocale(locale);
|
|
}
|
|
|
|
_createClass(GettextWrapper, [{
|
|
key: "subtitudePlaceholders",
|
|
value: function subtitudePlaceholders(translated, vars) {
|
|
return translated.replace(/{([^{}]*)}/g, function (a, b) {
|
|
var r = vars[b];
|
|
|
|
if (typeof r === 'string' || typeof r === 'number') {
|
|
return r.toString();
|
|
} else {
|
|
return a;
|
|
}
|
|
});
|
|
}
|
|
}, {
|
|
key: "gettext",
|
|
value: function gettext(original) {
|
|
var placeholders = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
return this.subtitudePlaceholders(this.gt.gettext(original), placeholders);
|
|
}
|
|
}, {
|
|
key: "ngettext",
|
|
value: function ngettext(singular, plural, count) {
|
|
var placeholders = arguments.length > 3 && arguments[3] !== undefined ? arguments[3] : {};
|
|
return this.subtitudePlaceholders(this.gt.ngettext(singular, plural, count).replace(/%n/g, count.toString()), placeholders);
|
|
}
|
|
}]);
|
|
|
|
return GettextWrapper;
|
|
}();
|
|
|
|
function getGettextBuilder() {
|
|
return new GettextBuilder();
|
|
}
|
|
//# sourceMappingURL=gettext.js.map
|