Files
PowerToys/src/modules/awake/Awake/Properties/Resources.resx

229 lines
11 KiB
Plaintext
Raw Normal View History

<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<data name="AWAKE_CHECKED" xml:space="preserve">
<value>Checked</value>
</data>
<data name="AWAKE_EXIT" xml:space="preserve">
<value>Exit</value>
</data>
Fix grammatical error in Awake taskbar context menu: "1 hours" → "1 hour" (#41454) 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. ![Before fix showing "1 hours"](https://github.com/user-attachments/assets/bd78b3b1-d076-4c84-8de0-bcd6d1ebefd8) ## 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>
2025-08-29 13:36:46 +08:00
<data name="AWAKE_HOUR" xml:space="preserve">
<value>{0} hour</value>
<comment>{0} shouldn't be removed. It will be replaced by the number 1 at runtime by the application. Used for defining a period to keep the PC awake.</comment>
</data>
<data name="AWAKE_HOURS" xml:space="preserve">
<value>{0} hours</value>
<comment>{0} shouldn't be removed. It will be replaced by a number greater than 1 at runtime by the application. Used for defining a period to keep the PC awake.</comment>
</data>
<data name="AWAKE_KEEP_INDEFINITELY" xml:space="preserve">
<value>Keep awake indefinitely</value>
<comment>Keep the system awake forever</comment>
</data>
<data name="AWAKE_KEEP_ON_INTERVAL" xml:space="preserve">
<value>Keep awake on interval</value>
<comment>Keep the system awake for a given time</comment>
</data>
<data name="AWAKE_KEEP_SCREEN_ON" xml:space="preserve">
<value>Keep screen on</value>
</data>
<data name="AWAKE_KEEP_UNTIL_EXPIRATION" xml:space="preserve">
<value>Keep awake until expiration date and time</value>
<comment>Keep the system awake until expiration date and time</comment>
</data>
Fix grammatical error in Awake taskbar context menu: "1 hours" → "1 hour" (#41454) 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. ![Before fix showing "1 hours"](https://github.com/user-attachments/assets/bd78b3b1-d076-4c84-8de0-bcd6d1ebefd8) ## 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>
2025-08-29 13:36:46 +08:00
<data name="AWAKE_MINUTE" xml:space="preserve">
<value>{0} minute</value>
<comment>{0} shouldn't be removed. It will be replaced by the number 1 at runtime by the application. Used for defining a period to keep the PC awake.</comment>
</data>
<data name="AWAKE_MINUTES" xml:space="preserve">
<value>{0} minutes</value>
<comment>{0} shouldn't be removed. It will be replaced by a number greater than 1 at runtime by the application. Used for defining a period to keep the PC awake.</comment>
</data>
<data name="AWAKE_OFF" xml:space="preserve">
<value>Off (keep using the selected power plan)</value>
<comment>Don't keep the system awake, use the selected system power plan</comment>
</data>
<data name="AWAKE_UNCHECKED" xml:space="preserve">
<value>Unchecked</value>
</data>
<data name="AWAKE_CMD_HELP_CONFIG_OPTION" xml:space="preserve">
<value>Specifies whether Awake will be using the PowerToys configuration file for managing the state.</value>
</data>
<data name="AWAKE_CMD_HELP_DISPLAY_OPTION" xml:space="preserve">
<value>Determines whether the display should be kept awake.</value>
</data>
<data name="AWAKE_CMD_HELP_EXPIRE_AT_OPTION" xml:space="preserve">
<value>Determines the end date and time when Awake will back off and let the system manage the current sleep and display state.</value>
</data>
<data name="AWAKE_CMD_HELP_PID_OPTION" xml:space="preserve">
<value>Bind the execution of Awake to another process. When the process ends, the system will resume managing the current sleep and display state.</value>
</data>
<data name="AWAKE_CMD_HELP_TIME_OPTION" xml:space="preserve">
<value>Determines the interval (in seconds) during which the computer is kept awake.</value>
</data>
<data name="AWAKE_EXIT_BINDING_HOOK_MESSAGE" xml:space="preserve">
<value>Terminating from process binding hook.</value>
</data>
<data name="AWAKE_EXIT_MESSAGE" xml:space="preserve">
<value>Exiting from the internal termination handler.</value>
</data>
<data name="AWAKE_EXIT_SIGNAL_MESSAGE" xml:space="preserve">
<value>Received a signal to end the process. Making sure we quit...</value>
</data>
<data name="AWAKE_TRAY_TEXT_EXPIRATION" xml:space="preserve">
<value>Expiring</value>
</data>
<data name="AWAKE_TRAY_TEXT_INDEFINITE" xml:space="preserve">
<value>Indefinite</value>
</data>
<data name="AWAKE_TRAY_TEXT_OFF" xml:space="preserve">
<value>Passive</value>
</data>
<data name="AWAKE_TRAY_TEXT_TIMED" xml:space="preserve">
<value>Interval</value>
</data>
<data name="AWAKE_LABEL_DAYS" xml:space="preserve">
<value>d</value>
<comment>Used to display number of days in the system tray tooltip.</comment>
</data>
<data name="AWAKE_LABEL_HOURS" xml:space="preserve">
<value>h</value>
<comment>Used to display number of hours in the system tray tooltip.</comment>
</data>
<data name="AWAKE_LABEL_MINUTES" xml:space="preserve">
<value>m</value>
<comment>Used to display number of minutes in the system tray tooltip.</comment>
</data>
<data name="AWAKE_LABEL_SECONDS" xml:space="preserve">
<value>s</value>
<comment>Used to display number of seconds in the system tray tooltip.</comment>
</data>
<data name="AWAKE_CMD_PARENT_PID_OPTION" xml:space="preserve">
<value>Uses the parent process as the bound target - once the process terminates, Awake stops.</value>
</data>
Awake Updates - `TILLSON_11272024` (#36049) * Update with bug fixes for tray icon and support for parent process * Process information enum * Update the docs * Fix spelling * Make sure that PID is used in PT config flow * Logic for checks based on #34148 * Update with link to PR * Fixes #34717 * Small cleanup * Proper task segmentation in a function * Cleanup the code * Fix synchronization context issue * Update planning doc * Test disabling caching to see if that manages to pass CI * Cleanup to make sure that we're logging things properly. * Update ci.yml * Disable cache to pass CI * Retry logic * Cleanup * Code cleanup * Fixes #35848 * Update notes and codename * After third attempt, log error instead of throwing exception * More cleanup to avoid double execution * Add expected word * Safeguards for bad values for timed keep-awake * More updates to make sure I am using uint * Update error message * Update packages * Fix notice and revert CsWinRT upgrade * Codename update * Update expect.txt * Update the struct * Ensuring we're properly awaiting tray initialization * Update to make sure tray reflects the bound process * Cleanup, proper JSON serialization for logs. * Not needed. * Add command validation logic * Moving the initialization logic earlier * Make sure we show the display state in the tooltip * Update tray string * Update src/modules/awake/Awake/Core/Manager.cs Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> * Update src/modules/awake/Awake/Core/Manager.cs Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> * Update src/modules/awake/Awake/Core/Manager.cs Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> * Update src/modules/awake/Awake/Core/Manager.cs Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> * Update logic for icon resets * Update doc * Simplify function for setting mode shell icon * Issues should be properly linked * Minor cleanup * Update timed behavior --------- Co-authored-by: Jaime Bernardo <jaime@janeasystems.com> Co-authored-by: Clint Rutkas <clint@rutkas.com>
2024-12-08 22:41:05 -08:00
<data name="AWAKE_TRAY_TEXT_PID_BINDING" xml:space="preserve">
<value>Bound to</value>
<comment>Describes the process ID Awake is bound to when running.</comment>
</data>
<data name="AWAKE_SCREEN_ON" xml:space="preserve">
<value>On</value>
</data>
<data name="AWAKE_SCREEN_OFF" xml:space="preserve">
<value>Off</value>
</data>
</root>