diff --git a/curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/exercise-tracker.en.md b/curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/exercise-tracker.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/exercise-tracker.en.md rename to curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/exercise-tracker.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/file-metadata-microservice.en.md b/curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/file-metadata-microservice.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/file-metadata-microservice.en.md rename to curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/file-metadata-microservice.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/request-header-parser-microservice.en.md b/curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/request-header-parser-microservice.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/request-header-parser-microservice.en.md rename to curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/request-header-parser-microservice.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/timestamp-microservice.en.md b/curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/timestamp-microservice.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/timestamp-microservice.en.md rename to curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/timestamp-microservice.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/url-shortener-microservice.en.md b/curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/url-shortener-microservice.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/url-shortener-microservice.en.md rename to curriculum/challenges/english/05-apis-and-microservices/apis-and-microservices-projects/url-shortener-microservice.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/chain-middleware-to-create-a-time-server.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/chain-middleware-to-create-a-time-server.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/chain-middleware-to-create-a-time-server.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/chain-middleware-to-create-a-time-server.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-data-from-post-requests.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-data-from-post-requests.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-data-from-post-requests.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-data-from-post-requests.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-query-parameter-input-from-the-client.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-query-parameter-input-from-the-client.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-query-parameter-input-from-the-client.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-query-parameter-input-from-the-client.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-route-parameter-input-from-the-client.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-route-parameter-input-from-the-client.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-route-parameter-input-from-the-client.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/get-route-parameter-input-from-the-client.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/implement-a-root-level-request-logger-middleware.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/implement-a-root-level-request-logger-middleware.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/implement-a-root-level-request-logger-middleware.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/implement-a-root-level-request-logger-middleware.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/meet-the-node-console.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/meet-the-node-console.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/meet-the-node-console.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/meet-the-node-console.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-an-html-file.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-an-html-file.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-an-html-file.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-an-html-file.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-json-on-a-specific-route.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-json-on-a-specific-route.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-json-on-a-specific-route.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-json-on-a-specific-route.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-static-assets.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-static-assets.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-static-assets.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/serve-static-assets.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/start-a-working-express-server.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/start-a-working-express-server.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/start-a-working-express-server.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/start-a-working-express-server.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/use-body-parser-to-parse-post-requests.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/use-body-parser-to-parse-post-requests.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/use-body-parser-to-parse-post-requests.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/use-body-parser-to-parse-post-requests.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/use-the-.env-file.en.md b/curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/use-the-.env-file.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/use-the-.env-file.en.md rename to curriculum/challenges/english/05-apis-and-microservices/basic-node-and-express/use-the-.env-file.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-description-to-your-package.json.en.md b/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-description-to-your-package.json.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-description-to-your-package.json.en.md rename to curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-description-to-your-package.json.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-license-to-your-package.json.en.md b/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-license-to-your-package.json.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-license-to-your-package.json.en.md rename to curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-license-to-your-package.json.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-version-to-your-package.json.en.md b/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-version-to-your-package.json.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-version-to-your-package.json.en.md rename to curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-a-version-to-your-package.json.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-keywords-to-your-package.json.en.md b/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-keywords-to-your-package.json.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-keywords-to-your-package.json.en.md rename to curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/add-keywords-to-your-package.json.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.en.md b/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.en.md rename to curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/expand-your-project-with-external-packages-from-npm.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.en.md b/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.en.md rename to curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/how-to-use-package.json-the-core-of-any-node.js-project-or-npm-package.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/manage-npm-dependencies-by-understanding-semantic-versioning.en.md b/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/manage-npm-dependencies-by-understanding-semantic-versioning.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/manage-npm-dependencies-by-understanding-semantic-versioning.en.md rename to curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/manage-npm-dependencies-by-understanding-semantic-versioning.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/remove-a-package-from-your-dependencies.en.md b/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/remove-a-package-from-your-dependencies.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/remove-a-package-from-your-dependencies.en.md rename to curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/remove-a-package-from-your-dependencies.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency.en.md b/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency.en.md rename to curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/use-the-caret-character-to-use-the-latest-minor-version-of-a-dependency.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/use-the-tilde-character-to-always-use-the-latest-patch-version-of-a-dependency.en.md b/curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/use-the-tilde-character-to-always-use-the-latest-patch-version-of-a-dependency.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/use-the-tilde-character-to-always-use-the-latest-patch-version-of-a-dependency.en.md rename to curriculum/challenges/english/05-apis-and-microservices/managing-packages-with-npm/use-the-tilde-character-to-always-use-the-latest-patch-version-of-a-dependency.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/chain-search-query-helpers-to-narrow-search-results.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/chain-search-query-helpers-to-narrow-search-results.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/chain-search-query-helpers-to-narrow-search-results.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/chain-search-query-helpers-to-narrow-search-results.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-a-model.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-a-model.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-a-model.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-a-model.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-and-save-a-record-of-a-model.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-and-save-a-record-of-a-model.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-and-save-a-record-of-a-model.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-and-save-a-record-of-a-model.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-many-records-with-model.create.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-many-records-with-model.create.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-many-records-with-model.create.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/create-many-records-with-model.create.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/delete-many-documents-with-model.remove.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/delete-many-documents-with-model.remove.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/delete-many-documents-with-model.remove.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/delete-many-documents-with-model.remove.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/delete-one-document-using-model.findbyidandremove.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/delete-one-document-using-model.findbyidandremove.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/delete-one-document-using-model.findbyidandremove.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/delete-one-document-using-model.findbyidandremove.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/install-and-set-up-mongoose.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/install-and-set-up-mongoose.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/install-and-set-up-mongoose.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/install-and-set-up-mongoose.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/perform-classic-updates-by-running-find-edit-then-save.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/perform-classic-updates-by-running-find-edit-then-save.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/perform-classic-updates-by-running-find-edit-then-save.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/perform-classic-updates-by-running-find-edit-then-save.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model.findoneandupdate.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model.findoneandupdate.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model.findoneandupdate.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/perform-new-updates-on-a-document-using-model.findoneandupdate.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.find-to-search-your-database.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.find-to-search-your-database.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.find-to-search-your-database.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.find-to-search-your-database.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.findbyid-to-search-your-database-by-id.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.findbyid-to-search-your-database-by-id.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.findbyid-to-search-your-database-by-id.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.findbyid-to-search-your-database-by-id.english.md diff --git a/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.findone-to-return-a-single-matching-document-from-your-database.en.md b/curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.findone-to-return-a-single-matching-document-from-your-database.english.md similarity index 100% rename from curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.findone-to-return-a-single-matching-document-from-your-database.en.md rename to curriculum/challenges/english/05-apis-and-microservices/mongodb-and-mongoose/use-model.findone-to-return-a-single-matching-document-from-your-database.english.md diff --git a/tools/translation/translate-challenges.js b/tools/translation/translate-challenges.js new file mode 100644 index 0000000000..04f2513af1 --- /dev/null +++ b/tools/translation/translate-challenges.js @@ -0,0 +1,169 @@ +var fs = require('fs'); + +var lang = 'es'; +var langFull = 'spanish'; + +var dir1 = fs.readdirSync('../../curriculum/challenges/english')[5]; +var dir2 = fs.readdirSync('../../curriculum/challenges/english/' + dir1)[3]; +var dir = dir1 + '/' + dir2; +fs.readdirSync('../../curriculum/challenges/english/' + dir).forEach(file => { + if (file.includes('.md') && dir) { + let originalFileName = + '../../curriculum/challenges/' + langFull + '/' + dir + '/' + file.slice(0, -10) + langFull + '.md'; + + fs.exists(originalFileName, function(exists) { + if (!exists) { + console.log(originalFileName); + getFile(file, dir); + } + }); + } +}); + +// TEST +// var dir1 = fs.readdirSync('../../curriculum/challenges/english')[4]; +// var dir2 = fs.readdirSync('../../curriculum/challenges/english/' + dir1)[0]; +// var dir = dir1 + '/' + dir2; +// getFile('exercise-tracker.english.md', dir); + +// Load in full text, description, instructions, and title +function getFile(file, dir) { + let originalFileName = '../../curriculum/challenges/english/' + dir + '/' + file; + let fileString = fs.readFileSync(originalFileName).toString(); + + // Add 'notranslate' class to code so Google Translate API will not translate code segments. + fileString = fileString.replace(//g, ''); + fileString = fileString.replace( + /
/g, + '
' + ); + fileString = fileString.replace(/^.*videoUrl.*$/gm, "videoUrl: ''"); + fileString = fileString.replace( + /https:\/\/www\.freecodecamp\.org/, + 'https://' + langFull + '.freecodecamp.org' + ); + let description = fileString.match( + /
(.|\n)*?<\/section>/ + )[0]; + description = description.replace(/\r?\n/g, '0'); + let instructions = fileString.match( + /
(.|\n)*?<\/section>/ + )[0]; + instructions = instructions.replace(/\r?\n/g, '0'); + let tests = fileString.match(/
(.|\n)*?<\/section>/)[0]; + let title = fileString.split('\n')[2].split(': ')[1]; + processFile(fileString, description, instructions, tests, title, file, dir); +} + +// Get translatins from Google Translate API and insert into file +function processFile( + fileString, + description, + instructions, + tests, + title, + file, + dir +) { + const translateText = (text, target) => { + return new Promise((resolve, reject) => { + if (typeof text == 'object' && Object.keys(text).length === 0) { + resolve(['']); + } else { + // Imports the Google Cloud client library + const { Translate } = require('@google-cloud/translate'); + + // Creates a client + const translate = new Translate(); + + translate + .translate(text, target) + .then(results => { + let translations = results[0]; + translations = Array.isArray(translations) + ? translations + : [translations]; + resolve(translations); + }) + .catch(err => { + reject(console.log('!!!!!', err)); + if (err) { + } + }); + } + }); + }; + + // FOR TESTING ONLY + // const translateText = (text, target) => { + // return new Promise((resolve, reject) => { + // resolve(['translated', 'translated', 'translated', 'translated']); + // }); + // }; + + const translateTests = () => { + return new Promise((resolve, reject) => { + let testsArray = tests.split('\n'); + let testsToTranslate = []; + + testsArray.forEach((test, index) => { + if (test.includes('- text: ')) { + testsToTranslate.push(test.slice(10)); + } + }); + translateText(testsToTranslate, lang).then(translation => { + let transIndex = 0; + testsArray.forEach((test, index) => { + if (test.includes('- text')) { + testsArray[index] = ' - text: ' + translation[transIndex]; + transIndex++; + } + }); + resolve(testsArray.join('\n')); + }); + }); + }; + + Promise.all([ + translateText(description, lang), + translateText(instructions, lang), + translateText(title, lang), + translateTests(tests, lang) + ]).then(function(translations) { + // Replace English with translation + fileString = fileString.replace( + /
(.|\n)*?<\/section>/, + translations[0][0].replace(/0<\/code> /g, '\n') + ); + fileString = fileString.replace( + /
(.|\n)*?<\/section>/, + translations[1][0].replace(/0<\/code> /g, '\n') + ); + fileString = fileString.replace( + title, + title + '\nlocaleTitle: ' + translations[2] + ); + fileString = fileString.replace( + /
(.|\n)*?<\/section>/, + translations[3] + ); + fileString = fileString.replace(/ class=\"notranslate\"/g, ''); // remove 'notranslate' class + writeFile(fileString, file, dir); + }); +} + +function writeFile(fileString, file, dir) { + let fullFileName = + '../../curriculum/challenges/' + + langFull + + '/' + + dir + + '/' + + file.slice(0, -10) + + langFull + + '.md'; + fs.writeFile(fullFileName, fileString, function(err) { + if (err) throw err; + console.log('Saved!'); + }); +} \ No newline at end of file