subtracks/scripts/arb-rename-key.js
austinried f0f812e66a v2
2023-04-28 12:26:02 +09:00

38 lines
879 B
JavaScript

const path = require('path')
const fs = require('fs')
const process = require('process')
const from = process.argv[2]
const to = process.argv[3]
const arbDir = path.join(__dirname, '../lib/l10n')
const arbFiles = fs.readdirSync(arbDir)
for (const file of arbFiles) {
const json = JSON.parse(fs.readFileSync(path.join(arbDir, file), { encoding: 'utf8' }))
json[to] = json[from]
json[`@${to}`] = json[`@${from}`]
delete json[from]
delete json[`@${from}`]
fs.writeFileSync(path.join(arbDir, file), JSON.stringify(sortObj(json), null, 4))
}
function sortObj(obj) {
return Object.keys(obj)
.sort((a, b) => moveSymbol(a).localeCompare(moveSymbol(b)))
.reduce(function (result, key) {
result[key] = obj[key]
return result
}, {})
}
function moveSymbol(str) {
if (str.startsWith('@')) {
return `${str.substring(1)}@`
}
return str
}