Add script for calculating how many translations we have

This commit is contained in:
Scott Erickson 2016-09-16 16:02:26 -07:00
parent 91cb621f96
commit 1b314b7d14

View file

@ -0,0 +1,136 @@
sum = 0;
add = function(s) {
if (typeof s !== 'string')
return;
sum += s.split(' ').length;
};
load('bower_components/lodash/dist/lodash.js');
sum = 0;
db.levels.find({slug: {$exists: true}, i18nCoverage: {$exists:true }}).forEach(function (level) {
print(level.name, sum);
add(level.name);
add(level.description);
add(level.loadingTip);
add(level.studentPlayInstructions);
_.forEach(level.goals, function(goal) {
add(goal.name)
});
if (level.documentation) {
_.forEach(level.documentation.specificArticles, function(article) {
add(article.name)
add(article.body)
})
_.forEach(level.documentation.hints, function(hint) {
add(hint.body)
});
_.forEach(level.documentation.hintsB, function(hint) {
add(hint.body)
});
}
_.forEach(level.scripts, function(script) {
_.forEach(script.noteChain, function(noteGroup) {
if (!noteGroup) return;
_.forEach(noteGroup.sprites, function(spriteCommand) {
if(spriteCommand.say) {
add(spriteCommand.say.text)
add(spriteCommand.say.blurb)
if(spriteCommand.say.responses) {
_.forEach(spriteCommand.say.responses, function(response) {
add(response.text)
})
}
}
})
})
})
if(level.victory) {
add(level.victory.body)
}
_.forEach(level.thangs, function(thang) {
_.forEach(thang.components, function(component) {
if (component.config && component.config.programmableMethods) {
_.forEach(component.config.programmableMethods, function(method) {
_.forEach(method.context, function(value) {
add(value);
})
})
}
})
})
});
print('Level sum', sum);
sum = 0;
db.achievements.find().forEach(function (achievement) {
add(achievement.name)
add(achievement.description);
});
print('Achievement sum', sum);
sum = 0;
db.campaigns.find().forEach(function (campaign) {
add(campaign.name);
add(campaign.fullName);
add(campaign.description);
})
print('Campaign sum', sum);
sum = 0;
db.level.components.find({slug: {$exists: true}, i18nCoverage: {$exists:true }}).forEach(function (levelComponent) {
_.forEach(levelComponent.propertyDocumentation, function(propDoc) {
add(propDoc.name)
if(typeof propDoc.description === 'string')
add(propDoc.description)
else
_.forEach(propDoc.description, function(description) {
add(description);
})
_.forEach(propDoc.context, function(value) {
add(value)
})
if(propDoc.returns) {
if(typeof propDoc.returns.description === 'string')
add(propDoc.returns.description)
else
_.forEach(propDoc.returns.description, function(value) {
add(value);
})
}
_.forEach(propDoc.args, function(argDoc) {
if(typeof argDoc.description === 'string')
add(argDoc.description)
else
_.forEach(argDoc.description, function(value) {
add(value);
})
})
})
});
print('Component sum', sum)
sum = 0;
db.courses.find().forEach(function (course) {
add(course.name)
add(course.description)
})
print('Course sum', sum);
sum = 0;
db.polls.find().forEach(function (poll) {
add(poll.name)
add(poll.description)
_.forEach(poll.answers, function(answer) {
add(answer.text)
})
})
print('Poll sum', sum)
sum = 0;
db.thang.types.find({slug: {$exists: true}, i18nCoverage: {$exists:true }}).forEach(function (thangType) {
add(thangType.name)
add(thangType.description)
add(thangType.extendedName)
add(thangType.unlockLevelName)
})
print('Thang Type sum', sum);