Skip to content

Commit 4af3e2f

Browse files
committed
Adding localization and title to request
1 parent f17c2de commit 4af3e2f

6 files changed

Lines changed: 52 additions & 4 deletions

File tree

docs/hds-lib.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

docs/hds-lib.js.map

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

src/index-webpack.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,16 @@
11
import HDSModel from './HDSModel/HDSModel';
22
import appTemplates from './appTemplates/appTemplates';
33
import pryv from './patchedPryv';
4+
import { localizeText, setPreferredLocale } from './localizeText';
5+
const l = localizeText;
46
/**
57
* Export for webpack build
68
*/
79
export {
810
HDSModel,
911
appTemplates,
10-
pryv
12+
pryv,
13+
localizeText,
14+
setPreferredLocale,
15+
l
1116
};

src/index.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,10 @@
1+
const { localizeText, setPreferredLocale } = require('./localizeText');
2+
13
module.exports = {
24
HDSModel: require('./HDSModel/HDSModel'),
35
appTemplates: require('./appTemplates/appTemplates'),
4-
pryv: require('./patchedPryv')
6+
pryv: require('./patchedPryv'),
7+
localizeText,
8+
setPreferredLocale,
9+
l: localizeText
510
};

src/localizeText.js

Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
/**
2+
* basic localization functions
3+
*/
4+
5+
const { HDSLibError } = require('./errors');
6+
7+
module.exports = {
8+
localizeText,
9+
setPreferredLocale
10+
};
11+
12+
let preferredLocales = ['en', 'fr', 'es'];
13+
14+
/**
15+
* return the translation of this item considering the setting of preffered language
16+
* @param {Object} textItem
17+
* @param {string} textItem.en
18+
* @param {string} [textItem.fr] - French translation
19+
* @param {string} [textItem.es] - Spanish translation
20+
*/
21+
function localizeText (textItem) {
22+
if (textItem == null) return null;
23+
if (!textItem.en) throw new HDSLibError('textItems must have an english translation', { textItem });
24+
for (const l of preferredLocales) {
25+
if (textItem[l]) return textItem[l];
26+
}
27+
return textItem.en;
28+
}
29+
30+
/**
31+
* Change prefferedLocal order
32+
*/
33+
function setPreferredLocale (arrayOfLocals) {
34+
preferredLocales = [...new Set([...arrayOfLocals, ...preferredLocales])];
35+
}

tests/apptemplates.test.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,9 @@ describe('[APTX] appTemplates', function () {
138138
requester: {
139139
name: 'Test requester name'
140140
},
141+
title: {
142+
en: 'Title of the request'
143+
},
141144
description: {
142145
en: 'Short Description'
143146
},

0 commit comments

Comments
 (0)