From a5d702481238ab299276e98dc9c4831cdb95d363 Mon Sep 17 00:00:00 2001 From: lihaoyun6 Date: Wed, 11 Dec 2024 16:05:27 +0800 Subject: [PATCH] add zh_hans, fix preview --- QuickRecorder.xcodeproj/project.pbxproj | 15 +- QuickRecorder/ViewModel/PreviewView.swift | 4 +- .../zh-Hans.lproj/Localizable.strings | 1 - QuickRecorder/zh-Hant.lproj/Credits.rtf | 12 + QuickRecorder/zh-Hant.lproj/InfoPlist.strings | 10 + .../zh-Hant.lproj/Localizable.strings | 207 ++++++++++++++++++ 6 files changed, 241 insertions(+), 8 deletions(-) create mode 100644 QuickRecorder/zh-Hant.lproj/Credits.rtf create mode 100644 QuickRecorder/zh-Hant.lproj/InfoPlist.strings create mode 100644 QuickRecorder/zh-Hant.lproj/Localizable.strings diff --git a/QuickRecorder.xcodeproj/project.pbxproj b/QuickRecorder.xcodeproj/project.pbxproj index 7689267..30abb14 100644 --- a/QuickRecorder.xcodeproj/project.pbxproj +++ b/QuickRecorder.xcodeproj/project.pbxproj @@ -68,6 +68,9 @@ 18A735982BFBA132002314AF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/Localizable.strings; sourceTree = ""; }; 18A735992BFBA138002314AF /* it */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = it; path = it.lproj/InfoPlist.strings; sourceTree = ""; }; 18CEED912D08312C00FBC4BF /* PreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = PreviewView.swift; sourceTree = ""; }; + 18CEEE182D097CBF00FBC4BF /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; name = "zh-Hant"; path = "zh-Hant.lproj/Credits.rtf"; sourceTree = ""; }; + 18CEEE192D097CC500FBC4BF /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/Localizable.strings"; sourceTree = ""; }; + 18CEEE1A2D097D6800FBC4BF /* zh-Hant */ = {isa = PBXFileReference; lastKnownFileType = text.plist.strings; name = "zh-Hant"; path = "zh-Hant.lproj/InfoPlist.strings"; sourceTree = ""; }; 18D3BDE72BCE5DC1006CFFC0 /* QuickRecorder.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = QuickRecorder.app; sourceTree = BUILT_PRODUCTS_DIR; }; 18D3BDEA2BCE5DC1006CFFC0 /* QuickRecorderApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = QuickRecorderApp.swift; sourceTree = ""; }; 18D3BDEC2BCE5DC1006CFFC0 /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; @@ -241,6 +244,7 @@ Base, "zh-Hans", it, + "zh-Hant", ); mainGroup = 18D3BDDE2BCE5DC1006CFFC0; packageReferences = ( @@ -317,6 +321,7 @@ 1862BF902BD5494F003ED522 /* zh-Hans */, 1862BF912BD5495D003ED522 /* Base */, 18A735972BFBA12F002314AF /* it */, + 18CEEE182D097CBF00FBC4BF /* zh-Hant */, ); name = Credits.rtf; sourceTree = ""; @@ -326,6 +331,7 @@ children = ( 189BD5E72BDE34B80056D06C /* zh-Hans */, 18A735992BFBA138002314AF /* it */, + 18CEEE1A2D097D6800FBC4BF /* zh-Hant */, ); name = InfoPlist.strings; sourceTree = ""; @@ -335,6 +341,7 @@ children = ( 18D3BDFC2BCE5DF5006CFFC0 /* zh-Hans */, 18A735982BFBA132002314AF /* it */, + 18CEEE192D097CC500FBC4BF /* zh-Hant */, ); name = Localizable.strings; sourceTree = ""; @@ -472,7 +479,7 @@ CODE_SIGN_ENTITLEMENTS = QuickRecorder/QuickRecorder.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 156; + CURRENT_PROJECT_VERSION = 157; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_ASSET_PATHS = "\"QuickRecorder/Preview Content\""; DEVELOPMENT_TEAM = L4T783637F; @@ -490,7 +497,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 12.3; - MARKETING_VERSION = 1.5.6; + MARKETING_VERSION = 1.5.7; PRODUCT_BUNDLE_IDENTIFIER = com.lihaoyun6.QuickRecorder; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; @@ -506,7 +513,7 @@ CODE_SIGN_ENTITLEMENTS = QuickRecorder/QuickRecorder.entitlements; CODE_SIGN_STYLE = Automatic; COMBINE_HIDPI_IMAGES = YES; - CURRENT_PROJECT_VERSION = 156; + CURRENT_PROJECT_VERSION = 157; DEAD_CODE_STRIPPING = YES; DEVELOPMENT_ASSET_PATHS = "\"QuickRecorder/Preview Content\""; DEVELOPMENT_TEAM = L4T783637F; @@ -524,7 +531,7 @@ "@executable_path/../Frameworks", ); MACOSX_DEPLOYMENT_TARGET = 12.3; - MARKETING_VERSION = 1.5.6; + MARKETING_VERSION = 1.5.7; PRODUCT_BUNDLE_IDENTIFIER = com.lihaoyun6.QuickRecorder; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_EMIT_LOC_STRINGS = YES; diff --git a/QuickRecorder/ViewModel/PreviewView.swift b/QuickRecorder/ViewModel/PreviewView.swift index 4a67053..32a9b6e 100644 --- a/QuickRecorder/ViewModel/PreviewView.swift +++ b/QuickRecorder/ViewModel/PreviewView.swift @@ -87,9 +87,7 @@ struct PreviewView: View { Button(action: { if fd.fileExists(atPath: filePath) { let url = URL(fileURLWithPath: filePath) - let pasteboard = NSPasteboard.general - pasteboard.clearContents() - pasteboard.writeObjects([url as NSURL]) + NSWorkspace.shared.activateFileViewerSelecting([url]) } closeWindow() }, label: { Text("Show in Finder") }) diff --git a/QuickRecorder/zh-Hans.lproj/Localizable.strings b/QuickRecorder/zh-Hans.lproj/Localizable.strings index c58c02e..1f50839 100644 --- a/QuickRecorder/zh-Hans.lproj/Localizable.strings +++ b/QuickRecorder/zh-Hans.lproj/Localizable.strings @@ -103,7 +103,6 @@ "Update" = "更新设置"; "Launch at Login" = "登录时启动"; "Shortcuts Settings" = "快捷键设置"; -"Take Screenshot" = "截图当前屏幕"; "Pause / Resume" = "暂停/继续录制"; "Stop Recording" = "结束屏幕录制"; "Record System Audio" = "立即录制系统声音"; diff --git a/QuickRecorder/zh-Hant.lproj/Credits.rtf b/QuickRecorder/zh-Hant.lproj/Credits.rtf new file mode 100644 index 0000000..cd5fabd --- /dev/null +++ b/QuickRecorder/zh-Hant.lproj/Credits.rtf @@ -0,0 +1,12 @@ +{\rtf1\ansi\ansicpg936\cocoartf2820 +\cocoatextscaling0\cocoaplatform0{\fonttbl\f0\fnil\fcharset134 PingFangSC-Semibold;\f1\fnil\fcharset134 PingFangSC-Regular;} +{\colortbl;\red255\green255\blue255;} +{\*\expandedcolortbl;;} +\paperw12240\paperh15840\margl1440\margr1440\vieww9000\viewh8400\viewkind0 +\pard\tx560\tx1120\tx1680\tx2240\tx2800\tx3360\tx3920\tx4480\tx5040\tx5600\tx6160\tx6720\qc\partightenfactor0 + +\f0\b\fs24 \cf0 \'bb\'f9\'ec\'b6 ScreenCapture Kit \'b5\'c4\'b6\'e0\'b9\'a6\'c4\'dc\'ce\'9e\'c4\'bb\'e4\'9b\'d3\'b0\'b9\'a4\'be\'df\ + +\f1\b0\fs10 \ + +\fs20 \'d4\'ad\'ca\'bc\'b4\'61\'d3\'9a\'b9\'dc\'ec\'b6 {\field{\*\fldinst{HYPERLINK "https://github.com/lihaoyun6/QuickRecorder"}}{\fldrslt Github}}} \ No newline at end of file diff --git a/QuickRecorder/zh-Hant.lproj/InfoPlist.strings b/QuickRecorder/zh-Hant.lproj/InfoPlist.strings new file mode 100644 index 0000000..0c7e481 --- /dev/null +++ b/QuickRecorder/zh-Hant.lproj/InfoPlist.strings @@ -0,0 +1,10 @@ +/* + InfoPlist.strings + QuickRecorder + + Created by apple on 2024/4/28. + +*/ +"NSMicrophoneUsageDescription" = "QuickRecorder 需要此權限以在錄製螢幕畫面的同時記錄麥克風聲音."; +"NSCameraUsageDescription" = "QuickRecorder 需要此權限以在錄製螢幕畫面的同時疊加攝像頭畫面."; +"NSHumanReadableCopyright" = "版權所有 © 2024 lihaoyun6. 保留所有權利."; diff --git a/QuickRecorder/zh-Hant.lproj/Localizable.strings b/QuickRecorder/zh-Hant.lproj/Localizable.strings new file mode 100644 index 0000000..c1f4bb1 --- /dev/null +++ b/QuickRecorder/zh-Hant.lproj/Localizable.strings @@ -0,0 +1,207 @@ +/* + Localizable.strings + QuickRecorder + + Created by lihaoyun6 on 2024/4/16. +*/ + +"System Audio" = "錄製系統聲音"; +"System Audio " = "系統聲音"; +"Screen Area" = "錄製螢幕區域"; +"Screen" = "錄製整個螢幕"; +"Application" = "錄製應用程式"; +"Window" = "錄製視窗內容"; +"Mobile Device" = "錄製移動裝置"; +"Preferences" = "偏好設定"; +"No Title" = "無標題"; +"Display " = "顯示器"; +"Select Applications" = "選擇應用程式"; +"Permission Required" = "需要授權"; +"Compatibility Warning" = "相容性警告"; +"You are using macOS 12.7.4\nOutput files will be randomly corrupted on this version of macOS!\n\nPlease upgrade to 12.7.5 to solve it." = "檢測到當前系統版本為 macOS 12.7.4\nQuickRecorder 在當前系統版本中會\n隨機出現錄影檔案儲存失敗的情況!\n\n請升級至 macOS 12.7.5 以解決此問題."; +"QuickRecorder needs screen recording permissions, even if you only intend on recording audio." = "QuickRecorder 需要獲取錄影許可權\n(即使只是用來錄製音訊)"; +"QuickRecorder needs permission to record your microphone." = "QuickRecorder 需要獲取麥克風許可權來錄製所需的聲音"; +"Please select a folder to save output files" = "請選擇錄音/錄屏檔案的儲存位置"; +"Open Settings" = "開啟系統設定"; +"Quit" = "退出程式"; +"Cancel" = "取消"; +"Please select the App(s) to record" = "請選擇需要錄製的應用程式, 支援多選"; +"Please select the window(s) to record" = "請選擇需要錄製的視窗, 支援多選"; +"Please select the screen to record" = "請選擇需要錄製的螢幕, 僅支援單選"; +"Refresh" = "重新整理列表"; +"Start" = "開始錄製"; +"Resolution" = "清晰度"; +"Frame Rate" = "幀速率"; +"Auto" = "自動"; +"High (auto)" = "高 (自動)"; +"Normal (1x)" = "普通 (1x)"; +//"Low (0.5x)" = "低 (0.5x)"; +"Quality" = "輸出質量"; +"Format" = "輸出格式"; +"Encoder" = "編碼方式"; +"Low" = "低畫質"; +"Medium" = "中畫質"; +"High" = "高畫質"; +"Save Current Frame" = "儲存當前幀快照"; +"Record Cursor" = "錄製滑鼠游標"; +"System Audio" = "錄製系統聲音"; +"App's Audio" = "錄製App聲音"; +"Microphone" = "錄製麥克風"; +"Background" = "畫面背景"; +"Wallpaper" = "桌面背景"; +"Transparent" = "透明"; +"Yellow" = "系統黃色"; +"Green" = "系統綠色"; +"Blue" = "系統藍色"; +"Red" = "系統紅色"; +"Gray" = "中灰色"; +"Black" = "純黑色"; +"White" = "純白色"; +"Orange" = "系統橙色"; +"Custom" = "使用者預設"; +"Area Size:" = "選區尺寸:"; +"Output Size:" = "輸出尺寸:"; +"Audio" = "音訊設定"; +"Video" = "影片設定"; +"Save" = "儲存位置"; +"Exclude QuickRecorder itself" = "排除QuickRecorder視窗"; +"Highlight the Mouse Cursor" = "為滑鼠游標新增高亮效果"; +"Not available for \"Single Window Capture\"" = "此功能在錄製單個視窗時不可用"; +"Normal - 128Kbps" = "標準 - 128Kbps"; +"Good - 192Kbps" = "優質 - 192Kbps"; +"High - 256Kbps" = "高品質 - 256Kbps"; +"Extreme - 320Kbps" = "極致 - 320Kbps"; +"Other Settings" = "其他設定"; +"Opus doesn't support MP4, it will fall back to AAC" = "同時使用Opus和MP4格式時, 音訊編碼將回落至AAC"; +"Record Microphone to Main Track" = "將麥克風錄製到主音軌"; +"If enabled, all files on the Desktop will be hidden from the video when recording." = "啟用此選項後, 桌面上的所有檔案將會從錄製畫面中被隱藏."; +"These apps will be excluded when recording \"Screen\" or \"Screen Area\"\nBut if the app is launched after the recording starts, it cannot be excluded." = "在錄製 \"整個螢幕\" 或 \"螢幕區域\" 的時候將不會錄製這些 App 的畫面\n但如果列表中的 App 在錄影開始後才被啟動, 則無法被排除在錄製畫面之外."; +"Exclude the \"Desktop Files\" layer" = "錄製時排除所有桌面檔案"; +"Recording with Alpha Channel" = "在輸出中包含 Alpha 通道"; +"Delay Before Recording" = "開始錄製前倒數 (秒)"; +"s" = "秒"; +"Close" = "關閉"; +"Custom Background Color" = "使用者預設顏色 (錄製背景)"; +"File size: %@" = "檔案大小: %@"; +"Recording: " = "正在錄製: "; +"Preferences…" = "設定…"; +"Quit QuickRecorder" = "退出QuickRecorder"; +"Multiple Windows" = "多個視窗"; +"Multiple Apps" = "多個應用"; +"Unknown App" = "未知應用"; +"A Window" = "單個視窗"; +"Output Folder" = "檔案儲存位置"; +"Currently set to \"%@\"" = "當前儲存在 \"%@\""; +"/Recording at " = "/錄製於 "; +"/Capturing at " = "/捕獲於 "; +" (Cropped in " = " (修剪於 "; +"Recording Completed" = "錄製結束"; +"Clip Saved" = "剪輯已儲存"; +"File saved to: %@" = "檔案已儲存至: %@"; +"File saved to folder: %@" = "檔案已儲存到: %@ 目錄中"; +"Startup" = "啟動設定"; +"Update" = "更新設定"; +"Launch at Login" = "登入時啟動"; +"Shortcuts Settings" = "快捷鍵設定"; +"Pause / Resume" = "暫停/繼續錄製"; +"Stop Recording" = "結束螢幕錄製"; +"Record System Audio" = "立即錄製系統聲音"; +"Record Current Screen" = "立即錄製當前螢幕"; +"Record Topmost Window" = "立即錄製當前視窗"; +"Select Area to Record" = "選擇螢幕區域以錄製"; +"Toggle Screen Magnifier" = "顯示/隱藏螢幕放大鏡"; +"Waiting on update…" = "正在更新, 請稍等…"; +"Include MenuBar in Recording" = "在錄影中錄製選單列畫面"; +"Excluded Apps" = "App 排除列表"; +"Record with Camera:" = "錄製攝像頭:"; +"Presenter Overlay Camera:" = "\"發表人置前\"攝像頭:"; +//"Can only be turned off on macOS 14.2 or later!" = "此選項僅 macOS 14.2 或更高版本系統可中可被關閉!"; +"Presenter Overlay Delay" = "發表人置前延遲 (秒)"; +"Open video trimmer after recording" = "錄製結束自動開啟修剪器"; +"Unable to use camera overlayer when recording a single window!" = "錄製單個視窗時無法使用攝像頭浮窗!"; +" Please use \"Presenter Overlay\"" = " 請使用\"發表人置前\"功能"; +"No Devices Found!" = "未找到任何裝置"; +"No Cameras Found!" = "未找到任何攝像頭"; +"Please unlock!" = "請解鎖螢幕!"; +"If you are on a call, enable \"Mute\"" = "如需通話時錄影請啟用\"靜音\""; +"Preset" = "預設"; +"Mute" = "靜音"; +"Default" = "系統預設"; +"Pixel Format" = "畫素格式"; +"Color Space" = "色彩空間"; +"Check for Updates…" = "檢查程式更新…"; +"Update Settings" = "更新設定"; +"Automatically check for updates" = "自動檢查程式更新"; +"Automatically download updates" = "自動下載程式更新"; +"Connect your device via USB" = "請透過 USB 連線您的裝置"; +"Show QuickRecorder on Dock" = "在 Dock 中顯示 QuickRecorder"; +"Show QuickRecorder on Menu Bar" = "在選單列中顯示 QuickRecorder"; +"Icon Settings" = "圖示設定"; +"Still Processing" = "仍在處理"; +"Mixing audio track..." = "正在混合音軌..."; +"minutes " = "分鐘後自動停止錄製"; +" Stop after" = "在"; +"Don't remind me again" = "不再提醒"; +"OK" = "好"; +"Failed to save file" = "儲存檔案時出錯"; +"Enable Acoustic Echo Cancellation" = "消除麥克風回聲"; +"QuickRecorder is Running" = "QuickRecorder 已在執行"; +"Please do not run multiple instances!" = "請勿開啟多個 QuickRecorder!"; +"Show Windows with No Title" = "顯示無標題視窗"; +"Don't Create Thumbnails" = "不生成縮圖"; +"Record HDR" = "錄製HDR影片"; +"Resize" = "編輯選區"; +"Back" = "返回"; +"Unknow Error" = "未知錯誤"; +"The \"Acoustic Echo Cancellation\" is enabled, but it won't work on now.\n\nIf you need to use a specific input with AEC, set it to \"Default\" and select the device you want in System Preferences.\n\nOr you can start recording without AEC." = "您已啟用\"消除麥克風回聲\", 但很可惜程式內自定義麥克風不支援此功能!\n\n如需在特定的麥克風上使用迴音消除功能, 請將麥克風選項設為\"系統預設\", 並在系統偏好設定中選擇您需要使用的輸入裝置.\n\n或者直接開始錄製 (不使用回聲消除功能)"; +"System Preferences" = "系統偏好設定"; +"Export Recording" = "匯出錄音"; +"Play / Pause" = "播放 / 暫停"; +"Save Changes" = "儲存修改"; +"Stop Play" = "停止播放"; +"Export" = "匯出"; +"Export as MP3" = "匯出為 MP3"; +"Show Colors..." = "顯示顏色…"; +"Failed to Record" = "錄製失敗"; +"Unable to create output folder!" = "無法建立輸出資料夾!"; +"The output path is a file instead of a folder!"= "所選的儲存位置是一個檔案, 應該是資料夾!"; +"Mini size Menu Bar controller" = "使用迷你選單列控制器"; +"Check for Updates" = "立即檢測程式更新"; +"Error" = "錯誤"; +"Already recording!" = "正在錄製中!"; +"Invalid screen number!" = "無效的螢幕編號!"; +"No such application!" = "未找到此應用程式!"; +"This application has no windows!" = "此應用程式沒有可錄製的視窗!"; +"This app exists in multiple screens, please select it manually!" = "此應用程式同時存在於多個螢幕中, 請手動選擇!"; +"No such window!" = "未找到此視窗!"; +"Duplicate window exists, please select it manually!" = "存在多個同名視窗, 請手動選擇!"; +"Unable to find the screen this window belongs to!" = "無法確認此視窗所屬的螢幕!"; +"General" = "一般設定"; +"Recorder" = "錄製設定"; +"Output" = "輸出設定"; +"Hotkey" = "快捷鍵"; +"Blocklist" = "遮蔽列表"; +"Select..." = "選擇..."; +"Go Back" = "返回"; +"If enabling Presenter Overlay causes recording failure, please increase this value." = "如果啟用發表人置前功能後無法保存錄像, 請嘗試增大此值"; +"Open Main Panel" = "開啟主面板"; +"Prevent Mac from sleeping while recording" = "錄製時防止 Mac 進入睡眠"; +"Click the window you want to record\nor press Esc to cancel." = "請直接點選要錄製的視窗\n或者按 Esc 鍵退出選擇"; +"Show floating preview after recording" = "錄製結束後顯示預覽浮窗"; +"Show in Finder" = "在 Finder 中顯示"; +"Copy" = "複製"; +"Delete" = "刪除"; + +// Please don't translate the following warning strings, it will make it difficult for me to read the logs +"failed to fetch file for size indicator: %@" = "获取文件大小失败: "; +"[err] failed to fetch available content:" = "[错误] 无法获取可用的上下文:"; +"There needs to be at least one display connected" = "至少需要连接一台显示器"; +"capture failed" = "捕获失败"; +"unknown audio format while setting audio settings: " = "更改音频设置时设置了未知的音频格式"; +"[no defaults]" = "[无默认设置]"; +"loaded unknown audio format: " = "加载了未知的音频格式: "; +"loaded unknown video format" = "加载了未知的视频格式"; +"unknown stream type" = "未知的流类型"; +"audio file writing issue" = "音频文件写入出错"; +"closing stream with error:\n" = "关闭流时发生错误:\n"; +"\nthis might be due to the window closing or the user stopping from the sonoma ui" = "\n这可能是有由于用户关闭了正在录制中的窗口, 或使用窗口上的附加按钮停止了录制.";