From 889607b0299face402be9ec37c4cb8a41fc243d7 Mon Sep 17 00:00:00 2001 From: "Km.Van" Date: Sun, 21 Dec 2025 21:30:39 +0800 Subject: [PATCH] optimize language builder --- tools/lang-builder.mjs | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) diff --git a/tools/lang-builder.mjs b/tools/lang-builder.mjs index d4ca313..b53999d 100644 --- a/tools/lang-builder.mjs +++ b/tools/lang-builder.mjs @@ -2,13 +2,13 @@ * @version 1.0.0 */ -import { writeFileSync } from 'node:fs'; -import path, { basename, dirname } from 'node:path'; -import { fileURLToPath } from 'node:url'; -import DeepSort from 'deep-sort-object'; -import FastGlob from 'fast-glob'; -import { PoParser } from './po-parser.mjs'; -import { PotBuilder } from './pot-builder.mjs'; +import { writeFileSync } from "node:fs"; +import { glob } from "node:fs/promises"; +import path, { basename, dirname } from "node:path"; +import { fileURLToPath } from "node:url"; +import DeepSort from "deep-sort-object"; +import { PoParser } from "./po-parser.mjs"; +import { PotBuilder } from "./pot-builder.mjs"; const __dirname = dirname(fileURLToPath(import.meta.url)); class LangBuilder { @@ -18,18 +18,20 @@ class LangBuilder { } setData = async () => { new PotBuilder({ - potPath: path.resolve(__dirname, '../locales/lang.pot'), - sourceDir: path.resolve(__dirname, '../src'), + potPath: path.resolve(__dirname, "../locales/lang.pot"), + sourceDir: path.resolve(__dirname, "../src"), }); - const files = await FastGlob(path.resolve(__dirname, '../locales/*.po')); - for (const file of files) { - const lang = basename(file, '.po'); - const langId = lang.replace('_', '').toLowerCase(); + for await (const file of glob(path.resolve(__dirname, "../locales/*.po"))) { + const lang = basename(file, ".po"); + const langId = lang.replace("_", "").toLowerCase(); const parser = new PoParser({ poPath: path.resolve(__dirname, `../locales/${lang}.po`), }); const items = parser.parse(); for (const text of Object.keys(items)) { + if (text === "") { + continue; + } if (!this.data[text]) { this.data[text] = {}; } @@ -44,7 +46,7 @@ class LangBuilder { this.data = DeepSort(this.data); const jsonPath = path.resolve( __dirname, - '../src/Components/Language/data.json' + "../src/Components/Language/data.json" ); writeFileSync(jsonPath, JSON.stringify(this.data, null, 2)); };