Skip to content

Commit 2e103e4

Browse files
committed
enable translations step #2
1 parent fcdc9e6 commit 2e103e4

18 files changed

+76
-143
lines changed
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
const fs = require('fs');
2+
const path = require('path');
3+
const PropertiesReader = require('properties-reader');
4+
const messageBundle = path.normalize(process.argv[2]);
5+
const outputFile = path.normalize(`${process.argv[3]}/i18n-defaults.js`);
6+
7+
if (!messageBundle || !outputFile) {
8+
return;
9+
}
10+
11+
const properties = PropertiesReader(messageBundle)._properties;
12+
13+
/*
14+
* Returns the single text funtion to enable single export.
15+
*
16+
* Example:
17+
* const ARIA_LABEL_CARD_CONTENT = {
18+
* key: "ARIA_LABEL_CARD_CONTENT",
19+
* defaultText: "Card Content",
20+
* };
21+
*/
22+
const getTextMethods = (properties) => {
23+
return Object.keys(properties).map(prop => `const ${prop} = {key: "${prop}", defaultText: "${properties[prop]}"};`).join('');
24+
}
25+
26+
/*
27+
* Returns the content of i18n-defaults.js,
28+
* combining the single text methods and the export statement at the end of the file.
29+
*
30+
* Example:
31+
* export {
32+
* ARIA_LABEL_CARD_CONTENT,
33+
* }
34+
*/
35+
const getOutputFileContent = (properties) => {
36+
return `${getTextMethods(properties)} export {${Object.keys(properties).join()}}; //eslint-disable-line`;
37+
}
38+
39+
// Writes the i18n-defaults.js
40+
fs.writeFile(outputFile, getOutputFileContent(properties), function (err) {
41+
if (err) {
42+
return console.log(err);
43+
}
44+
45+
console.log(`The ${outputFile} file has been created`);
46+
});

packages/main/package.json

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,9 +45,10 @@
4545
}
4646
},
4747
"scripts": {
48-
"build": "npm-run-all --sequential clean lint build:templates build:samples build:styles copy:src build:bundle copy:i18n copy:webcomponents-polyfill ",
48+
"build": "npm-run-all --sequential clean lint build:templates build:i18n-exports build:samples build:styles copy:src build:bundle copy:i18n copy:webcomponents-polyfill ",
4949
"build:bundle": "rollup -c --environment ES5_BUILD",
5050
"build:templates": "mkdirp dist/generated/templates && node ./lib/hbs2ui5/index.js -d src/ -o dist/generated/templates",
51+
"build:i18n-exports": "mkdirp dist/generated/i18n && node ./lib/i18n-transform/index.js src/i18n/messagebundle.properties dist/generated/i18n",
5152
"build:samples": "npm run copy:test --scripts-prepend-node-path && npm run build:api --scripts-prepend-node-path && npm run build:docs --scripts-prepend-node-path && node lib/playground/index.js",
5253
"build:pages": "npm run copy:pages",
5354
"build:qunit": "npm run copy:qunit",
@@ -129,6 +130,7 @@
129130
"postcss-cli": "^6.1.1",
130131
"postcss-combine-duplicated-selectors": "^7.0.0",
131132
"postcss-import": "^12.0.1",
133+
"properties-reader": "^0.3.1",
132134
"puppeteer": "^1.11.0",
133135
"rimraf": "^2.6.2",
134136
"rollup": "^1.1.2",

packages/main/src/Badge.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import Icon from "./Icon.js";
66
// Template
77
import BadgeTemplate from "./generated/templates/BadgeTemplate.lit.js";
88

9-
import { BADGE_DESCRIPTION } from "./i18n/defaults.js";
9+
import { BADGE_DESCRIPTION } from "./generated/i18n/i18n-defaults.js";
1010

1111
// Styles
1212
import badgeCss from "./generated/themes/Badge.css.js";

packages/main/src/BusyIndicator.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import BusyIndicatorSize from "./types/BusyIndicatorSize.js";
55
// Template
66
import BusyIndicatorTemplate from "./generated/templates/BusyIndicatorTemplate.lit.js";
77

8-
import { BUSY_INDICATOR_TITLE } from "./i18n/defaults.js";
8+
import { BUSY_INDICATOR_TITLE } from "./generated/i18n/i18n-defaults.js";
99

1010
// Styles
1111
import busyIndicatorCss from "./generated/themes/BusyIndicator.css.js";

packages/main/src/Button.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import ButtonDesign from "./types/ButtonDesign.js";
88
import ButtonTemplate from "./generated/templates/ButtonTemplate.lit.js";
99
import Icon from "./Icon.js";
1010

11-
import { BUTTON_ARIA_TYPE_ACCEPT, BUTTON_ARIA_TYPE_REJECT, BUTTON_ARIA_TYPE_EMPHASIZED } from "./i18n/defaults.js";
11+
import { BUTTON_ARIA_TYPE_ACCEPT, BUTTON_ARIA_TYPE_REJECT, BUTTON_ARIA_TYPE_EMPHASIZED } from "./generated/i18n/i18n-defaults.js";
1212

1313
// Styles
1414
import buttonCss from "./generated/themes/Button.css.js";

packages/main/src/Card.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import { getRTL } from "@ui5/webcomponents-base/dist/config/RTL.js";
66
import CardTemplate from "./generated/templates/CardTemplate.lit.js";
77
import Icon from "./Icon.js";
88

9-
import { ARIA_ROLEDESCRIPTION_CARD, AVATAR_TOOLTIP, ARIA_LABEL_CARD_CONTENT } from "./i18n/defaults.js";
9+
import { ARIA_ROLEDESCRIPTION_CARD, AVATAR_TOOLTIP, ARIA_LABEL_CARD_CONTENT } from "./generated/i18n/i18n-defaults.js";
1010

1111
// Styles
1212
import cardCss from "./generated/themes/Card.css.js";

packages/main/src/CheckBox.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import { isSpace, isEnter } from "@ui5/webcomponents-base/dist/events/PseudoEven
88
import "@ui5/webcomponents-base/dist/icons/accept.js";
99
import Icon from "./Icon.js";
1010
import Label from "./Label.js";
11-
import { VALUE_STATE_ERROR, VALUE_STATE_WARNING } from "./i18n/defaults.js";
11+
import { VALUE_STATE_ERROR, VALUE_STATE_WARNING } from "./generated/i18n/i18n-defaults.js";
1212

1313
// Template
1414
import CheckBoxTemplate from "./generated/templates/CheckBoxTemplate.lit.js";

packages/main/src/Input.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ import {
1919
VALUE_STATE_ERROR,
2020
VALUE_STATE_WARNING,
2121
INPUT_SUGGESTIONS,
22-
} from "./i18n/defaults.js";
22+
} from "./generated/i18n/i18n-defaults.js";
2323

2424
// Styles
2525
import styles from "./generated/themes/Input.css.js";

packages/main/src/Link.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ import LinkDesign from "./types/LinkDesign.js";
66
// Template
77
import LinkRederer from "./generated/templates/LinkTemplate.lit.js";
88

9-
import { LINK_SUBTLE, LINK_EMPHASIZED } from "./i18n/defaults.js";
9+
import { LINK_SUBTLE, LINK_EMPHASIZED } from "./generated/i18n/i18n-defaults.js";
1010

1111
// Styles
1212
import linkCss from "./generated/themes/Link.css.js";

packages/main/src/MessageStrip.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ import MessageStripType from "./types/MessageStripType.js";
1212
import MessageStripTemplate from "./generated/templates/MessageStripTemplate.lit.js";
1313
import Icon from "./Icon.js";
1414

15-
import { MESSAGE_STRIP_CLOSE_BUTTON } from "./i18n/defaults.js";
15+
import { MESSAGE_STRIP_CLOSE_BUTTON } from "./generated/i18n/i18n-defaults.js";
1616

1717
// Styles
1818
import messageStripCss from "./generated/themes/MessageStrip.css.js";

0 commit comments

Comments
 (0)