diff --git a/data/update_locales.js b/data/update_locales.js index da89a13c6..196139cd7 100644 --- a/data/update_locales.js +++ b/data/update_locales.js @@ -3,7 +3,8 @@ var request = require('request'), yaml = require('js-yaml'), fs = require('fs'), - _ = require('../js/lib/lodash.js'); + _ = require('../js/lib/lodash.js'), + delve = require('delve'); var resources = ['core', 'presets']; var outdir = './dist/locales/'; @@ -35,10 +36,29 @@ asyncMap(resources, getResource, function(err, locales) { for (var i in locale) { if (i === 'en') continue; + validateTranslations(i, locale[i]); fs.writeFileSync(outdir + i + '.json', JSON.stringify(locale[i], null, 4)); } }); +function validateTranslations(locale, translations) { + var preset = delve(translations, 'presets.presets.amenity/cafe.name'), + intro = delve(translations, 'intro.points.search'); + + if (preset && intro && intro.toLocaleLowerCase().indexOf(preset.toLocaleLowerCase()) < 0) { + console.warn(locale + ': "Cafe" is translated as "' + preset + '", which was not found in "' + intro + '"'); + console.warn('Edit on Transifex: https://www.transifex.com/projects/p/id-editor/translate/#' + locale + '/core/?key=intro.points.search'); + } + + preset = delve(translations, 'presets.presets.leisure/playground.name'); + intro = delve(translations, 'intro.areas.search'); + + if (preset && intro && intro.toLocaleLowerCase().indexOf(preset.toLocaleLowerCase()) < 0) { + console.warn(locale + ': "Playground" is translated as "' + preset + '", which was not found in "' + intro + '"'); + console.warn('Edit on Transifex: https://www.transifex.com/projects/p/id-editor/translate/#' + locale + '/core/?key=intro.areas.search'); + } +} + function getResource(resource, callback) { resource = project + 'resource/' + resource + '/'; getLanguages(resource, function(err, codes) { diff --git a/package.json b/package.json index a2dcb5bc6..cde96b121 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,8 @@ "js-yaml": "~2.0.3", "request": "~2.16.2", "jsonschema": "~0.3.2", - "node-sprite": "~0.1.2" + "node-sprite": "~0.1.2", + "delve": "0.2" }, "engines": { "node": ">=0.10.0"