chore: sort dictionary
This commit is contained in:
parent
53a8ec680a
commit
26fc5a0693
2 changed files with 1352 additions and 1285 deletions
File diff suppressed because it is too large
Load diff
60
testfiles/dict/format_dict.js
Normal file
60
testfiles/dict/format_dict.js
Normal file
|
|
@ -0,0 +1,60 @@
|
|||
const fs = require("fs");
|
||||
const DICT_PATH = "dictionary.json";
|
||||
|
||||
const dict = JSON.parse(fs.readFileSync(DICT_PATH));
|
||||
|
||||
const TA_TOKENS = { s: 1, m: 2, h: 3, D: 4, W: 5, M: 6, Y: 7 };
|
||||
|
||||
// Sort a dictionary by value
|
||||
function sortDict(dict) {
|
||||
// Create items array
|
||||
const items = Object.keys(dict).map(function (key) {
|
||||
return [key, dict[key]];
|
||||
});
|
||||
// Sort the array based on the second element
|
||||
items.sort(function (first, second) {
|
||||
let d1;
|
||||
if (typeof first[1] === "string") {
|
||||
// Check for timeago token
|
||||
const tokenPat = /^(\d*)([smhDWMY])$/;
|
||||
const m1 = first[1].match(tokenPat);
|
||||
const m2 = second[1].match(tokenPat);
|
||||
if (m1 !== null && m2 !== null) {
|
||||
const tok1 = TA_TOKENS[m1[2]];
|
||||
const tok2 = TA_TOKENS[m2[2]];
|
||||
if (tok1 === tok2) {
|
||||
const n1 = parseInt(m1[1]) || 0;
|
||||
const n2 = parseInt(m2[1]) || 0;
|
||||
d1 = n1 - n2;
|
||||
} else {
|
||||
d1 = tok1 - tok2;
|
||||
}
|
||||
} else {
|
||||
d1 = first[1].localeCompare(second[1]);
|
||||
}
|
||||
} else {
|
||||
d1 = first[1] - second[1];
|
||||
}
|
||||
if (d1 === 0) {
|
||||
return first[0].localeCompare(second[0]);
|
||||
}
|
||||
return d1;
|
||||
});
|
||||
|
||||
const newDict = {};
|
||||
items.forEach((item) => {
|
||||
newDict[item[0]] = item[1];
|
||||
});
|
||||
return newDict;
|
||||
}
|
||||
|
||||
for (const [mainLang, entry] of Object.entries(dict)) {
|
||||
for (key of Object.keys(entry)) {
|
||||
const val = entry[key];
|
||||
if (typeof val === "object" && !Array.isArray(val)) {
|
||||
dict[mainLang][key] = sortDict(val);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
fs.writeFileSync(DICT_PATH, JSON.stringify(dict, null, 2));
|
||||
Reference in a new issue