Bambu Bar
Monitor Bambu Lab printers from your Mac menu bar: print progress, the live camera, AMS filament, alerts and desktop widgets. Bambu Bar for macOS 26+.
翻訳待ち
No updates detected yet. GitHub releases will appear here.
The maker's introduction consists of the line above. Read the repository README for more details. Repository README ↗
Loading the full README.
Read the full README ↗対面の2人(日本語話者・英語話者)が1台のスマートフォンを共有し、リアルタイムに文字翻訳字幕を表示するWebアプリです。画面は上下に分割され、上側は相手が読みやすいよう180度回転して表示されます。
詳細な要件・仕様は docs/01_REQUIREMENTS.md / docs/02_SPECIFICATION.md / docs/03_STRUCTURE.md、デザインシステムは design.md を参照してください。
gpt-realtime-translate / gpt-realtime-whisper)pnpm install
cp .env.example .env.local # 値を設定(下記「環境変数」参照)
pnpm dev
http://localhost:3000 を開きます。
.env.local(Git管理外)に設定します。値は .env.example を参照してください。
| 変数 | 必須 | 説明 |
|---|---|---|
OPENAI_API_KEY | 任意 | 未設定時はモックモードで動作します |
TURSO_DATABASE_URL | 必須 | Turso DBのURL |
TURSO_AUTH_TOKEN | 必須 | Tursoの認証トークン |
APP_ENV | 任意 | development / test / production |
NEXT_PUBLIC_APP_NAME | 任意 | 表示名 |
NEXT_PUBLIC_ENABLE_MOCK_TRANSLATION | 任意 | trueでモック固定(既定値) |
DEVICE_ID_HASH_SALT | 任意 | 匿名端末IDのハッシュ化に使うsalt |
OPENAI_API_KEY は絶対にクライアントへ返しません(Route Handler内でのみ使用し、ブラウザには短命のクライアントシークレットのみを渡します)。
pnpm db:generate # スキーマからマイグレーションSQLを生成
pnpm db:migrate # Tursoへ適用
pnpm db:studio # Drizzle Studioを起動
スキーマは lib/db/schema.ts、マイグレーションSQLは drizzle/migrations/ にあります。
NEXT_PUBLIC_ENABLE_MOCK_TRANSLATION=true(既定値)、または OPENAI_API_KEY 未設定時、/api/realtime/token が mock: true を返し、実際のOpenAI API呼び出しを行わずにサンプル字幕をストリーミング表示します。マイク許可・無音検知・DB保存・履歴表示は本番と同じコードパスを通ります。
実際のOpenAI Realtime APIに接続するには、.env.local の OPENAI_API_KEY を設定した上で NEXT_PUBLIC_ENABLE_MOCK_TRANSLATION=false にしてください(実APIの呼び出しが発生するため、通常の開発ではモックのままにすることを推奨します)。
pnpm lint # ESLint
pnpm typecheck # tsc --noEmit
pnpm test # Vitest(unit + integration)
pnpm test:e2e # Playwright(モックモードで実行)
pnpm check # lint + typecheck + test + build
main ブランチへのマージでProductionに、feature ブランチのpushでPreviewに自動デプロイされます。Vercelダッシュボードで環境変数(上記表)を Production / Preview / Development すべてに登録してください。