diff --git a/scripts/mongodb/queries/translation-sum.js b/scripts/mongodb/queries/translation-sum.js new file mode 100644 index 000000000..d4f989ea3 --- /dev/null +++ b/scripts/mongodb/queries/translation-sum.js @@ -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);