* Add Language setting to Settings for per-app locale override Uses UserDefaults AppleLanguages to override locale without changing macOS system language. Picker shows System/English/Japanese with a restart prompt when the selection changes. * Address review feedback: guard relaunch and reset behavior - Guard relaunchApp() against Process launch failure (don't terminate if the new instance didn't start) - Prevent restart dialog from firing during Reset All Settings * Add localization requirement to CLAUDE.md All user-facing strings must use String(localized:) with keys in Localizable.xcstrings and translations for all supported languages. * Fix relaunch: use detached shell so open survives app exit The previous approach spawned open as a child process that could get killed when the parent terminated. Now spawns a shell with sleep+open that outlives the current process. * Fix shell injection risk and SwiftUI state batching in language setting - Pass bundle path via environment variable instead of interpolating into shell command string - Defer isResettingSettings=false to next run loop tick so onChange handler reliably sees the guard during Reset All Settings |
||
|---|---|---|
| .. | ||
| bin | ||
| ghostty/terminfo/78 | ||
| shell-integration | ||
| terminfo-overlay | ||
| Info.plist | ||
| InfoPlist.xcstrings | ||
| Localizable.xcstrings | ||