From ce244e03d04d6bade2b5e8dc9ffb3eb9fdfbbfaf Mon Sep 17 00:00:00 2001 From: Xtra Date: Sat, 22 Nov 2025 14:46:10 +0800 Subject: [PATCH] Added support for Traditional Chinese and made minor adjustments to Chinese-related logic. --- cider-app/src/app/app.component.ts | 10 +- .../settings-dialog.component.ts | 3 +- .../src/assets/i18n/{zh.json => zh-Hans.json} | 0 cider-app/src/assets/i18n/zh-Hant.json | 163 ++++++++++++++++++ 4 files changed, 172 insertions(+), 4 deletions(-) rename cider-app/src/assets/i18n/{zh.json => zh-Hans.json} (100%) create mode 100644 cider-app/src/assets/i18n/zh-Hant.json diff --git a/cider-app/src/app/app.component.ts b/cider-app/src/app/app.component.ts index 82979f6d..7dcf46f2 100644 --- a/cider-app/src/app/app.component.ts +++ b/cider-app/src/app/app.component.ts @@ -44,11 +44,15 @@ export class AppComponent implements OnInit{ private initTranslateService() { this.translateService.addLangs(['en', 'fr', 'es', 'bg', 'de', 'it', - 'pt', 'ru', 'pl', 'uk', 'ko', 'ja', 'zh', 'tr', 'nl']); + 'pt', 'ru', 'pl', 'uk', 'ko', 'ja', 'zh-Hans', 'zh-Hant', 'tr', 'nl']); - const browserLang = this.translateService.getBrowserLang(); + const browserLang = this.translateService.getBrowserCultureLang?.() || this.translateService.getBrowserLang(); + const lowerBrowserLang = browserLang?.toLowerCase(); + const normalizedBrowserLang = lowerBrowserLang?.startsWith('zh') + ? (lowerBrowserLang.includes('hant') || lowerBrowserLang.includes('tw') || lowerBrowserLang.includes('hk') || lowerBrowserLang.includes('mo') ? 'zh-Hant' : 'zh-Hans') + : browserLang; const savedLang = this.localStorageService.getLanguage(); - const langToSet = savedLang ? savedLang : (browserLang && this.translateService.getLangs().includes(browserLang) ? browserLang : 'en'); + const langToSet = savedLang ? savedLang : (normalizedBrowserLang && this.translateService.getLangs().includes(normalizedBrowserLang) ? normalizedBrowserLang : 'en'); this.translateService.use(langToSet); } diff --git a/cider-app/src/app/settings-dialog/settings-dialog.component.ts b/cider-app/src/app/settings-dialog/settings-dialog.component.ts index 29707a74..c49dbb55 100644 --- a/cider-app/src/app/settings-dialog/settings-dialog.component.ts +++ b/cider-app/src/app/settings-dialog/settings-dialog.component.ts @@ -26,7 +26,8 @@ export class SettingsDialogComponent { {label: 'Ukrainian (UK)', value: 'uk'}, {label: '한국어 (KO)', value: 'ko'}, {label: '日本語 (JA)', value: 'ja'}, - {label: '简体中文 (ZH)', value: 'zh'}, + {label: '简体中文 (ZH)', value: 'zh-Hans'}, + {label: '繁體中文 (ZH)', value: 'zh-Hant'}, {label: 'Türkçe (TR)', value: 'tr'}, {label: 'Nederlands (NL)', value: 'nl'}, ]; diff --git a/cider-app/src/assets/i18n/zh.json b/cider-app/src/assets/i18n/zh-Hans.json similarity index 100% rename from cider-app/src/assets/i18n/zh.json rename to cider-app/src/assets/i18n/zh-Hans.json diff --git a/cider-app/src/assets/i18n/zh-Hant.json b/cider-app/src/assets/i18n/zh-Hant.json new file mode 100644 index 00000000..ccaf59cb --- /dev/null +++ b/cider-app/src/assets/i18n/zh-Hant.json @@ -0,0 +1,163 @@ +{ + "welcome": { + "title": "歡迎", + "subtitle": "使用左側的資源管理器開始", + "subtitle-electron": "建立新專案或開啟現有專案" + }, + "controls": { + "search": "搜尋", + "filter": "篩選", + "random": "隨機", + "default": "預設", + "close": "關閉", + "minimize": "最小化", + "clear": "清除", + "new": "新建", + "create": "建立", + "create-edit": "建立 / 編輯", + "save": "儲存", + "import": "匯入", + "export": "匯出", + "apply": "應用", + "cancel": "取消", + "reset": "重置", + "next": "下一步", + "back": "返回", + "refresh": "重新整理", + "fronts": "正面", + "backs": "背面", + "both": "兩者", + "singles": "單張", + "copies": "副本" + }, + "fields": { + "name": "名稱", + "count": "數量", + "frontCardTemplateId": "正面模板", + "backCardTemplateId": "背面模板", + "description": "描述", + "type": "型別", + "options": "選項", + "file": "檔案" + }, + "field-descriptions": { + "name": "實體的名稱。", + "count": "該卡片的副本數量。", + "frontCardTemplateId": "用於卡片正面的模板。", + "backCardTemplateId": "用於卡片背面的模板。" + }, + "breadcrumbs": { + "project": "專案", + "decks": "牌組", + "cards": "卡片", + "documents": "文件", + "templates": "模板", + "attributes": "屬性", + "assets": "資源", + "thumbnails": "縮圖", + "listing": "列表", + "export-cards": "匯出卡片" + }, + "menu": { + "file": "檔案", + "new": "新建", + "open-project": "開啟專案", + "open-recent": "最近開啟", + "save": "儲存", + "save-as": "另存為", + "advanced": "高階", + "reload-project": "從磁碟重新載入專案", + "reset-database": "重置資料庫", + "import-database": "匯入資料庫", + "export-database": "匯出資料庫", + "export-cards": "匯出卡片", + "exit-project": "退出專案", + "exit-cider": "退出 Cider" + }, + "sidebar": { + "unknown-project": "專案", + "add-new-deck": "新增新牌組", + "create-new-deck": "建立新牌組", + "edit-rename-deck": "編輯 / 重新命名牌組", + "delete-deck": "刪除牌組", + "deck": "牌組", + "decks": "牌組列表", + "add-new-document": "新增新文件", + "create-new-document": "建立新文件", + "edit-rename-document": "編輯 / 重新命名文件", + "delete-document": "刪除文件", + "cards": "卡片", + "export-cards": "匯出卡片", + "thumbnails": "縮圖", + "attributes": "屬性", + "add-new-card-template": "新增新卡片模板", + "edit-rename-card-template": "編輯 / 重新命名卡片模板", + "duplicate-card-template": "複製卡片模板", + "delete-card-template": "刪除卡片模板", + "assets": "資源", + "add-new-asset": "新增新資源", + "create-new-asset": "建立新資源", + "edit-rename-asset": "編輯 / 重新命名資源", + "generate-new-asset": "生成新資源", + "delete-asset": "刪除資源", + "no-actions-available": "沒有可用操作", + "confirm-entity-delete-message": "您確定要刪除此實體嗎?", + "delete-entity": "刪除實體", + "entity-deleted": "實體已刪除" + }, + "export": { + "sheet-export": "卡片表", + "singular-export": "單張圖片", + "landscape": "橫向", + "portrait": "縱向", + "custom": "自定義", + "tabletop-simulator": "桌面模擬器", + "paper-width": "紙張寬度(英寸)", + "paper-height": "紙張高度(英寸)", + "paper-margins": "紙張邊距(英寸)", + "card-margins": "卡片邊距(英寸)", + "cards-per-page": "每頁卡片數量", + "low-ink-mode": "省墨模式", + "mirror-backs-x": "背面映象 X", + "mirror-backs-y": "背面映象 Y", + "paper-dpi": "紙張 DPI(每英寸點數)", + "max-tts-pixels": "最大 TTS 畫素", + "scale": "縮放(放大/縮小圖片)", + "use-card-name": "使用卡片名稱", + "select-cards": "選擇卡片", + "card-selection-title": "卡片選擇 - 對卡片的更改是臨時的", + "export-information": "請確保此 DPI 與卡片模板的目標 DPI 相同,並在列印時始終設定“長邊翻轉”。", + "missing-templates-warning": "某些卡片未同時選擇正面和背面模板,因此不會出現在匯出中。", + "wait-message": "正在生成匯出,請稍候..." + }, + "settings": { + "title": "應用程式設定", + "select-language": "選擇語言", + "language": "語言", + "language-info": "重新整理頁面以完全應用新的語言。", + "language-info-electron": "重啟應用程式以完全應用新的語言。", + "dark-mode": "深色模式" + }, + "simulator": { + "draw-card": "抽卡", + "draw-card-facedown": "抽背面卡", + "draw-specific-card": "抽特定卡", + "shuffle-stack": "洗牌堆", + "flip-stack": "翻轉堆", + "split-in-half": "對半分", + "split-by-attribute": "按屬性分", + "delete": "刪除", + "flip-card": "翻轉卡片", + "create-stack": "建立牌堆", + "discard-card": "棄牌", + "duplicate": "複製", + "add-coin": "新增硬幣", + "flip-randomly": "隨機翻轉", + "flip-over": "翻過來", + "add-cube": "新增立方體", + "add-die": "新增骰子", + "roll-die": "擲骰子", + "zoom": "縮放", + "reset-game": "重置遊戲" + } +}