Skip to content

Commit

Permalink
feat(tools): Script to delete all translations of a language on Crowd…
Browse files Browse the repository at this point in the history
…in (#41380)
  • Loading branch information
RandellDawson committed Mar 7, 2021
1 parent 55dfa28 commit 48981bf
Show file tree
Hide file tree
Showing 3 changed files with 48 additions and 1 deletion.
Original file line number Diff line number Diff line change
@@ -0,0 +1,30 @@
/*
This one-off script can be used to delete all existing translations for a specified language on Crowdin.
Specifying a projectId and lanaguageId in the .env file allows the script to accomplish this task.
*/

require('dotenv').config({ path: `${__dirname}/../.env` });

const {
getLanguageTranslations,
deleteLanguageTranslations
} = require('../utils/strings');

const projectId = process.env.CROWDIN_PROJECT_ID;
const languageId = process.env.CROWDIN_LANGUAGE_ID;

(async (projectId, languageId) => {
console.log('starting script...');
const translations = await getLanguageTranslations({
projectId,
languageId
});
if (translations && translations.length) {
for (let translation of translations) {
const { stringId } = translation.data;
await deleteLanguageTranslations(projectId, languageId, stringId);
}
}
console.log('complete');
})(projectId, languageId);
4 changes: 4 additions & 0 deletions tools/crowdin/sample.env
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
CROWDIN_PROJECT_ID=
CROWDIN_PERSONAL_TOKEN=
CROWDIN_API_URL='https://freecodecamp.crowdin.com/api/v2/'
CROWDIN_LANGUAGE_ID=
15 changes: 14 additions & 1 deletion tools/crowdin/utils/strings.js
Original file line number Diff line number Diff line change
Expand Up @@ -212,6 +212,18 @@ const getLanguageTranslations = async ({ projectId, languageId }) => {
return null;
};

const deleteLanguageTranslations = async (projectId, languageId, stringId) => {
let headers = { ...authHeader };
const endPoint = `projects/${projectId}/translations?languageId=${languageId}&stringId=${stringId}`;
console.log(`deleting ${stringId}...`);
await makeRequest({
method: 'delete',
endPoint,
headers
});
return null;
};

module.exports = {
getStrings,
updateString,
Expand All @@ -220,5 +232,6 @@ module.exports = {
getStringTranslations,
addTranslation,
deleteTranslation,
getLanguageTranslations
getLanguageTranslations,
deleteLanguageTranslations
};

0 comments on commit 48981bf

Please sign in to comment.