From f58d9a85b0e539cc4c640569ecfdb30d50c027d7 Mon Sep 17 00:00:00 2001 From: Xiaohan-Tian <157918347+Xiaohan-Tian@users.noreply.github.com> Date: Sun, 31 May 2026 12:29:10 -0700 Subject: [PATCH] chore(i18n): unify Traditional Chinese wording across UI and docs --- README-fr.md | 2 +- README-zh_cn.md | 2 +- README-zh_hant.md => README-zh_hk.md | 30 +-- README.md | 2 +- public/chat/help-zh_hk.md | 86 +++---- public/chat/hotkeys-zh_hk.md | 42 ++-- public/chat/welcome_again-zh_hk.md | 4 +- public/chat/welcome_local_llm-zh_hk.md | 8 +- public/chat/welcome_new-zh_hk.md | 16 +- src/i18n/messages/zh_hk.ts | 330 ++++++++++++------------- 10 files changed, 261 insertions(+), 261 deletions(-) rename README-zh_hant.md => README-zh_hk.md (96%) diff --git a/README-fr.md b/README-fr.md index 599be67..3fd830d 100644 --- a/README-fr.md +++ b/README-fr.md @@ -1,4 +1,4 @@ -[English](./README.md) | [简体中文](./README-zh_cn.md) | [繁體中文](./README-zh_hant.md) | Français +[English](./README.md) | Français | [简体中文](./README-zh_cn.md) | [繁體中文](./README-zh_hk.md)
diff --git a/README-zh_cn.md b/README-zh_cn.md
index b5f709d..a77f733 100644
--- a/README-zh_cn.md
+++ b/README-zh_cn.md
@@ -1,4 +1,4 @@
-[English](./README.md) | 简体中文 | [繁體中文](./README-zh_hant.md) | [Français](./README-fr.md)
+[English](./README.md) | [Français](./README-fr.md) | 简体中文 | [繁體中文](./README-zh_hk.md)
diff --git a/README-zh_hant.md b/README-zh_hk.md
similarity index 96%
rename from README-zh_hant.md
rename to README-zh_hk.md
index 311a61e..781f66f 100644
--- a/README-zh_hant.md
+++ b/README-zh_hk.md
@@ -1,4 +1,4 @@
-[English](./README.md) | [简体中文](./README-zh_cn.md) | 繁體中文 | [Français](./README-fr.md)
+[English](./README.md) | [Français](./README-fr.md) | [简体中文](./README-zh_cn.md) | 繁體中文
@@ -17,7 +17,7 @@
## 什麼是 K.G.Studio?
-K.G.Studio 是一款輕量、現代化的 DAW,完全執行於瀏覽器中,並以 **K.G.Studio 音樂創作助手** 為核心。它提供基於 Tone.js sampler 的真實樂器回放、鋼琴卷簾編輯器、支援完整復原/重做的音軌與區域管理、基於 OPFS(Origin Private File System)的專案持久化、可設定的設定面板,以及可執行工具的內建 AI 助手。
+K.G.Studio 是一款輕量、現代化的 DAW,完全執行於瀏覽器中,並以 **K.G.Studio 音樂創作助手** 為核心。它提供基於 Tone.js sampler 的真實樂器回放、Piano Roll 編輯器、支援完整復原/重做的音軌與區域管理、基於 OPFS(Origin Private File System)的專案持久化、可設定的設定面板,以及可執行工具的內建 AI 助手。
**K.G.Studio 音樂創作助手** 是一個面向和聲、編曲與音符編輯的 AI 助手,但並不負責整首作品的全自動作曲。
@@ -49,7 +49,7 @@ K.G.Studio 是一款輕量、現代化的 DAW,完全執行於瀏覽器中,
diff --git a/public/chat/help-zh_hk.md b/public/chat/help-zh_hk.md
index 426e1ad..1cdbdf9 100644
--- a/public/chat/help-zh_hk.md
+++ b/public/chat/help-zh_hk.md
@@ -2,20 +2,20 @@
歡迎使用 **K.G.Studio 音樂創作助手**。這是您的 AI 音樂創作與編曲助手,可以幫助您構思、編排和修改音樂內容。
-您可以選擇使用 **內置本地瀏覽器 LLM**(無需 API Key),也可以配置外部 LLM 提供方。下面是常用的入門方式。
+您可以選擇使用 **內建本地瀏覽器 LLM**(無需 API Key),也可以設定外部 LLM 提供方。下面是常用的入門方式。
---
### 使用本地 LLM(瀏覽器)——無需 API Key
-K.G.Studio 可以通過 WebGPU 在瀏覽器中直接運行 **Gemma 4 E4B**。不會產生外部 API 調用費用,數據也不會離開您的設備。
+K.G.Studio 可以通過 WebGPU 在瀏覽器中直接運行 **Gemma 4 E4B**。不會產生外部 API 呼叫費用,資料也不會離開您的裝置。
-1. 進入 **設置 ⚙️ → 通用 → LLM 提供方**,選擇 **本地 LLM(瀏覽器)**(默認選項)。
-2. 第一次打開聊天時會自動下載模型(約 2.8 GB),後續會緩存在本地瀏覽器中。
-3. 可選設置 **上下文長度**(32k / 64k / 128k tokens);越大越佔顯存。
+1. 進入 **設定 ⚙️ → 通用 → LLM 提供方**,選擇 **本地 LLM(瀏覽器)**(預設選項)。
+2. 第一次開啟聊天時會自動下載模型(約 2.8 GB),後續會快取在本地瀏覽器中。
+3. 可選設定 **上下文長度**(32k / 64k / 128k tokens);越大越佔顯存。
4. 現在就可以開始聊天,無需 Key、帳號或持續聯網。
-**要求:** Chrome 113+ 或 Edge 113+,安全上下文(HTTPS 或 localhost),以及至少 8 GB 顯存的 GPU 或至少 16 GB 統一內存的系統。
+**要求:** Chrome 113+ 或 Edge 113+,安全上下文(HTTPS 或 localhost),以及至少 8 GB 顯存的 GPU 或至少 16 GB 統一記憶體的系統。
> 注意:本地模型效果無法與 GPT 或 Claude 這類商業模型完全相比。複雜任務通常更適合外部提供方。
@@ -23,14 +23,14 @@ K.G.Studio 可以通過 WebGPU 在瀏覽器中直接運行 **Gemma 4 E4B**。不
### 配置外部 LLM 提供方
-進入 **設置 ⚙️ → 通用 → LLM 提供方**。根據所選提供方,您需要填寫對應的 API Key,以及在需要時填寫 Base URL(例如 Ollama、OpenRouter 等 OpenAI 兼容服務)。
+進入 **設定 ⚙️ → 通用 → LLM 提供方**。根據所選提供方,您需要填寫對應的 API Key,以及在需要時填寫 Base URL(例如 Ollama、OpenRouter 等 OpenAI 兼容服務)。
---
### 使用 OpenAI GPT 系列
-1. 在 [**OpenAI**](https://platform.openai.com/account/api-keys) 獲取 API Key。您可能需要先注冊帳號並添加支付方式。
-2. 在 **設置 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI**。
+1. 在 [**OpenAI**](https://platform.openai.com/account/api-keys) 取得 API Key。您可能需要先註冊帳號並新增付款方式。
+2. 在 **設定 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI**。
3. 在 **OpenAI → 密鑰** 中填入 API Key。
4. 在 **OpenAI → 模型** 下拉中選擇模型。若希望在成本和效果之間取得平衡,推薦 `gpt-5.4-mini`。
5. 可選:在 **OpenAI → Flex 模式** 中啟用 Flex Mode。它可能降低成本,但也可能帶來更高延遲或更多服務端錯誤。
@@ -41,18 +41,18 @@ K.G.Studio 可以通過 WebGPU 在瀏覽器中直接運行 **Gemma 4 E4B**。不
OpenRouter 提供統一接口,可訪問多個語言模型提供方的模型,其中也包含免費選項,適合比較不同模型表現。
-1. 在 [**OpenRouter**](https://openrouter.ai/keys) 獲取 API Key。需要注冊;使用付費模型時可能還需要綁定支付方式。
-2. 在 **設置 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI 兼容服務**。
+1. 在 [**OpenRouter**](https://openrouter.ai/keys) 取得 API Key。需要註冊;使用付費模型時可能還需要綁定付款方式。
+2. 在 **設定 ⚙️ → 通用 → LLM 提供方** 中選擇 **OpenAI 兼容服務**。
3. 在 **OpenAI 兼容服務 → 密鑰** 中填入 API Key。
4. 在 [**OpenRouter Models Page**](https://openrouter.ai/models) 瀏覽可用模型,並可使用 "Prompt Pricing" 過濾免費模型。
- **注意:** 各模型提供方的數據保留與隱私策略可能不同,使用前請自行查看。
+ **注意:** 各模型提供方的資料保留與隱私策略可能不同,使用前請自行查看。
5. 在 **OpenAI 兼容服務 → 模型** 中填入模型名。推薦系列包括:
- `Anthropic: Claude Sonnet 4.6`(`anthropic/claude-sonnet-4.6`)—— Claude 系列裡質量和成本平衡較好
- `Qwen: Qwen3.5-35B-A3B`(`qwen/qwen3.5-35b-a3b`)—— 推薦開源模型
- `Qwen: Qwen3-Next-80B-A3B`(免費:`qwen/qwen3-next-80b-a3b-instruct:free`)—— 推薦免費模型
- `OpenAI: GPT-OSS 120B`(免費:`openai/gpt-oss-120b:free`)—— 推薦免費模型
- 注意:免費模型會經常變化,請以 OpenRouter 模型頁中的 **Prompt Pricing** 過濾結果為準
- - 注意:免費模型提供方可能會收集您的數據,使用前請先查看模型頁面說明
+ - 注意:免費模型提供方可能會收集您的資料,使用前請先查看模型頁面說明
6. 在 **OpenAI 兼容服務 → 基礎 URL** 中填寫 `https://openrouter.ai/api/v1`。
### 基本 DAW 操作
@@ -60,67 +60,67 @@ OpenRouter 提供統一接口,可訪問多個語言模型提供方的模型,
聊天命令:`/clear`、`/welcome`、`/help`、`/hotkeys`
- 音軌
- - 在軌道信息面板中添加、重命名和重排音軌。
- - 通過樂器按鈕(鋼琴圖標)切換樂器;可調整 Solo(S)、Mute(M)和 Volume。
- - 通過音軌設置菜單刪除音軌(位於樂器按鈕右側)。
- - **音頻錄音**:點擊工具欄裡的 Rec 按鈕,可直接從麥克風錄到音頻軌。
+ - 在軌道資訊面板中新增、重命名和重排音軌。
+ - 通過樂器按鈕(鋼琴圖示)切換樂器;可調整 Solo(S)、Mute(M)和 Volume。
+ - 通過音軌設定選單刪除音軌(位於樂器按鈕右側)。
+ - **音訊錄音**:點擊工具列裡的 Rec 按鈕,可直接從麥克風錄到音訊軌。
- 區域
- - 創建區域:使用 Pointer 工具時可雙擊,或按住 Ctrl/Cmd 再點擊;使用 Pencil 工具時單擊即可。
+ - 建立區域:使用 Pointer 工具時可雙擊,或按住 Ctrl/Cmd 再點擊;使用 Pencil 工具時單擊即可。
- 移動/縮放:拖動區域主體可移動,拖動邊緣可調整長度。
- - 通過區域左上角的小鉛筆打開鋼琴卷簾窗口。
+ - 通過區域左上角的小鉛筆開啟 Piano Roll。
-- 鋼琴卷簾(MIDI 音符)
+- Piano Roll(MIDI 音符)
- 工具:Select 與 Pencil。
- - 創建音符:在 Select 模式下雙擊或 Ctrl/Cmd+點擊;在 Pencil 模式下單擊。
- - 選擇音符:單擊;Shift+單擊多選;拖拽框選。
+ - 建立音符:在 Select 模式下雙擊或 Ctrl/Cmd+點擊;在 Pencil 模式下單擊。
+ - 選取音符:單擊;Shift+單擊多選;拖曳框選。
- 移動/縮放:拖動音符主體可移動已選音符;拖動邊緣可調整長度。
- - **五線譜視圖**:可在鋼琴卷簾工具欄中切換鋼琴卷簾與五線譜視圖。支持自動譜號、調號顯示、連音線和符桿分組。啟用 **Track Scope** 後會連續顯示整條 MIDI 音軌上的內容。
+ - **五線譜視圖**:可在 Piano Roll 工具列中切換 Piano Roll 與五線譜視圖。支援自動譜號、調號顯示、連音線和符槓分組。啟用 **Track Scope** 後會連續顯示整條 MIDI 音軌上的內容。
- **自動化軌道**:可在下方自動化區域繪製和編輯 Pitch Bend 與 MIDI CC 曲線(Modulation、Breath、Volume、Expression、Sustain)。
- - **頻譜模式**:可在鋼琴卷簾中查看音頻區域的頻譜,作為 MIDI 編輯參考層。
+ - **頻譜模式**:可在 Piano Roll 中查看音訊區域的頻譜,作為 MIDI 編輯參考層。
- **事件列表面板**:提供 Notes / Pitch Bend / Controller 標籤頁,用於查看並內聯編輯當前 MIDI 區域中的事件。
- - 可通過 X 或 ESC 關閉鋼琴卷簾窗口。
+ - 可通過 X 或 ESC 關閉 Piano Roll 視窗。
- 智能和弦助手
- - 在鋼琴卷簾工具欄中使用 `⊘`、`T`、`S`、`D` 啟用和弦指導。
+ - 在 Piano Roll 工具列中使用 `⊘`、`T`、`S`、`D` 啟用和弦指導。
- 和弦候選會根據播放頭當前位置的有效調號來推斷:大調使用 Ionian,小調使用 Aeolian。
- - 將鼠標懸停在任意琴鍵上時,會以紅色高亮顯示上下文相關的和弦建議。
+ - 將滑鼠懸停在任意琴鍵上時,會以紅色高亮顯示上下文相關的和弦建議。
- 按 `g` 循環切換和弦指導模式,按 `Tab` 切換到下一個候選和弦,按 `Shift+Tab` 切換到上一個。
- - 雙擊(或 Ctrl/Cmd+點擊)高亮和弦可一次性創建整組音符。
+ - 雙擊(或 Ctrl/Cmd+點擊)高亮和弦可一次性建立整組音符。
- 和弦長度會自動匹配您最近編輯的音符長度,以保持節奏一致。
-- 全局軌系統
+- 全域軌系統
- 時間線上方固定有四條軌道:**Marker**、**Tempo**、**Key Signature**、**Chord**。
- - 創建全局區域:在全局軌中雙擊或 Ctrl/Cmd+點擊;拖動可移動,拖動邊緣可調整長度。
+ - 建立全域區域:在全域軌中雙擊或 Ctrl/Cmd+點擊;拖動可移動,拖動邊緣可調整長度。
- 這些軌道會影響播放時序、和弦指導、五線譜調號顯示,以及和弦檢測結果。
-- 音頻分析功能
- - **Detect Chords**:在音頻區域打開鋼琴卷簾窗口後,點擊 **...** → **Detect Chords**,即可自動分析並把結果寫入全局 Chord Track。可配置靈敏度、穩定性和七和弦檢測。
- - **Detect Tempo**:在音頻區域打開鋼琴卷簾窗口後,點擊 **...** → **Detect Tempo**,即可分析 BPM,並可選擇自動對齊項目中的 Tempo Track。
+- 音訊分析功能
+ - **Detect Chords**:在音訊區域開啟 Piano Roll 後,點擊 **...** → **Detect Chords**,即可自動分析並把結果寫入全域 Chord Track。可設定靈敏度、穩定性和七和弦檢測。
+ - **Detect Tempo**:在音訊區域開啟 Piano Roll 後,點擊 **...** → **Detect Tempo**,即可分析 BPM,並可選擇自動對齊專案中的 Tempo Track。
- K.G.One 音樂生成器
- - 點擊工具欄中的 **✦**(魔杖)按鈕打開生成器面板。
- - **Full Song Generation**:根據文本描述和可選歌詞生成整首歌曲(需要 K.G.One 服務器)。
- - **Clip Generation**:根據文本提示生成短音頻片段和 MIDI loop(需要 K.G.One 服務器)。
- - **Stem Separation(瀏覽器)**:可完全在瀏覽器中把任意音頻區域分離成 stems,無需服務器。支持兩種模型:**UVR-MDX-NET-Inst_HQ_3**(2 stem:Vocals / Instrumental,約 64 MB)和 **Demucs htdemucs_4s**(4 stem:Vocals / Drums / Bass / Others,約 172 MB)。在生成器面板中下載模型後,點擊 **Separate Stems** 即可。需要 WebGPU(Chrome 113+ / Edge 113+)。
+ - 點擊工具列中的 **✦**(魔杖)按鈕開啟生成器面板。
+ - **Full Song Generation**:根據文本描述和可選歌詞生成整首歌曲(需要 K.G.One 伺服器)。
+ - **Clip Generation**:根據文本提示生成短音訊片段和 MIDI loop(需要 K.G.One 伺服器)。
+ - **Stem Separation(瀏覽器)**:可完全在瀏覽器中把任意音訊區域分離成 stems,無需伺服器。支援兩種模型:**UVR-MDX-NET-Inst_HQ_3**(2 stem:Vocals / Instrumental,約 64 MB)和 **Demucs htdemucs_4s**(4 stem:Vocals / Drums / Bass / Others,約 172 MB)。在生成器面板中下載模型後,點擊 **Separate Stems** 即可。需要 WebGPU(Chrome 113+ / Edge 113+)。
- 吸附與量化
- - 在右上角的 NO SNAP 菜單中設置吸附。
+ - 在右上角的 NO SNAP 選單中設定吸附。
- 使用 Qua. Pos.(起始)和 Qua. Len.(長度)進行量化。
- 播放與播放頭
- - 工具欄可回到開頭,並執行 Play/Pause。
- - 在主時間網格點擊小節編號可設置播放頭;在鋼琴卷簾中點擊頂部時間軸也可設置,並遵守當前吸附設置。
- - BPM、拍號和調號都可以通過工具欄中的數值直接調整。
+ - 工具列可回到開頭,並執行 Play/Pause。
+ - 在主時間網格點擊小節編號可設定播放頭;在 Piano Roll 中點擊頂部時間軸也可設定,並遵守目前吸附設定。
+ - BPM、拍號和調號都可以通過工具列中的數值直接調整。
---
### 說明
-出於安全考慮,在非本地主機場景下,K.G.Studio 默認不會把 API Key 持久化到 IndexedDB 中(以降低 XSS 風險)。您每次打開 K.G.Studio 時都需要重新輸入。若您確實需要在非本地主機場景下持久化,請在設置中啟用 "Persist API Keys on Non-Localhost"(不建議在共享或生產環境下啟用)。
+出於安全考慮,在非本地主機場景下,K.G.Studio 預設不會把 API Key 持久化到 IndexedDB 中(以降低 XSS 風險)。您每次開啟 K.G.Studio 時都需要重新輸入。若您確實需要在非本地主機場景下持久化,請在設定中啟用 "Persist API Keys on Non-Localhost"(不建議在共享或生產環境下啟用)。
### 免責聲明
-K.G.Studio 不提供也不托管上述任何模型,也不隸屬於任何模型提供方。所有數據默認都保存在您的本地設備中;您向第三方模型提供方發送的任何數據,都由您自行負責。
+K.G.Studio 不提供也不託管上述任何模型,也不隸屬於任何模型提供方。所有資料預設都儲存在您的本地裝置中;您向第三方模型提供方發送的任何資料,都由您自行負責。
祝您使用 K.G.Studio 音樂創作助手創作愉快!
diff --git a/public/chat/hotkeys-zh_hk.md b/public/chat/hotkeys-zh_hk.md
index 5302800..6e7e30e 100644
--- a/public/chat/hotkeys-zh_hk.md
+++ b/public/chat/hotkeys-zh_hk.md
@@ -2,12 +2,12 @@
本指南列出了當前在 K.G.Studio 中已經實現的鍵盤快捷鍵,以及部分點擊時配合修飾鍵的操作。
-### 平台相關的創建操作
+### 平台相關的建立操作
-- 在 **macOS** 上,使用 Pointer 工具時按 `Cmd+click` 可創建區域、音符或自動化點。
-- 在 **Windows/Linux** 上,使用 Pointer 工具時按 `Ctrl+click` 可創建區域、音符或自動化點。
-- 在主時間線中,Pointer 工具激活時雙擊空白處可創建區域。
-- 在鋼琴卷簾與自動化軌中,Pencil 工具支持單擊創建。
+- 在 **macOS** 上,使用 Pointer 工具時按 `Cmd+click` 可建立區域、音符或自動化點。
+- 在 **Windows/Linux** 上,使用 Pointer 工具時按 `Ctrl+click` 可建立區域、音符或自動化點。
+- 在主時間線中,Pointer 工具啟用時雙擊空白處可建立區域。
+- 在 Piano Roll 與自動化軌中,Pencil 工具支援單擊建立。
### 主快捷鍵
@@ -16,40 +16,40 @@
- `R` — 開始 / 停止錄音
- `Cmd/Ctrl+Z` — 撤銷
- `Cmd/Ctrl+Shift+Z` — 重做
-- `Cmd/Ctrl+C` — 複製所選項目
-- `Cmd/Ctrl+V` — 粘貼
-- `Cmd/Ctrl+S` — 保存項目
-- `Cmd/Ctrl+A` — 選中當前 MIDI 區域中的全部音符
+- `Cmd/Ctrl+C` — 複製所選專案
+- `Cmd/Ctrl+V` — 貼上
+- `Cmd/Ctrl+S` — 儲存專案
+- `Cmd/Ctrl+A` — 選取目前 MIDI 區域中的全部音符
- `Cmd/Ctrl+T` — 在播放頭處分割所選區域
-- `Cmd/Ctrl+J` — 合併選中的 MIDI 區域
+- `Cmd/Ctrl+J` — 合併已選取的 MIDI 區域
-### 區域與鋼琴卷簾窗口快捷鍵
+### 區域與 Piano Roll 視窗快捷鍵
-- `E` — 為選中的 MIDI 區域打開鋼琴卷簾窗口,或為選中的音頻區域打開波形編輯器;如果編輯器已經打開,`E` 會關閉它。
-- `N` — 以五線譜視圖打開選中的 MIDI 區域。
-- `Delete` / `Backspace` — 刪除選中的區域、音符或自動化點。
-- `Esc` — 關閉鋼琴卷簾窗口。
+- `E` — 為已選取的 MIDI 區域開啟 Piano Roll,或為已選取的音訊區域開啟波形編輯器;如果編輯器已經開啟,`E` 會關閉它。
+- `N` — 以五線譜視圖開啟已選取的 MIDI 區域。
+- `Delete` / `Backspace` — 刪除已選取的區域、音符或自動化點。
+- `Esc` — 關閉 Piano Roll 視窗。
### 選擇操作
-- `Shift+click` — 加入當前選擇。
-- 在空白區域套索拖拽 — 框選區域或自動化點。
-- 在鋼琴卷簾窗口中 `Shift+套索` — 切換套索範圍內項目的選中狀態。
+- `Shift+click` — 加入目前選擇。
+- 在空白區域套索拖曳 — 框選區域或自動化點。
+- 在 Piano Roll 視窗中 `Shift+套索` — 切換套索範圍內項目的選取狀態。
-### 鋼琴卷簾快捷鍵
+### Piano Roll 快捷鍵
- `G` — 循環切換和弦指導模式
- `Tab` — 跳到下一個和弦候選
- `Shift+Tab` — 跳到上一個和弦候選 / 轉位
-### 鋼琴卷簾吸附快捷鍵
+### Piano Roll 吸附快捷鍵
- `1` — 不吸附
- `2` — 吸附到 `1/4`
- `3` — 吸附到 `1/8`
- `4` — 吸附到 `1/16`
-### 鋼琴卷簾量化快捷鍵
+### Piano Roll 量化快捷鍵
- `5` — 起始量化到 `1/4`
- `6` — 起始量化到 `1/8`
diff --git a/public/chat/welcome_again-zh_hk.md b/public/chat/welcome_again-zh_hk.md
index 0f93e54..2c4ac42 100644
--- a/public/chat/welcome_again-zh_hk.md
+++ b/public/chat/welcome_again-zh_hk.md
@@ -1,9 +1,9 @@
## 再次歡迎
-很高興再次見到您。檢測到您的 LLM 提供方已經配置完成,現在可以直接開始聊天。
+很高興再次見到您。檢測到您的 LLM 提供方已經設定完成,現在可以直接開始聊天。
提示:
-- 隨時輸入 `/clear` 重置當前聊天。
+- 隨時輸入 `/clear` 重設目前聊天。
- 輸入 `/welcome` 再次查看這條歡迎消息。
- 輸入 `/help` 查看幫助說明。
- 輸入 `/hotkeys` 查看快捷鍵指南。
diff --git a/public/chat/welcome_local_llm-zh_hk.md b/public/chat/welcome_local_llm-zh_hk.md
index b2d8ae2..9a6b931 100644
--- a/public/chat/welcome_local_llm-zh_hk.md
+++ b/public/chat/welcome_local_llm-zh_hk.md
@@ -4,7 +4,7 @@
- 無需外部 API 調用。所有內容都直接在您的瀏覽器中運行,不會產生額外 API 成本。
- 此模式通過 **LiteRT-LM** 和 **WebGPU** 加速運行 **Gemma 4 E4B**。
-- 推薦硬件:至少 **8 GB 顯存**的 GPU,或至少 **16 GB 統一內存**的系統。
+- 推薦硬體:至少 **8 GB 顯存**的 GPU,或至少 **16 GB 統一記憶體**的系統。
- 相比更大的雲端模型,本地模式在複雜規劃、長鏈路編輯和多步驟任務上能力會更有限。
### 推薦工作方式
@@ -19,11 +19,11 @@
- 例如,如果您想讓模型基於當前音樂寫一段和弦進行,可以先說:`請讀取當前音樂。`
- 等這一步完成後,再繼續說:`請基於它寫一段和弦進行。`
- 在本地 LLM 模式下,這種漸進式流程通常更可靠。
-- 在整個流程中,保持您希望 agent 更新的 MIDI 區域處於選中狀態。
+- 在整個流程中,保持您希望 agent 更新的 MIDI 區域處於選取狀態。
- 僅僅為了執行 `read_music`,您不需要切換到別的區域,因為 `read_music` 可以讀取所有音軌的音樂內容。
### 改用外部 LLM
-- 如果您想使用更大的雲端模型或自托管模型,請打開 **設置 -> 通用 -> LLM 提供方**,切換到 **本地 LLM(瀏覽器)** 以外的提供方。
+- 如果您想使用更大的雲端模型或自託管模型,請開啟 **設定 -> 通用 -> LLM 提供方**,切換到 **本地 LLM(瀏覽器)** 以外的提供方。
- 如果要用雲端模型,可以選擇 **OpenAI**,或者選擇 **OpenAI Compatible** 並填寫 OpenRouter 等提供方。
-- 如果要用自托管模型,也請選擇 **OpenAI Compatible**,然後填寫您的服務器 **Base URL** 和 **Model**。
+- 如果要用自託管模型,也請選擇 **OpenAI Compatible**,然後填寫您的伺服器 **Base URL** 和 **Model**。
- 切換提供方後,建議開啟一個新的對話,以便聊天會話乾淨地使用新模型。
diff --git a/public/chat/welcome_new-zh_hk.md b/public/chat/welcome_new-zh_hk.md
index cd992b6..9c41314 100644
--- a/public/chat/welcome_new-zh_hk.md
+++ b/public/chat/welcome_new-zh_hk.md
@@ -5,21 +5,21 @@
### 快速開始
**配置 K.G.Studio 音樂創作助手**
- [點擊這裡獲取免費的 OpenRouter API Key](https://openrouter.ai/keys)(您可能需要一個 OpenRouter 帳號)。
-- 進入 **設置 ⚙️ → 通用 → LLM 提供方**,選擇 **OpenAI 兼容服務**。
-- 在 **OpenAI 兼容服務 → 密鑰** 中粘貼您的 Key。注意:在非 localhost 環境下,Key 默認不會持久化,刷新後需要重新輸入,請妥善保管。
+- 進入 **設定 ⚙️ → 通用 → LLM 提供方**,選擇 **OpenAI 兼容服務**。
+- 在 **OpenAI 兼容服務 → 密鑰** 中貼上您的 Key。注意:在非 localhost 環境下,Key 預設不會持久化,重新整理後需要重新輸入,請妥善保管。
- 在 **OpenAI 兼容服務 → 模型** 中輸入 `qwen/qwen3-30b-a3b:free`。注意:非免費模型可能需要計費。
- 在 **OpenAI 兼容服務 → 基礎 URL** 中輸入 `https://openrouter.ai/api/v1`。
*(或者,您也可以使用官方 OpenAI API,或者任何 OpenAI 兼容服務。)*
**基本 DAW 操作**
-- 在音軌上雙擊(或按住 Ctrl/Cmd 再點擊)可創建區域。
+- 在音軌上雙擊(或按住 Ctrl/Cmd 再點擊)可建立區域。
- 拖動區域邊緣可調整長度;拖動區域主體可移動。
-- 點擊區域左上角的小鉛筆可打開鋼琴卷簾窗口。
-- 在鋼琴卷簾中,雙擊(或 Ctrl/Cmd+點擊)可創建音符。
-- 單擊選擇;Shift+單擊多選;拖拽框選。
+- 點擊區域左上角的小鉛筆可開啟 Piano Roll。
+- 在 Piano Roll 中,雙擊(或 Ctrl/Cmd+點擊)可建立音符。
+- 單擊選取;Shift+單擊多選;拖曳框選。
- 拖動音符邊緣可調整長度;拖動音符主體可移動所選音符。
-- 使用鋼琴卷簾工具欄右上角的 Snapping 控制網格量化。
+- 使用 Piano Roll 工具列右上角的 Snapping 控制網格量化。
### 免責聲明
-K.G.Studio 與任何 LLM 提供方均無隸屬關係。所有數據默認都保存在您的本地設備中;您發送給第三方服務的數據由您自行負責。
+K.G.Studio 與任何 LLM 提供方均無隸屬關係。所有資料預設都儲存在您的本地裝置中;您發送給第三方服務的資料由您自行負責。
diff --git a/src/i18n/messages/zh_hk.ts b/src/i18n/messages/zh_hk.ts
index 9ddbee6..61cb04a 100644
--- a/src/i18n/messages/zh_hk.ts
+++ b/src/i18n/messages/zh_hk.ts
@@ -3,16 +3,16 @@ import { enUsMessages } from './en_us';
export const zhHkMessages: TranslationMessages = {
...enUsMessages,
- 'app.loading': '加載中...',
+ 'app.loading': '載入中...',
'assistant.displayName': 'K.G.Studio 音樂創作助手',
'assistant.welcomeFallback': '歡迎使用 K.G.Studio 音樂創作助手。',
'mainContent.createTrack': '建立音軌',
'mainContent.showGlobalTracks': '顯示全域音軌',
'status.chordGuideCandidate': '和弦指導候選: {name} - {notes} - {note}',
- 'settings.sidebar.title': '設置',
- 'settings.sidebar.close': '關閉設置',
+ 'settings.sidebar.title': '設定',
+ 'settings.sidebar.close': '關閉設定',
'settings.sidebar.general': '通用',
- 'settings.sidebar.audioIo': '音頻 I/O',
+ 'settings.sidebar.audioIo': '音訊 I/O',
'settings.sidebar.behavior': '行為',
'settings.sidebar.templates': '模板',
'settings.sidebar.chordGuide': '和弦指導',
@@ -22,7 +22,7 @@ export const zhHkMessages: TranslationMessages = {
'settings.general.language.auto': '自動',
'settings.yes': '是',
'settings.no': '否',
- 'settings.restoreDefault': '恢復默認',
+ 'settings.restoreDefault': '恢復預設',
'settings.deleteCachedModel': '刪除已緩存模型',
'settings.deleting': '刪除中...',
'settings.general.llmProvider.section': 'LLM 提供方',
@@ -32,7 +32,7 @@ export const zhHkMessages: TranslationMessages = {
'settings.general.llmProvider.claudeOpenRouter': 'Claude(通過 OpenRouter)',
'settings.general.llmProvider.openaiCompatible': 'OpenAI 兼容服務(例如 OpenRouter、Ollama)',
'settings.general.persistKeys.label': '在非 localhost 環境持久化 API Key',
- 'settings.general.persistKeys.help': '啟用後,即使在非 localhost 環境下,API Key 也會保存到瀏覽器存儲中。警告:這可能增加 XSS 攻擊帶來的安全風險。',
+ 'settings.general.persistKeys.help': '啟用後,即使在非 localhost 環境下,API Key 也會儲存到瀏覽器儲存空間中。警告:這可能增加 XSS 攻擊帶來的安全風險。',
'settings.general.localRuntime.cachedStatus': '緩存模型狀態',
'settings.general.localRuntime.cacheChecking': '正在檢查本地模型緩存...',
'settings.general.localRuntime.cacheDownloaded': '已下載到瀏覽器緩存。',
@@ -52,7 +52,7 @@ export const zhHkMessages: TranslationMessages = {
'settings.general.openai.model': '模型',
'settings.general.openai.flexMode': 'Flex 模式',
'settings.general.openai.flexHelp': 'Flex 模式使用 OpenAI 的彈性服務層。優點:繁忙時段可能節省成本並提高吞吐。缺點:延遲可能波動,也可能排隊或被降優先級。僅對 OpenAI 提供方生效,對 OpenAI 兼容服務無影響。',
- 'settings.general.keys.persisted': '密鑰會保存在本地(瀏覽器中的 IndexedDB)。',
+ 'settings.general.keys.persisted': '密鑰會儲存在本地(瀏覽器中的 IndexedDB)。',
'settings.general.keys.sessionOnly': '出於安全考慮,在非本地主機環境下密鑰不會持久化,只保留在當前會話內存中。',
'settings.general.claudeOpenRouter.section': 'Anthropic Claude(通過 OpenRouter)',
'settings.general.claudeOpenRouter.keyPlaceholder': '輸入您的 Claude API Key',
@@ -63,39 +63,39 @@ export const zhHkMessages: TranslationMessages = {
'settings.general.openaiCompatible.baseUrlPlaceholder': '例如 https://openrouter.ai/api/v1',
'settings.general.openaiCompatible.baseUrlHelp': '快捷預設:',
'settings.general.openaiCompatible.modelPlaceholder': '例如 qwen3:30b',
- 'settings.general.soundfont.section': 'Soundfont 設置',
- 'settings.general.soundfont.managed': 'Soundfont 配置由服務器(kgone-server.json)管理,當前設置為只讀。',
+ 'settings.general.soundfont.section': 'Soundfont 設定',
+ 'settings.general.soundfont.managed': 'Soundfont 設定由伺服器(kgone-server.json)管理,目前設定為唯讀。',
'settings.general.soundfont.baseUrl': '基礎 URL',
'settings.general.soundfont.baseUrlHelp': '如果改成不兼容的 soundfont 源,某些樂器可能發聲錯誤或無法播放。',
- 'settings.general.kgone.section': 'K.G.One 設置',
- 'settings.general.kgone.managed': 'K.G.One 配置由服務器(kgone-server.json)管理,當前設置為只讀。',
+ 'settings.general.kgone.section': 'K.G.One 設定',
+ 'settings.general.kgone.managed': 'K.G.One 設定由伺服器(kgone-server.json)管理,目前設定為唯讀。',
'settings.general.kgone.enabled': '啟用 K.G.One 集成',
'settings.general.kgone.disabled': '禁用',
'settings.general.kgone.enabledOption': '啟用',
- 'settings.general.kgone.serverBaseUrl': '服務器基礎 URL',
- 'settings.general.kgone.serverBaseUrlHelp': '正在運行的 K.G.One Music Studio 服務器基礎 URL。用於整曲生成、片段生成和分軌。',
- 'settings.audioIo.title': '音頻 I/O',
+ 'settings.general.kgone.serverBaseUrl': '伺服器基礎 URL',
+ 'settings.general.kgone.serverBaseUrlHelp': '正在運行的 K.G.One Music Studio 伺服器基礎 URL,用於整曲生成、片段生成和分軌。',
+ 'settings.audioIo.title': '音訊 I/O',
'settings.audioIo.deviceRouting': '裝置路由',
'settings.audioIo.refresh': '重新整理裝置清單',
'settings.audioIo.refreshing': '重新整理中…',
'settings.audioIo.description': '選擇 KGStudio 用於錄音與播放的裝置。輸入裝置的變更會在下一次錄音時生效。輸出裝置的變更在 v1 中需要重新整理頁面後生效。',
- 'settings.audioIo.inputDevice': '音頻輸入裝置',
- 'settings.audioIo.outputDevice': '音頻輸出裝置',
+ 'settings.audioIo.inputDevice': '音訊輸入裝置',
+ 'settings.audioIo.outputDevice': '音訊輸出裝置',
'settings.audioIo.inputHelp': '變更會在下一次錄音時生效。如果所選裝置被移除,KGStudio 會回退到系統預設裝置。',
'settings.audioIo.outputHelp': '在 v1 中,輸出裝置變更需要重新整理頁面。瀏覽器對非預設輸出路由的支援有限,因此在不支援時 KGStudio 會繼續使用系統預設裝置。',
'settings.audioIo.outputSinkUnsupported': '此瀏覽器未提供可靠的即時 Web Audio 輸出切換能力。非預設輸出裝置選擇僅屬盡力而為,最終可能仍會使用系統預設裝置。',
'settings.audioIo.chooseOutputDevice': '選擇輸出裝置…',
'settings.audioIo.previousSelectedInput': '先前選擇的輸入裝置(需要權限才能驗證)',
'settings.audioIo.previousSelectedOutput': '先前選擇的輸出裝置(需要權限才能驗證)',
- 'settings.audioIo.status.inputUnavailable': '先前選擇的音頻輸入裝置不可用;將使用系統預設裝置。',
- 'settings.audioIo.status.outputUnavailable': '先前選擇的音頻輸出裝置不可用;將使用系統預設裝置。',
- 'settings.audioIo.status.refreshed': '音頻裝置清單已重新整理。',
- 'settings.audioIo.status.readFailed': '無法從瀏覽器讀取音頻裝置。',
- 'settings.audioIo.status.inputDefaultNextSession': '音頻輸入將在下一次錄音時使用系統預設裝置。',
- 'settings.audioIo.status.inputChangedNextSession': '音頻輸入將在下一次錄音時切換。',
- 'settings.audioIo.status.outputDefaultAfterRefresh': '重新整理後音頻輸出將使用系統預設裝置。',
- 'settings.audioIo.status.outputSavedRefreshRequired': '音頻輸出裝置已儲存。在 v1 中請重新整理頁面以套用。',
- 'settings.audioIo.status.outputPromptUnsupported': '此瀏覽器不支援彈出音頻輸出裝置選擇。',
+ 'settings.audioIo.status.inputUnavailable': '先前選擇的音訊輸入裝置不可用;將使用系統預設裝置。',
+ 'settings.audioIo.status.outputUnavailable': '先前選擇的音訊輸出裝置不可用;將使用系統預設裝置。',
+ 'settings.audioIo.status.refreshed': '音訊裝置清單已重新整理。',
+ 'settings.audioIo.status.readFailed': '無法從瀏覽器讀取音訊裝置。',
+ 'settings.audioIo.status.inputDefaultNextSession': '音訊輸入將在下一次錄音時使用系統預設裝置。',
+ 'settings.audioIo.status.inputChangedNextSession': '音訊輸入將在下一次錄音時切換。',
+ 'settings.audioIo.status.outputDefaultAfterRefresh': '重新整理後音訊輸出將使用系統預設裝置。',
+ 'settings.audioIo.status.outputSavedRefreshRequired': '音訊輸出裝置已儲存。在 v1 中請重新整理頁面以套用。',
+ 'settings.audioIo.status.outputPromptUnsupported': '此瀏覽器不支援彈出音訊輸出裝置選擇。',
'settings.audioIo.status.outputSelectedRefreshRequired': '已選擇輸出裝置。請重新整理頁面以在 v1 中套用。',
'settings.audioIo.status.outputSelectionDenied': '瀏覽器不允許選擇非預設輸出裝置。',
'settings.behavior.title': '行為',
@@ -106,9 +106,9 @@ export const zhHkMessages: TranslationMessages = {
'settings.behavior.spectrogramHeightResolutionHelp': '控制可見音高範圍內的頻譜圖垂直細節。較高的值會讓音高輪廓更清晰,但在計算頻譜圖時會消耗更多 CPU 與記憶體。',
'settings.behavior.chatBox': '聊天框',
'settings.behavior.openAtStartup': '啟動時開啟',
- 'settings.behavior.audio': '音頻',
+ 'settings.behavior.audio': '音訊',
'settings.behavior.lookaheadTime': '前瞻時間(ms)',
- 'settings.behavior.lookaheadTimeHelp': '音頻排程前瞻時間(0-500ms)。較低的值(10-20ms)可降低 MIDI 輸入延遲,但在較慢的系統上可能造成音頻卡頓。較高的值(100ms 以上)更有利於播放穩定性。變更會立即生效,無需重新啟動。',
+ 'settings.behavior.lookaheadTimeHelp': '音訊排程前瞻時間(0-500ms)。較低的值(10-20ms)可降低 MIDI 輸入延遲,但在較慢的系統上可能造成音訊卡頓。較高的值(100ms 以上)更有利於播放穩定性。變更會立即生效,無需重新啟動。',
'settings.behavior.playbackDelay': '播放延遲(ms)',
'settings.behavior.playbackDelayHelp': '按下開始按鈕後,播放會有一個很短的延遲(0-500ms)。增加此值可能有助於穩定播放,特別是在前瞻值較低時的前幾個節拍。變更會立即生效,無需重新啟動。',
'settings.behavior.midiAutomationInterpolation': 'MIDI 自動化插值',
@@ -119,9 +119,9 @@ export const zhHkMessages: TranslationMessages = {
'settings.behavior.midiInputLatency': 'MIDI 輸入延遲(ms)',
'settings.behavior.midiInputLatencyHelp': '用於 MIDI 錄音的時間校正(0-500ms)。如果錄下來的音符比您實際想演奏的位置略晚,可以增加此值以匹配您的 MIDI 裝置輸入延遲。每個音符在提交時都會向前回移這段時間。',
'settings.behavior.bounceStartsFromBeat1': '匯出從第 1 拍開始',
- 'settings.behavior.bounceStartsFromBeat1Help': '選擇「是」時,匯出 WAV/MP3 會包含從歌曲開頭到第一個被渲染區域之前的前導靜音。選擇「否」時,會裁掉這段前導靜音,並從第一個被渲染的音符或音頻區域開始匯出。',
- 'settings.behavior.captureAudioForScreenSharing': '為螢幕分享擷取音頻',
- 'settings.behavior.captureAudioForScreenSharingHelp': '需要重新啟動 KGStudio(重新整理頁面)後生效。當在視訊會議中分享螢幕時,如果 KGStudio 的音頻無法被擷取,請啟用此選項(例如 Zoom、Teams)。這會建立一個額外的音頻串流,供螢幕擷取應用程式偵測。',
+ 'settings.behavior.bounceStartsFromBeat1Help': '選擇「是」時,匯出 WAV/MP3 會包含從歌曲開頭到第一個被渲染區域之前的前導靜音。選擇「否」時,會裁掉這段前導靜音,並從第一個被渲染的音符或音訊區域開始匯出。',
+ 'settings.behavior.captureAudioForScreenSharing': '為螢幕分享擷取音訊',
+ 'settings.behavior.captureAudioForScreenSharingHelp': '需要重新啟動 KGStudio(重新整理頁面)後生效。當在視像會議中分享螢幕時,如果 KGStudio 的音訊無法被擷取,請啟用此選項(例如 Zoom、Teams)。這會建立一個額外的音訊串流,供螢幕擷取應用程式偵測。',
'settings.behavior.captureAudioForScreenSharingWarning': '在 Zoom 中分享螢幕時,請務必確認已啟用「Share Sound」選項。',
'settings.behavior.validation.lookahead.invalidNumber': '前瞻時間必須是有效數字',
'settings.behavior.validation.lookahead.range': '前瞻時間必須在 0 到 0.5 秒之間(0-500ms)',
@@ -160,10 +160,10 @@ export const zhHkMessages: TranslationMessages = {
'dialog.ok': '確定',
'dialog.experimentalFeature': '實驗性功能',
'dialog.recommendedSource': '推薦源素材',
- 'dialog.chordHint.audio': '和弦分析仍屬實驗性功能。和聲內容、編配密度以及瞬態較強的素材都可能影響準確率。建議先使用默認設置,再逐步微調靈敏度和穩定性,讓檢測結果更貼近實際樂句。',
- 'dialog.chordHint.midi': '和弦分析仍屬實驗性功能。和弦堆疊密度、重疊以及裝飾音都會影響結果。建議先使用默認設置,再調整短音抑制和和聲關注方式,以匹配該段音樂的和聲作用。',
- 'dialog.chordHint.tempo': '速度分析仍屬實驗性功能。自由速度、瞬態稀疏以及多層打擊樂都可能降低準確率。建議先使用默認 BPM 範圍,如果第一次結果不理想,再把分析範圍收窄到更可能的速度區間。',
- 'dialog.sourceHint.kgone': '為了獲得更可靠的和弦標籤,建議分析已經削弱或移除了人聲和打擊樂的 stem。如果已啟用 K.G.One Music Studio 服務器集成,請使用帶有 "Vocal, Drums, Bass, Guitar, Piano, and Others" 的 Separator 模型,並優先分析 Piano 或 Others stem。',
+ 'dialog.chordHint.audio': '和弦分析仍屬實驗性功能。和聲內容、編配密度以及瞬態較強的素材都可能影響準確率。建議先使用預設設定,再逐步微調靈敏度和穩定性,讓檢測結果更貼近實際樂句。',
+ 'dialog.chordHint.midi': '和弦分析仍屬實驗性功能。和弦堆疊密度、重疊以及裝飾音都會影響結果。建議先使用預設設定,再調整短音抑制和和聲關注方式,以配合該段音樂的和聲作用。',
+ 'dialog.chordHint.tempo': '速度分析仍屬實驗性功能。自由速度、瞬態稀疏以及多層打擊樂都可能降低準確率。建議先使用預設 BPM 範圍,如果第一次結果不理想,再把分析範圍收窄到更可能的速度區間。',
+ 'dialog.sourceHint.kgone': '為了獲得更可靠的和弦標籤,建議分析已經削弱或移除了人聲和打擊樂的 stem。如果已啟用 K.G.One Music Studio 伺服器整合,請使用帶有 "Vocal, Drums, Bass, Guitar, Piano, and Others" 的 Separator 模型,並優先分析 Piano 或 Others stem。',
'dialog.sourceHint.local': '為了獲得更可靠的和弦標籤,建議分析已經削弱或移除了人聲和打擊樂的 stem。如果您使用本地分軌器,請選擇 "Vocal, Drums, Bass, and Others" 模型,並使用 Others stem 進行分析。',
'dialog.label.sensitivity': '靈敏度',
'dialog.label.stability': '穩定性',
@@ -179,16 +179,16 @@ export const zhHkMessages: TranslationMessages = {
'dialog.label.minimumBpm': '最小 BPM',
'dialog.label.maximumBpm': '最大 BPM',
'dialog.label.autoAlignRegionToBeat': '自動將片段對齊到拍點',
- 'dialog.message.chordDetection': '在處理前調整音頻和弦檢測設置。',
- 'dialog.message.tempoDetection': '在處理前調整音頻速度檢測設置。',
- 'dialog.message.tempoApply': '檢測到速度:{bpm} BPM。請選擇應用方式。\n\n"更新當前速度"將修改此片段位置的有效速度。"插入速度變更"將在片段起始點前最近的小節處添加新的速度區域。',
+ 'dialog.message.chordDetection': '在處理前調整音訊和弦檢測設定。',
+ 'dialog.message.tempoDetection': '在處理前調整音訊速度檢測設定。',
+ 'dialog.message.tempoApply': '檢測到速度:{bpm} BPM。請選擇應用方式。\n\n"更新當前速度"會修改此片段位置的有效速度。"插入速度變更"會在片段起始點前最近的小節加入新的速度區域。',
'dialog.action.updateCurrentTempo': '更新當前速度',
'dialog.action.insertTempoChange': '插入速度變更',
'eventList.title': '事件列表',
'eventList.scopeTabs': '事件列表範圍',
'eventList.scope.region': '區域',
'eventList.scope.track': '音軌',
- 'eventList.scope.global': '全局',
+ 'eventList.scope.global': '全域',
'eventList.deleteVisibleSelectedRows': '刪除當前可見的已選行',
'eventList.table.position': '位置',
'eventList.table.status': '狀態',
@@ -199,11 +199,11 @@ export const zhHkMessages: TranslationMessages = {
'eventList.region.filter.notes': '音符',
'eventList.region.filter.pitchBends': '彎音',
'eventList.region.filter.controller': '控制器',
- 'eventList.region.empty': '請選擇一個 MIDI 區域,或先在鋼琴卷簾中打開一個區域,再查看事件列表。',
- 'eventList.region.add.label': '添加',
- 'eventList.region.add.noteTitle': '在播放頭位置添加音符',
- 'eventList.region.add.pitchBendTitle': '在播放頭位置添加彎音',
- 'eventList.region.add.controllerTitle': '在播放頭位置添加控制器事件',
+ 'eventList.region.empty': '請選擇一個 MIDI 區域,或先在 Piano Roll 中開啟一個區域,再查看事件列表。',
+ 'eventList.region.add.label': '新增',
+ 'eventList.region.add.noteTitle': '在播放頭位置新增音符',
+ 'eventList.region.add.pitchBendTitle': '在播放頭位置新增彎音',
+ 'eventList.region.add.controllerTitle': '在播放頭位置新增控制器事件',
'eventList.region.addType.note': '音符',
'eventList.region.addType.pitchBend': '彎音',
'eventList.region.addType.controller': '控制器',
@@ -215,25 +215,25 @@ export const zhHkMessages: TranslationMessages = {
'eventList.track.filter.volume': '音量',
'eventList.track.filter.pan': '聲像',
'eventList.track.empty': '請選擇一條音軌以查看區域和音軌自動化。',
- 'eventList.track.add.label': '添加',
- 'eventList.track.add.midiRegionTitle': '在播放頭位置添加 MIDI 區域',
- 'eventList.track.add.volumeTitle': '在播放頭位置添加音量自動化點',
- 'eventList.track.add.panTitle': '在播放頭位置添加聲像自動化點',
+ 'eventList.track.add.label': '新增',
+ 'eventList.track.add.midiRegionTitle': '在播放頭位置新增 MIDI 區域',
+ 'eventList.track.add.volumeTitle': '在播放頭位置新增音量自動化點',
+ 'eventList.track.add.panTitle': '在播放頭位置新增聲像自動化點',
'eventList.track.addType.midiRegion': 'MIDI 區域',
- 'eventList.track.status.audio': '音頻',
+ 'eventList.track.status.audio': '音訊',
'eventList.track.status.midi': 'MIDI',
'eventList.track.status.volume': '音量',
'eventList.track.status.pan': '聲像',
- 'eventList.global.filters': '全局事件篩選',
+ 'eventList.global.filters': '全域事件篩選',
'eventList.global.filter.marker': '標記',
'eventList.global.filter.tempo': '速度',
'eventList.global.filter.keySignature': '調號',
'eventList.global.filter.chord': '和弦',
- 'eventList.global.add.label': '添加',
- 'eventList.global.add.markerTitle': '在播放頭位置添加標記區段',
- 'eventList.global.add.tempoTitle': '在播放頭位置添加速度區段',
- 'eventList.global.add.keySignatureTitle': '在播放頭位置添加調號區段',
- 'eventList.global.add.chordTitle': '在播放頭位置添加和弦區段',
+ 'eventList.global.add.label': '新增',
+ 'eventList.global.add.markerTitle': '在播放頭位置新增標記區段',
+ 'eventList.global.add.tempoTitle': '在播放頭位置新增速度區段',
+ 'eventList.global.add.keySignatureTitle': '在播放頭位置新增調號區段',
+ 'eventList.global.add.chordTitle': '在播放頭位置新增和弦區段',
'eventList.global.addType.marker': '標記',
'eventList.global.addType.tempo': '速度',
'eventList.global.addType.keySignature': '調號',
@@ -246,16 +246,16 @@ export const zhHkMessages: TranslationMessages = {
'eventList.global.validation.tempo': '請輸入僅包含數字的 BPM 值。需要介於 {min} 和 {max} 之間的整數。示例:128',
'eventList.global.validation.keySignature': '請輸入一個精確的調號名稱。需要規範值,例如 "C major" 或 "F# minor"。示例:F# minor',
'eventList.global.validation.chord': '請輸入有效的和弦符號。需要應用可解析的和弦表示。示例:Bm7b5',
- 'eventList.global.validation.position': '請輸入項目起點或之後的位置。需要非負位置。示例:1 1 0',
+ 'eventList.global.validation.position': '請輸入專案起點或之後的位置。需要非負位置。示例:1 1 0',
'eventList.global.validation.length': '請輸入正長度。需要大於零的時值。示例:4 0',
- 'globalTracks.label': '全局軌道',
+ 'globalTracks.label': '全域軌道',
'globalTracks.marker': '標記',
'globalTracks.tempo': '速度',
'globalTracks.signature': '調號',
'globalTracks.chord': '和弦',
- 'globalTracks.addItem': '添加 {label} 全局軌道項目',
+ 'globalTracks.addItem': '新增 {label} 全域軌道項目',
'pianoRoll.power.linear': '線性',
- 'pianoRoll.power.sqrtDefault': '√(默認)',
+ 'pianoRoll.power.sqrtDefault': '√(預設)',
'pianoRoll.power.mild': '輕度',
'pianoRoll.power.strong': '強烈',
'pianoRoll.chordGuide.off': '關閉和弦指導',
@@ -407,42 +407,42 @@ export const zhHkMessages: TranslationMessages = {
'percussion.full.79': '開庫卡',
'percussion.full.80': '悶三角鐵',
'percussion.full.81': '開三角鐵',
- 'toolbar.export.kgstudio': '導出為 KGStudio 文件',
- 'toolbar.export.midi': '導出為 MIDI 文件',
- 'toolbar.export.wav': '導出為 WAV',
- 'toolbar.export.mp3': '導出為 MP3',
- 'toolbar.projectName.prompt': '輸入項目名稱:',
- 'toolbar.projectName.invalid': '無效的項目名稱。只允許字母、數字、空格、連字符、下劃線、句點和括號。',
- 'toolbar.projectName.reserved': '"{name}" 是保留項目名稱。請選擇其他名稱。',
- 'toolbar.projectName.overwrite': '項目 "{name}" 已存在。要覆蓋它嗎?',
- 'toolbar.projectName.renameOrCopy': '您想重命名這個項目,還是另存為一個副本?',
+ 'toolbar.export.kgstudio': '匯出為 KGStudio 檔案',
+ 'toolbar.export.midi': '匯出為 MIDI 檔案',
+ 'toolbar.export.wav': '匯出為 WAV',
+ 'toolbar.export.mp3': '匯出為 MP3',
+ 'toolbar.projectName.prompt': '輸入專案名稱:',
+ 'toolbar.projectName.invalid': '無效的專案名稱。只允許字母、數字、空格、連字符、底線、句點和括號。',
+ 'toolbar.projectName.reserved': '"{name}" 是保留專案名稱。請選擇其他名稱。',
+ 'toolbar.projectName.overwrite': '專案 "{name}" 已存在。要覆寫它嗎?',
+ 'toolbar.projectName.renameOrCopy': '您想重新命名這個專案,還是另存為副本?',
'toolbar.projectName.saveAsCopy': '另存為副本',
'toolbar.projectName.rename': '重命名',
- 'toolbar.save.error': '保存時發生錯誤:{error}',
- 'toolbar.load.error': '加載項目時發生錯誤:{error}',
- 'toolbar.newProject.confirm': '確定要創建新項目嗎?當前未保存的更改將會丟失。',
- 'toolbar.project.notFound': '未找到項目 "{name}"。',
- 'toolbar.openProject.confirm': '要打開這個項目嗎?當前項目中未保存的更改將會丟失。',
- 'toolbar.status.loadFailed': '加載項目失敗:{error}',
- 'toolbar.status.newProjectCreated': '已創建新項目 "{name}"',
- 'toolbar.status.projectLoaded': '{description} 加載成功',
- 'toolbar.status.projectExportedKgstudio': '項目 "{name}" 已導出為 KGStudio 文件',
- 'toolbar.status.exportProjectError': '導出項目出錯:{error}',
- 'toolbar.export.failedProject': '導出項目失敗:{error}',
- 'toolbar.status.projectExportedMidi': '項目 "{name}" 已導出為 MIDI 文件',
- 'toolbar.status.exportMidiError': '導出 MIDI 出錯:{error}',
- 'toolbar.export.failedMidi': '導出項目為 MIDI 失敗:{error}',
- 'toolbar.status.projectExportedWav': '項目 "{name}" 已導出為 WAV 文件',
- 'toolbar.status.exportWavError': '導出 WAV 出錯:{error}',
- 'toolbar.export.failedWav': '導出項目為 WAV 失敗:{error}',
- 'toolbar.status.projectExportedMp3': '項目 "{name}" 已導出為 MP3 文件',
- 'toolbar.status.exportMp3Error': '導出 MP3 出錯:{error}',
- 'toolbar.export.failedMp3': '導出項目為 MP3 失敗:{error}',
- 'toolbar.status.importFailed': '導入文件失敗:{error}',
- 'toolbar.import.failedProjectFile': '導入項目文件失敗:{error}',
- 'toolbar.import.corruptedKgstudio': '.kgstudio 文件已損壞或無效:{error}',
- 'toolbar.status.importingMidi': '正在導入 MIDI 文件 "{name}"...',
- 'toolbar.status.failedImportMidi': '導入 MIDI 文件失敗:{error}',
+ 'toolbar.save.error': '儲存時發生錯誤:{error}',
+ 'toolbar.load.error': '載入專案時發生錯誤:{error}',
+ 'toolbar.newProject.confirm': '確定要建立新專案嗎?目前未儲存的更改將會遺失。',
+ 'toolbar.project.notFound': '找不到專案 "{name}"。',
+ 'toolbar.openProject.confirm': '要開啟這個專案嗎?目前專案中未儲存的更改將會遺失。',
+ 'toolbar.status.loadFailed': '載入專案失敗:{error}',
+ 'toolbar.status.newProjectCreated': '已建立新專案 "{name}"',
+ 'toolbar.status.projectLoaded': '{description} 載入成功',
+ 'toolbar.status.projectExportedKgstudio': '專案 "{name}" 已匯出為 KGStudio 檔案',
+ 'toolbar.status.exportProjectError': '匯出專案時發生錯誤:{error}',
+ 'toolbar.export.failedProject': '匯出專案失敗:{error}',
+ 'toolbar.status.projectExportedMidi': '專案 "{name}" 已匯出為 MIDI 檔案',
+ 'toolbar.status.exportMidiError': '匯出 MIDI 時發生錯誤:{error}',
+ 'toolbar.export.failedMidi': '匯出專案為 MIDI 失敗:{error}',
+ 'toolbar.status.projectExportedWav': '專案 "{name}" 已匯出為 WAV 檔案',
+ 'toolbar.status.exportWavError': '匯出 WAV 時發生錯誤:{error}',
+ 'toolbar.export.failedWav': '匯出專案為 WAV 失敗:{error}',
+ 'toolbar.status.projectExportedMp3': '專案 "{name}" 已匯出為 MP3 檔案',
+ 'toolbar.status.exportMp3Error': '匯出 MP3 時發生錯誤:{error}',
+ 'toolbar.export.failedMp3': '匯出專案為 MP3 失敗:{error}',
+ 'toolbar.status.importFailed': '匯入檔案失敗:{error}',
+ 'toolbar.import.failedProjectFile': '匯入專案檔案失敗:{error}',
+ 'toolbar.import.corruptedKgstudio': '.kgstudio 檔案已損壞或無效:{error}',
+ 'toolbar.status.importingMidi': '正在匯入 MIDI 檔案 "{name}"...',
+ 'toolbar.status.failedImportMidi': '匯入 MIDI 檔案失敗:{error}',
'toolbar.status.playbackFailedStart': '播放啟動失敗',
'toolbar.status.recordingStoppedCommitted': '錄音已停止 - 音符已提交',
'toolbar.status.failedStopPlayback': '停止播放失敗',
@@ -453,44 +453,44 @@ export const zhHkMessages: TranslationMessages = {
'toolbar.bpm.prompt': '輸入新的 BPM({min}-{max}):',
'toolbar.bpm.invalid': 'BPM 無效。請輸入 {min} 到 {max} 之間的值。',
'toolbar.status.bpmChanged': 'BPM 已改為 {value}',
- 'toolbar.timeSignature.prompt': '設置拍號:',
+ 'toolbar.timeSignature.prompt': '設定拍號:',
'toolbar.status.timeSignatureChanged': '拍號已改為 {value}',
'toolbar.status.keySignatureChanged': '調號已改為 {value}',
- 'toolbar.status.copied': '項目已複製到剪貼板',
- 'toolbar.status.copyNone': '沒有可複製的已選項目',
- 'toolbar.status.pasted': '已從剪貼板粘貼項目',
- 'toolbar.status.pasteFailed': '無法粘貼 - 沒有有效的剪貼板內容或上下文',
+ 'toolbar.status.copied': '專案已複製到剪貼簿',
+ 'toolbar.status.copyNone': '沒有可複製的已選專案',
+ 'toolbar.status.pasted': '已從剪貼簿貼上專案',
+ 'toolbar.status.pasteFailed': '無法貼上,沒有有效的剪貼簿內容或上下文',
'toolbar.status.deleted': '已刪除所選區域',
- 'toolbar.status.deleteNone': '沒有選中可刪除的區域',
+ 'toolbar.status.deleteNone': '沒有已選取且可刪除的區域',
'toolbar.undo.none': '沒有可撤銷的操作',
'toolbar.redo.none': '沒有可重做的操作',
'toolbar.status.undid': '已撤銷:{description}',
'toolbar.status.redid': '已重做:{description}',
'toolbar.action': '操作',
- 'toolbar.status.chatToggled': '聊天窗口已切換',
- 'toolbar.status.settingsToggled': '設置面板已切換',
- 'toolbar.pianoRoll.selectMidiRegion': '請先選擇一個 MIDI 區域再打開鋼琴卷簾。',
+ 'toolbar.status.chatToggled': '聊天視窗已切換',
+ 'toolbar.status.settingsToggled': '設定面板已切換',
+ 'toolbar.pianoRoll.selectMidiRegion': '請先選擇一個 MIDI 區域,再開啟 Piano Roll。',
'toolbar.status.recordingStopped': '錄音已停止',
- 'toolbar.status.audioRecordingStarted': '音頻錄音已開始...',
- 'toolbar.recording.openMidiRegion': '開始錄音前,請先在鋼琴卷簾中打開一個 MIDI 區域。',
+ 'toolbar.status.audioRecordingStarted': '音訊錄音已開始...',
+ 'toolbar.recording.openMidiRegion': '開始錄音前,請先在 Piano Roll 中開啟一個 MIDI 區域。',
'toolbar.recording.selectMidiRegion': '開始錄音前,請先選擇一個 MIDI 區域。',
- 'toolbar.recording.noMidiDevice': '未檢測到 MIDI 設備。請連接 MIDI 鍵盤後重試。',
+ 'toolbar.recording.noMidiDevice': '未檢測到 MIDI 裝置。請連接 MIDI 鍵盤後重試。',
'toolbar.status.recordingStarted': '錄音已開始...',
'toolbar.button.new': '新建',
- 'toolbar.button.load': '打開',
- 'toolbar.button.save': '保存',
- 'toolbar.button.export': '導出',
- 'toolbar.button.import': '導入',
- 'toolbar.button.settings': '設置',
+ 'toolbar.button.load': '開啟',
+ 'toolbar.button.save': '儲存',
+ 'toolbar.button.export': '匯出',
+ 'toolbar.button.import': '匯入',
+ 'toolbar.button.settings': '設定',
'toolbar.button.undo': '撤銷',
'toolbar.button.redo': '重做',
'toolbar.button.select': '選擇',
'toolbar.button.pencil': '鉛筆',
'toolbar.button.splitRegion': '在播放頭處分割區域',
- 'toolbar.button.mergeRegions': '合併選中的 MIDI 區域',
+ 'toolbar.button.mergeRegions': '合併已選取的 MIDI 區域',
'toolbar.button.snapToGrid': '吸附到網格',
'toolbar.button.copy': '複製',
- 'toolbar.button.paste': '粘貼',
+ 'toolbar.button.paste': '貼上',
'toolbar.button.delete': '刪除',
'toolbar.button.backToBeginning': '回到開頭',
'toolbar.button.play': '播放',
@@ -507,18 +507,18 @@ export const zhHkMessages: TranslationMessages = {
'track.controls.automationDropdown': '自動化',
'track.controls.automation.volume': '音量',
'track.controls.automation.pan': '聲像',
- 'track.controls.settingsDropdown': '設置',
+ 'track.controls.settingsDropdown': '設定',
'track.controls.settings.deleteTrack': '刪除音軌',
'toolbar.keySignatureChooser': '選擇調號,當前為 {value}',
- 'toolbar.export.label': '導出',
- 'toolbar.importProject.title': '導入項目',
- 'toolbar.importProject.description': '將項目文件拖放到這裡',
- 'toolbar.openingProject': '正在打開項目...',
- 'fileImport.invalidType': '文件類型無效。請選擇以下擴展名之一的文件:{extensions}',
- 'fileImport.close': '關閉導入彈窗',
- 'fileImport.supportedFormats': '支持的格式:{formats}',
+ 'toolbar.export.label': '匯出',
+ 'toolbar.importProject.title': '匯入專案',
+ 'toolbar.importProject.description': '將專案檔案拖放到這裡',
+ 'toolbar.openingProject': '正在開啟專案...',
+ 'fileImport.invalidType': '檔案類型無效。請選擇以下副檔名之一的檔案:{extensions}',
+ 'fileImport.close': '關閉匯入彈窗',
+ 'fileImport.supportedFormats': '支援的格式:{formats}',
'fileImport.or': '或',
- 'fileImport.browse': '瀏覽文件',
+ 'fileImport.browse': '瀏覽檔案',
'instrument.group.PIANO_AND_KEYBOARDS': '鋼琴與鍵盤',
'instrument.group.GUITAR': '吉他',
'instrument.group.BASS': '貝斯',
@@ -603,9 +603,9 @@ export const zhHkMessages: TranslationMessages = {
'kgone.tab.remix': '混音',
'kgone.tab.repaint': '重繪',
'kgone.tab.separator': '分離',
- 'kgone.tab.requiresServer': '需要 K.G.One Music Studio 服務器集成',
+ 'kgone.tab.requiresServer': '需要 K.G.One Music Studio 伺服器整合',
// Shared across tabs
- 'kgone.shared.advancedSettings': '高級設置',
+ 'kgone.shared.advancedSettings': '進階設定',
'kgone.shared.caption': '描述',
'kgone.shared.lyrics': '歌詞',
'kgone.shared.lyricsPlaceholder': '[Verse 1]\n在這裡輸入歌詞...\n\n[Chorus]\n...',
@@ -617,16 +617,16 @@ export const zhHkMessages: TranslationMessages = {
'kgone.shared.thinking': '思考模式(CoT 元數據生成)',
'kgone.shared.selectedRegion': '已選區域',
'kgone.shared.track': '音軌',
- 'kgone.shared.poweredBy': '技術支持:',
- 'kgone.shared.btn.loadingModel': '加載模型中...',
+ 'kgone.shared.poweredBy': '技術支援:',
+ 'kgone.shared.btn.loadingModel': '載入模型中...',
'kgone.shared.btn.generating': '生成中...',
'kgone.shared.btn.processing': '處理中...',
'kgone.shared.btn.downloading': '下載中...',
'kgone.shared.btn.preparingUpload': '準備上傳...',
- 'kgone.shared.btn.importing': '導入中...',
- 'kgone.shared.hint.loadingModel': '正在加載模型——此過程可能需要 60 秒以上,請耐心等待...',
+ 'kgone.shared.btn.importing': '匯入中...',
+ 'kgone.shared.hint.loadingModel': '正在載入模型,此過程可能需要 60 秒以上,請耐心等候...',
'kgone.shared.hint.submitting': '正在提交生成請求...',
- 'kgone.shared.hint.downloadingAudio': '正在下載音頻...',
+ 'kgone.shared.hint.downloadingAudio': '正在下載音訊...',
// Clip tab
'kgone.clip.field.prompt': '提示詞',
'kgone.clip.field.promptPlaceholder': '例:粗糙, 酸性, 貝斯線, 303, 合成主音, FM, 次低音, 中高頻, 高頻相位, 高頻混響, 彎音, 8小節, 140 BPM, E 小調',
@@ -649,7 +649,7 @@ export const zhHkMessages: TranslationMessages = {
'kgone.clip.field.sigmaMax': 'Sigma 最大值',
'kgone.clip.field.cfgRescale': 'CFG 重縮放',
'kgone.clip.hint.generating': '正在生成片段...',
- 'kgone.clip.hint.drag': '將上方播放器拖至音軌以導入片段。拖到音頻音軌可作為 WAV 區域導入(推薦),拖到MIDI 音軌可作為 MIDI 區域導入。注意:MIDI 是從音頻轉錄的,可能不完全準確。',
+ 'kgone.clip.hint.drag': '將上方播放器拖至音軌以匯入片段。拖到音訊音軌可作為 WAV 區域匯入(推薦),拖到MIDI 音軌可作為 MIDI 區域匯入。注意:MIDI 是從音訊轉錄而來,未必完全準確。',
'kgone.clip.btn.generate': '生成片段',
'kgone.clip.poweredBy': 'Foundation-1',
// Full Song tab
@@ -659,7 +659,7 @@ export const zhHkMessages: TranslationMessages = {
'kgone.fullSong.hint.generating': '生成中...',
'kgone.fullSong.hint.generatingProgress': '生成中... {pct}% — {stage}',
'kgone.fullSong.hint.generatingProgressNoStage': '生成中... {pct}%',
- 'kgone.fullSong.hint.drag': '將上方播放器拖至音頻音軌以導入歌曲。完整歌曲生成不支持拖至 MIDI 音軌。',
+ 'kgone.fullSong.hint.drag': '將上方播放器拖至音訊音軌以匯入歌曲。完整歌曲生成不支援拖至 MIDI 音軌。',
'kgone.fullSong.btn.generate': '生成歌曲',
'kgone.fullSong.poweredBy': 'ACE-Step 1.5',
// Remix tab
@@ -674,18 +674,18 @@ export const zhHkMessages: TranslationMessages = {
'kgone.remix.hint.generating': '正在生成混音...',
'kgone.remix.hint.generatingProgress': '正在生成混音... {pct}% — {stage}',
'kgone.remix.hint.generatingProgressNoStage': '正在生成混音... {pct}%',
- 'kgone.remix.hint.drag': '將上方播放器拖至音頻音軌以導入混音。',
- 'kgone.remix.hint.noRegion': '請在時間軸上選擇一個音頻區域以進行混音。僅支持音頻區域——MIDI 區域不可混音。',
+ 'kgone.remix.hint.drag': '將上方播放器拖至音訊音軌以匯入混音。',
+ 'kgone.remix.hint.noRegion': '請在時間軸上選擇一個音訊區域以進行混音。僅支援音訊區域,MIDI 區域不可混音。',
'kgone.remix.btn.generate': '生成混音',
'kgone.remix.btn.processingRemix': '處理混音中...',
- 'kgone.remix.btn.importAligned': '對齊源區域並導入',
+ 'kgone.remix.btn.importAligned': '對齊來源區域並匯入',
'kgone.remix.poweredBy': 'ACE-Step 1.5',
// Repaint tab
'kgone.repaint.field.repaintRange': '重繪範圍',
- 'kgone.repaint.field.loopModeOff': '循環模式已關閉。請啟用工具欄上的循環按鈕並設置循環範圍以定義重繪窗口。',
+ 'kgone.repaint.field.loopModeOff': '循環模式已關閉。請啟用工具列上的循環按鈕並設定循環範圍,以定義重繪視窗。',
'kgone.repaint.field.start': '開始',
'kgone.repaint.field.end': '結束',
- 'kgone.repaint.field.untilEnd': '直至音頻末尾',
+ 'kgone.repaint.field.untilEnd': '直到音訊結尾',
'kgone.repaint.field.captionPlaceholder': '例:風格:爵士,感覺:流暢悠揚,編排:鋼琴、立式貝斯、刷式鼓...',
'kgone.repaint.field.captionHint': '描述重繪段落的目標風格和編排。',
'kgone.repaint.field.lyricsHint': '留空則保留原歌詞,或為重繪段落提供新歌詞。',
@@ -695,39 +695,39 @@ export const zhHkMessages: TranslationMessages = {
'kgone.repaint.hint.generating': '正在生成重繪...',
'kgone.repaint.hint.generatingProgress': '正在生成重繪... {pct}% — {stage}',
'kgone.repaint.hint.generatingProgressNoStage': '正在生成重繪... {pct}%',
- 'kgone.repaint.hint.drag': '將上方播放器拖至音頻音軌以導入重繪結果。',
- 'kgone.repaint.hint.noRegion': '請在時間軸上選擇一個音頻區域以進行重繪。僅支持音頻區域——MIDI 區域不可重繪。',
+ 'kgone.repaint.hint.drag': '將上方播放器拖至音訊音軌以匯入重繪結果。',
+ 'kgone.repaint.hint.noRegion': '請在時間軸上選擇一個音訊區域以進行重繪。僅支援音訊區域,MIDI 區域不可重繪。',
'kgone.repaint.btn.generate': '生成重繪',
'kgone.repaint.btn.processingRepaint': '處理重繪中...',
- 'kgone.repaint.btn.importAligned': '對齊源區域並導入',
+ 'kgone.repaint.btn.importAligned': '對齊來源區域並匯入',
'kgone.repaint.poweredBy': 'ACE-Step 1.5',
// Separator tab
'kgone.separator.field.separationModel': '分離模型',
- 'kgone.separator.field.chunkDuration': '可選音頻分塊時長(秒)',
+ 'kgone.separator.field.chunkDuration': '可選音訊分塊時長(秒)',
'kgone.separator.field.chunkDurationPlaceholder': '留空則處理整個區域',
'kgone.separator.field.modelOverlap': '模型重疊',
- 'kgone.separator.hint.drag': '將上方各音軌播放器拖至音頻音軌以導入。不支持拖至 MIDI 音軌進行音軌分離。',
- 'kgone.separator.hint.noRegion.download': '請下載 {model},然後在時間軸上選擇一個音頻區域以提取音軌。',
- 'kgone.separator.hint.noRegion.select': '請在時間軸上選擇一個音頻區域以提取音軌。僅支持音頻區域——MIDI 區域不可分離。',
+ 'kgone.separator.hint.drag': '將上方各音軌播放器拖至音訊音軌以匯入。不支援拖至 MIDI 音軌進行音軌分離。',
+ 'kgone.separator.hint.noRegion.download': '請下載 {model},然後在時間軸上選擇一個音訊區域以提取音軌。',
+ 'kgone.separator.hint.noRegion.select': '請在時間軸上選擇一個音訊區域以提取音軌。僅支援音訊區域,MIDI 區域不可分離。',
'kgone.separator.btn.separateStems': '分離音軌',
- 'kgone.separator.btn.importAllStems': '將所有音軌導入時間軸',
+ 'kgone.separator.btn.importAllStems': '將所有音軌匯入時間軸',
'kgone.separator.poweredBy': 'UVR5 CLI',
'kgone.separator.model.vocalInstMedium': '人聲與樂器(中等精度)',
'kgone.separator.model.vocalInstHigh': '人聲與樂器(高精度)',
'kgone.separator.model.6stem': '人聲、鼓、貝斯、吉他、鋼琴及其他',
'kgone.separator.model.htdemucs4s': '人聲、鼓、貝斯及其他',
- 'kgone.separator.btn.server.loadingModel': '加載模型中...',
+ 'kgone.separator.btn.server.loadingModel': '載入模型中...',
'kgone.separator.btn.server.generating': '準備上傳...',
'kgone.separator.btn.server.polling': '正在分離音軌...',
'kgone.separator.btn.server.downloading': '下載中...',
'kgone.separator.btn.local.loadingModel': '準備本地模型...',
- 'kgone.separator.btn.local.generating': '準備音頻...',
+ 'kgone.separator.btn.local.generating': '準備音訊...',
'kgone.separator.btn.local.polling': '本地分離中...',
'kgone.separator.btn.local.downloading': '收尾處理...',
'kgone.separator.local.title': '本地分離模式',
- 'kgone.separator.local.description': '如果 K.G.One Music Studio 不可用,本地分離模式提供了一種直接在瀏覽器中提取音軌的內置替代方案。提供兩種本地模型:人聲與樂器(中等精度),以及人聲、鼓、貝斯及其他。下方的下載狀態反映當前選定的模型。人聲與樂器(中等精度)的處理時間通常比人聲、鼓、貝斯及其他更長,總處理時間仍取決於您的硬件配置。如果處理回退至 CPU,分離運行期間頁面響應可能暫時變慢。',
- 'kgone.separator.local.learnMore': '了解更多關於 K.G.One Music Studio 服務器集成的信息。',
- 'kgone.separator.local.provider': '當前設備:',
+ 'kgone.separator.local.description': '如果 K.G.One Music Studio 不可用,本地分離模式提供一個可直接在瀏覽器中提取音軌的內建替代方案。提供兩種本地模型:人聲與樂器(中等精度),以及人聲、鼓、貝斯及其他。下方的下載狀態反映目前選定的模型。人聲與樂器(中等精度)的處理時間通常比人聲、鼓、貝斯及其他更長,總處理時間仍取決於您的硬體配置。如果處理回退至 CPU,分離運行期間頁面回應可能會暫時變慢。',
+ 'kgone.separator.local.learnMore': '了解更多關於 K.G.One Music Studio 伺服器整合的資訊。',
+ 'kgone.separator.local.provider': '目前裝置:',
'kgone.separator.local.model': '模型:',
'kgone.separator.local.downloaded': '已下載',
'kgone.separator.local.notDownloaded': '未下載',
@@ -743,37 +743,37 @@ export const zhHkMessages: TranslationMessages = {
'kgone.separator.local.progress.downloadingMbOnly': '正在下載 {name}... {received} MB',
'kgone.separator.local.progress.ready': '{name} 已就緒。',
'kgone.separator.local.progress.preparingRuntime': '正在準備 ONNX 運行時環境...',
- 'kgone.separator.local.progress.readingAudio': '正在讀取音頻文件...',
+ 'kgone.separator.local.progress.readingAudio': '正在讀取音訊檔案...',
'kgone.separator.local.progress.running': '正在瀏覽器中執行分離...',
'kgone.separator.local.progress.complete': '分離完成。',
- 'openProjectModal.title': '打開項目',
+ 'openProjectModal.title': '開啟專案',
'openProjectModal.close': '關閉',
- 'openProjectModal.loading': '正在加載項目...',
+ 'openProjectModal.loading': '正在載入專案...',
'openProjectModal.date.unknown': '未知',
- 'openProjectModal.filter.placeholder': '篩選項目...',
- 'openProjectModal.viewToggle.projects': '項目',
+ 'openProjectModal.filter.placeholder': '篩選專案...',
+ 'openProjectModal.viewToggle.projects': '專案',
'openProjectModal.viewToggle.trash': '回收站',
- 'openProjectModal.trash.hint': '已刪除的項目將在 30 天後自動移除。',
+ 'openProjectModal.trash.hint': '已刪除的專案將在 30 天後自動移除。',
'openProjectModal.sort.name': '名稱',
- 'openProjectModal.sort.created': '創建時間',
+ 'openProjectModal.sort.created': '建立時間',
'openProjectModal.sort.updated': '更新時間',
'openProjectModal.empty.trash': '回收站為空',
- 'openProjectModal.empty.noProjects': '暫無已保存的項目',
- 'openProjectModal.empty.noMatch': '沒有符合篩選條件的項目',
- 'openProjectModal.meta.created': '創建於 {date}',
+ 'openProjectModal.empty.noProjects': '暫無已儲存的專案',
+ 'openProjectModal.empty.noMatch': '沒有符合篩選條件的專案',
+ 'openProjectModal.meta.created': '建立於 {date}',
'openProjectModal.meta.updated': '更新於 {date}',
'openProjectModal.meta.deleted': '刪除於 {date}',
- 'openProjectModal.action.open': '打開',
+ 'openProjectModal.action.open': '開啟',
'openProjectModal.action.duplicate': '複製',
'openProjectModal.action.delete': '刪除',
- 'openProjectModal.action.restore': '恢復',
+ 'openProjectModal.action.restore': '還原',
'openProjectModal.action.deletePermanently': '永久刪除',
- 'openProjectModal.dialog.duplicateName': '請輸入複製項目的名稱:',
- 'openProjectModal.dialog.invalidName': '項目名稱無效。只允許使用字母、數字、空格、連字符、下劃線、句號和括號。',
- 'openProjectModal.dialog.duplicateError': '複製項目失敗:{error}',
- 'openProjectModal.dialog.deleteError': '刪除項目失敗:{error}',
- 'openProjectModal.dialog.restoreError': '恢復項目失敗:{error}',
+ 'openProjectModal.dialog.duplicateName': '請輸入複製專案的名稱:',
+ 'openProjectModal.dialog.invalidName': '專案名稱無效。只允許使用字母、數字、空格、連字符、底線、句號和括號。',
+ 'openProjectModal.dialog.duplicateError': '複製專案失敗:{error}',
+ 'openProjectModal.dialog.deleteError': '刪除專案失敗:{error}',
+ 'openProjectModal.dialog.restoreError': '還原專案失敗:{error}',
'openProjectModal.dialog.confirmPermanentDelete': '確定要永久刪除"{name}"嗎?\n\n此操作無法撤銷。',
- 'openProjectModal.dialog.permanentDeleteError': '永久刪除項目失敗:{error}',
+ 'openProjectModal.dialog.permanentDeleteError': '永久刪除專案失敗:{error}',
};