Gulp js i18n generator

This commit is contained in:
lealife
2016-03-19 15:46:41 +08:00
parent 15b0ef21ff
commit 09de5e1e83

View File

@ -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);
} }