@larscom/ngx-translate-module-loader
Advanced tools
Comparing version 2.0.1 to 2.1.0
@@ -10,3 +10,5 @@ (function (global, factory) { | ||
var toJsonPath = function (path) { return path.concat('.json'); }; | ||
var PATH_TEMPLATE_MATCH = /{([^}]+)}/gi; | ||
var PATH_TEMPLATE_REGEX = /{([^}]+)}/gi; | ||
var PATH_CLEAN_REGEX = /([^:]\/)\/+/gi; | ||
var DEFAULT_PATH_TEMPLATE = '{baseTranslateUrl}/{moduleName}/{language}'; | ||
var ModuleTranslateLoader = /** @class */ (function () { | ||
@@ -26,3 +28,3 @@ /** | ||
this.options = options; | ||
this.defaultOptions = Object.assign({ disableNamespace: false, lowercaseNamespace: false, deepMerge: true, modulePathTemplate: '{baseTranslateUrl}/{moduleName}/{language}', pathTemplate: '{baseTranslateUrl}/{language}' }, this.options); | ||
this.defaultOptions = Object.assign({ disableNamespace: false, lowercaseNamespace: false, deepMerge: true }, this.options); | ||
} | ||
@@ -54,21 +56,23 @@ ModuleTranslateLoader.prototype.getTranslation = function (language) { | ||
ModuleTranslateLoader.prototype.fetchTranslation = function (language, _a, _b) { | ||
var pathTemplate = _a.pathTemplate, translateError = _a.translateError; | ||
var baseTranslateUrl = _b.baseTranslateUrl, translateMap = _b.translateMap; | ||
var translateError = _a.translateError; | ||
var pathTemplate = _b.pathTemplate, baseTranslateUrl = _b.baseTranslateUrl, translateMap = _b.translateMap; | ||
var pathOptions = { baseTranslateUrl: baseTranslateUrl, language: language }; | ||
var path = toJsonPath(pathTemplate.replace(PATH_TEMPLATE_MATCH, function (_, m1) { return pathOptions[m1] || ''; })); | ||
return this.http.get(path).pipe(operators.map(function (translation) { return (translateMap ? translateMap(translation) : translation); }), this.catchError(path, translateError)); | ||
var template = pathTemplate || DEFAULT_PATH_TEMPLATE; | ||
var path = toJsonPath(template.replace(PATH_TEMPLATE_REGEX, function (a, m1) { return pathOptions[m1] || ''; })); | ||
var cleanedPath = path.replace(PATH_CLEAN_REGEX, '$1'); | ||
return this.http.get(cleanedPath).pipe(operators.map(function (translation) { return (translateMap ? translateMap(translation) : translation); }), this.catchError(cleanedPath, translateError)); | ||
}; | ||
ModuleTranslateLoader.prototype.fetchTranslationForModule = function (language, _a, _b) { | ||
var modulePathTemplate = _a.modulePathTemplate, disableNamespace = _a.disableNamespace, lowercaseNamespace = _a.lowercaseNamespace, translateError = _a.translateError; | ||
var baseTranslateUrl = _b.baseTranslateUrl, moduleName = _b.moduleName, namespace = _b.namespace, translateMap = _b.translateMap; | ||
var modulePathOptions = { baseTranslateUrl: baseTranslateUrl, moduleName: moduleName, language: language }; | ||
var modulePath = toJsonPath(modulePathTemplate.replace(PATH_TEMPLATE_MATCH, function (_, m1) { return modulePathOptions[m1] || ''; })); | ||
var disableNamespace = _a.disableNamespace, lowercaseNamespace = _a.lowercaseNamespace, translateError = _a.translateError; | ||
var pathTemplate = _b.pathTemplate, baseTranslateUrl = _b.baseTranslateUrl, moduleName = _b.moduleName, namespace = _b.namespace, translateMap = _b.translateMap; | ||
var pathOptions = { baseTranslateUrl: baseTranslateUrl, moduleName: moduleName, language: language }; | ||
var template = pathTemplate || DEFAULT_PATH_TEMPLATE; | ||
var path = toJsonPath(template.replace(PATH_TEMPLATE_REGEX, function (_, m1) { return pathOptions[m1] || ''; })); | ||
var cleanedPath = path.replace(PATH_CLEAN_REGEX, '$1'); | ||
var namespaceKey = namespace | ||
? lowercaseNamespace | ||
? namespace.toLowerCase() | ||
: namespace.toUpperCase() | ||
? namespace | ||
: lowercaseNamespace | ||
? moduleName.toLowerCase() | ||
: moduleName.toUpperCase(); | ||
return this.http.get(modulePath).pipe(operators.map(function (translation) { | ||
return this.http.get(cleanedPath).pipe(operators.map(function (translation) { | ||
var _a; | ||
@@ -80,3 +84,3 @@ return translateMap | ||
: Object((_a = {}, _a[namespaceKey] = translation, _a)); | ||
}), this.catchError(modulePath, translateError)); | ||
}), this.catchError(cleanedPath, translateError)); | ||
}; | ||
@@ -83,0 +87,0 @@ ModuleTranslateLoader.prototype.catchError = function (path, translateError) { |
@@ -1,2 +0,2 @@ | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("deepmerge"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@larscom/ngx-translate-module-loader",["exports","deepmerge","rxjs","rxjs/operators"],t):t(((e=e||self).larscom=e.larscom||{},e.larscom["ngx-translate-module-loader"]={}),e.merge,e.rxjs,e.rxjs.operators)}(this,(function(e,t,r,a){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var n=function(e){return e.concat(".json")},o=/{([^}]+)}/gi,s=function(){function e(e,t){this.http=e,this.options=t,this.defaultOptions=Object.assign({disableNamespace:!1,lowercaseNamespace:!1,deepMerge:!0,modulePathTemplate:"{baseTranslateUrl}/{moduleName}/{language}",pathTemplate:"{baseTranslateUrl}/{language}"},this.options)}return e.prototype.getTranslation=function(e){var t=this.defaultOptions;return this.mergeTranslations(this.getModuleTranslations(e,t),t)},e.prototype.mergeTranslations=function(e,n){var o=n.deepMerge,s=n.translateMerger;return r.forkJoin(e).pipe(a.map((function(e){return s?s(e):o?t.all(e):e.reduce((function(e,t){return Object.assign(Object.assign({},e),t)}),Object())})))},e.prototype.getModuleTranslations=function(e,t){var r=this;return t.modules.map((function(a){return a.moduleName?r.fetchTranslationForModule(e,t,a):r.fetchTranslation(e,t,a)}))},e.prototype.fetchTranslation=function(e,t,r){var s=t.pathTemplate,l=t.translateError,i=r.baseTranslateUrl,u=r.translateMap,p={baseTranslateUrl:i,language:e},c=n(s.replace(o,(function(e,t){return p[t]||""})));return this.http.get(c).pipe(a.map((function(e){return u?u(e):e})),this.catchError(c,l))},e.prototype.fetchTranslationForModule=function(e,t,r){var s=t.modulePathTemplate,l=t.disableNamespace,i=t.lowercaseNamespace,u=t.translateError,p=r.baseTranslateUrl,c=r.moduleName,f=r.namespace,d=r.translateMap,m={baseTranslateUrl:p,moduleName:c,language:e},h=n(s.replace(o,(function(e,t){return m[t]||""}))),g=f?i?f.toLowerCase():f.toUpperCase():i?c.toLowerCase():c.toUpperCase();return this.http.get(h).pipe(a.map((function(e){var t;return d?d(e):l?e:Object(((t={})[g]=e,t))})),this.catchError(h,u))},e.prototype.catchError=function(e,t){return a.catchError((function(a){return t&&t(a,e),console.error("Unable to load translation file:",e),r.of(Object())}))},e}();e.ModuleTranslateLoader=s,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("deepmerge"),require("rxjs"),require("rxjs/operators")):"function"==typeof define&&define.amd?define("@larscom/ngx-translate-module-loader",["exports","deepmerge","rxjs","rxjs/operators"],t):t(((e=e||self).larscom=e.larscom||{},e.larscom["ngx-translate-module-loader"]={}),e.merge,e.rxjs,e.rxjs.operators)}(this,(function(e,t,r,a){"use strict";t=t&&Object.prototype.hasOwnProperty.call(t,"default")?t.default:t;var n=function(e){return e.concat(".json")},o=/{([^}]+)}/gi,s=/([^:]\/)\/+/gi,l=function(){function e(e,t){this.http=e,this.options=t,this.defaultOptions=Object.assign({disableNamespace:!1,lowercaseNamespace:!1,deepMerge:!0},this.options)}return e.prototype.getTranslation=function(e){var t=this.defaultOptions;return this.mergeTranslations(this.getModuleTranslations(e,t),t)},e.prototype.mergeTranslations=function(e,n){var o=n.deepMerge,s=n.translateMerger;return r.forkJoin(e).pipe(a.map((function(e){return s?s(e):o?t.all(e):e.reduce((function(e,t){return Object.assign(Object.assign({},e),t)}),Object())})))},e.prototype.getModuleTranslations=function(e,t){var r=this;return t.modules.map((function(a){return a.moduleName?r.fetchTranslationForModule(e,t,a):r.fetchTranslation(e,t,a)}))},e.prototype.fetchTranslation=function(e,t,r){var l=t.translateError,i=r.pathTemplate,u=r.baseTranslateUrl,p=r.translateMap,c={baseTranslateUrl:u,language:e},f=n((i||"{baseTranslateUrl}/{moduleName}/{language}").replace(o,(function(e,t){return c[t]||""}))).replace(s,"$1");return this.http.get(f).pipe(a.map((function(e){return p?p(e):e})),this.catchError(f,l))},e.prototype.fetchTranslationForModule=function(e,t,r){var l=t.disableNamespace,i=t.lowercaseNamespace,u=t.translateError,p=r.pathTemplate,c=r.baseTranslateUrl,f=r.moduleName,d=r.namespace,m=r.translateMap,g={baseTranslateUrl:c,moduleName:f,language:e},h=n((p||"{baseTranslateUrl}/{moduleName}/{language}").replace(o,(function(e,t){return g[t]||""}))).replace(s,"$1"),b=d||(i?f.toLowerCase():f.toUpperCase());return this.http.get(h).pipe(a.map((function(e){var t;return m?m(e):l?e:Object(((t={})[b]=e,t))})),this.catchError(h,u))},e.prototype.catchError=function(e,t){return a.catchError((function(a){return t&&t(a,e),console.error("Unable to load translation file:",e),r.of(Object())}))},e}();e.ModuleTranslateLoader=l,Object.defineProperty(e,"__esModule",{value:!0})})); | ||
//# sourceMappingURL=larscom-ngx-translate-module-loader.umd.min.js.map |
@@ -1,1 +0,1 @@ | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXRyYW5zbGF0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdHJhbnNsYXRlLW1vZHVsZS1sb2FkZXIvc3JjL2xpYi9tb2RlbHMvbW9kdWxlLXRyYW5zbGF0aW9uLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElNb2R1bGVUcmFuc2xhdGlvbiB9IGZyb20gJy4vbW9kdWxlLXRyYW5zbGF0aW9uJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uIH0gZnJvbSAnLi90cmFuc2xhdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZHVsZVRyYW5zbGF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdHJhbnNsYXRpb24gbW9kdWxlIGNvbmZpZ3VyYXRpb25zXG4gICAqL1xuICBtb2R1bGVzOiBJTW9kdWxlVHJhbnNsYXRpb25bXTtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIGVhY2ggbW9kdWxlIGdldHMgaXRzIG93biBuYW1lc3BhY2Ugc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIG90aGVyIG1vZHVsZXNcbiAgICovXG4gIGRpc2FibGVOYW1lc3BhY2U/OiBib29sZWFuO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCwgbmFtZXNwYWNlcyBhcmUgdXBwZXJjYXNlXG4gICAqL1xuICBsb3dlcmNhc2VOYW1lc3BhY2U/OiBib29sZWFuO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCwgaXQnbGwgcGVyZm9ybSBhIGRlZXBtZXJnZSB3aGVuIG1lcmdpbmcgdHJhbnNsYXRpb24gZmlsZXNcbiAgICovXG4gIGRlZXBNZXJnZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0aGF0IGdldHMgZXhlY3V0ZWQgaWYgYW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcmV0cmlldmluZyBhIHRyYW5zbGF0aW9uIGZpbGVcbiAgICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciB0aGF0IG9jY3VycmVkXG4gICAqIEBwYXJhbSBwYXRoIHRoZSBwYXRoIHRvIHRoZSBsb2NhdGlvbiBmaWxlXG4gICAqL1xuICB0cmFuc2xhdGVFcnJvcj86IChlcnJvcjogYW55LCBwYXRoOiBzdHJpbmcpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDdXN0b20gdHJhbnNsYXRlIG1lcmdlIGZ1bmN0aW9uIGFmdGVyIHJldHJpZXZpbmcgYWxsIHRyYW5zbGF0aW9uIGZpbGVzXG4gICAqIEBwYXJhbSB0cmFuc2xhdGlvbnMgdGhlIHJlc29sdmVkIHRyYW5zbGF0aW9uIGZpbGVzXG4gICAqL1xuICB0cmFuc2xhdGVNZXJnZXI/OiAodHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbltdKSA9PiBUcmFuc2xhdGlvbjtcbiAgLyoqXG4gICAqIEN1c3RvbSBtb2R1bGUgcGF0aCB0ZW1wbGF0ZSBmb3IgZmV0Y2hpbmcgdHJhbnNsYXRpb25zXG4gICAqIEBleGFtcGxlXG4gICAqICd7YmFzZVRyYW5zbGF0ZVVybH0ve21vZHVsZU5hbWV9L3tsYW5ndWFnZX0nXG4gICAqL1xuICBtb2R1bGVQYXRoVGVtcGxhdGU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b20gcGF0aCB0ZW1wbGF0ZSBmb3IgZmV0Y2hpbmcgdHJhbnNsYXRpb25zXG4gICAqIEBleGFtcGxlXG4gICAqICd7YmFzZVRyYW5zbGF0ZVVybH0ve2xhbmd1YWdlfSdcbiAgICovXG4gIHBhdGhUZW1wbGF0ZT86IHN0cmluZztcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXRyYW5zbGF0aW9uLW9wdGlvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdHJhbnNsYXRlLW1vZHVsZS1sb2FkZXIvc3JjL2xpYi9tb2RlbHMvbW9kdWxlLXRyYW5zbGF0aW9uLW9wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElNb2R1bGVUcmFuc2xhdGlvbiB9IGZyb20gJy4vbW9kdWxlLXRyYW5zbGF0aW9uJztcbmltcG9ydCB7IFRyYW5zbGF0aW9uIH0gZnJvbSAnLi90cmFuc2xhdGlvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1vZHVsZVRyYW5zbGF0aW9uT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgdHJhbnNsYXRpb24gbW9kdWxlIGNvbmZpZ3VyYXRpb25zXG4gICAqL1xuICBtb2R1bGVzOiBJTW9kdWxlVHJhbnNsYXRpb25bXTtcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIGVhY2ggbW9kdWxlIGdldHMgaXRzIG93biBuYW1lc3BhY2Ugc28gaXQgZG9lc24ndCBjb25mbGljdCB3aXRoIG90aGVyIG1vZHVsZXNcbiAgICovXG4gIGRpc2FibGVOYW1lc3BhY2U/OiBib29sZWFuO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCwgbmFtZXNwYWNlcyBhcmUgdXBwZXJjYXNlXG4gICAqL1xuICBsb3dlcmNhc2VOYW1lc3BhY2U/OiBib29sZWFuO1xuICAvKipcbiAgICogQnkgZGVmYXVsdCwgaXQnbGwgcGVyZm9ybSBhIGRlZXBtZXJnZSB3aGVuIG1lcmdpbmcgdHJhbnNsYXRpb24gZmlsZXNcbiAgICovXG4gIGRlZXBNZXJnZT86IGJvb2xlYW47XG4gIC8qKlxuICAgKiBGdW5jdGlvbiB0aGF0IGdldHMgZXhlY3V0ZWQgaWYgYW4gZXJyb3Igb2NjdXJyZWQgd2hpbGUgcmV0cmlldmluZyBhIHRyYW5zbGF0aW9uIGZpbGVcbiAgICogQHBhcmFtIGVycm9yIHRoZSBlcnJvciB0aGF0IG9jY3VycmVkXG4gICAqIEBwYXJhbSBwYXRoIHRoZSBwYXRoIHRvIHRoZSBsb2NhdGlvbiBmaWxlXG4gICAqL1xuICB0cmFuc2xhdGVFcnJvcj86IChlcnJvcjogYW55LCBwYXRoOiBzdHJpbmcpID0+IHZvaWQ7XG4gIC8qKlxuICAgKiBDdXN0b20gdHJhbnNsYXRlIG1lcmdlIGZ1bmN0aW9uIGFmdGVyIHJldHJpZXZpbmcgYWxsIHRyYW5zbGF0aW9uIGZpbGVzXG4gICAqIEBwYXJhbSB0cmFuc2xhdGlvbnMgdGhlIHJlc29sdmVkIHRyYW5zbGF0aW9uIGZpbGVzXG4gICAqL1xuICB0cmFuc2xhdGVNZXJnZXI/OiAodHJhbnNsYXRpb25zOiBUcmFuc2xhdGlvbltdKSA9PiBUcmFuc2xhdGlvbjtcbn1cbiJdfQ== |
@@ -1,1 +0,1 @@ | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXRyYW5zbGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRyYW5zbGF0ZS1tb2R1bGUtbG9hZGVyL3NyYy9saWIvbW9kZWxzL21vZHVsZS10cmFuc2xhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRpb24gfSBmcm9tICcuL3RyYW5zbGF0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBJTW9kdWxlVHJhbnNsYXRpb24ge1xuICAvKipcbiAgICogVGhlIG1vZHVsZSBuYW1lXG4gICAqXG4gICAqIEZvciBleGFtcGxlOiBzaGFyZWRcbiAgICogQGRlc2NyaXB0aW9uIG9taXQgbW9kdWxlTmFtZSBpZiB5b3UgaGF2ZSBhIHRyYW5zbGF0ZSBmaWxlIGF0IGJhc2VUcmFuc2xhdGVVcmwgbGV2ZWxcbiAgICogQHNlZSBiYXNlVHJhbnNsYXRlVXJsXG4gICAqL1xuICBtb2R1bGVOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGJhc2UgdHJhbnNsYXRlIFVSTFxuICAgKlxuICAgKiBGb3IgZXhhbXBsZTogLi9hc3NldHMvaTE4blxuICAgKiBAZGVzY3JpcHRpb24gdGhlIGZpbmFsIHVybCB3aWxsIHRoZW4gYmU6IC4vYXNzZXRzL2kxOG4vc2hhcmVkIGlmIHRoZSBtb2R1bGVOYW1lIGlzIHNoYXJlZFxuICAgKiBAc2VlIG1vZHVsZU5hbWVcbiAgICovXG4gIGJhc2VUcmFuc2xhdGVVcmw6IHN0cmluZztcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIGl0IHVzZXMgdGhlIG1vZHVsZU5hbWUgYXMgbmFtZXNwYWNlXG4gICAqIEBzZWUgbW9kdWxlTmFtZVxuICAgKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSBpZiB5b3Ugd2FudCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBuYW1lU3BhY2VcbiAgICovXG4gIG5hbWVzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSB0cmFuc2xhdGlvbiBtYXAgZnVuY3Rpb24gYWZ0ZXIgcmV0cmlldmluZyBhIHRyYW5zbGF0aW9uIGZpbGVcbiAgICogQHBhcmFtIHRyYW5zbGF0aW9uIHRoZSByZXNvbHZlZCB0cmFuc2xhdGlvbiBmaWxlXG4gICAqL1xuICB0cmFuc2xhdGVNYXA/OiAodHJhbnNsYXRpb246IFRyYW5zbGF0aW9uKSA9PiBUcmFuc2xhdGlvbjtcbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXRyYW5zbGF0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXRyYW5zbGF0ZS1tb2R1bGUtbG9hZGVyL3NyYy9saWIvbW9kZWxzL21vZHVsZS10cmFuc2xhdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgVHJhbnNsYXRpb24gfSBmcm9tICcuL3RyYW5zbGF0aW9uJztcblxuZXhwb3J0IGludGVyZmFjZSBJTW9kdWxlVHJhbnNsYXRpb24ge1xuICAvKipcbiAgICogVGhlIG1vZHVsZSBuYW1lXG4gICAqXG4gICAqIEZvciBleGFtcGxlOiBzaGFyZWRcbiAgICogQGRlc2NyaXB0aW9uIG9taXQgbW9kdWxlTmFtZSBpZiB5b3UgaGF2ZSBhIHRyYW5zbGF0ZSBmaWxlIGF0IGJhc2VUcmFuc2xhdGVVcmwgbGV2ZWxcbiAgICogQHNlZSBiYXNlVHJhbnNsYXRlVXJsXG4gICAqL1xuICBtb2R1bGVOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGJhc2UgdHJhbnNsYXRlIFVSTFxuICAgKlxuICAgKiBGb3IgZXhhbXBsZTogLi9hc3NldHMvaTE4blxuICAgKiBAZGVzY3JpcHRpb24gdGhlIGZpbmFsIHVybCB3aWxsIHRoZW4gYmU6IC4vYXNzZXRzL2kxOG4vc2hhcmVkIGlmIHRoZSBtb2R1bGVOYW1lIGlzIHNoYXJlZFxuICAgKiBAc2VlIG1vZHVsZU5hbWVcbiAgICovXG4gIGJhc2VUcmFuc2xhdGVVcmw6IHN0cmluZztcbiAgLyoqXG4gICAqIEJ5IGRlZmF1bHQsIGl0IHVzZXMgdGhlIG1vZHVsZU5hbWUgYXMgbmFtZXNwYWNlXG4gICAqIEBzZWUgbW9kdWxlTmFtZVxuICAgKlxuICAgKiBVc2UgdGhpcyBwcm9wZXJ0eSBpZiB5b3Ugd2FudCB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBuYW1lc3BhY2VcbiAgICovXG4gIG5hbWVzcGFjZT86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSB0cmFuc2xhdGlvbiBtYXAgZnVuY3Rpb24gYWZ0ZXIgcmV0cmlldmluZyBhIHRyYW5zbGF0aW9uIGZpbGVcbiAgICogQHBhcmFtIHRyYW5zbGF0aW9uIHRoZSByZXNvbHZlZCB0cmFuc2xhdGlvbiBmaWxlXG4gICAqL1xuICB0cmFuc2xhdGVNYXA/OiAodHJhbnNsYXRpb246IFRyYW5zbGF0aW9uKSA9PiBUcmFuc2xhdGlvbjtcbiAgLyoqXG4gICAqIEN1c3RvbSBwYXRoIHRlbXBsYXRlIGZvciBmZXRjaGluZyB0cmFuc2xhdGlvbnNcbiAgICogQGV4YW1wbGVcbiAgICogJ3tiYXNlVHJhbnNsYXRlVXJsfS97bW9kdWxlTmFtZX0ve2xhbmd1YWdlfSdcbiAgICogb3JcbiAgICogQGV4YW1wbGVcbiAgICogJ3tiYXNlVHJhbnNsYXRlVXJsfS97bGFuZ3VhZ2V9J1xuICAgKlxuICAgKiBJdCBkZXBlbmRzIHdoZXRoZXIgeW91IGhhdmUgYSBtb2R1bGVOYW1lIGRlZmluZWRcbiAgICogQHNlZSBtb2R1bGVOYW1lXG4gICAqL1xuICBwYXRoVGVtcGxhdGU/OiBzdHJpbmc7XG59XG4iXX0= |
@@ -5,3 +5,5 @@ import merge from 'deepmerge'; | ||
export const toJsonPath = (path) => path.concat('.json'); | ||
const PATH_TEMPLATE_MATCH = /{([^}]+)}/gi; | ||
const PATH_TEMPLATE_REGEX = /{([^}]+)}/gi; | ||
const PATH_CLEAN_REGEX = /([^:]\/)\/+/gi; | ||
const DEFAULT_PATH_TEMPLATE = '{baseTranslateUrl}/{moduleName}/{language}'; | ||
export class ModuleTranslateLoader { | ||
@@ -21,3 +23,3 @@ /** | ||
this.options = options; | ||
this.defaultOptions = Object.assign({ disableNamespace: false, lowercaseNamespace: false, deepMerge: true, modulePathTemplate: '{baseTranslateUrl}/{moduleName}/{language}', pathTemplate: '{baseTranslateUrl}/{language}' }, this.options); | ||
this.defaultOptions = Object.assign({ disableNamespace: false, lowercaseNamespace: false, deepMerge: true }, this.options); | ||
} | ||
@@ -46,18 +48,20 @@ getTranslation(language) { | ||
} | ||
fetchTranslation(language, { pathTemplate, translateError }, { baseTranslateUrl, translateMap }) { | ||
fetchTranslation(language, { translateError }, { pathTemplate, baseTranslateUrl, translateMap }) { | ||
const pathOptions = { baseTranslateUrl, language }; | ||
const path = toJsonPath(pathTemplate.replace(PATH_TEMPLATE_MATCH, (_, m1) => pathOptions[m1] || '')); | ||
return this.http.get(path).pipe(map((translation) => (translateMap ? translateMap(translation) : translation)), this.catchError(path, translateError)); | ||
const template = pathTemplate || DEFAULT_PATH_TEMPLATE; | ||
const path = toJsonPath(template.replace(PATH_TEMPLATE_REGEX, (a, m1) => pathOptions[m1] || '')); | ||
const cleanedPath = path.replace(PATH_CLEAN_REGEX, '$1'); | ||
return this.http.get(cleanedPath).pipe(map((translation) => (translateMap ? translateMap(translation) : translation)), this.catchError(cleanedPath, translateError)); | ||
} | ||
fetchTranslationForModule(language, { modulePathTemplate, disableNamespace, lowercaseNamespace, translateError }, { baseTranslateUrl, moduleName, namespace, translateMap }) { | ||
const modulePathOptions = { baseTranslateUrl, moduleName, language }; | ||
const modulePath = toJsonPath(modulePathTemplate.replace(PATH_TEMPLATE_MATCH, (_, m1) => modulePathOptions[m1] || '')); | ||
fetchTranslationForModule(language, { disableNamespace, lowercaseNamespace, translateError }, { pathTemplate, baseTranslateUrl, moduleName, namespace, translateMap }) { | ||
const pathOptions = { baseTranslateUrl, moduleName, language }; | ||
const template = pathTemplate || DEFAULT_PATH_TEMPLATE; | ||
const path = toJsonPath(template.replace(PATH_TEMPLATE_REGEX, (_, m1) => pathOptions[m1] || '')); | ||
const cleanedPath = path.replace(PATH_CLEAN_REGEX, '$1'); | ||
const namespaceKey = namespace | ||
? lowercaseNamespace | ||
? namespace.toLowerCase() | ||
: namespace.toUpperCase() | ||
? namespace | ||
: lowercaseNamespace | ||
? moduleName.toLowerCase() | ||
: moduleName.toUpperCase(); | ||
return this.http.get(modulePath).pipe(map((translation) => { | ||
return this.http.get(cleanedPath).pipe(map((translation) => { | ||
return translateMap | ||
@@ -68,3 +72,3 @@ ? translateMap(translation) | ||
: Object({ [namespaceKey]: translation }); | ||
}), this.catchError(modulePath, translateError)); | ||
}), this.catchError(cleanedPath, translateError)); | ||
} | ||
@@ -81,2 +85,2 @@ catchError(path, translateError) { | ||
} | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXRyYW5zbGF0ZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdHJhbnNsYXRlLW1vZHVsZS1sb2FkZXIvc3JjL2xpYi9tb2R1bGUtdHJhbnNsYXRlLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssTUFBTSxXQUFXLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsSUFBSSxRQUFRLEVBQXdDLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2pELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVqRSxNQUFNLG1CQUFtQixHQUFHLGFBQWEsQ0FBQztBQUUxQyxNQUFNLE9BQU8scUJBQXFCO0lBVWhDOzs7Ozs7Ozs7T0FTRztJQUNILFlBQTZCLElBQWdCLEVBQW1CLE9BQWtDO1FBQXJFLFNBQUksR0FBSixJQUFJLENBQVk7UUFBbUIsWUFBTyxHQUFQLE9BQU8sQ0FBMkI7UUFuQmpGLG1CQUFjLG1CQUM3QixnQkFBZ0IsRUFBRSxLQUFLLEVBQ3ZCLGtCQUFrQixFQUFFLEtBQUssRUFDekIsU0FBUyxFQUFFLElBQUksRUFDZixrQkFBa0IsRUFBRSw0Q0FBNEMsRUFDaEUsWUFBWSxFQUFFLCtCQUErQixJQUMxQyxJQUFJLENBQUMsT0FBTyxFQUNmO0lBWW1HLENBQUM7SUFFL0YsY0FBYyxDQUFDLFFBQWdCO1FBQ3BDLE1BQU0sRUFBRSxjQUFjLEVBQUUsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLElBQUksQ0FBQyxxQkFBcUIsQ0FBQyxRQUFRLEVBQUUsT0FBTyxDQUFDLEVBQUUsT0FB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M0IsQ0FBQyxDQUFDLGtCQUFrQjtnQkFDcEIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxXQUFXLEVBQUU7Z0JBQzFCLENBQUMsQ0FBQyxVQUFVLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFN0IsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBYyxVQUFVLENBQUMsQ0FBQyxJQUFJLENBQ2hELEdBQUcsQ0FBQyxDQUFDLFdBQVcsRUFBRSxFQUFFO1lBQ2xCLE9BQU8sWUFBWTtnQkFDakIsQ0FBQyxDQUFDLFlBQVksQ0FBQyxXQUFXLENBQUM7Z0JBQzNCLENBQUMsQ0FBQyxnQkFBZ0I7b0JBQ2xCLENBQUMsQ0FBQyxXQUFXO29CQUNiLENBQUMsQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxFQUFFLFdBQVcsRUFBRSxDQUFDLENBQUM7UUFDOUMsQ0FBQyxDQUFDLEVBQ0YsSUFBSSxDQUFDLFVBQVUsQ0FBQyxVQUFVLEVBQUUsY0FBYyxDQUFDLENBQzVDLENBQUM7SUFDSixDQUFDO0lBRU8sVUFBVSxDQUNoQixJQUFZLEVBQ1osY0FBbUQ7UUFFbkQsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtZQUN0QixJQUFJLGNBQWMsRUFBRTtnQkFDbEIsY0FBYyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQzthQUN6QjtZQUVELE9BQU8sQ0FBQyxLQUFLLENBQUMsa0NBQWtDLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDeEQsT0FBTyxFQUFFLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUN0QixDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnO1xuaW1wb3J0IHsgZm9ya0pvaW4gYXMgRm9ya0pvaW4sIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElNb2R1bGVUcmFuc2xhdGlvbiB9IGZyb20gJy4vbW9kZWxzL21vZHVsZS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBJTW9kdWxlVHJhbnNsYXRpb25PcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMvbW9kdWxlLXRyYW5zbGF0aW9uLW9wdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb24gfSBmcm9tICcuL21vZGVscy90cmFuc2xhdGlvbic7XG5cbmV4cG9ydCBjb25zdCB0b0pzb25QYXRoID0gKHBhdGg6IHN0cmluZykgPT4gcGF0aC5jb25jYXQoJy5qc29uJyk7XG5cbmNvbnN0IFBBVEhfVEVNUExBVEVfTUFUQ0ggPSAveyhbXn1dKyl9L2dpO1xuXG5leHBvcnQgY2xhc3MgTW9kdWxlVHJhbnNsYXRlTG9hZGVyIGltcGxlbWVudHMgVHJhbnNsYXRlTG9hZGVyIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkZWZhdWx0T3B0aW9uczogSU1vZHVsZVRyYW5zbGF0aW9uT3B0aW9ucyA9IHtcbiAgICBkaXNhYmxlTmFtZXNwYWNlOiBmYWxzZSxcbiAgICBsb3dlcmNhc2VOYW1lc3BhY2U6IGZhbHNlLFxuICAgIGRlZXBNZXJnZTogdHJ1ZSxcbiAgICBtb2R1bGVQYXRoVGVtcGxhdGU6ICd7YmFzZVRyYW5zbGF0ZVVybH0ve21vZHVsZU5hbWV9L3tsYW5ndWFnZX0nLFxuICAgIHBhdGhUZW1wbGF0ZTogJ3tiYXNlVHJhbnNsYXRlVXJsfS97bGFuZ3VhZ2V9JyxcbiAgICAuLi50aGlzLm9wdGlvbnNcbiAgfTtcblxuICAvKipcbiAgICogVGhlIE1vZHVsZVRyYW5zbGF0ZUxvYWRlciBmb3IgJ25neC10cmFuc2xhdGUvY29yZSdcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uIEZldGNoIG11bHRpcGxlIHRyYW5zbGF0aW9uIGZpbGVzIChodHRwKS5cbiAgICpcbiAgICogQHBhcmFtIGh0dHAgdGhlIEh0dHBDbGllbnQgZnJvbSAnYW5ndWxhci9jb21tb24nXG4gICAqIEBwYXJhbSBvcHRpb25zIHRoZSBjb25maWd1cmFibGUgb3B0aW9ucyBmb3IgTW9kdWxlVHJhbnNsYXRlTG9hZGVyXG4gICAqXG4gICAqIEBzZWUgaHR0cHM6Ly9naXRodWIuY29tL2xhcnNjb20vbmd4LXRyYW5zbGF0ZS1tb2R1bGUtbG9hZGVyXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsIHByaXZhdGUgcmVhZG9ubHkgb3B0aW9uczogSU1vZHVsZVRyYW5zbGF0aW9uT3B0aW9ucykge31cblxuICBwdWJsaWMgZ2V0VHJhbnNsYXRpb24obGFuZ3VhZ2U6IHN0cmluZyk6IE9ic2VydmFibGU8VHJhbnNsYXRpb24+IHtcbiAgICBjb25zdCB7IGRlZmF1bHRPcHRpb25zOiBvcHRpb25zIH0gPSB0aGlzO1xuICAgIHJldHVybiB0aGlzLm1lcmdlVHJhbnNsYXRpb25zKHRoaXMuZ2V0TW9kdWxlVHJhbnNsYXRpb25zKGxhbmd1YWdlLCBvcHRpb25zKSwgb3B0aW9ucyk7XG4gIH1cblxuICBwcml2YXRlIG1lcmdlVHJhbnNsYXRpb25zKFxuICAgIG1vZHVsZVRyYW5zbGF0aW9uczogT2JzZXJ2YWJsZTxUcmFuc2xhdGlvbj5bXSxcbiAgICB7IGRlZXBNZXJnZSwgdHJhbnNsYXRlTWVyZ2VyIH06IElNb2R1bGVUcmFuc2xhdGlvbk9wdGlvbnNcbiAgKTogT2JzZXJ2YWJsZTxUcmFuc2xhdGlvbj4ge1xuICAgIHJldHVybiBGb3JrSm9pbihtb2R1bGVUcmFuc2xhdGlvbnMpLnBpcGUoXG4gICAgICBtYXAoKHRyYW5zbGF0aW9ucykgPT4ge1xuICAgICAgICByZXR1cm4gdHJhbnNsYXRlTWVyZ2VyXG4gICAgICAgICAgPyB0cmFuc2xhdGVNZXJnZXIodHJhbnNsYXRpb25zKVxuICAgICAgICAgIDogZGVlcE1lcmdlXG4gICAgICAgICAgPyBtZXJnZS5hbGw8VHJhbnNsYXRpb24+KHRyYW5zbGF0aW9ucylcbiAgICAgICAgICA6IHRyYW5zbGF0aW9ucy5yZWR1Y2UoKGFjYywgY3VycikgPT4gKHsgLi4uYWNjLCAuLi5jdXJyIH0pLCBPYmplY3QoKSk7XG4gICAgICB9KVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGdldE1vZHVsZVRyYW5zbGF0aW9ucyhsYW5ndWFnZTogc3RyaW5nLCBvcHRpb25zOiBJTW9kdWxlVHJhbnNsYXRpb25PcHRpb25zKTogT2JzZXJ2YWJsZTxUcmFuc2xhdGlvbj5bXSB7XG4gICAgY29uc3QgeyBtb2R1bGVzIH0gPSBvcHRpb25zO1xuXG4gICAgcmV0dXJuIG1vZHVsZXMubWFwKChtb2R1bGUpID0+IHtcbiAgICAgIGNvbnN0IHsgbW9kdWxlTmFtZSB9ID0gbW9kdWxlO1xuICAgICAgcmV0dXJuIG1vZHVsZU5hbWVcbiAgICAgICAgPyB0aGlzLmZldGNoVHJhbnNsYXRpb25Gb3JNb2R1bGUobGFuZ3VhZ2UsIG9wdGlvbnMsIG1vZHVsZSlcbiAgICAgICAgOiB0aGlzLmZldGNoVHJhbnNsYXRpb24obGFuZ3VhZ2UsIG9wdGlvbnMsIG1vZHVsZSk7XG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoVHJhbnNsYXRpb24oXG4gICAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgICB7IHBhdGhUZW1wbGF0ZSwgdHJhbnNsYXRlRXJyb3IgfTogSU1vZHVsZVRyYW5zbGF0aW9uT3B0aW9ucyxcbiAgICB7IGJhc2VUcmFuc2xhdGVVcmwsIHRyYW5zbGF0ZU1hcCB9OiBJTW9kdWxlVHJhbnNsYXRpb25cbiAgKTogT2JzZXJ2YWJsZTxUcmFuc2xhdGlvbj4ge1xuICAgIGNvbnN0IHBhdGhPcHRpb25zID0geyBiYXNlVHJhbnNsYXRlVXJsLCBsYW5ndWFnZSB9O1xuICAgIGNvbnN0IHBhdGggPSB0b0pzb25QYXRoKHBhdGhUZW1wbGF0ZS5yZXBsYWNlKFBBVEhfVEVNUExBVEVfTUFUQ0gsIChfLCBtMTogc3RyaW5nKSA9PiBwYXRoT3B0aW9uc1ttMV0gfHwgJycpKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRyYW5zbGF0aW9uPihwYXRoKS5waXBlKFxuICAgICAgbWFwKCh0cmFuc2xhdGlvbikgPT4gKHRyYW5zbGF0ZU1hcCA/IHRyYW5zbGF0ZU1hcCh0cmFuc2xhdGlvbikgOiB0cmFuc2xhdGlvbikpLFxuICAgICAgdGhpcy5jYXRjaEVycm9yKHBhdGgsIHRyYW5zbGF0ZUVycm9yKVxuICAgICk7XG4gIH1cblxuICBwcml2YXRlIGZldGNoVHJhbnNsYXRpb25Gb3JNb2R1bGUoXG4gICAgbGFuZ3VhZ2U6IHN0cmluZyxcbiAgICB7IG1vZHVsZVBhdGhUZW1wbGF0ZSwgZGlzYWJsZU5hbWVzcGFjZSwgbG93ZXJjYXNlTmFtZXNwYWNlLCB0cmFuc2xhdGVFcnJvciB9OiBJTW9kdWxlVHJhbnNsYXRpb25PcHRpb25zLFxuICAgIHsgYmFzZVRyYW5zbGF0ZVVybCwgbW9kdWxlTmFtZSwgbmFtZXNwYWNlLCB0cmFuc2xhdGVNYXAgfTogSU1vZHVsZVRyYW5zbGF0aW9uXG4gICk6IE9ic2VydmFibGU8VHJhbnNsYXRpb24+IHtcbiAgICBjb25zdCBtb2R1bGVQYXRoT3B0aW9ucyA9IHsgYmFzZVRyYW5zbGF0ZVVybCwgbW9kdWxlTmFtZSwgbGFuZ3VhZ2UgfTtcbiAgICBjb25zdCBtb2R1bGVQYXRoID0gdG9Kc29uUGF0aChcbiAgICAgIG1vZHVsZVBhdGhUZW1wbGF0ZS5yZXBsYWNlKFBBVEhfVEVNUExBVEVfTUFUQ0gsIChfLCBtMTogc3RyaW5nKSA9PiBtb2R1bGVQYXRoT3B0aW9uc1ttMV0gfHwgJycpXG4gICAgKTtcbiAgICBjb25zdCBuYW1lc3BhY2VLZXkgPSBuYW1lc3BhY2VcbiAgICAgID8gbG93ZXJjYXNlTmFtZXNwYWNlXG4gICAgICAgID8gbmFtZXNwYWNlLnRvTG93ZXJDYXNlKClcbiAgICAgICAgOiBuYW1lc3BhY2UudG9VcHBlckNhc2UoKVxuICAgICAgOiBsb3dlcmNhc2VOYW1lc3BhY2VcbiAgICAgID8gbW9kdWxlTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICA6IG1vZHVsZU5hbWUudG9VcHBlckNhc2UoKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRyYW5zbGF0aW9uPihtb2R1bGVQYXRoKS5waXBlKFxuICAgICAgbWFwKCh0cmFuc2xhdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gdHJhbnNsYXRlTWFwXG4gICAgICAgICAgPyB0cmFuc2xhdGVNYXAodHJhbnNsYXRpb24pXG4gICAgICAgICAgOiBkaXNhYmxlTmFtZXNwYWNlXG4gICAgICAgICAgPyB0cmFuc2xhdGlvblxuICAgICAgICAgIDogT2JqZWN0KHsgW25hbWVzcGFjZUtleV06IHRyYW5zbGF0aW9uIH0pO1xuICAgICAgfSksXG4gICAgICB0aGlzLmNhdGNoRXJyb3IobW9kdWxlUGF0aCwgdHJhbnNsYXRlRXJyb3IpXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgY2F0Y2hFcnJvcjxUPihcbiAgICBwYXRoOiBzdHJpbmcsXG4gICAgdHJhbnNsYXRlRXJyb3I/OiAoZXJyb3I6IGFueSwgcGF0aDogc3RyaW5nKSA9PiB2b2lkXG4gICk6IE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbjxUPiB7XG4gICAgcmV0dXJuIGNhdGNoRXJyb3IoKGUpID0+IHtcbiAgICAgIGlmICh0cmFuc2xhdGVFcnJvcikge1xuICAgICAgICB0cmFuc2xhdGVFcnJvcihlLCBwYXRoKTtcbiAgICAgIH1cblxuICAgICAgY29uc29sZS5lcnJvcignVW5hYmxlIHRvIGxvYWQgdHJhbnNsYXRpb24gZmlsZTonLCBwYXRoKTtcbiAgICAgIHJldHVybiBvZihPYmplY3QoKSk7XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ== | ||
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kdWxlLXRyYW5zbGF0ZS1sb2FkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtdHJhbnNsYXRlLW1vZHVsZS1sb2FkZXIvc3JjL2xpYi9tb2R1bGUtdHJhbnNsYXRlLWxvYWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFFQSxPQUFPLEtBQUssTUFBTSxXQUFXLENBQUM7QUFDOUIsT0FBTyxFQUFFLFFBQVEsSUFBSSxRQUFRLEVBQXdDLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0RixPQUFPLEVBQUUsVUFBVSxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBS2pELE1BQU0sQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLElBQVksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUVqRSxNQUFNLG1CQUFtQixHQUFHLGFBQWEsQ0FBQztBQUMxQyxNQUFNLGdCQUFnQixHQUFHLGVBQWUsQ0FBQztBQUN6QyxNQUFNLHFCQUFxQixHQUFHLDRDQUE0QyxDQUFDO0FBRTNFLE1BQU0sT0FBTyxxQkFBcUI7SUFRaEM7Ozs7Ozs7OztPQVNHO0lBQ0gsWUFBNkIsSUFBZ0IsRUFBbUIsT0FBa0M7UUFBckUsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFtQixZQUFPLEdBQVAsT0FBTyxDQUEyQjtRQWpCakYsbUJBQWMsbUJBQzdCLGdCQUFnQixFQUFFLEtBQUssRUFDdkIsa0JBQWtCLEVBQUUsS0FBSyxFQUN6QixTQUFTLEVBQUUsSUFBSSxJQUNaLElBQUksQ0FBQyxPQUFPLEVBQ2Y7SUFZbUcsQ0FBQztJQUUvRixjQUFjLENBQUMsUUFBZ0I7UUFDcEMsTUFBTSxFQUFFLGNBQWMsRUFBRSxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUM7UUFDekMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLHFCQUFxQixDQUFDLFFBQVEsRUFB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dCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBUcmFuc2xhdGVMb2FkZXIgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCBtZXJnZSBmcm9tICdkZWVwbWVyZ2UnO1xuaW1wb3J0IHsgZm9ya0pvaW4gYXMgRm9ya0pvaW4sIE1vbm9UeXBlT3BlcmF0b3JGdW5jdGlvbiwgT2JzZXJ2YWJsZSwgb2YgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IElNb2R1bGVUcmFuc2xhdGlvbiB9IGZyb20gJy4vbW9kZWxzL21vZHVsZS10cmFuc2xhdGlvbic7XG5pbXBvcnQgeyBJTW9kdWxlVHJhbnNsYXRpb25PcHRpb25zIH0gZnJvbSAnLi9tb2RlbHMvbW9kdWxlLXRyYW5zbGF0aW9uLW9wdGlvbnMnO1xuaW1wb3J0IHsgVHJhbnNsYXRpb24gfSBmcm9tICcuL21vZGVscy90cmFuc2xhdGlvbic7XG5cbmV4cG9ydCBjb25zdCB0b0pzb25QYXRoID0gKHBhdGg6IHN0cmluZykgPT4gcGF0aC5jb25jYXQoJy5qc29uJyk7XG5cbmNvbnN0IFBBVEhfVEVNUExBVEVfUkVHRVggPSAveyhbXn1dKyl9L2dpO1xuY29uc3QgUEFUSF9DTEVBTl9SRUdFWCA9IC8oW146XVxcLylcXC8rL2dpO1xuY29uc3QgREVGQVVMVF9QQVRIX1RFTVBMQVRFID0gJ3tiYXNlVHJhbnNsYXRlVXJsfS97bW9kdWxlTmFtZX0ve2xhbmd1YWdlfSc7XG5cbmV4cG9ydCBjbGFzcyBNb2R1bGVUcmFuc2xhdGVMb2FkZXIgaW1wbGVtZW50cyBUcmFuc2xhdGVMb2FkZXIge1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmF1bHRPcHRpb25zOiBJTW9kdWxlVHJhbnNsYXRpb25PcHRpb25zID0ge1xuICAgIGRpc2FibGVOYW1lc3BhY2U6IGZhbHNlLFxuICAgIGxvd2VyY2FzZU5hbWVzcGFjZTogZmFsc2UsXG4gICAgZGVlcE1lcmdlOiB0cnVlLFxuICAgIC4uLnRoaXMub3B0aW9uc1xuICB9O1xuXG4gIC8qKlxuICAgKiBUaGUgTW9kdWxlVHJhbnNsYXRlTG9hZGVyIGZvciAnbmd4LXRyYW5zbGF0ZS9jb3JlJ1xuICAgKlxuICAgKiBAZGVzY3JpcHRpb24gRmV0Y2ggbXVsdGlwbGUgdHJhbnNsYXRpb24gZmlsZXMgKGh0dHApLlxuICAgKlxuICAgKiBAcGFyYW0gaHR0cCB0aGUgSHR0cENsaWVudCBmcm9tICdhbmd1bGFyL2NvbW1vbidcbiAgICogQHBhcmFtIG9wdGlvbnMgdGhlIGNvbmZpZ3VyYWJsZSBvcHRpb25zIGZvciBNb2R1bGVUcmFuc2xhdGVMb2FkZXJcbiAgICpcbiAgICogQHNlZSBodHRwczovL2dpdGh1Yi5jb20vbGFyc2NvbS9uZ3gtdHJhbnNsYXRlLW1vZHVsZS1sb2FkZXJcbiAgICovXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSByZWFkb25seSBvcHRpb25zOiBJTW9kdWxlVHJhbnNsYXRpb25PcHRpb25zKSB7fVxuXG4gIHB1YmxpYyBnZXRUcmFuc2xhdGlvbihsYW5ndWFnZTogc3RyaW5nKTogT2JzZXJ2YWJsZTxUcmFuc2xhdGlvbj4ge1xuICAgIGNvbnN0IHsgZGVmYXVsdE9wdGlvbnM6IG9wdGlvbnMgfSA9IHRoaXM7XG4gICAgcmV0dXJuIHRoaXMubWVyZ2VUcmFuc2xhdGlvbnModGhpcy5nZXRNb2R1bGVUcmFuc2xhdGlvbnMobGFuZ3VhZ2UsIG9wdGlvbnMpLCBvcHRpb25zKTtcbiAgfVxuXG4gIHByaXZhdGUgbWVyZ2VUcmFuc2xhdGlvbnMoXG4gICAgbW9kdWxlVHJhbnNsYXRpb25zOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPltdLFxuICAgIHsgZGVlcE1lcmdlLCB0cmFuc2xhdGVNZXJnZXIgfTogSU1vZHVsZVRyYW5zbGF0aW9uT3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPiB7XG4gICAgcmV0dXJuIEZvcmtKb2luKG1vZHVsZVRyYW5zbGF0aW9ucykucGlwZShcbiAgICAgIG1hcCgodHJhbnNsYXRpb25zKSA9PiB7XG4gICAgICAgIHJldHVybiB0cmFuc2xhdGVNZXJnZXJcbiAgICAgICAgICA/IHRyYW5zbGF0ZU1lcmdlcih0cmFuc2xhdGlvbnMpXG4gICAgICAgICAgOiBkZWVwTWVyZ2VcbiAgICAgICAgICA/IG1lcmdlLmFsbDxUcmFuc2xhdGlvbj4odHJhbnNsYXRpb25zKVxuICAgICAgICAgIDogdHJhbnNsYXRpb25zLnJlZHVjZSgoYWNjLCBjdXJyKSA9PiAoeyAuLi5hY2MsIC4uLmN1cnIgfSksIE9iamVjdCgpKTtcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0TW9kdWxlVHJhbnNsYXRpb25zKGxhbmd1YWdlOiBzdHJpbmcsIG9wdGlvbnM6IElNb2R1bGVUcmFuc2xhdGlvbk9wdGlvbnMpOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPltdIHtcbiAgICBjb25zdCB7IG1vZHVsZXMgfSA9IG9wdGlvbnM7XG5cbiAgICByZXR1cm4gbW9kdWxlcy5tYXAoKG1vZHVsZSkgPT4ge1xuICAgICAgY29uc3QgeyBtb2R1bGVOYW1lIH0gPSBtb2R1bGU7XG4gICAgICByZXR1cm4gbW9kdWxlTmFtZVxuICAgICAgICA/IHRoaXMuZmV0Y2hUcmFuc2xhdGlvbkZvck1vZHVsZShsYW5ndWFnZSwgb3B0aW9ucywgbW9kdWxlKVxuICAgICAgICA6IHRoaXMuZmV0Y2hUcmFuc2xhdGlvbihsYW5ndWFnZSwgb3B0aW9ucywgbW9kdWxlKTtcbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZmV0Y2hUcmFuc2xhdGlvbihcbiAgICBsYW5ndWFnZTogc3RyaW5nLFxuICAgIHsgdHJhbnNsYXRlRXJyb3IgfTogSU1vZHVsZVRyYW5zbGF0aW9uT3B0aW9ucyxcbiAgICB7IHBhdGhUZW1wbGF0ZSwgYmFzZVRyYW5zbGF0ZVVybCwgdHJhbnNsYXRlTWFwIH06IElNb2R1bGVUcmFuc2xhdGlvblxuICApOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPiB7XG4gICAgY29uc3QgcGF0aE9wdGlvbnMgPSB7IGJhc2VUcmFuc2xhdGVVcmwsIGxhbmd1YWdlIH07XG4gICAgY29uc3QgdGVtcGxhdGUgPSBwYXRoVGVtcGxhdGUgfHwgREVGQVVMVF9QQVRIX1RFTVBMQVRFO1xuICAgIGNvbnN0IHBhdGggPSB0b0pzb25QYXRoKHRlbXBsYXRlLnJlcGxhY2UoUEFUSF9URU1QTEFURV9SRUdFWCwgKGEsIG0xOiBzdHJpbmcpID0+IHBhdGhPcHRpb25zW20xXSB8fCAnJykpO1xuICAgIGNvbnN0IGNsZWFuZWRQYXRoID0gcGF0aC5yZXBsYWNlKFBBVEhfQ0xFQU5fUkVHRVgsICckMScpO1xuXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8VHJhbnNsYXRpb24+KGNsZWFuZWRQYXRoKS5waXBlKFxuICAgICAgbWFwKCh0cmFuc2xhdGlvbikgPT4gKHRyYW5zbGF0ZU1hcCA/IHRyYW5zbGF0ZU1hcCh0cmFuc2xhdGlvbikgOiB0cmFuc2xhdGlvbikpLFxuICAgICAgdGhpcy5jYXRjaEVycm9yKGNsZWFuZWRQYXRoLCB0cmFuc2xhdGVFcnJvcilcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBmZXRjaFRyYW5zbGF0aW9uRm9yTW9kdWxlKFxuICAgIGxhbmd1YWdlOiBzdHJpbmcsXG4gICAgeyBkaXNhYmxlTmFtZXNwYWNlLCBsb3dlcmNhc2VOYW1lc3BhY2UsIHRyYW5zbGF0ZUVycm9yIH06IElNb2R1bGVUcmFuc2xhdGlvbk9wdGlvbnMsXG4gICAgeyBwYXRoVGVtcGxhdGUsIGJhc2VUcmFuc2xhdGVVcmwsIG1vZHVsZU5hbWUsIG5hbWVzcGFjZSwgdHJhbnNsYXRlTWFwIH06IElNb2R1bGVUcmFuc2xhdGlvblxuICApOiBPYnNlcnZhYmxlPFRyYW5zbGF0aW9uPiB7XG4gICAgY29uc3QgcGF0aE9wdGlvbnMgPSB7IGJhc2VUcmFuc2xhdGVVcmwsIG1vZHVsZU5hbWUsIGxhbmd1YWdlIH07XG4gICAgY29uc3QgdGVtcGxhdGUgPSBwYXRoVGVtcGxhdGUgfHwgREVGQVVMVF9QQVRIX1RFTVBMQVRFO1xuICAgIGNvbnN0IHBhdGggPSB0b0pzb25QYXRoKHRlbXBsYXRlLnJlcGxhY2UoUEFUSF9URU1QTEFURV9SRUdFWCwgKF8sIG0xOiBzdHJpbmcpID0+IHBhdGhPcHRpb25zW20xXSB8fCAnJykpO1xuICAgIGNvbnN0IGNsZWFuZWRQYXRoID0gcGF0aC5yZXBsYWNlKFBBVEhfQ0xFQU5fUkVHRVgsICckMScpO1xuXG4gICAgY29uc3QgbmFtZXNwYWNlS2V5ID0gbmFtZXNwYWNlXG4gICAgICA/IG5hbWVzcGFjZVxuICAgICAgOiBsb3dlcmNhc2VOYW1lc3BhY2VcbiAgICAgID8gbW9kdWxlTmFtZS50b0xvd2VyQ2FzZSgpXG4gICAgICA6IG1vZHVsZU5hbWUudG9VcHBlckNhc2UoKTtcblxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFRyYW5zbGF0aW9uPihjbGVhbmVkUGF0aCkucGlwZShcbiAgICAgIG1hcCgodHJhbnNsYXRpb24pID0+IHtcbiAgICAgICAgcmV0dXJuIHRyYW5zbGF0ZU1hcFxuICAgICAgICAgID8gdHJhbnNsYXRlTWFwKHRyYW5zbGF0aW9uKVxuICAgICAgICAgIDogZGlzYWJsZU5hbWVzcGFjZVxuICAgICAgICAgID8gdHJhbnNsYXRpb25cbiAgICAgICAgICA6IE9iamVjdCh7IFtuYW1lc3BhY2VLZXldOiB0cmFuc2xhdGlvbiB9KTtcbiAgICAgIH0pLFxuICAgICAgdGhpcy5jYXRjaEVycm9yKGNsZWFuZWRQYXRoLCB0cmFuc2xhdGVFcnJvcilcbiAgICApO1xuICB9XG5cbiAgcHJpdmF0ZSBjYXRjaEVycm9yPFQ+KFxuICAgIHBhdGg6IHN0cmluZyxcbiAgICB0cmFuc2xhdGVFcnJvcj86IChlcnJvcjogYW55LCBwYXRoOiBzdHJpbmcpID0+IHZvaWRcbiAgKTogTW9ub1R5cGVPcGVyYXRvckZ1bmN0aW9uPFQ+IHtcbiAgICByZXR1cm4gY2F0Y2hFcnJvcigoZSkgPT4ge1xuICAgICAgaWYgKHRyYW5zbGF0ZUVycm9yKSB7XG4gICAgICAgIHRyYW5zbGF0ZUVycm9yKGUsIHBhdGgpO1xuICAgICAgfVxuXG4gICAgICBjb25zb2xlLmVycm9yKCdVbmFibGUgdG8gbG9hZCB0cmFuc2xhdGlvbiBmaWxlOicsIHBhdGgpO1xuICAgICAgcmV0dXJuIG9mKE9iamVjdCgpKTtcbiAgICB9KTtcbiAgfVxufVxuIl19 |
@@ -6,3 +6,5 @@ import merge from 'deepmerge'; | ||
const toJsonPath = (path) => path.concat('.json'); | ||
const PATH_TEMPLATE_MATCH = /{([^}]+)}/gi; | ||
const PATH_TEMPLATE_REGEX = /{([^}]+)}/gi; | ||
const PATH_CLEAN_REGEX = /([^:]\/)\/+/gi; | ||
const DEFAULT_PATH_TEMPLATE = '{baseTranslateUrl}/{moduleName}/{language}'; | ||
class ModuleTranslateLoader { | ||
@@ -22,3 +24,3 @@ /** | ||
this.options = options; | ||
this.defaultOptions = Object.assign({ disableNamespace: false, lowercaseNamespace: false, deepMerge: true, modulePathTemplate: '{baseTranslateUrl}/{moduleName}/{language}', pathTemplate: '{baseTranslateUrl}/{language}' }, this.options); | ||
this.defaultOptions = Object.assign({ disableNamespace: false, lowercaseNamespace: false, deepMerge: true }, this.options); | ||
} | ||
@@ -47,18 +49,20 @@ getTranslation(language) { | ||
} | ||
fetchTranslation(language, { pathTemplate, translateError }, { baseTranslateUrl, translateMap }) { | ||
fetchTranslation(language, { translateError }, { pathTemplate, baseTranslateUrl, translateMap }) { | ||
const pathOptions = { baseTranslateUrl, language }; | ||
const path = toJsonPath(pathTemplate.replace(PATH_TEMPLATE_MATCH, (_, m1) => pathOptions[m1] || '')); | ||
return this.http.get(path).pipe(map((translation) => (translateMap ? translateMap(translation) : translation)), this.catchError(path, translateError)); | ||
const template = pathTemplate || DEFAULT_PATH_TEMPLATE; | ||
const path = toJsonPath(template.replace(PATH_TEMPLATE_REGEX, (a, m1) => pathOptions[m1] || '')); | ||
const cleanedPath = path.replace(PATH_CLEAN_REGEX, '$1'); | ||
return this.http.get(cleanedPath).pipe(map((translation) => (translateMap ? translateMap(translation) : translation)), this.catchError(cleanedPath, translateError)); | ||
} | ||
fetchTranslationForModule(language, { modulePathTemplate, disableNamespace, lowercaseNamespace, translateError }, { baseTranslateUrl, moduleName, namespace, translateMap }) { | ||
const modulePathOptions = { baseTranslateUrl, moduleName, language }; | ||
const modulePath = toJsonPath(modulePathTemplate.replace(PATH_TEMPLATE_MATCH, (_, m1) => modulePathOptions[m1] || '')); | ||
fetchTranslationForModule(language, { disableNamespace, lowercaseNamespace, translateError }, { pathTemplate, baseTranslateUrl, moduleName, namespace, translateMap }) { | ||
const pathOptions = { baseTranslateUrl, moduleName, language }; | ||
const template = pathTemplate || DEFAULT_PATH_TEMPLATE; | ||
const path = toJsonPath(template.replace(PATH_TEMPLATE_REGEX, (_, m1) => pathOptions[m1] || '')); | ||
const cleanedPath = path.replace(PATH_CLEAN_REGEX, '$1'); | ||
const namespaceKey = namespace | ||
? lowercaseNamespace | ||
? namespace.toLowerCase() | ||
: namespace.toUpperCase() | ||
? namespace | ||
: lowercaseNamespace | ||
? moduleName.toLowerCase() | ||
: moduleName.toUpperCase(); | ||
return this.http.get(modulePath).pipe(map((translation) => { | ||
return this.http.get(cleanedPath).pipe(map((translation) => { | ||
return translateMap | ||
@@ -69,3 +73,3 @@ ? translateMap(translation) | ||
: Object({ [namespaceKey]: translation }); | ||
}), this.catchError(modulePath, translateError)); | ||
}), this.catchError(cleanedPath, translateError)); | ||
} | ||
@@ -72,0 +76,0 @@ catchError(path, translateError) { |
@@ -31,14 +31,2 @@ import { IModuleTranslation } from './module-translation'; | ||
translateMerger?: (translations: Translation[]) => Translation; | ||
/** | ||
* Custom module path template for fetching translations | ||
* @example | ||
* '{baseTranslateUrl}/{moduleName}/{language}' | ||
*/ | ||
modulePathTemplate?: string; | ||
/** | ||
* Custom path template for fetching translations | ||
* @example | ||
* '{baseTranslateUrl}/{language}' | ||
*/ | ||
pathTemplate?: string; | ||
} |
@@ -23,3 +23,3 @@ import { Translation } from './translation'; | ||
* | ||
* Use this property if you want to override the default nameSpace | ||
* Use this property if you want to override the default namespace | ||
*/ | ||
@@ -32,2 +32,14 @@ namespace?: string; | ||
translateMap?: (translation: Translation) => Translation; | ||
/** | ||
* Custom path template for fetching translations | ||
* @example | ||
* '{baseTranslateUrl}/{moduleName}/{language}' | ||
* or | ||
* @example | ||
* '{baseTranslateUrl}/{language}' | ||
* | ||
* It depends whether you have a moduleName defined | ||
* @see moduleName | ||
*/ | ||
pathTemplate?: string; | ||
} |
{ | ||
"name": "@larscom/ngx-translate-module-loader", | ||
"version": "2.0.1", | ||
"version": "2.1.0", | ||
"description": "Highly configurable and flexible translations loader for ngx-translate. Fetch multiple translations, each translation file gets it's own namespace by default", | ||
@@ -5,0 +5,0 @@ "repository": { |
@@ -90,5 +90,5 @@ # @larscom/ngx-translate-module-loader | ||
// namespace: FEATURE1 | ||
{ moduleName: 'feature1', baseTranslateUrl }, | ||
{ baseTranslateUrl, moduleName: 'feature1' }, | ||
// namespace: FEATURE2 | ||
{ moduleName: 'feature2', baseTranslateUrl } | ||
{ baseTranslateUrl, moduleName: 'feature2' } | ||
] | ||
@@ -158,14 +158,2 @@ }; | ||
translateMerger?: (translations: Translation[]) => Translation; | ||
/** | ||
* Custom module path template for fetching translations | ||
* @example | ||
* '{baseTranslateUrl}/{moduleName}/{language}' | ||
*/ | ||
modulePathTemplate?: string; | ||
/** | ||
* Custom path template for fetching translations | ||
* @example | ||
* '{baseTranslateUrl}/{language}' | ||
*/ | ||
pathTemplate?: string; | ||
} | ||
@@ -196,3 +184,3 @@ ``` | ||
* | ||
* Use this property if you want to override the default nameSpace | ||
* Use this property if you want to override the default namespace | ||
*/ | ||
@@ -205,2 +193,14 @@ namespace?: string; | ||
translateMap?: (translation: Translation) => Translation; | ||
/** | ||
* Custom path template for fetching translations | ||
* @example | ||
* '{baseTranslateUrl}/{moduleName}/{language}' | ||
* or | ||
* @example | ||
* '{baseTranslateUrl}/{language}' | ||
* | ||
* It depends whether you have a moduleName defined | ||
* @see moduleName | ||
*/ | ||
pathTemplate?: string; | ||
} | ||
@@ -213,5 +213,5 @@ ``` | ||
By default, module translations gets fetched by using the following template: | ||
By default, translations gets fetched by using the following template: | ||
`'{baseTranslateUrl}/{moduleName}/{language}'` e.g.: ./assets/feature1/en.json | ||
`'{baseTranslateUrl}/{moduleName}/{language}'` e.g.: **./assets/feature1/en.json** | ||
@@ -221,7 +221,12 @@ You can override this option if you wish to do so: | ||
```ts | ||
const options: IModuleTranslationOptions = { | ||
... | ||
// translates to: ./assets/en/feature1.json | ||
modulePathTemplate: '{baseTranslateUrl}/{language}/{moduleName}' | ||
}; | ||
const options: IModuleTranslationOptions = { | ||
modules: [ | ||
// resolves to: ./assets/my-path/en.json | ||
{ baseTranslateUrl, pathTemplate: '{baseTranslateUrl}/my-path/{language}' }, | ||
// resolves to: ./assets/my-path/en/feature1.json | ||
{ baseTranslateUrl, moduleName: 'feature1', pathTemplate: '{baseTranslateUrl}/my-path/{language}/{moduleName}' }, | ||
// resolves to: ./assets/my-path/en/feature2.json | ||
{ baseTranslateUrl, moduleName: 'feature2', pathTemplate: '{baseTranslateUrl}/my-path/{language}/{moduleName}' } | ||
] | ||
}; | ||
``` |
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
Sorry, the diff of this file is not supported yet
69592
391
227