aboutsummaryrefslogtreecommitdiff
path: root/scripts/format-lang.js
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/format-lang.js')
-rw-r--r--scripts/format-lang.js35
1 files changed, 35 insertions, 0 deletions
diff --git a/scripts/format-lang.js b/scripts/format-lang.js
new file mode 100644
index 0000000..95c390e
--- /dev/null
+++ b/scripts/format-lang.js
@@ -0,0 +1,35 @@
+import path from 'node:path';
+import del from 'del';
+import fs from 'fs-extra';
+import { createRequire } from 'module';
+
+const require = createRequire(import.meta.url);
+const src = path.resolve(process.cwd(), 'src/lang');
+const dest = path.resolve(process.cwd(), 'build/messages');
+const files = fs.readdirSync(src);
+
+del.sync([path.join(dest)]);
+
+/*
+This script takes the files from the `lang` folder and formats them into
+the format that format-js expects.
+ */
+async function run() {
+ await fs.ensureDir(dest);
+
+ files.forEach(file => {
+ const lang = require(path.resolve(process.cwd(), `src/lang/${file}`));
+ const keys = Object.keys(lang).sort();
+
+ const formatted = keys.reduce((obj, key) => {
+ obj[key] = { defaultMessage: lang[key] };
+ return obj;
+ }, {});
+
+ const json = JSON.stringify(formatted, null, 2);
+
+ fs.writeFileSync(path.resolve(dest, file), json);
+ });
+}
+
+run();