Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 1 addition & 2 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,5 @@ dist/
*.cer
*.mobileprovision
*.provisionprofile
MP4Flow.app/Contents/MacOS/MP4Flow
MP4Flow.app/Contents/Resources/
MP4Flow.app/
Tests/.generated/
4 changes: 2 additions & 2 deletions AppResources/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,8 @@
<key>CFBundleIconFile</key><string>AppIcon</string>
<key>CFBundleName</key><string>MP4Flow</string>
<key>CFBundlePackageType</key><string>APPL</string>
<key>CFBundleShortVersionString</key><string>1.2.1</string>
<key>CFBundleVersion</key><string>7</string>
<key>CFBundleShortVersionString</key><string>1.2.2</string>
<key>CFBundleVersion</key><string>8</string>
<key>CFBundleLocalizations</key>
<array><string>en</string><string>ja</string><string>zh-Hans</string></array>
<key>LSMinimumSystemVersion</key><string>13.0</string>
Expand Down
97 changes: 72 additions & 25 deletions AppResources/en.lproj/Localizable.strings
Original file line number Diff line number Diff line change
Expand Up @@ -5,34 +5,34 @@
"智能增强放大(macOS 27+)" = "Smart Enhance Upscale (macOS 27+)";
"清晰又省空间" = "Clear and Compact";
"尽量保留原画" = "Keep Quality";
"所有设备都能播放" = "Play Anywhere";
"所有设备都能播放" = "Broad Compatibility";
"节省更多空间" = "Save More";
"最稳妥转换(较慢)" = "Reliable (Slow)";
"只换成 MP4(最快)" = "MP4 Only (Fast)";
"自动选择,能不压就不压。" = "Automatically.";
"支持 1280×1080 以下视频,最高 2 倍。" = "Supports input up to 1280 × 1080; up to 2×.";
"清晰省空间,适合大文件。" = "Keeps video clear while reducing large files.";
"保留更多细节,文件更大。" = "Keeps more detail; output files are larger.";
"旧设备和电视也能播放。" = "Works on older devices and TVs.";
"文件更小,旧设备可能不支持。" = "Smaller files; older devices may not play them.";
"转换失败时使用,速度较慢。" = "Use if other conversions fail; it is slower.";
"只换MP4,不压缩画面。" = "Changes to MP4 without compressing the picture.";
"自动选择,能不压就不压。" = "Copies video when compatible.";
"支持 1280×1080 以下视频,最高 2 倍。" = "≤1280 × 1080 input; up to 2×.";
"清晰省空间,适合大文件。" = "Quality for large files.";
"保留更多细节,文件更大。" = "More detail; larger files.";
"旧设备和电视也能播放。" = "For older devices and TVs.";
"文件更小,旧设备可能不支持。" = "Smaller; not for all devices.";
"转换失败时使用,速度较慢。" = "If conversion fails; slower.";
"只换MP4,不压缩画面。" = "Copies video; picture edits re-encode.";
"文件更小" = "Smaller";
"清晰刚好" = "Balanced";
"画质更好" = "Larger";
"文件更小,细节会少一点。" = "Less detail.";
"画面和大小都合适。" = "A good balance of quality and size.";
"保留更多细节,文件更大,速度更慢。" = "More detail.";
"文件更小,细节会少一点。" = "Smaller files; less detail.";
"画面和大小都合适。" = "Quality and size in balance.";
"保留更多细节,文件更大,速度更慢。" = "More detail; larger and slower.";
"保持原画" = "Original";
"转1080P" = "1080p";
"转720P" = "720p";
"转576P" = "576p";
"转480P" = "480p";
"保持原画尺寸。" = "Keeps the original dimensions.";
"输出1080P,放大不增细节。" = "Outputs 1080p; upscaling does not add detail.";
"输出720P,节省空间。" = "Outputs 720p to save space.";
"输出576P,适合宽屏。" = "Outputs 576p for common widescreen video.";
"输出480P,最省空间。" = "Outputs 480p for the smallest files.";
"保持原画尺寸。" = "Keep original dimensions.";
"输出1080P,放大不增细节。" = "1080p; upscaling adds no detail.";
"输出720P,节省空间。" = "720p, same proportions.";
"输出576P,适合宽屏。" = "576p, same proportions.";
"输出480P,最省空间。" = "480p, same proportions.";
"等待中" = "Waiting";
"转换中" = "Converting";
"正在合并" = "Merging";
Expand All @@ -50,8 +50,8 @@
"兼容合并" = "Compatible Merge";
"无损合并" = "Lossless Merge";
"已处理 %d/%d" = "%d of %d processed";
"当前方式已设定画质。" = "This conversion mode sets the quality.";
"只换格式,不压缩画面。" = "Changes the container without compressing video.";
"当前方式已设定画质。" = "Quality set by this mode.";
"只换格式,不压缩画面。" = "Copies video; picture edits re-encode.";
"添加视频" = "Add Videos";
"选择输出位置" = "Choose Output Folder";
"正在检查 %d 个片段是否可无损合并" = "Checking whether %d clips can be merged losslessly";
Expand All @@ -64,7 +64,7 @@
"合并已取消。" = "Merge cancelled.";
"%@未完成" = "%@ did not finish";
"%@完成" = "%@ complete";
"片段参数不同,可使用兼容合并。" = "Clip settings differ. Use Compatible Merge instead.";
"请先统一规格转码,再合并;也可使用兼容合并。" = "Convert to matching settings first, or use Compatible Merge.";
"FFmpeg 合并失败。" = "FFmpeg merge failed.";
"无法启动 FFmpeg:%@" = "Could not start FFmpeg: %@";
"兼容合并失败:存在无法读取的视频流。" = "Compatible Merge failed because a video stream could not be read.";
Expand Down Expand Up @@ -112,7 +112,7 @@
"智能增强放大(实验性)" = "Smart Enhance Upscale (Experimental)";
"自动放大" = "Auto Upscale";
"自动选择支持倍率。" = "Uses a supported scale factor automatically.";
"添加视频后显示可选分辨率。" = "Add a video to see available resolutions.";
"添加视频后显示可选分辨率。" = "Add video to see sizes.";
"最高增强 2 倍。" = "Up to 2× enhancement.";
"目标码率 %.1f Mbps" = "Target bitrate %.1f Mbps";
"硬件编码不可用。请改用“兼容优先:H.264 MP4(软件)”。" = "Hardware encoding is unavailable. Use the software H.264 option instead.";
Expand Down Expand Up @@ -215,7 +215,7 @@
"检查更新,当前版本 v%@" = "Check updates. Current version v%@";
"MP4Flow 依赖本机的 FFmpeg 进行转码,但尚未检测到它。\n\n1. 打开「终端」\n2. 若尚未安装 Homebrew,请在官网完成安装\n3. 粘贴并执行:brew install ffmpeg\n4. 安装结束后,完全退出并重新打开 MP4Flow。" = "MP4Flow needs FFmpeg to convert video, but it was not found.\n\n1. Open Terminal\n2. Install Homebrew if needed\n3. Run: brew install ffmpeg\n4. Quit and reopen MP4Flow.";
"中文" = "Chinese";
"检测到片段的分辨率、帧率或音频参数不同,无法安全无损拼接。继续后将以队列中最大分辨率为目标尺寸:较小视频等比例放大;比例不同则居中补边,不会拉伸画面。输出统一编码为 H.264 + AAC MP4。" = "The clips have different resolutions, frame rates, or audio settings, so they cannot be merged safely without re-encoding. Compatible Merge uses the largest source resolution: smaller clips scale up proportionally, different aspect ratios are padded in the centre, and nothing is stretched. Output is H.264 + AAC MP4.";
"这些片段暂不适合直接拼接。建议先做统一规格的转码,再合并。\n\n也可选择「开始兼容合并」,自动统一规格后合并。以最大分辨率为目标,等比例缩放并居中补边,输出 H.264 + AAC MP4。" = "These clips cannot be joined directly. Convert them to matching settings first, then merge.\n\nOr use Compatible Merge to do both. Clips are scaled proportionally and padded to the largest resolution. Output: H.264 + AAC MP4.";
"关于 MP4Flow" = "About MP4Flow";
"MP4Flow 使用帮助" = "MP4Flow Help";
"发现新版本 v%@" = "New version · v%@";
Expand Down Expand Up @@ -273,7 +273,7 @@
"请检查文件和输出文件夹权限后重试。" = "Check the file and output-folder permissions, then try again.";
"请检查磁盘空间后重试。" = "Check available disk space, then try again.";
"请检查输出文件夹权限和可用空间后重试。" = "Check output-folder permissions and available space, then try again.";
"请确认文件可播放,或使用「智能转换」生成新文件后重试。" = "Confirm the file plays, or use Smart Convert to create a new file and try again.";
"请确认文件可播放,或使用「智能转换」生成新文件后重试。" = "Check that the file plays. If needed, use Smart Convert to create a new file, then add it and retry.";
"请确认视频可播放、磁盘可用后重试;仍失败请使用「最稳妥转换」。" = "Confirm the video plays and disk space is available; if it still fails, use Reliable Conversion.";
"请释放空间或选择其他输出位置后重试。" = "Free up space or choose another output folder, then try again.";
"转换长时间无进度,已安全停止" = "Conversion made no progress for too long and was stopped safely";
Expand Down Expand Up @@ -310,8 +310,8 @@
"请选择可写的文件夹或检查磁盘权限。" = "Choose a writable folder or check disk permissions.";
"可用空间较少;建议至少保留 1 GB。" = "Free space is low; keep at least 1 GB free.";
"处理策略" = "Processing Policy";
"默认输出第一路视频和音频,并移除容器元数据和章节;开始转换时会检测多音轨、字幕和 HDR,并在队列中提示。" = "MP4Flow outputs the first video and audio track, and removes container metadata and chapters. It checks multiple audio tracks, subtitles, and HDR when conversion starts, then shows a notice in the queue.";
"默认仅输出第一路视频和音频,并移除容器元数据和章节。开始转换时会检测多音轨、字幕和 HDR,并在队列中提示。" = "By default, MP4Flow outputs the first video and audio track and removes container metadata and chapters. It checks multiple audio tracks, subtitles, and HDR when conversion starts, then shows a notice in the queue.";
"默认保留首路视频和音频;多音轨、字幕及 HDR 的处理将在队列中提示。" = "First video/audio tracks only. The queue flags extra audio tracks, subtitles and HDR.";
"默认仅输出第一路视频和音频,并移除容器元数据和章节。开始转换时会检测多音轨、字幕和 HDR,并在队列中提示。" = "Smart Convert copies compatible video whenever possible and re-encodes only when needed. Output keeps the first video and audio track and removes container metadata and chapters. Notices appear when extra tracks, subtitles, chapters, or HDR transcoding affect the result.";
"%@ · %d%%" = "%@ · %d%%";
"%@ · %@" = "%@ · %@";
"正在转换" = "Converting";
Expand All @@ -325,3 +325,50 @@
"已检查 %d 个文件夹;无法写入:%@" = "Checked %d folder(s); cannot write: %@";
"已检查 %d 个输出文件夹,可写。" = "Checked %d output folder(s); writable.";
"可用空间:%@" = "Free space: %@";
"视频直接复制,音频转为 AAC" = "Copying video; converting audio to AAC";
"素材信息尚未确认" = "Media information has not been confirmed";
"请确认文件可播放后重试;检测完成前不会开始转换。" = "Check that the file plays, then try again. Conversion waits until inspection succeeds.";
"检测到 %d 路视频;仅保留第一路。" = "%d video tracks detected; only the first will be kept.";
"检测到 %d 路音频;仅保留第一路。" = "%d audio tracks detected; only the first will be kept.";
"检测到 %d 条字幕;输出不保留字幕。" = "Subtitles (%d) will not be included in the output.";
"检测到 %d 个章节;输出不保留章节。" = "Chapters (%d) will not be included in the output.";
"HDR 将重新编码,色彩或动态范围可能改变;如需保留,请保持原尺寸并使用「%@」。" = "Re-encoding HDR may change colour or dynamic range. To preserve it, keep the original size and use %@.";
"非标准旋转角度将重绘画面;请核对输出方向与边缘。" = "A non-standard rotation angle will redraw the image. Check the output orientation and edges.";
"源文件已移动、删除或无法访问" = "The source file was moved, deleted, or is unavailable";
"请在访达中确认源文件仍存在,重新添加后再试。" = "Find the source file in Finder, then add it again and retry.";
"FFprobe 不可用,无法验证输出" = "FFprobe is unavailable; output could not be verified";
"请在「环境体检」修复 FFprobe 后重新转换。" = "Fix FFprobe in Environment Check, then convert again.";
"输出文件未通过媒体检查" = "The output file could not be verified";
"请重新转换;仍失败请在「环境体检」检查 FFprobe,并确认磁盘可用。" = "Convert again. If it still fails, check FFprobe in Environment Check and confirm the disk is available.";
"请取消裁切和旋转后再增强;或先完成普通编辑,再添加新文件增强。" = "Remove crop and rotation edits before enhancing, or finish a normal edit and add the new file for enhancement.";
"请改用「智能转换」;智能增强需要受支持的 Apple 芯片与 macOS 27+。" = "Use Smart Convert instead. Smart Enhance requires supported Apple silicon and macOS 27 or later.";
"请检查剩余空间和输出文件夹权限,或改用本地文件夹后重试。" = "Check free space and output-folder permissions, or choose a local folder and retry.";
"请降低增强目标分辨率,关闭其他视频任务后重试。" = "Lower the enhancement resolution, close other video tasks, and retry.";
"请降低增强目标分辨率后重试。" = "Lower the enhancement resolution and retry.";
"输出收尾超时" = "Output finalization timed out";
"请检查磁盘空间与连接,改用本地输出文件夹后重试。" = "Check disk space and connections, choose a local output folder, and retry.";
"正在取消…" = "Cancelling…";
"转换组件不可用" = "Conversion tools unavailable";
"FFmpeg 或 ffprobe 未安装,或无法运行。请先在「环境体检」查看缺少的组件与修复方法。\n\n如未安装,可在终端执行:brew install ffmpeg\n安装后重新检查。" = "FFmpeg or ffprobe is missing or could not run. Open Environment Check to see which tool needs attention and how to fix it.\n\nIf not installed, run this in Terminal: brew install ffmpeg\nCheck again after installation.";
"首次启动不自动检查更新;之后通常每天检查一次,失败后稍后重试。" = "Updates are not checked automatically on first launch. After that, checks usually run daily, with a later retry if one fails.";
"上次未能检查更新,可手动重试。" = "The last update check failed. You can retry manually.";
"请确认文件可播放;也可先用「智能转换」转为 MP4,再重新添加。" = "Check that the file plays. If needed, use Smart Convert to create an MP4, then add the new file.";
"后退 5 秒" = "Back 5 seconds";
"前进 5 秒" = "Forward 5 seconds";
"播放" = "Play";
"暂停" = "Pause";
"播放进度" = "Playback position";
"音量" = "Volume";
"完成 %d · 失败 %d · 取消 %d" = "Done %d · Failed %d · Cancelled %d";
"无法加载剪辑预览" = "Could not load the trim preview";
"无法加载裁切预览" = "Could not load the crop preview";
"FFmpeg 无法运行" = "FFmpeg could not run";
"FFprobe 无法运行" = "FFprobe could not run";
"硬件加速不可用,仍可转换" = "Hardware acceleration unavailable; conversion still works";
"需要重新编码时将使用软件处理,速度可能较慢。" = "When re-encoding is needed, software processing may be slower.";
"软件编码器不可用" = "Software encoder unavailable";
"请更新或重新安装 FFmpeg,或改用「智能转换」后重试。" = "Update or reinstall FFmpeg, or try Smart Convert.";
"此视频流无法直接写入 MP4" = "This stream cannot be copied directly into MP4";
"请使用「智能转换」重新编码后重试;仍失败请使用「最稳妥转换」。" = "Re-encode with Smart Convert. If it still fails, try Reliable (Slow).";
"无法启动转换工具" = "Could not start the conversion tool";
"请在「环境体检」检查 FFmpeg,修复安装或权限后重试。" = "Check FFmpeg in Environment Check, fix its installation or permissions, and try again.";
Loading
Loading