mirror of
https://github.com/microsoft/PowerToys.git
synced 2026-02-24 04:00:02 +01:00
This PR fixes a grammatical mistake in the PowerToys Awake taskbar context menu where "1 hours" was displayed instead of the correct "1 hour". ## Problem When right-clicking the Awake icon in the taskbar and hovering over "Keep awake on interval", the menu incorrectly showed "1 hours" for the one-hour option, which is grammatically incorrect in English.  ## Root Cause The code always used the `AWAKE_HOURS` resource string (`"{0} hours"`) regardless of the value, even when the count was 1. This resulted in grammatically incorrect text like "1 hours". ## Solution Added proper singular/plural handling by: 1. **Added new singular resources:** - `AWAKE_HOUR`: `"{0} hour"` for singular form - `AWAKE_MINUTE`: `"{0} minute"` for completeness and future-proofing 2. **Updated the logic in `Manager.cs`:** - Modified `GetDefaultTrayOptions()` to use `AwakeHour` (singular) when the value is 1 - Preserved existing behavior for all other values (30 minutes, 2 hours, etc.) 3. **Generated corresponding code in `Resources.Designer.cs`** to expose the new resource properties ## Impact - ✅ "1 hours" → "1 hour" (grammatically correct) - ✅ "2 hours" remains unchanged (still correct) - ✅ "30 minutes" behavior preserved - ✅ No breaking changes to existing functionality - ✅ Future-proofed for potential 1-minute custom intervals The fix follows established patterns in the PowerToys codebase (similar to `TimeRemainingConverter.cs` in ImageResizer) and makes minimal, surgical changes to address only the reported issue. Fixes #41220. > [!WARNING] > > <details> > <summary>Firewall rules blocked me from connecting to one or more addresses (expand for details)</summary> > > #### I tried to connect to the following addresses, but was blocked by firewall rules: > > - `i1qvsblobprodcus353.vsblob.vsassets.io` > - Triggering command: `dotnet build src/modules/awake/Awake/Awake.csproj` (dns block) > > If you need me to access, download, or install something from one of these locations, you can either: > > - Configure [Actions setup steps](https://gh.io/copilot/actions-setup-steps) to set up my environment, which run before the firewall is enabled > - Add the appropriate URLs or hosts to the custom allowlist in this repository's [Copilot coding agent settings](https://github.com/microsoft/PowerToys/settings/copilot/coding_agent) (admins only) > > </details> <!-- START COPILOT CODING AGENT TIPS --> --- 💡 You can make Copilot smarter by setting up custom instructions, customizing its development environment and configuring Model Context Protocol (MCP) servers. Learn more [Copilot coding agent tips](https://gh.io/copilot-coding-agent-tips) in the docs. --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com> Co-authored-by: yeelam-gordon <73506701+yeelam-gordon@users.noreply.github.com>