|
|
@@ -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) {
|