UNPKG

@genexus/web-standard-functions

Version:

GeneXus JavaScript standard functions library for web generators

86 lines 3.17 kB
"use strict"; 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