@hyper.software/visitor-common-translations 1.1.535

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md ADDED
@@ -0,0 +1,15 @@
1
+ #### Common translations
2
+
3
+ #### Common tasks
4
+
5
+ ```
6
+ # Publish
7
+ yarn translations-fix
8
+ yarn deploy // used in dev when you add a new translation
9
+ yarn publish-package // will publish to npm
10
+
11
+ # Development
12
+ yarn lint
13
+ yarn test
14
+ yarn build
15
+ ```
@@ -0,0 +1,9 @@
1
+ export declare class TranslationsProvider {
2
+ static getTranslation: (language: string, key: string, values?: any) => string;
3
+ static getCurrentInstance: () => TranslationsProvider;
4
+ static initialize: (translations?: any) => void;
5
+ private static getMessageFormat;
6
+ private static currentInstance;
7
+ private translations;
8
+ constructor(translations?: any);
9
+ }
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var intl_messageformat_1 = require("intl-messageformat");
4
+ var intl_format_cache_1 = require("intl-format-cache");
5
+ var constants_1 = require("./constants");
6
+ var TranslationsProvider = /** @class */ (function () {
7
+ function TranslationsProvider(translations) {
8
+ if (translations === void 0) { translations = {}; }
9
+ this.translations = null;
10
+ this.translations = translations;
11
+ }
12
+ TranslationsProvider.getTranslation = function (language, key, values) {
13
+ if (language === void 0) { language = constants_1.LANGUAGE.DE_DE; }
14
+ if (values === void 0) { values = {}; }
15
+ if (!TranslationsProvider.getCurrentInstance()) {
16
+ return null;
17
+ }
18
+ var translations = TranslationsProvider.getCurrentInstance().translations;
19
+ if (!language || !translations[language.toLowerCase()]) {
20
+ language = constants_1.LANGUAGE.DE_DE;
21
+ }
22
+ var message = translations[language.toLowerCase()][key];
23
+ if (!message) {
24
+ return key;
25
+ }
26
+ try {
27
+ var formatter = TranslationsProvider.getMessageFormat(message, language);
28
+ var formattedMessage = formatter.format(values);
29
+ return formattedMessage;
30
+ }
31
+ catch (_er) {
32
+ // @TODO: should trigger logger
33
+ return message;
34
+ }
35
+ };
36
+ TranslationsProvider.getCurrentInstance = function () {
37
+ return TranslationsProvider.currentInstance;
38
+ };
39
+ TranslationsProvider.initialize = function (translations) {
40
+ if (translations === void 0) { translations = {}; }
41
+ TranslationsProvider.getMessageFormat = intl_format_cache_1.default(intl_messageformat_1.default);
42
+ TranslationsProvider.currentInstance = new TranslationsProvider(translations);
43
+ };
44
+ TranslationsProvider.getMessageFormat = null;
45
+ return TranslationsProvider;
46
+ }());
47
+ exports.TranslationsProvider = TranslationsProvider;
48
+ //# sourceMappingURL=TranslationsProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TranslationsProvider.js","sourceRoot":"","sources":["../src/TranslationsProvider.ts"],"names":[],"mappings":";;AAAA,yDAAmD;AACnD,uDAAuD;AACvD,yCAAuC;AAEvC;IAyCE,8BAAY,YAAsB;QAAtB,6BAAA,EAAA,iBAAsB;QAF1B,iBAAY,GAAQ,IAAI,CAAC;QAG/B,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;IACnC,CAAC;IA1Ca,mCAAc,GAAG,UAAC,QAA4C,EAAE,GAAW,EAAE,MAAgB;QAA3E,yBAAA,EAAA,WAA8B,oBAAQ,CAAC,KAAK;QAAe,uBAAA,EAAA,WAAgB;QACzG,IAAI,CAAC,oBAAoB,CAAC,kBAAkB,EAAE,EAAE;YAC9C,OAAO,IAAI,CAAC;SACb;QAED,IAAM,YAAY,GAAG,oBAAoB,CAAC,kBAAkB,EAAE,CAAC,YAAY,CAAC;QAE5E,IAAI,CAAC,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,EAAE;YACtD,QAAQ,GAAG,oBAAQ,CAAC,KAAK,CAAC;SAC3B;QAED,IAAM,OAAO,GAAW,YAAY,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC;QAElE,IAAI,CAAC,OAAO,EAAE;YACZ,OAAO,GAAG,CAAC;SACZ;QAED,IAAI;YACF,IAAM,SAAS,GAAG,oBAAoB,CAAC,gBAAgB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;YAC3E,IAAM,gBAAgB,GAAG,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;YAClD,OAAO,gBAAgB,CAAC;SACzB;QAAC,OAAO,GAAG,EAAE;YACZ,+BAA+B;YAC/B,OAAO,OAAO,CAAC;SAChB;IACH,CAAC,CAAC;IAEY,uCAAkB,GAAG;QACjC,OAAO,oBAAoB,CAAC,eAAe,CAAC;IAC9C,CAAC,CAAC;IAEY,+BAAU,GAAG,UAAC,YAAsB;QAAtB,6BAAA,EAAA,iBAAsB;QAChD,oBAAoB,CAAC,gBAAgB,GAAG,2BAAsB,CAAC,4BAAiB,CAAC,CAAC;QAClF,oBAAoB,CAAC,eAAe,GAAG,IAAI,oBAAoB,CAAC,YAAY,CAAC,CAAC;IAChF,CAAC,CAAC;IAEa,qCAAgB,GAAG,IAAI,CAAC;IAOzC,2BAAC;CAAA,AA5CD,IA4CC;AA5CY,oDAAoB"}
@@ -0,0 +1,7 @@
1
+ export declare const allTranslations: {
2
+ [x: string]: {
3
+ 'App.common.test1': string;
4
+ 'App.common.with1Parameter': string;
5
+ 'App.common.with2Parameters': string;
6
+ };
7
+ };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var _a;
4
+ var constants_1 = require("../constants");
5
+ exports.allTranslations = (_a = {},
6
+ _a[constants_1.LANGUAGE.DE_DE.toLocaleLowerCase()] = {
7
+ 'App.common.test1': 'test1_de',
8
+ 'App.common.with1Parameter': '{items} items in the basket de_de',
9
+ 'App.common.with2Parameters': '{items1} items in the basket {items2} in the cascket de_de',
10
+ },
11
+ _a[constants_1.LANGUAGE.EN_US.toLocaleLowerCase()] = {
12
+ 'App.common.test1': 'test1_en',
13
+ 'App.common.with1Parameter': '{items} items in the basket en_US',
14
+ 'App.common.with2Parameters': '{items1} items in the basket {items2} in the cascket en_US',
15
+ },
16
+ _a);
17
+ //# sourceMappingURL=translations.mock.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"translations.mock.js","sourceRoot":"","sources":["../../src/__mocks_/translations.mock.ts"],"names":[],"mappings":";;;AAAA,0CAAwC;AAE3B,QAAA,eAAe;IAC1B,GAAC,oBAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAG;QACpC,kBAAkB,EAAE,UAAU;QAC9B,2BAA2B,EAAE,mCAAmC;QAChE,4BAA4B,EAAE,4DAA4D;KAC3F;IACD,GAAC,oBAAQ,CAAC,KAAK,CAAC,iBAAiB,EAAE,IAAG;QACpC,kBAAkB,EAAE,UAAU;QAC9B,2BAA2B,EAAE,mCAAmC;QAChE,4BAA4B,EAAE,4DAA4D;KAC3F;QACD"}
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var translations_mock_1 = require("../__mocks_/translations.mock");
4
+ var constants_1 = require("../constants");
5
+ var TranslationsProvider_1 = require("../TranslationsProvider");
6
+ describe('WHEN testing TranslationsProvider', function () {
7
+ beforeEach(function () {
8
+ TranslationsProvider_1.TranslationsProvider.initialize(translations_mock_1.allTranslations);
9
+ });
10
+ var testSandbox = function (expectedValue, language, key, values) {
11
+ describe("WHEN testing language " + language + " key " + key + " withValues " + JSON.stringify(values), function () {
12
+ it("SHOULD return " + expectedValue, function () {
13
+ var message = TranslationsProvider_1.TranslationsProvider.getTranslation(language, key, values);
14
+ expect(message).toEqual(expectedValue);
15
+ });
16
+ });
17
+ };
18
+ testSandbox('test1_de', constants_1.LANGUAGE.DE_DE, 'App.common.test1');
19
+ testSandbox('test1_en', constants_1.LANGUAGE.EN_US, 'App.common.test1');
20
+ testSandbox('{items} items in the basket de_de', constants_1.LANGUAGE.DE_DE, 'App.common.with1Parameter');
21
+ testSandbox('{items} items in the basket en_US', constants_1.LANGUAGE.EN_US, 'App.common.with1Parameter');
22
+ testSandbox('10000 items in the basket de_de', constants_1.LANGUAGE.DE_DE, 'App.common.with1Parameter', { items: 10000 });
23
+ testSandbox('10000 items in the basket en_US', constants_1.LANGUAGE.EN_US, 'App.common.with1Parameter', { items: 10000 });
24
+ testSandbox('{items1} items in the basket {items2} in the cascket de_de', constants_1.LANGUAGE.DE_DE, 'App.common.with2Parameters', {
25
+ items1: 10000,
26
+ });
27
+ testSandbox('{items1} items in the basket {items2} in the cascket en_US', constants_1.LANGUAGE.EN_US, 'App.common.with2Parameters', {
28
+ items1: 10000,
29
+ });
30
+ testSandbox('10000 items in the basket 100 in the cascket de_de', constants_1.LANGUAGE.DE_DE, 'App.common.with2Parameters', {
31
+ items1: 10000,
32
+ items2: 100,
33
+ });
34
+ testSandbox('10000 items in the basket 100 in the cascket en_US', constants_1.LANGUAGE.EN_US, 'App.common.with2Parameters', {
35
+ items1: 10000,
36
+ items2: 100,
37
+ });
38
+ });
39
+ //# sourceMappingURL=TranslationsProvider.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TranslationsProvider.test.js","sourceRoot":"","sources":["../../src/__tests__/TranslationsProvider.test.ts"],"names":[],"mappings":";;AAAA,mEAAgE;AAChE,0CAAwC;AACxC,gEAA+D;AAE/D,QAAQ,CAAC,mCAAmC,EAAE;IAC5C,UAAU,CAAC;QACT,2CAAoB,CAAC,UAAU,CAAC,mCAAe,CAAC,CAAC;IACnD,CAAC,CAAC,CAAC;IAEH,IAAM,WAAW,GAAG,UAAC,aAAqB,EAAE,QAAkB,EAAE,GAAW,EAAE,MAAO;QAClF,QAAQ,CAAC,2BAAyB,QAAQ,aAAQ,GAAG,oBAAe,IAAI,CAAC,SAAS,CAAC,MAAM,CAAG,EAAE;YAC5F,EAAE,CAAC,mBAAiB,aAAe,EAAE;gBACnC,IAAM,OAAO,GAAG,2CAAoB,CAAC,cAAc,CAAC,QAAQ,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;gBAC3E,MAAM,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;YACzC,CAAC,CAAC,CAAC;QACL,CAAC,CAAC,CAAC;IACL,CAAC,CAAC;IAEF,WAAW,CAAC,UAAU,EAAE,oBAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAC5D,WAAW,CAAC,UAAU,EAAE,oBAAQ,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;IAE5D,WAAW,CAAC,mCAAmC,EAAE,oBAAQ,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;IAC9F,WAAW,CAAC,mCAAmC,EAAE,oBAAQ,CAAC,KAAK,EAAE,2BAA2B,CAAC,CAAC;IAE9F,WAAW,CAAC,iCAAiC,EAAE,oBAAQ,CAAC,KAAK,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAC9G,WAAW,CAAC,iCAAiC,EAAE,oBAAQ,CAAC,KAAK,EAAE,2BAA2B,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;IAE9G,WAAW,CAAC,4DAA4D,EAAE,oBAAQ,CAAC,KAAK,EAAE,4BAA4B,EAAE;QACtH,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IACH,WAAW,CAAC,4DAA4D,EAAE,oBAAQ,CAAC,KAAK,EAAE,4BAA4B,EAAE;QACtH,MAAM,EAAE,KAAK;KACd,CAAC,CAAC;IAEH,WAAW,CAAC,oDAAoD,EAAE,oBAAQ,CAAC,KAAK,EAAE,4BAA4B,EAAE;QAC9G,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,GAAG;KACZ,CAAC,CAAC;IACH,WAAW,CAAC,oDAAoD,EAAE,oBAAQ,CAAC,KAAK,EAAE,4BAA4B,EAAE;QAC9G,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,GAAG;KACZ,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,9 @@
1
+ export declare enum LANGUAGE {
2
+ DE_DE = "de-DE",
3
+ EN_US = "en-US",
4
+ IT_IT = "it-IT",
5
+ FR_FR = "fr-FR",
6
+ ES_ES = "es-ES",
7
+ PT_PT = "pt-PT"
8
+ }
9
+ export declare const ALL_LANGUAGE: LANGUAGE[];
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ var getAllStatuses = function (value) {
4
+ return Object.keys(value)
5
+ .filter(function (key) { return key !== '__DEFAULT'; })
6
+ .map(function (key) { return value[key]; });
7
+ };
8
+ var LANGUAGE;
9
+ (function (LANGUAGE) {
10
+ LANGUAGE["DE_DE"] = "de-DE";
11
+ LANGUAGE["EN_US"] = "en-US";
12
+ LANGUAGE["IT_IT"] = "it-IT";
13
+ LANGUAGE["FR_FR"] = "fr-FR";
14
+ LANGUAGE["ES_ES"] = "es-ES";
15
+ LANGUAGE["PT_PT"] = "pt-PT";
16
+ })(LANGUAGE = exports.LANGUAGE || (exports.LANGUAGE = {}));
17
+ exports.ALL_LANGUAGE = getAllStatuses(LANGUAGE);
18
+ //# sourceMappingURL=constants.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constants.js","sourceRoot":"","sources":["../src/constants.ts"],"names":[],"mappings":";;AAAA,IAAM,cAAc,GAAG,UAAU,KAAK;IACpC,OAAA,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC;SACf,MAAM,CAAC,UAAC,GAAG,IAAK,OAAA,GAAG,KAAK,WAAW,EAAnB,CAAmB,CAAC;SACpC,GAAG,CAAC,UAAC,GAAG,IAAK,OAAA,KAAK,CAAC,GAAG,CAAC,EAAV,CAAU,CAAC;AAF3B,CAE2B,CAAC;AAC9B,IAAY,QAOX;AAPD,WAAY,QAAQ;IAClB,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;IACf,2BAAe,CAAA;AACjB,CAAC,EAPW,QAAQ,GAAR,gBAAQ,KAAR,gBAAQ,QAOnB;AACY,QAAA,YAAY,GAAG,cAAc,CAAW,QAAQ,CAAC,CAAC"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Do not reference this module in any index.js, because it has server-side modules references
3
+ */
4
+ export interface IGetAllTranslationsParams {
5
+ encoding?: string;
6
+ filePattern?: string;
7
+ }
8
+ export declare function getAllTranslations(options?: IGetAllTranslationsParams): any;
@@ -0,0 +1,26 @@
1
+ "use strict";
2
+ /**
3
+ * Do not reference this module in any index.js, because it has server-side modules references
4
+ */
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ var path = require("path");
7
+ var fs_1 = require("fs");
8
+ var glob_1 = require("glob");
9
+ function getAllTranslations(options) {
10
+ if (options === void 0) { options = {}; }
11
+ var _a = options || {}, _b = _a.filePattern, filePattern = _b === void 0 ? './src/translations/locale/locale.*.json' : _b, _c = _a.encoding, encoding = _c === void 0 ? 'utf8' : _c;
12
+ var translations = glob_1.sync(filePattern)
13
+ .map(function (filename) { return [path.basename(filename, '.json').replace('locale.', ''), fs_1.readFileSync(filename, encoding)]; })
14
+ .map(function (_a) {
15
+ var locale = _a[0], file = _a[1];
16
+ return [locale, JSON.parse(file)];
17
+ })
18
+ .reduce(function (collection, _a) {
19
+ var locale = _a[0], messages = _a[1];
20
+ collection[(locale || '').toLowerCase()] = messages;
21
+ return collection;
22
+ }, {});
23
+ return translations;
24
+ }
25
+ exports.getAllTranslations = getAllTranslations;
26
+ //# sourceMappingURL=getAllTranslations.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getAllTranslations.js","sourceRoot":"","sources":["../src/getAllTranslations.ts"],"names":[],"mappings":";AAAA;;GAEG;;AAEH,2BAA6B;AAC7B,yBAAkC;AAClC,6BAAwC;AAMxC,SAAgB,kBAAkB,CAAC,OAAuC;IAAvC,wBAAA,EAAA,YAAuC;IAClE,IAAA,kBAA8F,EAA5F,mBAAuD,EAAvD,4EAAuD,EAAE,gBAAiB,EAAjB,sCAAmC,CAAC;IAErG,IAAM,YAAY,GAAG,WAAQ,CAAC,WAAW,CAAC;SACvC,GAAG,CAAC,UAAC,QAAQ,IAAK,OAAA,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC,OAAO,CAAC,SAAS,EAAE,EAAE,CAAC,EAAE,iBAAY,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC,EAA3F,CAA2F,CAAC;SAC9G,GAAG,CAAC,UAAC,EAAc;YAAb,cAAM,EAAE,YAAI;QAAM,OAAA,CAAC,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAA1B,CAA0B,CAAC;SACnD,MAAM,CAAC,UAAC,UAAU,EAAE,EAAkB;YAAjB,cAAM,EAAE,gBAAQ;QACpC,UAAU,CAAC,CAAC,MAAM,IAAI,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,GAAG,QAAQ,CAAC;QACpD,OAAO,UAAU,CAAC;IACpB,CAAC,EAAE,EAAE,CAAC,CAAC;IAET,OAAO,YAAY,CAAC;AACtB,CAAC;AAZD,gDAYC"}
package/lib/index.d.ts ADDED
@@ -0,0 +1,3 @@
1
+ export * from './getAllTranslations';
2
+ export * from './constants';
3
+ export * from './TranslationsProvider';
package/lib/index.js ADDED
@@ -0,0 +1,9 @@
1
+ "use strict";
2
+ function __export(m) {
3
+ for (var p in m) if (!exports.hasOwnProperty(p)) exports[p] = m[p];
4
+ }
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ __export(require("./getAllTranslations"));
7
+ __export(require("./constants"));
8
+ __export(require("./TranslationsProvider"));
9
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,0CAAqC;AACrC,iCAA4B;AAC5B,4CAAuC"}