Skip to content
This repository was archived by the owner on Nov 21, 2018. It is now read-only.

Commit dda52d4

Browse files
committed
build process #264: deep merge for i18n template.json, switches to source/project.js (vs json)
1 parent 6193fe0 commit dda52d4

File tree

4 files changed

+78
-18
lines changed

4 files changed

+78
-18
lines changed

content/en/template.json

Lines changed: 19 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,21 @@
11
{
2-
"browser-title":"io.js - JavaScript I/O",
3-
"contribute-message":"See something you like? Want to help? Visit https://github.com/iojs/website to contribute",
4-
"heading-languages":"Languages",
5-
"logo-text":"io.js",
6-
"faq-link":"FAQ",
7-
"es6-link":"ES6",
8-
"api-link":"API Docs",
9-
"issues-link":"GitHub Issues",
10-
"org-link":"GitHub Org",
11-
"irc-link":"IRC Chat",
12-
"irc-logs-link":"Logs",
13-
"gov-link":"Governance"
2+
"browser-title": "io.js - JavaScript I/O",
3+
"contribute-message": "See something you like? Want to help? Visit https://github.com/iojs/website to contribute",
4+
"heading-languages": "Languages",
5+
"logo-text": "io.js",
6+
"faq-link": "FAQ",
7+
"es6-link": "ES6",
8+
"api-link": "API Docs",
9+
"issues-link": "GitHub Issues",
10+
"org-link": "GitHub Org",
11+
"irc-link": "IRC Chat",
12+
"irc-logs-link": "Logs",
13+
"gov-link": "Governance",
14+
"downloads": {
15+
"linux": "Linux",
16+
"win32": "Win32",
17+
"win64": "Win64",
18+
"mac": "Mac",
19+
"all": "Others"
20+
}
1421
}

gulp/tasks/templates.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ function generateContentAndTemplates() {
5555
*/
5656
base = path.resolve(__dirname, '..', '..'); /* 1 */
5757
contentBase = path.resolve(base, 'content'); /* 2 */
58-
projectJSON = require('../../source/project.json'); /* 3 */
58+
projectJSON = require('../../source/project.js'); /* 3 */
5959
i18nJSON = {}; /* 4 */
6060
hbsTemplates = {}; /* 5 */
6161

gulp/util/template-utils.js

Lines changed: 12 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,19 @@ var CONTENT_DIRECTORY = 'content';
66
// load template.json for given language, but use default language as fallback
77
// for properties which are not present in the given language
88
module.exports.loadTemplateJSON = function(lang) {
9-
var defaultJSON = require('../../' + CONTENT_DIRECTORY + '/' + DEFAULT_LANG + '/template.json');
9+
var defaultJSON = require('../../' + CONTENT_DIRECTORY + '/' + DEFAULT_LANG + '/template.json');
1010
var templateJSON = require('../../' + CONTENT_DIRECTORY + '/' + lang + '/template.json');
1111
var finalJSON = _.cloneDeep(defaultJSON);
12-
_.forEach(templateJSON, function(value, key) {
13-
finalJSON[key] = value;
14-
});
12+
var merge = function(targetJSON, customJSON) {
13+
_.forEach(customJSON, function(value, key) {
14+
if (typeof value === "object") {
15+
merge(targetJSON[key], value)
16+
} else {
17+
targetJSON[key] = value;
18+
}
19+
});
20+
}
21+
merge(finalJSON, templateJSON)
1522
return finalJSON;
1623
};
1724

@@ -39,4 +46,4 @@ module.exports.loadMdFiles = function(contentFiles, lang) {
3946
return obj;
4047
});
4148
return templateFilesInThisLang;
42-
};
49+
};

source/project.js

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
// temporary merge to help avoid some merge confusion when landed:
2+
var project = require('./project.json');
3+
4+
/*
5+
6+
// This will replace `./project.json`
7+
8+
project = {
9+
"current_version": "1.4.3",
10+
"current_v8": "4.1.0.21"
11+
}
12+
13+
project.languages = [
14+
{"code": "cn", "name": "简体中文", "name-en": "Chinese (Simple)"},
15+
{"code": "de", "name": "Deutsch", "name-en": "German"},
16+
{"code": "el", "name": "Ελληνικά", "name-en": "Greek"},
17+
{"code": "en", "name": "English", "name-en": "English"},
18+
{"code": "es", "name": "Español", "name-en": "Spanish"},
19+
{"code": "fi", "name": "Suomi", "name-en": "Finnish"},
20+
{"code": "fr", "name": "Français", "name-en": "French"},
21+
{"code": "he", "name": "עברית", "name-en": "Hebrew", "rtl": true},
22+
{"code": "id", "name": "Bahasa Indonesia", "name-en": "Indonesian"},
23+
{"code": "it", "name": "Italiano", "name-en": "Italian"},
24+
{"code": "ja", "name": "日本語", "name-en": "Japanese"},
25+
{"code": "ko", "name": "한국어", "name-en": "Korean"},
26+
{"code": "no", "name": "Norsk", "name-en": "Norwegian"},
27+
{"code": "pt_BR", "name": "Português (BR)", "name-en": "Portuguese (Brazil)"},
28+
{"code": "pt_PT", "name": "Português (PT)", "name-en": "Portuguese (Portugal)"},
29+
{"code": "ru", "name": "Русский", "name-en": "Russian"},
30+
{"code": "tr", "name": "Türkçe", "name-en": "Turkish"},
31+
{"code": "uk", "name": "Українська", "name-en": "Ukrainian"},
32+
{"code": "zh_TW", "name": "正體中文(台灣)", "name-en": "Chinese Traditional (Taiwan)"}
33+
]
34+
*/
35+
36+
var baseURL = `https://iojs.org/dist`;
37+
project.current_version_downloads = [
38+
{key: 'linux', url: `${baseURL}/${project.current_version}/iojs-${project.current_version}-linux-x64.tar.xz`},
39+
{key: 'win32', url: `${baseURL}/${project.current_version}/iojs-${project.current_version}-x86.msi`},
40+
{key: 'win64', url: `${baseURL}/${project.current_version}/iojs-${project.current_version}-x64.msi`},
41+
{key: 'mac', url: `${baseURL}/${project.current_version}/iojs-${project.current_version}.pkg`},
42+
{key: 'all', url: `${baseURL}/${project.current_version}/`}
43+
];
44+
Object.defineProperty(project.current_version_downloads, 'all', {value: `${baseURL}/${project.current_version}/`;
45+
46+
module.exports = project;

0 commit comments

Comments
 (0)