mirror of
https://github.com/penpot/penpot.git
synced 2025-01-09 00:10:11 -05:00
31 lines
905 B
JavaScript
31 lines
905 B
JavaScript
const fs = require('fs').promises;
|
|
const gt = require("gettext-parser");
|
|
const l = require("lodash");
|
|
const path = require('path');
|
|
|
|
async function* getFiles(dir) {
|
|
const dirents = await fs.readdir(dir, { withFileTypes: true });
|
|
for (const dirent of dirents) {
|
|
const res = path.resolve(dir, dirent.name);
|
|
if (dirent.isDirectory()) {
|
|
yield* getFiles(res);
|
|
} else {
|
|
yield res;
|
|
}
|
|
}
|
|
}
|
|
|
|
;(async () => {
|
|
const fileRe = /.+\.po$/;
|
|
const target = path.normalize("./translations/");
|
|
const parent = path.join(target, "..");
|
|
for await (const f of getFiles(target)) {
|
|
if (!fileRe.test(f)) continue;
|
|
const entry = path.relative(parent, f);
|
|
console.log(`=> processing: ${entry}`);
|
|
const content = await fs.readFile(f);
|
|
const data = gt.po.parse(content, "utf-8")
|
|
const buff = gt.po.compile(data, {sort: true});
|
|
await fs.writeFile(f, buff);
|
|
}
|
|
})()
|