[web] extend 'make sort_locales' to sort extracted-translations.json (#32193)

GitOrigin-RevId: 19ad8ea5a8b7fb3eadfccb11affe6794bee84050
This commit is contained in:
Jakob Ackermann
2026-03-16 14:26:26 +01:00
committed by Copybot
parent f078929b25
commit bfcd62883a

View File

@@ -8,31 +8,39 @@ const LOCALES = Path.join(__dirname, '../../locales')
const CHECK = process.argv.includes('--check')
async function main() {
await sortFile(
Path.join(__dirname, '../../frontend/extracted-translations.json')
)
for (const locale of await fs.promises.readdir(LOCALES)) {
if (locale === 'README.md') continue
const path = Path.join(LOCALES, locale)
const input = await fs.promises.readFile(path, 'utf-8')
const parsed = JSON.parse(input)
const sorted = JSON.stringify(parsed, Object.keys(parsed).sort(), 2) + '\n'
if (input === sorted) {
continue
}
if (CHECK) {
console.warn('---')
console.warn(
locale,
'is not sorted. Try running:\n\n',
' web$ make sort_locales',
'\n'
)
console.warn('---')
throw new Error(locale + ' is not sorted')
}
console.log('Storing sorted version of', locale)
await fs.promises.writeFile(path, sorted)
await sortFile(path)
}
}
async function sortFile(path) {
const name = Path.basename(path)
const input = await fs.promises.readFile(path, 'utf-8')
const parsed = JSON.parse(input)
const sorted = JSON.stringify(parsed, Object.keys(parsed).sort(), 2) + '\n'
if (input === sorted) {
return
}
if (CHECK) {
console.warn('---')
console.warn(
name,
'is not sorted. Try running:\n\n',
' web$ make sort_locales',
'\n'
)
console.warn('---')
throw new Error(name + ' is not sorted')
}
console.log('Storing sorted version of', name)
await fs.promises.writeFile(path, sorted)
}
try {
await main()
} catch (error) {