Skip to content

Commit 8b00007

Browse files
authored
Merge pull request #22 from aiexkwan/feat/add-traditional-chinese-i18n
feat(i18n): add Traditional Chinese (zh-TW) language support
2 parents 1a2157e + d10bd2b commit 8b00007

4 files changed

Lines changed: 962 additions & 8 deletions

File tree

Lines changed: 377 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,377 @@
1+
/* AgentPet , 正體中文 */
2+
3+
/* Tabs */
4+
"General" = "通用";
5+
"Pet" = "寵物";
6+
"Bubble" = "氣泡";
7+
"About" = "關於";
8+
9+
/* General / common */
10+
"Launch" = "啟動";
11+
"Launch at login" = "登入時啟動";
12+
"AgentPet starts automatically when you sign in." = "登入時自動啟動 AgentPet。";
13+
"Notifications" = "通知";
14+
"Show chat bubble" = "顯示聊天氣泡";
15+
"Messages" = "訊息";
16+
"System" = "系統";
17+
"Custom" = "自定義";
18+
"One message per line; a random one is shown." = "每行一句;隨機顯示其中一句。";
19+
"Reset to defaults" = "恢復預設";
20+
"Reset to default" = "恢復預設";
21+
"Sounds" = "聲音";
22+
"Agent integrations" = "Agent 整合";
23+
"Hook installed" = "已安裝 Hook";
24+
"Coming soon" = "即將推出";
25+
"Enable" = "啟用";
26+
"Open Settings" = "開啟設定";
27+
"Quit AgentPet" = "退出 AgentPet";
28+
"Upload…" = "上傳…";
29+
"Default" = "預設";
30+
"Working" = "工作中";
31+
"Waiting" = "等待中";
32+
"Done" = "完成";
33+
"Celebrate" = "慶祝";
34+
"Idle" = "空閒";
35+
36+
/* Bubble tab */
37+
"Bubble mode" = "氣泡模式";
38+
"Multi-agent bubble" = "多 Agent 氣泡";
39+
"Structured rows with icons, state dots, and activity messages." = "帶圖示、狀態點和活動訊息的結構化行。";
40+
"Appearance" = "外觀";
41+
"Theme" = "主題";
42+
"Font size" = "字號";
43+
"Opacity" = "不透明度";
44+
"Show idle message" = "顯示空閒訊息";
45+
"The pet's chatter while no agent is running." = "沒有 Agent 執行時寵物的碎碎念。";
46+
"Display" = "顯示";
47+
"Rows" = "行";
48+
"Sessions" = "會話";
49+
"Filter" = "篩選";
50+
"Include states" = "包含狀態";
51+
"Which session states appear in the bubble." = "氣泡中顯示哪些會話狀態。";
52+
"Visible agents" = "可見 Agent";
53+
"Row content" = "行內容";
54+
"Preview" = "預覽";
55+
"Presets" = "預設";
56+
"Original" = "原始";
57+
"Standard" = "標準";
58+
"Detailed" = "詳細";
59+
"Tap a chip above to add tokens" = "點選上方的標籤新增元素";
60+
"All tokens are in use" = "所有元素都已使用";
61+
"Preview updates as you add, remove, or reorder tokens below." = "在下方新增、刪除或重新排序元素時,預覽會實時更新。";
62+
"Style" = "樣式";
63+
"Separator" = "分隔符";
64+
"State dot" = "狀態點";
65+
"Agent icons" = "Agent 圖示";
66+
"Brand logos" = "品牌標誌";
67+
"SF Symbols" = "SF Symbols";
68+
"Change…" = "更改…";
69+
"Activity messages" = "活動訊息";
70+
"Vocabulary" = "詞彙風格";
71+
"Bubble messages" = "氣泡訊息";
72+
"Simple bubble" = "簡單氣泡";
73+
"All agents" = "所有 Agent";
74+
"Turn on multi-agent bubble above for per-agent rows with icons and activity." = "開啟上方的多 Agent 氣泡,即可為每個 Agent 顯示帶圖示和活動的獨立行。";
75+
76+
/* About & Pet tab */
77+
"A desktop pet that watches your AI coding agents." = "盯著你的 AI 編碼 Agent 的桌面寵物。";
78+
"Star on GitHub" = "在 GitHub 上點亮 Star";
79+
"Join the Discord" = "加入 Discord";
80+
"Buy me a coffee" = "請我喝杯咖啡";
81+
"If AgentPet helps your workflow, a star means a lot. Thank you!" = "如果 AgentPet 幫到了你,點個 Star 意義非凡。謝謝!";
82+
"Author" = "作者";
83+
"Version" = "版本";
84+
"Choose pet" = "選擇寵物";
85+
"Animations" = "動畫";
86+
"Size on screen" = "螢幕上的大小";
87+
"Browse pets…" = "瀏覽寵物…";
88+
"Create pet…" = "建立寵物…";
89+
"No pets yet. Tap Browse to add one." = "還沒有寵物。點選“瀏覽”來新增。";
90+
"Hover a clip to preview it." = "將滑鼠懸停在片段上即可預覽。";
91+
"No pet selected" = "未選擇寵物";
92+
"State" = "狀態";
93+
"Pick a pet in the Pet tab" = "在“寵物”標籤中選擇一隻寵物";
94+
95+
/* Bubble pickers / tokens */
96+
"All rows" = "全部行";
97+
"Carousel" = "輪播";
98+
"Compact" = "緊湊";
99+
"All sessions" = "所有會話";
100+
"Grouped by agent" = "按 Agent 分組";
101+
"All states" = "所有狀態";
102+
"Done and above" = "完成及以上";
103+
"Working & Waiting" = "工作中和等待中";
104+
"Working only" = "僅工作中";
105+
"One row at a time. Auto-cycles every 3 s — swipe or drag to browse." = "每次一行,每 3 秒自動輪換,可滑動或拖動瀏覽。";
106+
"One row per agent kind (×N when multiple)" = "每種 Agent 一行(多個時顯示 ×N)";
107+
"One row per session" = "每個會話一行";
108+
"Show every row at once, up to the max below." = "一次顯示所有行,上限見下方。";
109+
"Summary header, first two rows, then fold the rest." = "摘要標題、前兩行,其餘摺疊。";
110+
"Plain dot" = "普通圓點";
111+
"Claude style" = "Claude 風格";
112+
"Flat color-coded circle" = "扁平彩色圓點";
113+
"Spinning ✻ asterisk while active" = "活動時旋轉的 ✻ 星號";
114+
"Agent icon" = "Agent 圖示";
115+
"Chat title" = "聊天標題";
116+
"Project folder" = "專案資料夾";
117+
"Activity message" = "活動訊息";
118+
"State label" = "狀態標籤";
119+
"Elapsed time" = "已用時間";
120+
"Title" = "標題";
121+
"Project" = "專案";
122+
"Message" = "訊息";
123+
"Elapsed" = "耗時";
124+
"Icon" = "圖示";
125+
"Dot" = "圓點";
126+
127+
/* Theme & activity vocabulary names */
128+
"Light" = "淺色";
129+
"Dark" = "深色";
130+
"Chef" = "廚師";
131+
"Engineer" = "工程師";
132+
"Wizard" = "巫師";
133+
"Explorer" = "探險家";
134+
"Scientist" = "科學家";
135+
136+
/* Demo panel, notifications, sounds, footers */
137+
"Live preview" = "實時預覽";
138+
"Hide live preview" = "隱藏實時預覽";
139+
"Fire webhooks for many agents with your current settings" = "用當前設定為多個 Agent 觸發 webhook";
140+
"Add webhook" = "新增 Webhook";
141+
"Add" = "新增";
142+
"Quick scenarios" = "快捷場景";
143+
"Spawn 3 working" = "生成 3 個工作中";
144+
"Finish all" = "全部完成";
145+
"Clear all" = "清除全部";
146+
"Active webhooks" = "活動 Webhook";
147+
"No webhooks yet. Add one from the right →" = "還沒有 Webhook。從右側新增 →";
148+
"Preview mood" = "預覽狀態";
149+
"Shows your Simple-bubble message for each state." = "顯示每個狀態下你的簡單氣泡訊息。";
150+
"Add agents here, then change each webhook's state or delete it in the list on the left." = "在此新增 Agent,然後在左側列表中更改各 Webhook 的狀態或刪除它。";
151+
"Turn on Multi-agent bubble to add agents here. In Simple mode, use the Preview mood buttons on the left." = "開啟多 Agent 氣泡以在此新增 Agent。簡單模式下,請使用左側的預覽狀態按鈕。";
152+
"Webhooks are for the multi-agent bubble." = "Webhook 用於多 Agent 氣泡。";
153+
"Notifications on" = "通知已開啟";
154+
"Notifications muted" = "通知已靜音";
155+
"Notifications denied" = "通知被拒絕";
156+
"Notifications unavailable" = "通知不可用";
157+
"Enable notifications" = "啟用通知";
158+
"Available once installed as AgentPet.app" = "以 AgentPet.app 安裝後可用";
159+
"Turn on in System Settings to get alerts" = "在系統設定中開啟以接收提醒";
160+
"Alerts when an agent finishes or needs input" = "Agent 完成或需要輸入時提醒";
161+
"Muted, the toggle turns alerts back on" = "已靜音,撥動開關重新開啟提醒";
162+
"When an agent finishes" = "當 Agent 完成時";
163+
"When an agent needs input" = "當 Agent 需要輸入時";
164+
"Per-agent overrides win over \"All agents\". A custom line replaces the live/theme text and the real pet honours it." = "針對單個 Agent 的設定優先於\"所有 Agent\"。自定義文案會替換實時/主題文字,真實寵物也會生效。";
165+
"Whimsical phrases shown while agents work, e.g. \"Brewing…\" or \"Compiling…\"." = "Agent 工作時顯示的趣味短語,例如 \"Brewing…\" 或 \"Compiling…\"。";
166+
167+
/* Pet chat & idle messages */
168+
"Thinking…" = "思考中…";
169+
"Working on it…" = "處理中…";
170+
"On it!" = "馬上做!";
171+
"Crunching code…" = "埋頭敲程式碼…";
172+
"Hmm, let me see…" = "嗯,讓我看看…";
173+
"Cooking something up…" = "正在醞釀…";
174+
"Deep in thought…" = "陷入沉思…";
175+
"Brain go brrr…" = "大腦高速運轉…";
176+
"Almost there…" = "快好了…";
177+
"Wiring it up…" = "正在接線…";
178+
"I need you!" = "需要你!";
179+
"Your turn 👀" = "該你了 👀";
180+
"Waiting on you…" = "在等你…";
181+
"Can you check this?" = "能幫我看看這個嗎?";
182+
"Psst, need input!" = "嘿,需要你的輸入!";
183+
"Awaiting orders…" = "等待指令…";
184+
"Help me out?" = "幫幫我?";
185+
"Stuck, need you!" = "卡住了,需要你!";
186+
"All done! ✅" = "全部完成!✅";
187+
"Finished!" = "完成!";
188+
"Ta-da!" = "噠噠!";
189+
"Done and dusted!" = "大功告成!";
190+
"Nailed it!" = "搞定!";
191+
"That's a wrap!" = "收工!";
192+
"Mission complete!" = "任務完成!";
193+
"🎉 Woohoo!" = "🎉 哇哦!";
194+
"We did it!" = "我們做到了!";
195+
"Victory!" = "勝利!";
196+
"Yesss!" = "太棒了!";
197+
"High five! 🙌" = "擊掌!🙌";
198+
"Champion!" = "冠軍!";
199+
"Let's grill some bugs." = "來抓幾隻 bug 吧。";
200+
"I miss you. Open a branch for me." = "想你了,給我開個分支吧。";
201+
"Tiny commit, tiny dopamine." = "小提交,小確幸。";
202+
"The build is quiet. Too quiet." = "構建很安靜,安靜得可疑。";
203+
"Ship something small. Future you is watching." = "釋出點小東西吧,未來的你正看著呢。";
204+
"Your TODOs are pretending not to see us." = "你的 TODO 正假裝沒看見我們。";
205+
"No agents running. The keyboard has entered standby drama." = "沒有 Agent 在跑,鍵盤開始上演待機大戲。";
206+
"Turn coffee into code. Carefully." = "把咖啡變成程式碼,小心點。";
207+
"Open one file. Intimidate it professionally." = "開啟一個檔案,專業地震懾它。";
208+
"The repo is calm. Suspicious, but calm." = "倉庫很平靜。可疑,但平靜。";
209+
"Refactor lightly. Leave with dignity." = "輕輕重構,體面收場。";
210+
"One clean diff can fix the whole afternoon." = "一個乾淨的 diff 能救活整個下午。";
211+
"Waiting for your input" = "等待你的輸入";
212+
"Your turn — over to you" = "輪到你了";
213+
"Needs your input" = "需要你的輸入";
214+
215+
/* App language picker */
216+
"Language" = "語言";
217+
218+
/* App: onboarding, create-pet, browser, menu */
219+
"A desktop pet that watches your AI coding agents. Two quick steps to get going." = "盯著你的 AI 編碼 Agent 的桌面寵物。兩步即可開始。";
220+
"Added" = "已新增";
221+
"Browse pets" = "瀏覽寵物";
222+
"Cancel" = "取消";
223+
"Category" = "分類";
224+
"Choose image…" = "選擇圖片…";
225+
"Community" = "社群";
226+
"Create" = "建立";
227+
"Create pet" = "建立寵物";
228+
"Get alerted when an agent finishes or needs input." = "Agent 完成或需要輸入時收到提醒。";
229+
"Get started" = "開始";
230+
"Install a hook so AgentPet can see when an agent works, finishes, or needs you." = "安裝 hook,讓 AgentPet 知道 Agent 何時工作、完成或需要你。";
231+
"Loading pets…" = "正在載入寵物…";
232+
"Nothing running right now." = "當前沒有執行中的 Agent。";
233+
"Pet info" = "寵物資訊";
234+
"Pet size" = "寵物大小";
235+
"Retry" = "重試";
236+
"Sort by agent kind" = "按 Agent 型別排序";
237+
"Spritesheet" = "精靈圖";
238+
"Use the same 8×9 transparent spritesheet format as downloaded pets." = "使用與下載寵物相同的 8×9 透明精靈圖格式。";
239+
"Welcome to AgentPet" = "歡迎使用 AgentPet";
240+
241+
/* Codex connection help */
242+
"Connect Codex" = "連線 Codex";
243+
"The hook is installed. Codex blocks unknown command hooks until you trust them once , a Codex security feature, not an AgentPet bug. Do this one time:" = "Hook 已安裝。Codex 會攔截未知的命令 hook,直到你信任一次 , 這是 Codex 的安全機制,並非 AgentPet 的問題。只需操作一次:";
244+
"Open Terminal and run: codex (launches the Codex CLI)" = "開啟終端並執行:codex(啟動 Codex CLI)";
245+
"Type /hooks and press Enter to list the hooks." = "輸入 /hooks 並回車以列出 hook。";
246+
"Press t to Trust all hooks." = "按 t 鍵信任所有 hook。";
247+
"Quit and reopen Codex (both the CLI and the desktop app)." = "退出並重新開啟 Codex(CLI 和桌面應用都要)。";
248+
"Run any prompt , your pet now shows the Codex session." = "執行任意提示 , 寵物就會顯示 Codex 會話。";
249+
"Trust is shared, so trusting once in the CLI also covers the Codex desktop app. If /hooks shows nothing, add [features] hooks = true to ~/.codex/config.toml, then retry." = "信任是共享的,在 CLI 中信任一次,Codex 桌面應用也會生效。如果 /hooks 沒有任何內容,請在 ~/.codex/config.toml 中新增 [features] hooks = true 後重試。";
250+
"Codex hooks docs" = "Codex hooks 文件";
251+
"Got it" = "知道了";
252+
"How to connect Codex" = "如何連線 Codex";
253+
"Installed , needs a one-time trust (tap ?)" = "已安裝 , 需要一次性信任(點選 ?)";
254+
255+
/* Care (tamagotchi) */
256+
"Care" = "養成";
257+
"Companion" = "夥伴";
258+
"Hunger" = "飢餓度";
259+
"Today" = "今天";
260+
"Lifetime" = "累計";
261+
"Food sources" = "食物來源";
262+
"Hatchling" = "初生";
263+
"Scout" = "偵察兵";
264+
"Hero" = "英雄";
265+
"Legend" = "傳奇";
266+
"Full" = "吃飽了";
267+
"Satisfied" = "滿足";
268+
"Peckish" = "有點餓";
269+
"Hungry" = "餓了";
270+
"Starving" = "餓壞了";
271+
"Last fed %@" = "上次進食 %@";
272+
"%@ / %@ XP to next level" = "%@ / %@ 經驗升級";
273+
"The pet eats real work: tokens burnt by your agents and finished sessions." = "寵物吃的是真實工作:Agent 消耗的 token 和完成的會話。";
274+
"Tokens eaten" = "已吃 token";
275+
"Full! The daily bowl is empty." = "吃飽啦!今天的碗空了。";
276+
"Sessions finished" = "完成的會話";
277+
"Streak" = "連續天數";
278+
"%d days" = "%d 天";
279+
"Total tokens eaten" = "累計吃掉的 token";
280+
"Total sessions" = "累計會話";
281+
"Claude Code transcripts" = "Claude Code 會話記錄";
282+
"Token usage is read locally when a turn ends." = "每輪結束時在本地讀取 token 用量。";
283+
"Connected: subscription limits below." = "已連線:訂閱額度見下方。";
284+
"Optional: install OpenUsage to track every provider's limits." = "可選:安裝 OpenUsage 以跟蹤所有服務商的額度。";
285+
"Active" = "已啟用";
286+
"Connected" = "已連線";
287+
"Get it" = "去安裝";
288+
"left" = "剩餘";
289+
"Level up! Lv %d ⭐" = "升級啦!Lv %d ⭐";
290+
"Getting hungry… run an agent?" = "有點餓了……跑個 Agent 吧?";
291+
"A little snack? One small task?" = "來點小零食?一個小任務就行?";
292+
"My tummy is rumbling…" = "肚子咕咕叫了……";
293+
"Feed me some tokens, please." = "請餵我一點 token 吧。";
294+
"Starving… nothing to eat for days…" = "餓壞了……好幾天沒吃東西了……";
295+
"So weak… one tiny session, please…" = "好虛弱……求一個小小的會話……";
296+
"No tokens… no energy…" = "沒有 token……沒有能量……";
297+
"Remember me? Your pet? The hungry one?" = "還記得我嗎?你的寵物?那隻餓著的?";
298+
"Careful… your AI budget is almost gone." = "小心……你的 AI 預算快用完了。";
299+
"Low fuel: a usage limit is nearly reached!" = "燃料不足:某個用量額度快到上限了!";
300+
"Maybe save some tokens for tomorrow…" = "要不給明天留點 token 吧……";
301+
"1 day" = "1 天";
302+
303+
/* Care v2: per-pet + web sync + popover */
304+
"Your pet" = "你的寵物";
305+
"Every pet levels up on its own: experience belongs to the companion you raise it with." = "每隻寵物獨立升級:經驗屬於陪你一起成長的那隻夥伴。";
306+
"All companions" = "所有夥伴";
307+
"Each companion keeps its own experience. Switch pets in the Pet tab to raise another one." = "每隻夥伴都有自己的經驗。在寵物標籤頁切換,去養另一隻吧。";
308+
"Raising" = "養成中";
309+
"Web profile" = "網頁主頁";
310+
"Connected to your profile" = "已連線到你的主頁";
311+
"Last synced %@" = "上次同步 %@";
312+
"Your companions appear on your profile page." = "你的夥伴會顯示在主頁上。";
313+
"Disconnect" = "斷開連線";
314+
"Show your companions on your web profile" = "在網頁主頁上展示你的夥伴";
315+
"Sign in on the site, open your profile, and enter the pairing code here." = "在網站登入,開啟主頁,然後在這裡輸入配對碼。";
316+
"Pairing code" = "配對碼";
317+
"Connecting…" = "連線中……";
318+
"Connect" = "連線";
319+
"Open profile" = "開啟主頁";
320+
"Code not recognized. Codes expire after 10 minutes." = "無法識別該配對碼。配對碼 10 分鐘後過期。";
321+
"Could not reach the server." = "無法連線伺服器。";
322+
"Sync failed, will retry." = "同步失敗,稍後重試。";
323+
"Today %@ tokens · %d meals" = "今天 %@ token · %d 餐";
324+
"Today %@ tokens · 1 meal" = "今天 %@ token · 1 餐";
325+
326+
/* Care v3: GitHub link + stats popover */
327+
"Connected as %@" = "已連線為 %@";
328+
"Your browser opens GitHub sign-in; the app links automatically." = "瀏覽器會開啟 GitHub 登入;應用自動完成關聯。";
329+
"Sign in with GitHub" = "用 GitHub 登入";
330+
"Last fed" = "上次進食";
331+
"%@ tokens · 1 meal" = "%@ token · 1 餐";
332+
"%@ tokens · %d meals" = "%@ token · %d 餐";
333+
"%@ tokens · %d sessions" = "%@ token · %d 會話";
334+
335+
/* Care HUD */
336+
"Burn, last 7 days" = "近 7 天消耗";
337+
"Limits" = "額度";
338+
"days fed" = "天有進食";
339+
"tokens eaten" = "已吃 token";
340+
"completed" = "已完成";
341+
"1 meal" = "1 餐";
342+
"%d meals" = "%d 餐";
343+
344+
/* Care v5: native limits + to-next-level */
345+
"≈ %@ tokens to Lv %d" = "≈ %@ token 升到 Lv %d";
346+
"Subscription limits" = "訂閱額度";
347+
"Read directly from your Claude Code / Codex sign-ins." = "直接從你的 Claude Code / Codex 登入讀取。";
348+
"Read directly from your Claude Code / Codex sign-ins. None found yet." = "直接從你的 Claude Code / Codex 登入讀取。暫未找到。";
349+
"Connected: adds limits for every other provider." = "已連線:補充其他所有服務商的額度。";
350+
351+
/* Care v6: quota used + reset */
352+
"%d%% used" = "已用 %d%%";
353+
"resets in %dd" = "%d 天后重置";
354+
"resets in %dh" = "%d 小時後重置";
355+
"resets in %dm" = "%d 分鐘後重置";
356+
357+
/* Coffee / donate */
358+
"Thanks for using AgentPet" = "感謝使用 AgentPet";
359+
"It's free and open source. If it makes your day a little nicer, a coffee is always appreciated, never expected." = "本應用免費開源。如果它讓你的一天更愉快,一杯咖啡總是受歡迎的,但絕不強求。";
360+
"Quét mã bằng app ngân hàng bất kỳ" = "用任意銀行 App 掃碼";
361+
"Sao chép số tài khoản" = "複製賬號";
362+
"Close" = "關閉";
363+
364+
/* Privacy clarity */
365+
"Connecting is optional. Your pet, its level and all stats live on this Mac whether or not you sign in, nothing leaves your machine until you connect." = "連線是可選的。無論是否登入,寵物、等級和所有資料都儲存在這臺 Mac 上;在你連線之前,任何資料都不會離開本機。";
366+
367+
/* Coffee methods */
368+
"International" = "國際";
369+
"Việt Nam" = "越南";
370+
"Opens buymeacoffee.com in your browser." = "在瀏覽器開啟 buymeacoffee.com。";
371+
"Quét bằng app ngân hàng bất kỳ (VPBank · NGUYEN THANH DAT)" = "用任意銀行 App 掃碼(VPBank · NGUYEN THANH DAT)";
372+
373+
/* HUD footer */
374+
"Settings" = "設定";
375+
"Updates" = "更新";
376+
"Quit" = "退出";
377+
"Checking…" = "檢查中…";

0 commit comments

Comments
 (0)