From cf8dc66eb661d6df2d60701cb138cacad152e915 Mon Sep 17 00:00:00 2001 From: flingyp Date: Tue, 29 Jul 2025 23:14:20 +0800 Subject: [PATCH] =?UTF-8?q?refactor(i18n):=20=E6=9B=B4=E6=96=B0=20package.?= =?UTF-8?q?json=20=E4=BB=A5=E6=B7=BB=E5=8A=A0=20i18n=20=E7=B1=BB=E5=9E=8B?= =?UTF-8?q?=E7=94=9F=E6=88=90=E8=84=9A=E6=9C=AC=E5=91=BD=E4=BB=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- electron.vite.config.ts | 13 ------------- package.json | 1 + scripts/generate-i18n-types.js | 4 ++-- 3 files changed, 3 insertions(+), 15 deletions(-) diff --git a/electron.vite.config.ts b/electron.vite.config.ts index df8594439..a9db3996d 100644 --- a/electron.vite.config.ts +++ b/electron.vite.config.ts @@ -14,19 +14,6 @@ export default defineConfig({ externalizeDepsPlugin({ exclude: ['mermaid', 'dompurify'] }), - { - name: 'generate-i18n-types', - enforce: 'pre', - apply(_config, env) { - if(env.mode === 'development') return true - return false - }, - // 执行 generate-i18n-types.js - async buildStart() { - const { exec } = await import('child_process') - exec('node ./scripts/generate-i18n-types.js') - } - } ], resolve: { alias: { diff --git a/package.json b/package.json index cd50d74a2..2b277dae9 100644 --- a/package.json +++ b/package.json @@ -52,6 +52,7 @@ "installRuntime:duckdb:vss": "node scripts/installVss.js", "i18n": "i18n-check -s zh-CN -f i18next --locales src/renderer/src/i18n", "i18n:en": "i18n-check -s en-US -f i18next --locales src/renderer/src/i18n", + "i18n:types": "node scripts/generate-i18n-types.js", "cleanRuntime": "rm -rf runtime/uv runtime/bun runtime/node" }, "dependencies": { diff --git a/scripts/generate-i18n-types.js b/scripts/generate-i18n-types.js index cfaa872c4..24e6349ce 100644 --- a/scripts/generate-i18n-types.js +++ b/scripts/generate-i18n-types.js @@ -9,7 +9,7 @@ const i18nDir = path.resolve(__dirname, '../src/renderer/src/i18n/zh-CN') const outputFile = path.resolve(__dirname, '../src/types/i18n.d.ts') function safeKey(key) { - return /^[a-zA-Z_\$][a-zA-Z0-9_\$]*$/.test(key) ? key : JSON.stringify(key) + return /^[a-zA-Z\$][a-zA-Z0-9_\$]*$/.test(key) ? key : `'${key}'` } function mergeKeys(target, source) { @@ -50,7 +50,7 @@ async function main() { mergeKeys(allKeys, json) } - const typeDef = `import { DefineLocaleMessage } from 'vue-i18n'\n\ndeclare module 'vue-i18n' {\n interface DefineLocaleMessage ${genType(allKeys, 4)}\n}\n` + const typeDef = `declare module 'vue-i18n' {\n interface DefineLocaleMessage ${genType(allKeys, 4)}\n}\n` fs.writeFileSync(outputFile, typeDef, 'utf-8') console.log('i18n types file generated:', outputFile)