diff --git a/.gitignore b/.gitignore index 6a6f9cda..aa25c632 100644 --- a/.gitignore +++ b/.gitignore @@ -9,3 +9,4 @@ scripts/_env.sh .vscode .tool-versions .idea +.old diff --git a/scripts/check-unused-i18n.js b/scripts/check-unused-i18n.js index 4d0ab8e8..40d3206b 100644 --- a/scripts/check-unused-i18n.js +++ b/scripts/check-unused-i18n.js @@ -32,6 +32,13 @@ function getAllSourceContent() { return files.map(f => fs.readFileSync(f, 'utf8')).join('\n'); } +// 白名单 key,不检查这些 key 是否被使用 +const WHITELIST_KEYS = [ + 'theme.light', + 'theme.dark', + 'theme.system' +]; + // 主流程 function processI18nFile(i18nPath, lang, allSource) { const i18n = JSON.parse(fs.readFileSync(i18nPath, 'utf8')); @@ -43,12 +50,16 @@ function processI18nFile(i18nPath, lang, allSource) { let checked = 0; const total = keys.length; keys.forEach(key => { - // 只查找一次 - const regex = new RegExp(`["'\`]${key}["'\`]`); - if (regex.test(allSource)) { + if (WHITELIST_KEYS.includes(key)) { used[key] = i18n[key]; } else { - unused.push(key); + // 只查找一次 + const regex = new RegExp(`["'\`]${key}["'\`]`); + if (regex.test(allSource)) { + used[key] = i18n[key]; + } else { + unused.push(key); + } } checked++; if (checked % 20 === 0 || checked === total) { diff --git a/src/locales/en.json b/src/locales/en.json index 9f3fc9b7..2ace044e 100644 --- a/src/locales/en.json +++ b/src/locales/en.json @@ -280,6 +280,9 @@ "Verge Advanced Setting": "Verge Advanced Setting", "Language": "Language", "Theme Mode": "Theme Mode", + "theme.light": "Light", + "theme.dark": "Dark", + "theme.system": "System", "Tray Click Event": "Tray Click Event", "Show Main Window": "Show Main Window", "Show Tray Menu": "Show Tray Menu", @@ -564,4 +567,4 @@ "Failed to save settings": "Failed to save settings", "TCP Concurrency": "TCP Concurrency", "TCP ConcurrencyWhen accessing a web page, DNS resolution generally results in multiple IP addresses.": "TCP ConcurrencyWhen accessing a web page, DNS resolution generally results in multiple IP addresses." -} +} \ No newline at end of file diff --git a/src/locales/jp.json b/src/locales/jp.json index c2999c41..0c3dfa7c 100644 --- a/src/locales/jp.json +++ b/src/locales/jp.json @@ -280,6 +280,9 @@ "Verge Advanced Setting": "Verge詳細設定", "Language": "言語設定", "Theme Mode": "テーマモード", + "theme.light": "ライト", + "theme.dark": "ダーク", + "theme.system": "システム", "Tray Click Event": "トレイアイコンクリックイベント", "Show Main Window": "メインウィンドウを表示", "Show Tray Menu": "トレイメニューを表示", diff --git a/src/locales/zh.json b/src/locales/zh.json index 8cb381cf..2124c418 100644 --- a/src/locales/zh.json +++ b/src/locales/zh.json @@ -280,6 +280,9 @@ "Verge Advanced Setting": "Verge 高级设置", "Language": "语言设置", "Theme Mode": "主题模式", + "theme.light": "浅色", + "theme.dark": "深色", + "theme.system": "系统", "Tray Click Event": "托盘点击事件", "Show Main Window": "显示主窗口", "Show Tray Menu": "显示托盘菜单", @@ -564,4 +567,4 @@ "Failed to save settings": "端口设置失败", "TCP Concurrency": "TCP并发", "TCP ConcurrencyWhen accessing a web page, DNS resolution generally results in multiple IP addresses.": "TCP 并发性当访问网页时,DNS 解析通常会产生多个 IP 地址。" -} +} \ No newline at end of file diff --git a/src/locales/zhtw.json b/src/locales/zhtw.json index d38f6dfd..88a43a53 100644 --- a/src/locales/zhtw.json +++ b/src/locales/zhtw.json @@ -280,6 +280,9 @@ "Verge Advanced Setting": "Verge 高級設置", "Language": "語言設置", "Theme Mode": "主題模式", + "theme.light": "淺色", + "theme.dark": "深色", + "theme.system": "系統", "Tray Click Event": "托盤點擊事件", "Show Main Window": "顯示主窗口", "Show Tray Menu": "顯示托盤菜單",