Flash Translate — 極小で高速な macOS メニューバー翻訳ツール
概要
Flash Translate は「選択したテキストを即座に翻訳する」ことだけに注力した macOS 用メニューバーアプリです。ユーザーはテキストを選択して Command キーを素早く2回押すだけで、マウスの近くに翻訳結果を表示する小さなフローティングウィンドウが現れます。UI は純粋な SwiftUI で作られ、描画やアニメーションの遅延を抑えつつ、画面端を避ける自動配置やフェードイン/フェードアウトといった UX の細部にも配慮されています。翻訳バックエンドはデフォルトで Google Translate を使い、OpenAI 互換の API を指定してカスタムサービスを利用することも可能。メニューバー常駐型で Dock に表示されず、軽量で即時性の高い翻訳体験を提供します。
リポジトリの統計情報
- スター数: 5
- フォーク数: 0
- ウォッチャー数: 5
- コミット数: 3
- ファイル数: 10
- メインの言語: Swift
主な特徴
- Command キーのダブルタップで即翻訳(選択テキスト検出)
- 純粋な SwiftUI 実装で低遅延な UI 表示
- Google Translate をデフォルトに、OpenAI 互換 API などのカスタム翻訳サービスに対応
- メニューバー常駐・画面端自動回避・滑らかなアニメーション
技術的なポイント
Flash Translate は「単一機能を極限まで軽く正確に実現する」ことを設計目標としています。技術的に注目すべき点は以下のとおりです。
- Swift + SwiftUI による実装: UI やアニメーションは SwiftUI で実装され、状態管理とビュー更新を宣言的に扱っています。これにより描画パフォーマンスが安定し、フェードやスライドなどのトランジションも簡潔に書けます。
- グローバルなキー監視と選択テキスト取得: 「Command をダブルタップして翻訳」という UX を実現するため、グローバルなキーイベント監視(NSEvent の addGlobalMonitorForEvents など)でフラグ変更を検出し、短時間での二回押しを判定します。選択テキストの取得は macOS の Accessibility API やクリップボード監視、あるいはフロントアプリ固有の選択取得(AppleScript 等)を併用する実装が考えられ、Accessibility 権限の要求やプライバシー配慮が必要です。
- 翻訳 API の抽象化: デフォルトで Google Translate を使う設計ですが、OpenAI 互換の API エンドポイントを指定できるため、バックエンド切替が容易です。ネットワークリクエストは非同期(URLSession/async-await)で実行し、UI 更新はメインスレッドで安全に行います。
- メニューバー常駐アプリの構成: Info.plist に LSUIElement を設定して Dock を非表示にし、NSStatusItem でメニューバーに常駐する典型的な macOS メニューバーアプリ構造を採用。フローティングウィンドウ(翻訳結果表示)はマウス位置やアクティブウィンドウ座標を元に位置決めし、NSScreen のフレームを参照して画面端に当たらないようオフセットを調整します。
- 軽量設計と UX の磨き込み: 小さなバイナリ・少ない依存でビルドできる点、また翻訳ポップオーバーのフェードイン/アウトやマウス近辺への表示といった細かい UX が、日常的に使いやすい体験を生んでいます。リリースは DMG 形式で配布されるため、ユーザーはドラッグ&ドロップで簡単にインストールできます。
これらの組み合わせにより、Flash Translate は「すぐ使える」「邪魔にならない」「応答が速い」という点で価値を発揮します。実装を見ることで、SwiftUI と AppKit の橋渡し、グローバルイベント処理、翻訳 API の抽象化といった macOS ツール作成の実践的な知見が得られます。
プロジェクトの構成
主要なファイルとディレクトリ:
- .gitignore: file
- FlashTranslate.xcodeproj: dir
- FlashTranslateApp.swift: file
- Info.plist: file
- LICENSE: file
…他 5 ファイル
まとめ
単機能に特化したシンプルで実用的な macOS 翻訳ツール。軽量・高速で日常使いに向く。
リポジトリ情報:
- 名前: Flash-Translate
- 説明: 极简 macOS 菜单栏划词翻译工具
- スター数: 5
- 言語: Swift
- URL: https://github.com/orange2ai/Flash-Translate
- オーナー: orange2ai
- アバター: https://avatars.githubusercontent.com/u/77816124?v=4
READMEの抜粋:
Flash Translate
极简 macOS 菜单栏划词翻译工具
✨ 特性
- 双击 Command 键即可翻译 - 选中文字后快速双击 Command,悬浮窗自动出现在鼠标附近
- 原生 SwiftUI - 纯 Swift 编写,零延迟体验
- 支持多种翻译服务 - 默认 Google Translate,支持自定义 OpenAI-compatible API
- 菜单栏常驻 - 不占 Dock 位置,随时可用
- 优雅动画 - 淡入淡出效果,流畅自然
- 智能边界检测 - 悬浮窗自动避开屏幕边缘
🎯 产品理念
专注一个功能并做到极致。不做加法,只做减法。
📦 安装
- 下载 FlashTranslate-v1.0.dmg
- 打开 DMG 文件
- 将 Flash Translate 拖到应…