Adds a complete Turkish translation (all 1648 keys, validated against
en.json for key parity and {{placeholder}} consistency) and registers
Turkish in SUPPORTED_LANGUAGES.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Add Vietnamese translation with all 1572 keys matching en.json.
Register "vi" in SUPPORTED_LANGUAGES, LANGUAGE_FALLBACKS, and
settings dialog language type assertion. Update locale count
from 8 to 9 in docs (AGENTS.md, CONTRIBUTING.md) to account
for previously-omitted Korean (ko).
Intercept the main window CloseRequested event so the user can choose
between minimizing the app to the system tray and quitting, instead of
the close button immediately tearing the process down.
- Add an on_window_event handler that prevents close, emits
close-confirm-requested, and lets the next CloseRequested through
once confirm_quit flips a QUIT_CONFIRMED flag.
- Add a TrayIconBuilder in the main process with Show / Quit menu items
and a left-click handler that restores the window. Tray icon is
decoded via the image crate so the donut glyph renders on every
platform.
- Add hide_to_tray command used by the dialog's Minimize action.
- New CloseConfirmDialog React component mounted in app/page.tsx.
- Enable Tauri features tray-icon and image-png.
- Add closeConfirm strings across all eight locale files.
The existing standalone donut-daemon tray binary is left untouched.