diff --git a/src/i18n/lang/zh-Hant/artist.ts b/src/i18n/lang/zh-Hant/artist.ts new file mode 100644 index 0000000..a99c6da --- /dev/null +++ b/src/i18n/lang/zh-Hant/artist.ts @@ -0,0 +1,5 @@ +export default { + hotSongs: '熱門歌曲', + albums: '專輯', + description: '藝人介紹' +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/common.ts b/src/i18n/lang/zh-Hant/common.ts new file mode 100644 index 0000000..3082b72 --- /dev/null +++ b/src/i18n/lang/zh-Hant/common.ts @@ -0,0 +1,56 @@ +export default { + play: '播放', + next: '下一首', + previous: '上一首', + volume: '音量', + settings: '設定', + search: '搜尋', + loading: '載入中...', + loadingMore: '載入更多...', + alipay: '支付寶', + wechat: '微信支付', + on: '開啟', + off: '關閉', + show: '顯示', + hide: '隱藏', + confirm: '確認', + cancel: '取消', + configure: '設定', + open: '開啟', + modify: '修改', + success: '操作成功', + error: '操作失敗', + warning: '警告', + info: '提示', + save: '儲存', + delete: '刪除', + refresh: '重新整理', + retry: '重試', + reset: '重設', + back: '返回', + copySuccess: '已複製到剪貼簿', + copyFailed: '複製失敗', + validation: { + required: '此項為必填', + invalidInput: '輸入無效', + selectRequired: '請選擇一個選項', + numberRange: '請輸入 {min} 到 {max} 之間的數字' + }, + viewMore: '查看更多', + noMore: '沒有更多了', + selectAll: '全選', + expand: '展開', + collapse: '收合', + songCount: '{count}首', + language: '語言', + tray: { + show: '顯示', + quit: '退出', + playPause: '播放/暫停', + prev: '上一首', + next: '下一首', + pause: '暫停', + play: '播放', + favorite: '收藏' + } +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/comp.ts b/src/i18n/lang/zh-Hant/comp.ts new file mode 100644 index 0000000..de165fc --- /dev/null +++ b/src/i18n/lang/zh-Hant/comp.ts @@ -0,0 +1,190 @@ +export default { + installApp: { + description: '安裝應用程式,獲得更好的體驗', + noPrompt: '不再提示', + install: '立即安裝', + cancel: '暫不安裝', + download: '下載', + downloadFailed: '下載失敗', + downloadComplete: '下載完成', + downloadProblem: '下載遇到問題?去', + downloadProblemLinkText: '下載最新版本' + }, + playlistDrawer: { + title: '新增至播放清單', + createPlaylist: '建立新播放清單', + cancelCreate: '取消建立', + create: '建立', + playlistName: '播放清單名稱', + privatePlaylist: '私人播放清單', + publicPlaylist: '公開播放清單', + createSuccess: '播放清單建立成功', + createFailed: '播放清單建立失敗', + addSuccess: '歌曲新增成功', + addFailed: '歌曲新增失敗', + private: '私人', + public: '公開', + count: '首歌曲', + loginFirst: '請先登入', + getPlaylistFailed: '取得播放清單失敗', + inputPlaylistName: '請輸入播放清單名稱' + }, + update: { + title: '發現新版本', + currentVersion: '目前版本', + cancel: '暫不更新', + prepareDownload: '準備下載...', + downloading: '下載中...', + nowUpdate: '立即更新', + downloadFailed: '下載失敗,請重試或手動下載', + startFailed: '啟動下載失敗,請重試或手動下載', + noDownloadUrl: '未找到適合目前系統的安裝包,請手動下載', + installConfirmTitle: '安裝更新', + installConfirmContent: '是否關閉應用程式並安裝更新?', + manualInstallTip: '如果關閉應用程式後沒有正常彈出安裝程式,請至下載資料夾尋找檔案並手動開啟。', + yesInstall: '立即安裝', + noThanks: '稍後安裝', + fileLocation: '檔案位置', + copy: '複製路徑', + copySuccess: '路徑已複製到剪貼簿', + copyFailed: '複製失敗', + backgroundDownload: '背景下載' + }, + coffee: { + title: '請我喝杯咖啡', + alipay: '支付寶', + wechat: '微信支付', + alipayQR: '支付寶收款碼', + wechatQR: '微信收款碼', + coffeeDesc: '一杯咖啡,一份支持', + coffeeDescLinkText: '查看更多', + qqGroup: 'QQ頻道:algermusic', + messages: { + copySuccess: '已複製到剪貼簿' + }, + donateList: '請我喝杯咖啡' + }, + playlistType: { + title: '播放清單分類', + showAll: '顯示全部', + hide: '隱藏部分' + }, + recommendAlbum: { + title: '最新專輯' + }, + recommendSinger: { + title: '每日推薦', + songlist: '每日推薦清單' + }, + recommendSonglist: { + title: '本週最熱音樂' + }, + searchBar: { + login: '登入', + toLogin: '去登入', + logout: '登出', + set: '設定', + theme: '主題', + restart: '重新啟動', + refresh: '重新整理', + currentVersion: '目前版本', + searchPlaceholder: '搜尋點什麼吧...', + zoom: '頁面縮放', + zoom100: '標準縮放100%', + resetZoom: '點擊重設縮放', + zoomDefault: '標準縮放' + }, + titleBar: { + closeTitle: '請選擇關閉方式', + minimizeToTray: '最小化到系統匣', + exitApp: '退出應用程式', + rememberChoice: '記住我的選擇', + closeApp: '關閉應用程式' + }, + userPlayList: { + title: '{name}的常聽' + }, + musicList: { + searchSongs: '搜尋歌曲', + noSearchResults: '沒有找到相關歌曲', + switchToNormal: '切換到預設版面', + switchToCompact: '切換到緊湊版面', + playAll: '播放全部', + collect: '收藏', + collectSuccess: '收藏成功', + cancelCollectSuccess: '取消收藏成功', + operationFailed: '操作失敗', + cancelCollect: '取消收藏', + addToPlaylist: '新增至播放清單', + addToPlaylistSuccess: '新增至播放清單成功', + songsAlreadyInPlaylist: '歌曲已存在於播放清單中' + }, + playlist: { + import: { + button: '播放清單匯入', + title: '播放清單匯入', + description: '支援透過元資料/文字/連結三種方式匯入播放清單', + linkTab: '連結匯入', + textTab: '文字匯入', + localTab: '元資料匯入', + linkPlaceholder: '請輸入播放清單連結,每行一個', + textPlaceholder: '請輸入歌曲資訊,格式為:歌曲名 歌手名', + localPlaceholder: '請輸入JSON格式的歌曲元資料', + linkTips: '支援的連結來源:', + linkTip1: '將播放清單分享到微信/微博/QQ後複製連結', + linkTip2: '直接複製播放清單/個人主頁連結', + linkTip3: '直接複製文章連結', + textTips: '請輸入歌曲資訊,每行一首歌', + textFormat: '格式:歌曲名 歌手名', + localTips: '請新增歌曲元資料', + localFormat: '格式範例:', + songNamePlaceholder: '歌曲名稱', + artistNamePlaceholder: '藝人名稱', + albumNamePlaceholder: '專輯名稱', + addSongButton: '新增歌曲', + addLinkButton: '新增連結', + importToStarPlaylist: '匯入到我喜歡的音樂', + playlistNamePlaceholder: '請輸入播放清單名稱', + importButton: '開始匯入', + emptyLinkWarning: '請輸入播放清單連結', + emptyTextWarning: '請輸入歌曲資訊', + emptyLocalWarning: '請輸入歌曲元資料', + invalidJsonFormat: 'JSON格式不正確', + importSuccess: '匯入任務建立成功', + importFailed: '匯入失敗', + importStatus: '匯入狀態', + refresh: '重新整理', + taskId: '任務ID', + status: '狀態', + successCount: '成功數量', + failReason: '失敗原因', + unknownError: '未知錯誤', + statusPending: '等待處理', + statusProcessing: '處理中', + statusSuccess: '匯入成功', + statusFailed: '匯入失敗', + statusUnknown: '未知狀態', + taskList: '任務清單', + taskListTitle: '匯入任務清單', + action: '操作', + select: '選擇', + fetchTaskListFailed: '取得任務清單失敗', + noTasks: '暫無匯入任務', + clearTasks: '清除任務', + clearTasksConfirmTitle: '確認清除', + clearTasksConfirmContent: '確定要清除所有匯入任務記錄嗎?此操作不可恢復。', + confirm: '確認', + cancel: '取消', + clearTasksSuccess: '任務清單已清除', + clearTasksFailed: '清除任務清單失敗' + } + }, + settings: '設定', + user: '使用者', + toplist: '排行榜', + history: '收藏歷史', + list: '播放清單', + mv: 'MV', + home: '首頁', + search: '搜尋' +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/donation.ts b/src/i18n/lang/zh-Hant/donation.ts new file mode 100644 index 0000000..efc894f --- /dev/null +++ b/src/i18n/lang/zh-Hant/donation.ts @@ -0,0 +1,8 @@ +export default { + description: '您的捐贈將用於支持開發和維護工作,包括但不限於伺服器維護、域名續費等。', + message: '留言時可留下您的電子郵件或 github 名稱。', + refresh: '重新整理列表', + toDonateList: '請我喝杯咖啡', + noMessage: '暫無留言', + title: '捐贈列表' +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/download.ts b/src/i18n/lang/zh-Hant/download.ts new file mode 100644 index 0000000..05b458c --- /dev/null +++ b/src/i18n/lang/zh-Hant/download.ts @@ -0,0 +1,87 @@ +export default { + title: '下載管理', + localMusic: '本機音樂', + count: '共 {count} 首歌曲', + clearAll: '清空記錄', + settings: '設定', + tabs: { + downloading: '下載中', + downloaded: '已下載' + }, + empty: { + noTasks: '暫無下載任務', + noDownloaded: '暫無已下載歌曲' + }, + progress: { + total: '總進度: {progress}%' + }, + status: { + downloading: '下載中', + completed: '已完成', + failed: '失敗', + unknown: '未知' + }, + artist: { + unknown: '未知歌手' + }, + delete: { + title: '刪除確認', + message: '確定要刪除歌曲 "{filename}" 嗎?此操作不可恢復。', + confirm: '確定刪除', + cancel: '取消', + success: '刪除成功', + failed: '刪除失敗', + fileNotFound: '檔案不存在或已被移動,已從記錄中移除', + recordRemoved: '檔案刪除失敗,但已從記錄中移除' + }, + clear: { + title: '清空下載記錄', + message: '確定要清空所有下載記錄嗎?此操作不會刪除已下載的音樂檔案,但將清空所有記錄。', + confirm: '確定清空', + cancel: '取消', + success: '下載記錄已清空' + }, + message: { + downloadComplete: '{filename} 下載完成', + downloadFailed: '{filename} 下載失敗: {error}' + }, + loading: '載入中...', + playStarted: '開始播放: {name}', + playFailed: '播放失敗: {name}', + path: { + copied: '路徑已複製到剪貼簿', + copyFailed: '複製路徑失敗' + }, + settingsPanel: { + title: '下載設定', + path: '下載位置', + pathDesc: '設定音樂檔案下載儲存的位置', + pathPlaceholder: '請選擇下載路徑', + noPathSelected: '請先選擇下載路徑', + select: '選擇資料夾', + open: '開啟資料夾', + fileFormat: '檔名格式', + fileFormatDesc: '設定下載音樂時的檔案命名格式', + customFormat: '自訂格式', + separator: '分隔符號', + separators: { + dash: '空格-空格', + underscore: '底線', + space: '空格' + }, + dragToArrange: '拖曳排序或使用箭頭按鈕調整順序:', + formatVariables: '可用變數', + preview: '預覽效果:', + saveSuccess: '下載設定已儲存', + presets: { + songArtist: '歌曲名 - 歌手名', + artistSong: '歌手名 - 歌曲名', + songOnly: '僅歌曲名' + }, + components: { + songName: '歌曲名', + artistName: '歌手名', + albumName: '專輯名' + } + } +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/favorite.ts b/src/i18n/lang/zh-Hant/favorite.ts new file mode 100644 index 0000000..fc89f13 --- /dev/null +++ b/src/i18n/lang/zh-Hant/favorite.ts @@ -0,0 +1,13 @@ +export default { + title: '我的收藏', + count: '共 {count} 首', + batchDownload: '批次下載', + download: '下載 ({count})', + emptyTip: '還沒有收藏歌曲', + downloadSuccess: '下載完成', + downloadFailed: '下載失敗', + downloading: '正在下載中,請稍候...', + selectSongsFirst: '請先選擇要下載的歌曲', + descending: '降', + ascending: '升' +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/history.ts b/src/i18n/lang/zh-Hant/history.ts new file mode 100644 index 0000000..79cddb9 --- /dev/null +++ b/src/i18n/lang/zh-Hant/history.ts @@ -0,0 +1,5 @@ +export default { + title: '播放歷史', + playCount: '{count}', + getHistoryFailed: '取得歷史記錄失敗' +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/index.ts b/src/i18n/lang/zh-Hant/index.ts new file mode 100644 index 0000000..07c725f --- /dev/null +++ b/src/i18n/lang/zh-Hant/index.ts @@ -0,0 +1,29 @@ +import artist from './artist'; +import common from './common'; +import comp from './comp'; +import donation from './donation'; +import download from './download'; +import favorite from './favorite'; +import history from './history'; +import login from './login'; +import player from './player'; +import search from './search'; +import settings from './settings'; +import songItem from './songItem'; +import user from './user'; + +export default { + common, + donation, + favorite, + history, + login, + player, + search, + settings, + songItem, + user, + download, + comp, + artist +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/login.ts b/src/i18n/lang/zh-Hant/login.ts new file mode 100644 index 0000000..7eea218 --- /dev/null +++ b/src/i18n/lang/zh-Hant/login.ts @@ -0,0 +1,22 @@ +export default { + title: { + qr: '掃碼登入', + phone: '手機號登入' + }, + qrTip: '使用網易雲APP掃碼登入', + phoneTip: '使用網易雲帳號登入', + placeholder: { + phone: '手機號', + password: '密碼' + }, + button: { + login: '登入', + switchToQr: '掃碼登入', + switchToPhone: '手機號登入' + }, + message: { + loginSuccess: '登入成功', + loadError: '載入登入資訊時出錯', + qrCheckError: '檢查二維碼狀態時出錯' + } +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/player.ts b/src/i18n/lang/zh-Hant/player.ts new file mode 100644 index 0000000..2f66ef9 --- /dev/null +++ b/src/i18n/lang/zh-Hant/player.ts @@ -0,0 +1,123 @@ +export default { + nowPlaying: '正在播放', + playlist: '播放清單', + lyrics: '歌詞', + previous: '上一個', + play: '播放', + pause: '暫停', + next: '下一個', + volumeUp: '音量增加', + volumeDown: '音量減少', + mute: '靜音', + unmute: '取消靜音', + songNum: '歌曲總數:{num}', + addCorrection: '提前 {num} 秒', + subtractCorrection: '延遲 {num} 秒', + playFailed: '目前歌曲播放失敗,播放下一首', + playMode: { + sequence: '順序播放', + loop: '單曲循環', + random: '隨機播放' + }, + fullscreen: { + enter: '全螢幕', + exit: '退出全螢幕' + }, + close: '關閉', + modeHint: { + single: '單曲循環', + list: '自動播放下一個' + }, + lrc: { + noLrc: '暫無歌詞, 請欣賞' + }, + reparse: { + title: '選擇解析音源', + desc: '點擊音源直接進行解析,下次播放此歌曲時將使用所選音源', + success: '重新解析成功', + failed: '重新解析失敗', + warning: '請選擇一個音源', + bilibiliNotSupported: 'B站影片不支援重新解析', + processing: '解析中...', + clear: '清除自訂音源' + }, + playBar: { + expand: '展開歌詞', + collapse: '收合歌詞', + like: '喜歡', + lyric: '歌詞', + noSongPlaying: '沒有正在播放的歌曲', + eq: '等化器', + playList: '播放清單', + reparse: '重新解析', + playMode: { + sequence: '順序播放', + loop: '循環播放', + random: '隨機播放' + }, + play: '開始播放', + pause: '暫停播放', + prev: '上一首', + next: '下一首', + volume: '音量', + favorite: '已收藏{name}', + unFavorite: '已取消收藏{name}', + miniPlayBar: '迷你播放列', + playbackSpeed: '播放速度', + advancedControls: '更多設定s', + }, + eq: { + title: '等化器', + reset: '重設', + on: '開啟', + off: '關閉', + bass: '低音', + midrange: '中音', + treble: '高音', + presets: { + flat: '平坦', + pop: '流行', + rock: '搖滾', + classical: '古典', + jazz: '爵士', + electronic: '電子', + hiphop: '嘻哈', + rb: 'R&B', + metal: '金屬', + vocal: '人聲', + dance: '舞曲', + acoustic: '原聲', + custom: '自訂' + } + }, + // 定時關閉功能相關 + sleepTimer: { + title: '定時關閉', + cancel: '取消定時', + timeMode: '按時間關閉', + songsMode: '按歌曲數關閉', + playlistEnd: '播放完清單後關閉', + afterPlaylist: '播放完清單後關閉', + activeUntilEnd: '播放至清單結束', + minutes: '分鐘', + hours: '小時', + songs: '首歌', + set: '設定', + timerSetSuccess: '已設定{minutes}分鐘後關閉', + songsSetSuccess: '已設定播放{songs}首歌後關閉', + playlistEndSetSuccess: '已設定播放完清單後關閉', + timerCancelled: '已取消定時關閉', + timerEnded: '定時關閉已觸發', + playbackStopped: '音樂播放已停止', + minutesRemaining: '剩餘{minutes}分鐘', + songsRemaining: '剩餘{count}首歌' + }, + playList: { + clearAll: '清空播放清單', + alreadyEmpty: '播放清單已經為空', + cleared: '已清空播放清單', + empty: '播放清單為空', + clearConfirmTitle: '清空播放清單', + clearConfirmContent: '這將清空所有播放清單中的歌曲並停止目前播放。是否繼續?' + } +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/search.ts b/src/i18n/lang/zh-Hant/search.ts new file mode 100644 index 0000000..24ea84b --- /dev/null +++ b/src/i18n/lang/zh-Hant/search.ts @@ -0,0 +1,27 @@ +export default { + title: { + hotSearch: '熱搜列表', + searchList: '搜尋列表', + searchHistory: '搜尋歷史' + }, + button: { + clear: '清空', + back: '返回', + playAll: '播放列表' + }, + loading: { + more: '載入中...', + failed: '搜尋失敗' + }, + noMore: '沒有更多了', + error: { + searchFailed: '搜尋失敗' + }, + search: { + single: '單曲', + album: '專輯', + playlist: '歌單', + mv: 'MV', + bilibili: 'B站' + } +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/settings.ts b/src/i18n/lang/zh-Hant/settings.ts new file mode 100644 index 0000000..dee218d --- /dev/null +++ b/src/i18n/lang/zh-Hant/settings.ts @@ -0,0 +1,203 @@ +export default { + theme: '主題', + language: '語言', + regard: '關於', + logout: '登出', + sections: { + basic: '基礎設定', + playback: '播放設定', + application: '應用程式設定', + network: '網路設定', + system: '系統管理', + donation: '捐贈支持', + regard: '關於' + }, + basic: { + themeMode: '主題模式', + themeModeDesc: '切換日間/夜間主題', + language: '語言設定', + languageDesc: '切換顯示語言', + font: '字體設定', + fontDesc: '選擇字體,優先使用排在前面的字體', + fontScope: { + global: '全域', + lyric: '僅歌詞' + }, + animation: '動畫速度', + animationDesc: '是否開起動畫', + animationSpeed: { + slow: '極慢', + normal: '正常', + fast: '極快' + }, + fontPreview: { + title: '字體預覽', + chinese: '中文', + english: 'English', + japanese: '日本語', + korean: '한국어', + chineseText: '靜夜思 床前明月光 疑是地上霜', + englishText: 'The quick brown fox jumps over the lazy dog', + japaneseText: 'あいうえお かきくけこ さしすせそ', + koreanText: '가나다라마 바사아자차 카타파하' + } + }, + playback: { + quality: '音質設定', + qualityDesc: '選擇音樂播放音質(網易云VIP)', + qualityOptions: { + standard: '標準', + higher: '較高', + exhigh: '極高', + lossless: '無損', + hires: 'Hi-Res', + jyeffect: '高清環繞聲', + sky: '沉浸環繞聲', + dolby: '杜比全景聲', + jymaster: '超清母帶' + }, + musicSources: '音源設定', + musicSourcesDesc: '選擇音樂解析使用的音源平台', + musicSourcesWarning: '至少需要選擇一個音源平台', + musicUnblockEnable: '啟用音樂解析', + musicUnblockEnableDesc: '開啟後將嘗試解析無法播放的音樂', + configureMusicSources: '設定音源', + selectedMusicSources: '已選音源:', + noMusicSources: '未選擇音源', + gdmusicInfo: 'GD音樂台可自動解析多個平台音源,自動選擇最佳結果', + autoPlay: '自動播放', + autoPlayDesc: '重新開啟應用程式時是否自動繼續播放', + showStatusBar: '是否顯示狀態列控制功能', + showStatusBarContent: '可以在您的mac狀態列顯示音樂控制功能(重啟後生效)', + }, + application: { + closeAction: '關閉行為', + closeActionDesc: '選擇關閉視窗時的行為', + closeOptions: { + ask: '每次詢問', + minimize: '最小化到系統匣', + close: '直接退出' + }, + shortcut: '快捷鍵設定', + shortcutDesc: '自訂全域快捷鍵', + download: '下載管理', + downloadDesc: '是否始終顯示下載清單按鈕', + unlimitedDownload: '無限制下載', + unlimitedDownloadDesc: '開啟後將無限制下載音樂(可能出現下載失敗的情況), 預設限制 300 首', + downloadPath: '下載目錄', + downloadPathDesc: '選擇音樂檔案的下載位置', + remoteControl: '遠端控制', + remoteControlDesc: '設定遠端控制功能' + }, + network: { + apiPort: '音樂API連接埠', + apiPortDesc: '修改後需要重啟應用程式', + proxy: '代理設定', + proxyDesc: '無法存取音樂時可以開啟代理', + proxyHost: '代理位址', + proxyHostPlaceholder: '請輸入代理位址', + proxyPort: '代理連接埠', + proxyPortPlaceholder: '請輸入代理連接埠', + realIP: 'realIP設定', + realIPDesc: '由於限制,此項目在國外使用會受到限制可使用realIP參數,傳進國內IP解決', + messages: { + proxySuccess: '代理設定已儲存,重啟應用程式後生效', + proxyError: '請檢查輸入是否正確', + realIPSuccess: '真實IP設定已儲存', + realIPError: '請輸入有效的IP位址' + } + }, + system: { + cache: '快取管理', + cacheDesc: '清除快取', + cacheClearTitle: '請選擇要清除的快取類型:', + cacheTypes: { + history: { + label: '播放歷史', + description: '清除播放過的歌曲記錄' + }, + favorite: { + label: '收藏記錄', + description: '清除本機收藏的歌曲記錄(不會影響雲端收藏)' + }, + user: { + label: '使用者資料', + description: '清除登入資訊和使用者相關資料' + }, + settings: { + label: '應用程式設定', + description: '清除應用程式的所有自訂設定' + }, + downloads: { + label: '下載記錄', + description: '清除下載歷史記錄(不會刪除已下載的檔案)' + }, + resources: { + label: '音樂資源', + description: '清除已載入的音樂檔案、歌詞等資源快取' + }, + lyrics: { + label: '歌詞資源', + description: '清除已載入的歌詞資源快取' + } + }, + restart: '重新啟動', + restartDesc: '重新啟動應用程式', + messages: { + clearSuccess: '清除成功,部分設定在重啟後生效' + } + }, + about: { + version: '版本', + checkUpdate: '檢查更新', + checking: '檢查中...', + latest: '目前已是最新版本', + hasUpdate: '發現新版本', + gotoUpdate: '前往更新', + gotoGithub: '前往 Github', + author: '作者', + authorDesc: 'algerkong 點個star🌟呗', + messages: { + checkError: '檢查更新失敗,請稍後重試' + } + }, + validation: { + selectProxyProtocol: '請選擇代理協議', + proxyHost: '請輸入代理位址', + portNumber: '請輸入有效的連接埠號(1-65535)' + }, + lyricSettings: { + title: '歌詞設定', + tabs: { + display: '顯示', + interface: '介面', + typography: '文字', + mobile: '行動端' + }, + pureMode: '純淨模式', + hideCover: '隱藏封面', + centerDisplay: '置中顯示', + showTranslation: '顯示翻譯', + hideLyrics: '隱藏歌詞', + hidePlayBar: '隱藏播放列', + hideMiniPlayBar: '隱藏迷你播放列', + backgroundTheme: '背景主題', + themeOptions: { + default: '預設', + light: '亮色', + dark: '暗色' + }, + fontSize: '字體大小', + fontSizeMarks: { + small: '小', + medium: '中', + large: '大' + }, + letterSpacing: '字間距', + letterSpacingMarks: { + compact: '緊湊', + default: '預設', + loose: '寬鬆' + } + } +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/songItem.ts b/src/i18n/lang/zh-Hant/songItem.ts new file mode 100644 index 0000000..7680537 --- /dev/null +++ b/src/i18n/lang/zh-Hant/songItem.ts @@ -0,0 +1,28 @@ +export default { + menu: { + play: '播放', + playNext: '下一首播放', + download: '下載歌曲', + addToPlaylist: '新增至播放清單', + favorite: '喜歡', + unfavorite: '取消喜歡', + removeFromPlaylist: '從播放清單中刪除', + dislike: '不喜歡', + undislike: '取消不喜歡', + }, + message: { + downloading: '正在下載中,請稍候...', + downloadFailed: '下載失敗', + downloadQueued: '已加入下載佇列', + addedToNextPlay: '已新增至下一首播放', + getUrlFailed: '取得音樂下載位址失敗,請檢查是否登入' + }, + dialog: { + dislike: { + title: '提示!', + content: '確認不喜歡這首歌嗎?再次進入將從每日推薦中排除。', + positiveText: '不喜歡', + negativeText: '取消' + } + } +}; \ No newline at end of file diff --git a/src/i18n/lang/zh-Hant/user.ts b/src/i18n/lang/zh-Hant/user.ts new file mode 100644 index 0000000..4cd795d --- /dev/null +++ b/src/i18n/lang/zh-Hant/user.ts @@ -0,0 +1,48 @@ +export default { + profile: { + followers: '粉絲', + following: '關注', + level: '等級' + }, + playlist: { + created: '建立的歌單', + mine: '我建立的', + trackCount: '{count}首', + playCount: '播放{count}次' + }, + ranking: { + title: '聽歌排行', + playCount: '{count}次' + }, + follow: { + title: '關注列表', + viewPlaylist: '查看歌單', + noFollowings: '暫無關注', + loadMore: '載入更多', + noSignature: '這個傢伙很懶,什麼都沒留下', + userFollowsTitle: '的關注', + myFollowsTitle: '我的關注' + }, + follower: { + title: '粉絲列表', + noFollowers: '暫無粉絲', + loadMore: '載入更多', + userFollowersTitle: '的粉絲', + myFollowersTitle: '我的粉絲' + }, + detail: { + playlists: '歌單', + records: '聽歌排行', + noPlaylists: '暫無歌單', + noRecords: '暫無聽歌記錄', + artist: '歌手', + noSignature: '這個人很懶,什麼都沒留下', + invalidUserId: '使用者ID無效', + noRecordPermission: '{name}不讓你聽歌排行' + }, + message: { + loadFailed: '載入使用者頁面失敗', + deleteSuccess: '刪除成功', + deleteFailed: '刪除失敗' + } +}; \ No newline at end of file diff --git a/src/i18n/main.ts b/src/i18n/main.ts index 58138d4..b1d8f67 100644 --- a/src/i18n/main.ts +++ b/src/i18n/main.ts @@ -1,9 +1,11 @@ import enUS from './lang/en-US'; import zhCN from './lang/zh-CN'; +import zhHant from './lang/zh-Hant'; const messages = { 'zh-CN': zhCN, - 'en-US': enUS + 'en-US': enUS, + 'zh-Hant': zhHant } as const; type Language = keyof typeof messages; diff --git a/src/i18n/renderer.ts b/src/i18n/renderer.ts index ba19223..9169388 100644 --- a/src/i18n/renderer.ts +++ b/src/i18n/renderer.ts @@ -2,10 +2,12 @@ import { createI18n } from 'vue-i18n'; import enUS from './lang/en-US'; import zhCN from './lang/zh-CN'; +import zhHant from './lang/zh-Hant'; const messages = { 'zh-CN': zhCN, - 'en-US': enUS + 'en-US': enUS, + 'zh-Hant': zhHant }; const i18n = createI18n({ diff --git a/src/renderer/components/LanguageSwitcher.vue b/src/renderer/components/LanguageSwitcher.vue index 3955c30..d27779b 100644 --- a/src/renderer/components/LanguageSwitcher.vue +++ b/src/renderer/components/LanguageSwitcher.vue @@ -9,6 +9,7 @@ const { locale } = useI18n(); const languages = [ { label: '简体中文', value: 'zh-CN' }, + { label: '繁體中文', value: 'zh-Hant' }, { label: 'English', value: 'en-US' } ];