@genexus/web-standard-functions
Version:
GeneXus JavaScript standard functions library for web generators
86 lines • 3.17 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.ImageData = exports.ImagesData = exports.TranslationsItemData = exports.TranslationsData = exports.TranslationService = void 0;
const configurationState_1 = require("./configurationState");
const getLanguage_1 = require("../misc/getLanguage");
const network_1 = require("../gxcore/sd/network");
class TranslationService {
static getInstance() {
if (!TranslationService.instance) {
TranslationService.instance = new TranslationService();
}
return TranslationService.instance;
}
constructor() {
this.translations = {};
this.images = {};
this.loadedTranslations = {};
this.loadedImages = {};
}
async loadTranslations(language, data) {
if (!this.loadedTranslations[language]) {
const msgTranslations = {};
data.Translations.forEach(t => (msgTranslations[t.M] = t.T));
this.translations[language] = msgTranslations;
this.loadedTranslations[language] = true;
}
}
async loadImages(language, theme, data) {
if (!this.loadedImages[language + theme]) {
const imgTranslations = {};
data.images.forEach(t => (imgTranslations[this.resolveImageKey(t.name, theme)] = `resources/${t.location}`));
this.images[language] = imgTranslations;
this.loadedImages[language + theme] = true;
}
}
translate(name, language = undefined) {
const lang = language !== undefined ? language : (0, getLanguage_1.getLanguage)();
let translation = name;
if (this.translations[lang] !== undefined) {
const msgTranslations = this.translations[lang];
if (msgTranslations[name] !== undefined) {
translation = msgTranslations[name];
}
}
return translation;
}
getImageSource(name, language, theme) {
const lang = language ? language : (0, getLanguage_1.getLanguage)();
let imageUrl = name;
if (this.images[lang] !== undefined) {
const imgTranslations = this.images[lang];
let key = this.resolveImageKey(name, theme);
if (imgTranslations[key] !== undefined) {
imageUrl = imgTranslations[key];
}
}
return this.getHostName() + imageUrl;
}
getHostName() {
let config = configurationState_1.ConfigurationState.getInstance();
let serviceUrl = config.getDynStoredValue("SERVICE_URL");
if (serviceUrl) {
return network_1.GeneXusSDNetwork.applicationServerURL();
}
else {
return "";
}
}
resolveImageKey(name, theme) {
return `${name}_${theme}`;
}
}
exports.TranslationService = TranslationService;
class TranslationsData {
}
exports.TranslationsData = TranslationsData;
class TranslationsItemData {
}
exports.TranslationsItemData = TranslationsItemData;
class ImagesData {
}
exports.ImagesData = ImagesData;
class ImageData {
}
exports.ImageData = ImageData;
//# sourceMappingURL=translationService.js.map