NeahNew/node_modules/@nextcloud/l10n/dist/gettext.js
2025-05-03 14:17:46 +02:00

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