Skip to content

AetherScreens v2.8.0

Latest

Choose a tag to compare

@bcblr1993 bcblr1993 released this 07 Nov 23:46

AetherScreens v2.8.0 — Bilingual Localization Completeness, Filter Empty State Recovery, Accessibility Hit Targets & IME Cursor Tracking

Highlights

  • 100% Bilingual Localization Coverage (en & zh-Hans):
    • Added complete English and Simplified Chinese translations for all Quick Snippet editor labels, SSH config import notices, Wake-on-LAN status/error messages, Keychain SSH deletion warnings, and filter reset actions.
    • Subscribed ConnectionHistorySheet to AppLanguageSettings.shared so live language switching updates the history sheet immediately.
  • Filter-Aware Empty State & One-Tap Filter Reset (DeviceListViewModel / DeviceListView):
    • Added DeviceListViewModel.hasActiveFilters and resetFilters() and updated DeviceListView.emptyStateView so zero-result tag or smart filters display "No matching computers" with a one-tap "Reset Filters" button instead of "No computers here yet".
  • HIG Accessibility & Sheet Sizing (DeviceListRowView / QuickSnippetsSheet / TailscaleSettingsSheet):
    • Added VoiceOver .accessibilityLabels and 44×44pt hit targets on DeviceListRowView Wake/Edit actions and QuickSnippetsSheet Send/Edit/Delete buttons, and expanded TailscaleSettingsSheet with flexible minWidth/idealWidth/minHeight/idealHeight bounds.
  • macOS CJK IME Candidate Window Cursor Tracking (MacNativeInputView):
    • Updated MacNativeInputView.firstRect(forCharacterRange:actualRange:) via candidateRectInViewBounds() so macOS input method candidate windows anchor directly at the active cursor position inside the remote desktop view instead of the static window midpoint.