Format code

This commit is contained in:
Filip Troníček 2020-12-07 15:01:54 +00:00
parent b1b5d7f0ff
commit e9a4ffa3c8

View File

@ -1,143 +1,143 @@
// Copy and paste this code into OBS.Ninja's developer's console to generate new Translation files // Copy and paste this code into OBS.Ninja's developer's console to generate new Translation files
function downloadTranslation(filename, trans={}){ // downloads the current translation to a file function downloadTranslation(filename, trans = {}) { // downloads the current translation to a file
const textDoc = JSON.stringify(trans, null, 2); const textDoc = JSON.stringify(trans, null, 2);
const hiddenElement = document.createElement('a'); const hiddenElement = document.createElement('a');
hiddenElement.href = `data:text/html,${encodeURIComponent(textDoc)}`; hiddenElement.href = `data:text/html,${encodeURIComponent(textDoc)}`;
hiddenElement.target = '_blank'; hiddenElement.target = '_blank';
hiddenElement.download = `${filename}.json`; hiddenElement.download = `${filename}.json`;
hiddenElement.click(); hiddenElement.click();
return trans; return trans;
} }
function updateTranslation(filename){ // updates the website with a specific translation function updateTranslation(filename) { // updates the website with a specific translation
const request = new XMLHttpRequest(); const request = new XMLHttpRequest();
request.open('GET', `./translations/${filename}.json?${(Math.random() * 100).toString()}`, false); // `false` makes the request synchronous request.open('GET', `./translations/${filename}.json?${(Math.random() * 100).toString()}`, false); // `false` makes the request synchronous
request.send(null); request.send(null);
if (request.status !== 200) { if (request.status !== 200) {
return false, {}; return false, {};
} }
try{ try {
var data = JSON.parse(request.responseText); var data = JSON.parse(request.responseText);
} catch(e){ } catch (e) {
console.log(request.responseText); console.log(request.responseText);
console.error(e); console.error(e);
return false, {}; return false, {};
} }
const oldTransItems = data.innerHTML; const oldTransItems = data.innerHTML;
const allItems1 = document.querySelectorAll('[data-translate]'); const allItems1 = document.querySelectorAll('[data-translate]');
allItems1.forEach(function(ele){ allItems1.forEach(function (ele) {
if (ele.dataset.translate in oldTransItems){ if (ele.dataset.translate in oldTransItems) {
ele.innerHTML = oldTransItems[ele.dataset.translate]; ele.innerHTML = oldTransItems[ele.dataset.translate];
} }
}); });
const oldTransTitles = data.titles; const oldTransTitles = data.titles;
const allTitles1 = document.querySelectorAll('[title]'); const allTitles1 = document.querySelectorAll('[title]');
allTitles1.forEach(function(ele){ allTitles1.forEach(function (ele) {
const key = ele.title.replace(/[\W]+/g,"-").toLowerCase(); const key = ele.title.replace(/[\W]+/g, "-").toLowerCase();
if (key in oldTransTitles){ if (key in oldTransTitles) {
ele.title = oldTransTitles[key]; ele.title = oldTransTitles[key];
} }
}); });
const oldTransPlaceholders = data.placeholders; const oldTransPlaceholders = data.placeholders;
const allPlaceholders1 = document.querySelectorAll('[placeholder]'); const allPlaceholders1 = document.querySelectorAll('[placeholder]');
allPlaceholders1.forEach(function(ele){ allPlaceholders1.forEach(function (ele) {
const key = ele.placeholder.replace(/[\W]+/g,"-").toLowerCase(); const key = ele.placeholder.replace(/[\W]+/g, "-").toLowerCase();
if (key in oldTransPlaceholders){ if (key in oldTransPlaceholders) {
ele.placeholder = oldTransPlaceholders[key]; ele.placeholder = oldTransPlaceholders[key];
} }
}); });
return [true, data]; return [true, data];
} }
const updateList = ["cs","de", "en", "es", "fr", "it", "ja", "nl", "pig", "pt", "ru", "tr", "blank" ]; // list of languages to update. Update this if you add a new language. const updateList = ["cs", "de", "en", "es", "fr", "it", "ja", "nl", "pig", "pt", "ru", "tr", "blank"]; // list of languages to update. Update this if you add a new language.
const allItems = document.querySelectorAll('[data-translate]'); const allItems = document.querySelectorAll('[data-translate]');
const defaultTrans = {}; const defaultTrans = {};
allItems.forEach(function(ele){ allItems.forEach(function (ele) {
const key = ele.dataset.translate.replace(/[\W]+/g,"-").toLowerCase(); const key = ele.dataset.translate.replace(/[\W]+/g, "-").toLowerCase();
defaultTrans[key] = ele.innerHTML; defaultTrans[key] = ele.innerHTML;
}); });
const defaultTransTitles = {}; const defaultTransTitles = {};
const allTitles = document.querySelectorAll('[title]'); const allTitles = document.querySelectorAll('[title]');
allTitles.forEach(function(ele){ allTitles.forEach(function (ele) {
defaultTransTitles[ele.title] = ele.title; defaultTransTitles[ele.title] = ele.title;
}); });
const defaultTransPlaceholders = {}; const defaultTransPlaceholders = {};
const allPlaceholders = document.querySelectorAll('[placeholder]'); const allPlaceholders = document.querySelectorAll('[placeholder]');
allPlaceholders.forEach(function(ele){ allPlaceholders.forEach(function (ele) {
defaultTransPlaceholders[ele.placeholder] = ele.placeholder; defaultTransPlaceholders[ele.placeholder] = ele.placeholder;
}); });
const combinedTrans = {} const combinedTrans = {}
combinedTrans.titles = defaultTransTitles; combinedTrans.titles = defaultTransTitles;
combinedTrans.innerHTML = defaultTrans; combinedTrans.innerHTML = defaultTrans;
combinedTrans.placeholders = defaultTransPlaceholders; combinedTrans.placeholders = defaultTransPlaceholders;
var counter=0; var counter = 0;
for (const i in updateList){ for (const i in updateList) {
const lang = updateList[i]; const lang = updateList[i];
setTimeout(function(ln){ setTimeout(function (ln) {
var suceess = updateTranslation(ln); // we don't need to worry about DATA. var suceess = updateTranslation(ln); // we don't need to worry about DATA.
if (suceess[0]==true){ if (suceess[0] == true) {
const newTrans = suceess[1].innerHTML; const newTrans = suceess[1].innerHTML;
const allItems = document.querySelectorAll('[data-translate]'); const allItems = document.querySelectorAll('[data-translate]');
allItems.forEach(function(ele){ allItems.forEach(function (ele) {
const key = ele.dataset.translate; const key = ele.dataset.translate;
newTrans[key] = ele.innerHTML; newTrans[key] = ele.innerHTML;
}); });
const newTransTitles = suceess[1].titles; const newTransTitles = suceess[1].titles;
const allTitles = document.querySelectorAll('[title]'); const allTitles = document.querySelectorAll('[title]');
allTitles.forEach(function(ele){ allTitles.forEach(function (ele) {
const key = ele.title.replace(/[\W]+/g,"-").toLowerCase(); const key = ele.title.replace(/[\W]+/g, "-").toLowerCase();
newTransTitles[key] = ele.title; newTransTitles[key] = ele.title;
}); });
const newPlaceholders = suceess[1].placeholders; const newPlaceholders = suceess[1].placeholders;
const allPlaceholders = document.querySelectorAll('[placeholder]'); const allPlaceholders = document.querySelectorAll('[placeholder]');
allPlaceholders.forEach(function(ele){ allPlaceholders.forEach(function (ele) {
const key = ele.placeholder.replace(/[\W]+/g,"-").toLowerCase(); const key = ele.placeholder.replace(/[\W]+/g, "-").toLowerCase();
newPlaceholders[key] = ele.placeholder; newPlaceholders[key] = ele.placeholder;
}); });
////// DOWNLOAD UPDATED TRANSLATION ////// DOWNLOAD UPDATED TRANSLATION
const outputTrans = {} const outputTrans = {}
outputTrans.titles = newTransTitles; outputTrans.titles = newTransTitles;
outputTrans.innerHTML = newTrans; outputTrans.innerHTML = newTrans;
outputTrans.placeholders = newPlaceholders; outputTrans.placeholders = newPlaceholders;
downloadTranslation(ln, outputTrans); downloadTranslation(ln, outputTrans);
} }
////////// RESET THING BACK ////////// RESET THING BACK
allItems.forEach(function(ele){ allItems.forEach(function (ele) {
if (ele.dataset.translate in defaultTrans){ if (ele.dataset.translate in defaultTrans) {
ele.innerHTML = defaultTrans[ele.dataset.translate]; ele.innerHTML = defaultTrans[ele.dataset.translate];
} }
}); });
allTitles.forEach(function(ele){ allTitles.forEach(function (ele) {
const key = ele.title.replace(/[\W]+/g,"-").toLowerCase(); const key = ele.title.replace(/[\W]+/g, "-").toLowerCase();
if (key in defaultTransTitles){ if (key in defaultTransTitles) {
ele.title = defaultTransTitles[key]; ele.title = defaultTransTitles[key];
} }
}); });
allPlaceholders.forEach(function(ele){ allPlaceholders.forEach(function (ele) {
const key = ele.placeholder.replace(/[\W]+/g,"-").toLowerCase(); const key = ele.placeholder.replace(/[\W]+/g, "-").toLowerCase();
if (key in defaultTransPlaceholders){ if (key in defaultTransPlaceholders) {
ele.placeholder = defaultTransPlaceholders[key]; ele.placeholder = defaultTransPlaceholders[key];
} }
}); });
},counter,lang); }, counter, lang);
counter+=300; counter += 300;
} }