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
4 changes: 2 additions & 2 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@
## Validation

- [ ] `swift build` passes
- [ ] English and Simplified Chinese UI were checked
- [ ] English, Japanese, and Simplified Chinese UI were checked
- [ ] User-facing copy is concise and has no truncation ellipsis
- [ ] Documentation and changelog are updated when needed
- [ ] I considered the README, download guidance, privacy, and release-note impact
Expand All @@ -14,6 +14,6 @@

## Release note

<!-- One short English bullet and one short Chinese bullet, or “None”. -->
<!-- One short English, Japanese, and Simplified Chinese bullet, or “None”. -->

## Screenshots or recordings
8 changes: 4 additions & 4 deletions .github/release.yml
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
changelog:
categories:
- title: ✨ New features / 新功能
- title: ✨ New features / 新機能 / 新功能
labels:
- enhancement
- title: 🐛 Fixes / 修复
- title: 🐛 Fixes / 修正 / 修复
labels:
- bug
- title: ♿ Accessibility / 无障碍
- title: ♿ Accessibility / アクセシビリティ / 无障碍
labels:
- accessibility
- title: 📚 Documentation / 文档
- title: 📚 Documentation / ドキュメント / 文档
labels:
- documentation
exclude:
Expand Down
2 changes: 1 addition & 1 deletion AppResources/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<key>CFBundleShortVersionString</key><string>1.1.2</string>
<key>CFBundleVersion</key><string>5</string>
<key>CFBundleLocalizations</key>
<array><string>en</string><string>zh-Hans</string></array>
<array><string>en</string><string>ja</string><string>zh-Hans</string></array>
<key>LSMinimumSystemVersion</key><string>13.0</string>
<key>ATSApplicationFontsPath</key><string>Fonts</string>
<key>NSHighResolutionCapable</key><true/>
Expand Down
328 changes: 328 additions & 0 deletions AppResources/ja.lproj/Localizable.strings

Large diffs are not rendered by default.

67 changes: 67 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,19 @@
# Changelog

## Unreleased

### English

- Added a complete Japanese experience: app language selection and system-language detection, bundled Japanese resources, a Japanese website view, Japanese documentation, and Japanese release-note coverage.

### 日本語

- 日本語での利用体験を追加しました。アプリの言語選択とシステム言語の検出、日本語リソースの同梱、日本語の公式サイト、日本語ドキュメント、日本語のリリースノートを含みます。

### 中文

- 新增完整日文支持:应用语言选择与系统语言识别、日文资源随应用打包、官网日文页面、日文文档与日文版本说明。

## 1.1.2 — 2026-10-15

### English
Expand All @@ -8,6 +22,12 @@
- Added update-check regression coverage for semantic versions, trusted release URLs, draft/prerelease filtering, daily backoff, HTTP failures, and timeouts. Updates remain a user-approved visit to the GitHub Release page; they are never downloaded or installed automatically.
- Standardised interface symbols on the bundled Tabler Icons Outline set and refined shared controls for a more consistent macOS experience.

### 日本語

- 更新通知を改善しました。初回起動時はネットワークに接続せず、自動確認は永続化されて1日1回までに制限され、設定から無効にもできます。新しいリリースがある場合は閉じられるアプリ内バナーを表示し、手動確認では更新あり、最新、失敗を一貫して知らせます。
- セマンティックバージョン、信頼できるリリース URL、ドラフト/プレリリースの除外、日次の間隔制御、HTTP 失敗、タイムアウトを対象に更新確認の回帰テストを追加しました。更新は GitHub Releases をユーザーが承認して開く方式であり、自動ダウンロードや自動インストールは行いません。
- 同梱の Tabler Icons Outline セットにインターフェース記号を統一し、共通コントロールを整えて macOS らしい一貫性を高めました。

### 中文

- 完善更新提醒:首次启动不联网,自动检查会持久化并限制为每天最多一次,也可在“设置”中关闭。发现新版本时显示可隐藏的应用内提示;手动检查会一致地反馈有更新、已是最新或检查失败。
Expand All @@ -23,6 +43,13 @@
- Makes media handling explicit before conversion: MP4Flow reports multi-audio, subtitle, and HDR handling instead of silently implying they were preserved. Added a reproducible 28-case synthetic media regression gate.
- Refined the Environment Check layout, original icon system, centered checking state, and compact action buttons.

### 日本語

- ローカルの FFmpeg、ffprobe、利用可能な VideoToolbox ハードウェアエンコーダを表示する「環境チェック」を追加しました。出力先の確認は動画の追加またはカスタム出力先の選択後まで遅らせ、起動時の静かさと応答性を保ちます。
- 変換の状態で、素材の検査、直接再格納、ハードウェアエンコード、ソフトウェア互換エンコード、出力検証を明示するようにしました。進行停止のタイムアウト、安全なキャンセル後の清掃、出力検証、よくある失敗の回復案内を追加しました。
- 変換前に複数音声、字幕、HDR の扱いを明示し、保持されたと誤解させる表示をしないようにしました。再現可能な28件の合成メディア回帰ゲートも追加しました。
- 環境チェックのレイアウト、独自アイコンシステム、中央揃えの確認状態、コンパクトな操作ボタンを改善しました。

### 中文

- 新增“环境体检”:检查本机 FFmpeg、ffprobe 与可用的 VideoToolbox 硬件编码器。输出位置仅在添加视频或选择自定义目录后检查,启动界面更安静、响应更快。
Expand All @@ -38,6 +65,12 @@
- Resolution choices now adapt to the source. Audio/video writing is concurrent, and encoder, frame-processing, and finalisation timeouts prevent an export from waiting indefinitely.
- Added a real GitHub update check, a linked About panel, a focused Help window, and clear recovery guidance. Update checks read public release metadata only and never upload videos or usage data.

### 日本語

- Appleシリコンかつ macOS 27 以降向けに、実験的な「スマート高画質拡大」を追加しました。対応する元解像度と目標解像度の組み合わせでは、システムの VideoToolbox 機能により最大2倍まで拡大できます。
- 解像度の選択肢を元動画に応じて変化させました。音声と映像の同時書き込みに加え、エンコーダ、フレーム処理、終了処理のタイムアウトにより、書き出しが無期限に待機するのを防ぎます。
- 実際の GitHub 更新確認、リンク付きの「情報」パネル、操作に集中したヘルプ画面、明確な復旧案内を追加しました。更新確認は公開リリース情報のみを読み取り、動画や利用データをアップロードしません。

### 中文

- 新增实验性「智能增强放大(macOS 27+)」:在 Apple 芯片 Mac 上调用系统 VideoToolbox 能力,符合条件的源视频最高可放大 2 倍。
Expand All @@ -46,19 +79,53 @@

## 1.0.1 — 2026-09-23

### English

- Added `−5` and `+5` trim controls for frame-accurate navigation while selecting a clip range.
- Widened trim time fields so start and end timecodes remain fully visible.
- Improved frame stepping by using the source frame rate, cancelling stale preview seeks, and clearly disabling controls at range boundaries.

### 日本語

- クリップ範囲を選ぶ際のフレーム単位の移動のため、トリミング操作に `−5` と `+5` を追加しました。
- 開始と終了のタイムコードが最後まで見えるよう、トリミングの時刻フィールドを広げました。
- 元動画のフレームレートを使い、古いプレビューシークを取り消し、範囲の端では操作を明確に無効化することで、フレーム移動を改善しました。

### 中文

- 剪辑范围选择中新增 `−5` 与 `+5` 帧操作,帮助更精确地定位画面。
- 加宽剪辑时间栏,确保起止时间码完整显示。
- 使用源视频帧率、取消过期预览跳转,并在范围边界清晰禁用控件,优化逐帧定位。

## 1.0.0 — 2026-09-22

### English

- Added English and Simplified Chinese application language support.
- Added a reproducible DMG installer workflow with a Finder installation layout.
- Added open-source documentation, privacy, security, attribution, and contribution guidance.
- Improved queue, conversion, merge, and error text for concise, understandable wording.
- Hardened lossless merge with line-break filename rejection and atomic temporary output publishing.
- Added a release checklist covering FFmpeg trust boundaries, privacy disclosures, asset provenance, signing, notarization, and GitHub release hygiene.

### 日本語

- 英語と簡体字中国語のアプリ言語サポートを追加しました。
- Finder でのインストール配置を含む、再現可能な DMG インストーラのワークフローを追加しました。
- オープンソース向けのドキュメント、プライバシー、セキュリティ、帰属表示、貢献ガイドを追加しました。
- キュー、変換、結合、エラーの文言を、簡潔で分かりやすい表現に改善しました。
- 改行を含むファイル名を拒否し、原子的な一時出力公開を使うことで、ロスレス結合を強化しました。
- FFmpeg の信頼境界、プライバシー開示、アセットの出所、署名、公証、GitHub リリースの運用を確認するリリースチェックリストを追加しました。

### 中文

- 新增中英文应用语言支持。
- 新增可重复执行的 DMG 安装包流程与 Finder 安装布局。
- 新增开源文档、隐私、安全、署名与贡献说明。
- 优化队列、转换、合并与报错文案,使其更简洁易懂。
- 拒绝含换行符的文件名,并使用原子临时输出发布,增强无损合并的可靠性。
- 新增发布检查清单,覆盖 FFmpeg 信任边界、隐私披露、资产来源、签名、公证和 GitHub 发布规范。

## Earlier versions

Earlier development changes are intentionally not retroactively reconstructed. Future release notes follow the Keep a Changelog style.
4 changes: 2 additions & 2 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,9 +3,9 @@
Thank you for improving MP4Flow.

1. Discuss substantial changes in an issue before implementation.
2. Keep both English and Simplified Chinese user-facing text clear, short, and consistent. Do not machine-translate codec jargon literally.
2. Keep English, Japanese, and Simplified Chinese user-facing text clear, short, and consistent. Do not machine-translate codec jargon literally.
3. Build with `swift build` and run `./Scripts/build-app.sh` before a pull request.
4. Do not add telemetry, network calls, or bundled FFmpeg binaries without explicit discussion.
5. Keep changes focused and document user-visible behaviour in `CHANGELOG.md`.

For UI work, test both app languages and narrow windows. For conversion changes, include a sample command or a repeatable description using non-private media.
For UI work, test all three app languages and narrow windows. For conversion changes, include a sample command or a repeatable description using non-private media.
19 changes: 19 additions & 0 deletions NOTICE.ja.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# 表示と帰属

## FFmpeg

MP4Flow は、ユーザーが用意した FFmpeg インストールを呼び出します。FFmpeg はこのリポジトリに同梱、ダウンロード、再配布されません。ユーザーがインストールする FFmpeg ビルドのライセンスは、ビルド方法により LGPL、GPL、またはその他の組み合わせになる場合があります。MP4Flow の MIT ライセンスは FFmpeg をライセンスするものではありません。インストールする FFmpeg ビルドに付属する利用条件と表示を確認してください。

## Noto Sans SC

同梱の Noto Sans SC フォントファイルは、SIL Open Font License 1.1 の下で配布されています。完全なライセンス本文は [AppResources/OFL.txt](AppResources/OFL.txt) にあります。同梱アートワークとデモアセットの表示は [AppResources/ASSET_NOTICES.md](AppResources/ASSET_NOTICES.md) を参照してください。

## Tabler Icons Outline

MP4Flow は、MIT License の下で提供される [`tabler/tabler-icons` v3.49.0](https://github.com/tabler/tabler-icons/tree/v3.49.0) の Tabler Icons Outline SVG から、選択した一部を使用しています。同梱するソースファイルと完全な帰属表示は [AppResources/ASSET_NOTICES.md](AppResources/ASSET_NOTICES.md) にあります。

## メディアの権利とブランド

MP4Flow を使ってメディアを変換、編集、結合、保存、共有するために必要な権利および許諾は、あなたの責任で確認してください。MP4Flow は、第三者の動画、音声、字幕、商標、その他のコンテンツに関する権利を付与しません。

Apple、macOS、Homebrew、FFmpeg、GitHub などの名称は、各所有者の商標である場合があります。ここでの使用は説明目的のみであり、提携、後援、承認を意味するものではありません。
33 changes: 33 additions & 0 deletions PRIVACY.ja.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,33 @@
# プライバシー

MP4Flow は、実行している Mac 上でメディアを処理するように設計されています。この文書は、このリポジトリで公開するオープンソースアプリの動作を説明するものであり、macOS、ブラウザ、Homebrew、または別途インストールした FFmpeg ビルドの動作を説明するものではありません。

## MP4Flow が扱うデータ

- アプリは、追加または選択した動画ファイルとフォルダを読み取ります。キューの表示と変換に必要な範囲で、メモリ内のサムネイルを作成し、メディアのプロパティを読み取ることがあります。
- macOS のユーザーデフォルトには、選択した表示言語のみを保存します。キュー、動画のパス、変換設定、診断情報、アカウント情報、メディアライブラリは保存しません。
- 変換、解析、トリミング、クロップ、回転、結合は、ローカルの `ffmpeg` と `ffprobe` 実行ファイルを通じて行います。このアプリのリリースには、テレメトリ、分析、広告 SDK、メディアアップロードのコードは含まれません。

## 更新確認

- MP4Flow は、最新の安定版を確認するために `https://api.github.com/repos/ixiehao/MP4Flow/releases/latest` へアクセスできます。このリクエストには固定の MP4Flow User-Agent と、GitHub およびネットワーク接続で通常扱われるネットワークメタデータだけが含まれます。動画の内容、ファイルパス、変換設定、アカウント情報、利用データは含まれません。
- 自動確認は初期状態で有効ですが、初回起動時はオフラインです。以降の起動では、MP4Flow は最大で1日1回だけ確認し、一時的な失敗時は1時間待機します。**設定** で自動確認を無効にしても、いつでも **ヘルプ > アップデートを確認** を利用できます。
- 更新が見つかった場合も、選択したときに公開 GitHub リリースページを開くだけです。MP4Flow が自動で更新をダウンロード、インストール、実行することはありません。

## ローカルに作成されるファイル

- 出力は初期設定では元ファイルの隣に、または選択したフォルダに書き込まれます。MP4Flow が元ファイルを削除または上書きすることはありません。
- 処理中の出力は、意図した結果の隣に UUID 名の隠し `.partial.mp4` ファイルとして作成され、FFmpeg が成功した後にのみ最終位置へ移動します。通常の失敗またはキャンセル後には、アプリが削除を試みます。クラッシュ、強制終了、電源断、ストレージエラーでは一時ファイルが残ることがあります。変換が実行中でないことを確認してから安全に削除できます。
- ロスレス結合では、システムの一時ディレクトリに UUID 名のマニフェストを短時間作成します。そこには選択した元ファイルのパスが入り、結合後に削除されます。強制終了時は macOS が一時ディレクトリを清掃するまで残ることがあります。

## メタデータとローカルツール

MP4Flow は、生成する出力にコンテナレベルのメタデータやチャプターをコピーしないよう FFmpeg に指示します。コーデックに必要なストリーム情報や、別途インストールした FFmpeg ビルドが追加するデータは残ることがあるため、機密情報を消去する用途では出力を確認してください。クロップ、トリミング、変換は、人物や場所を特定し得る映像、音声、字幕、その他の内容が消えることを保証しません。

MP4Flow は、ユーザーが用意した FFmpeg を `/opt/homebrew/bin`、`/usr/local/bin`、`/opt/local/bin`、`/usr/bin` だけで探します。この実行ファイルのダウンロード、同梱、検証、更新は行いません。信頼できる提供元から FFmpeg を導入し、そのビルド固有のプライバシー、セキュリティ、ライセンス情報を確認してください。

**Homebrew を開く** を選択すると、既定のブラウザで `https://brew.sh/ja/` を開きます。これは明示的なブラウザ操作であり、そのリクエストやブラウザが扱うデータは MP4Flow のローカル処理の範囲外です。

## あなたが選べること

非公開のメディアは、適切な macOS 権限を設定したフォルダに保管してください。出力を共有する前に、表示内容、音声、字幕、ファイル名、メタデータを確認してください。今後のリリースで、ここに記載した公開リリース確認を超えるデータ収集やネットワーク機能を追加する場合は、そのリリース前にこのポリシーを更新します。
Loading
Loading