Gulp js i18n generator
This commit is contained in:
21
Gulpfile.js
21
Gulpfile.js
@ -239,19 +239,18 @@ gulp.task('i18n', function() {
|
|||||||
var files = fs.readdirSync(messagesPath);
|
var files = fs.readdirSync(messagesPath);
|
||||||
for(fn in files) {
|
for(fn in files) {
|
||||||
var fname = files[fn];
|
var fname = files[fn];
|
||||||
langs[fname.split('.')[1]] = 1;
|
if (fname.indexOf('-') > 0) {
|
||||||
|
langs[fname] = 1;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return langs;
|
return langs;
|
||||||
}
|
}
|
||||||
|
|
||||||
// msg.zh, msg.js
|
// msg.zh, msg.js
|
||||||
function genI18nJsFile(fromFilename, otherNames, keys) {
|
function genI18nJsFile(targetFilename, lang, fromFilenames, keys) {
|
||||||
var msgs = {};
|
var msgs = {};
|
||||||
otherNames.unshift(fromFilename);
|
fromFilenames.forEach(function (name) {
|
||||||
// console.log(fromFilename);
|
var tmpMsgs = getAllMsgs(leanoteBase + '/messages/' + lang + '/' + name + '.conf');
|
||||||
// console.log(otherNames);
|
|
||||||
otherNames.forEach(function (name) {
|
|
||||||
var tmpMsgs = getAllMsgs(leanoteBase + '/messages/' + name);
|
|
||||||
for (var i in tmpMsgs) {
|
for (var i in tmpMsgs) {
|
||||||
msgs[i] = tmpMsgs[i];
|
msgs[i] = tmpMsgs[i];
|
||||||
}
|
}
|
||||||
@ -276,20 +275,20 @@ gulp.task('i18n', function() {
|
|||||||
'}';
|
'}';
|
||||||
|
|
||||||
// 写入到文件中
|
// 写入到文件中
|
||||||
var toFilename = fromFilename + '.js';
|
var toFilename = targetFilename + '.' + lang + '.js';
|
||||||
fs.writeFile(base + '/js/i18n/' + toFilename, str);
|
fs.writeFile(base + '/js/i18n/' + toFilename, str);
|
||||||
}
|
}
|
||||||
|
|
||||||
function genTinymceLang(lang) {
|
function genTinymceLang(lang) {
|
||||||
var msgs = getAllMsgs(leanoteBase + 'messages/tinymce_editor.' + lang);
|
var msgs = getAllMsgs(leanoteBase + 'messages/' + lang + '/tinymce_editor.conf');
|
||||||
var str = 'tinymce.addI18n("' + lang + '",' + JSON.stringify(msgs) + ');';
|
var str = 'tinymce.addI18n("' + lang + '",' + JSON.stringify(msgs) + ');';
|
||||||
fs.writeFile(base + '/tinymce/langs/' + lang + '.js', str);
|
fs.writeFile(base + '/tinymce/langs/' + lang + '.js', str);
|
||||||
}
|
}
|
||||||
|
|
||||||
var langs = getAllLangs();
|
var langs = getAllLangs();
|
||||||
for (var lang in langs) {
|
for (var lang in langs) {
|
||||||
genI18nJsFile('blog.' + lang, [], keys);
|
genI18nJsFile('blog', lang, ['blog'], keys);
|
||||||
genI18nJsFile('msg.' + lang, ['member.' + lang, 'markdown.' + lang, 'album.' + lang], keys);
|
genI18nJsFile('msg', lang, ['msg', 'member', 'markdown', 'album'], keys);
|
||||||
|
|
||||||
genTinymceLang(lang);
|
genTinymceLang(lang);
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user