mirror of
https://github.com/ivabus/gui
synced 2025-04-24 06:27:09 +03:00

* #241 init crowdin usage * #241 convert all convertible copy into i18n value --------- Co-authored-by: neil <neil@neils-MacBook-Pro.local>
36 lines
873 B
JavaScript
36 lines
873 B
JavaScript
const fs = require("fs");
|
|
const _ = require("lodash");
|
|
const translations = require("../src/libs/translations/translations.json");
|
|
|
|
const englishRaw = translations["en"];
|
|
|
|
delete englishRaw.lang;
|
|
|
|
function flattenObject(o, prefix = "", result = {}, keepNull = true) {
|
|
if (_.isString(o) || _.isNumber(o) || _.isBoolean(o) || (keepNull && _.isNull(o))) {
|
|
result[prefix] = o;
|
|
return result;
|
|
}
|
|
|
|
if (_.isArray(o) || _.isPlainObject(o)) {
|
|
for (let i in o) {
|
|
let pref = prefix;
|
|
if (_.isArray(o)) {
|
|
pref = pref + `[${i}]`;
|
|
} else {
|
|
if (_.isEmpty(prefix)) {
|
|
pref = i;
|
|
} else {
|
|
pref = prefix + "." + i;
|
|
}
|
|
}
|
|
flattenObject(o[i], pref, result, keepNull);
|
|
}
|
|
return result;
|
|
}
|
|
return result;
|
|
}
|
|
|
|
const flattenedEnglish = flattenObject(englishRaw);
|
|
|
|
fs.writeFileSync("./copy.json", JSON.stringify(flattenedEnglish, null, 2), "utf-8");
|