Flash Translate — 極小で高速な macOS メニューバー翻訳ツール

Tool

概要

Flash Translate は「選択したテキストを即座に翻訳する」ことだけに注力した macOS 用メニューバーアプリです。ユーザーはテキストを選択して Command キーを素早く2回押すだけで、マウスの近くに翻訳結果を表示する小さなフローティングウィンドウが現れます。UI は純粋な SwiftUI で作られ、描画やアニメーションの遅延を抑えつつ、画面端を避ける自動配置やフェードイン/フェードアウトといった UX の細部にも配慮されています。翻訳バックエンドはデフォルトで Google Translate を使い、OpenAI 互換の API を指定してカスタムサービスを利用することも可能。メニューバー常駐型で Dock に表示されず、軽量で即時性の高い翻訳体験を提供します。

GitHub

リポジトリの統計情報

  • スター数: 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 翻訳ツール。軽量・高速で日常使いに向く。

リポジトリ情報:

READMEの抜粋:

Flash Translate

极简 macOS 菜单栏划词翻译工具

✨ 特性

  • 双击 Command 键即可翻译 - 选中文字后快速双击 Command,悬浮窗自动出现在鼠标附近
  • 原生 SwiftUI - 纯 Swift 编写,零延迟体验
  • 支持多种翻译服务 - 默认 Google Translate,支持自定义 OpenAI-compatible API
  • 菜单栏常驻 - 不占 Dock 位置,随时可用
  • 优雅动画 - 淡入淡出效果,流畅自然
  • 智能边界检测 - 悬浮窗自动避开屏幕边缘

🎯 产品理念

专注一个功能并做到极致。不做加法,只做减法。

📦 安装

  1. 下载 FlashTranslate-v1.0.dmg
  2. 打开 DMG 文件
  3. 将 Flash Translate 拖到应…