vscode-ext-localisation
Version:
Localisation for VSCode Extensions using package.nls.json files
64 lines • 2.82 kB
JavaScript
;
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });
}) : (function(o, m, k, k2) {
if (k2 === undefined) k2 = k;
o[k2] = m[k];
}));
var __exportStar = (this && this.__exportStar) || function(m, exports) {
for (var p in m) if (p !== "default" && !exports.hasOwnProperty(p)) __createBinding(exports, m, p);
};
Object.defineProperty(exports, "__esModule", { value: true });
exports.ta = exports.t = void 0;
__exportStar(require("./localisation.interface"), exports);
__exportStar(require("./utils/getVscodeLang"), exports);
__exportStar(require("./utils/loadTranslations"), exports);
var isTranslationType_1 = require("./utils/isTranslationType");
var loadTranslations_1 = require("./utils/loadTranslations");
var replacePlacholders_1 = require("./utils/replacePlacholders");
var deepCache = {};
var getTranslation = function (key, placeholders) {
var translation = key;
if (loadTranslations_1.translations[key] && isTranslationType_1.isTranslationType(loadTranslations_1.translations[key])) {
translation = loadTranslations_1.translations[key];
}
// Deep check if no flat translation exists...
if (key.includes('.') && !loadTranslations_1.translations[key]) {
if (deepCache[key]) {
translation = deepCache[key];
}
else {
deepCache[key] = key;
var paths = key.split('.');
var finalPath = paths.pop();
var translationPath = loadTranslations_1.translations;
var path = void 0;
while ((path = paths.shift())) {
if (!isTranslationType_1.isTranslationType(translationPath) && translationPath[path]) {
translationPath = translationPath[path];
}
}
if (finalPath && typeof translationPath !== 'string') {
if (translationPath[finalPath] && isTranslationType_1.isTranslationType(translationPath[finalPath])) {
translation = translationPath[finalPath];
deepCache[key] = translation;
}
}
}
}
if (translation !== key) {
translation = replacePlacholders_1.replacePlacholders(translation, placeholders);
}
return translation;
};
exports.t = function (key, placeholders) {
if (placeholders === void 0) { placeholders = null; }
return getTranslation(key, placeholders);
};
exports.ta = function (key, placeholders) {
if (placeholders === void 0) { placeholders = null; }
var trans = getTranslation(key, placeholders);
return trans.toString() === key ? [] : trans;
};
//# sourceMappingURL=index.js.map