Skip to content

Commit

Permalink
[Localization] Migrate resources to resx for Shortcut Guide (#6104)
Browse files Browse the repository at this point in the history
* Added localization code to pipeline and created one LocProject json for Settings

* Fixed typo

* Reordered nuget source

* Moved nuget install to restore step

* Added FZ.rc file to LocProj

* Added FZ resx file and modified rc file

* Fixed file names

* Changed to check folder for LocProject files

* Updated folder

* Changed directory

* Changed to src directory

* Changed language set and name format, removed rc file localization

* Added all projects with resx/resw files

* Added newline to end of file

* Removed nuget source as it is not used

* Updated comments

* Updated keyboard manager to use resx file

* Tweaked resources.resx and added it to project files

* Added comments and added in string table to resx script

* Remove change from bad merge

* Fix syntax error in convert stringtable

* Changed file type to None

* Migrated color picker's resources

* Migrated resources for Microsoft.Launcher

* Migrated resources for fancy zones

* Revert fancyzones changes

* Migrated resources for ImageResizer and modified script to add language specific code

* Added try catch and checks for modification to avoid unnecessary file creation

* Changed tab insertion to 4 spaces to avoid mixed file types in rc file

* Migrated resources for power preview project

* Added LocProject.json file for 5 projects

* added resgen exception check

* Moved non-localizable strings out of resx for powerpreview

* Migrated shortcut guide resources to resx

* Added LocProject.json
  • Loading branch information
arjunbalgovind authored Aug 25, 2020
1 parent f2cfd90 commit 15938a1
Show file tree
Hide file tree
Showing 11 changed files with 230 additions and 42 deletions.
14 changes: 14 additions & 0 deletions src/modules/shortcut_guide/LocProject.json
Original file line number Diff line number Diff line change
@@ -0,0 +1,14 @@
{
"Projects": [
{
"LanguageSet": "Azure_Languages",
"LocItems": [
{
"SourceFile": "src\\modules\\shortcut_guide\\Resources.resx",
"CopyOption": "LangIDOnName",
"OutputPath": "src\\modules\\shortcut_guide"
}
]
}
]
}
174 changes: 174 additions & 0 deletions src/modules/shortcut_guide/Resources.resx
Original file line number Diff line number Diff line change
@@ -0,0 +1,174 @@
<?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="Setting_Description_Press_Time" xml:space="preserve">
<value>How long to press the Windows key before showing the Shortcut Guide (ms)</value>
</data>
<data name="Setting_Description_Overlay_Opacity" xml:space="preserve">
<value>Opacity of the Shortcut Guide's overlay background (%)</value>
</data>
<data name="Setting_Description_Theme" xml:space="preserve">
<value>Choose Shortcut Guide overlay color</value>
</data>
<data name="Setting_Description_Theme_Light" xml:space="preserve">
<value>Light</value>
</data>
<data name="Setting_Description_Theme_Dark" xml:space="preserve">
<value>Dark</value>
</data>
<data name="Setting_Description_Theme_System" xml:space="preserve">
<value>System default app mode</value>
</data>
<data name="Settings_Description" xml:space="preserve">
<value>Shows a help overlay with Windows shortcuts when the Windows key is pressed.</value>
</data>
<data name="Shortcut_Guide" xml:space="preserve">
<value>Shortcut Guide</value>
</data>
<data name="No_Action" xml:space="preserve">
<value>No action</value>
</data>
<data name="Restore" xml:space="preserve">
<value>Restore</value>
</data>
<data name="Snap_Right" xml:space="preserve">
<value>Snap right</value>
</data>
<data name="Snap_Left" xml:space="preserve">
<value>Snap left</value>
</data>
<data name="Snap_Upper_Right" xml:space="preserve">
<value>Snap upper right</value>
</data>
<data name="Snap_Upper_Left" xml:space="preserve">
<value>Snap upper left</value>
</data>
<data name="Snap_Lower_Right" xml:space="preserve">
<value>Snap lower right</value>
</data>
<data name="Snap_Lower_Left" xml:space="preserve">
<value>Snap lower left</value>
</data>
<data name="Minimize" xml:space="preserve">
<value>Minimize</value>
</data>
<data name="Maximize" xml:space="preserve">
<value>Maximize</value>
</data>
</root>
2 changes: 1 addition & 1 deletion src/modules/shortcut_guide/overlay_window.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@
#include "keyboard_state.h"
#include "shortcut_guide.h"
#include "trace.h"
#include "resource.h"
#include "Generated Files/resource.h"
#include <common/common.h>

extern "C" IMAGE_DOS_HEADER __ImageBase;
Expand Down
13 changes: 13 additions & 0 deletions src/modules/shortcut_guide/resource.base.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,13 @@
//{{NO_DEPENDENCIES}}
// Microsoft Visual C++ generated include file.
// Used by ShortcutGuide.rc

//////////////////////////////
// Non-localizable

#define FILE_DESCRIPTION "PowerToys ShortcutGuide"
#define INTERNAL_NAME "ShortcutGuide"
#define ORIGINAL_FILENAME "ShortcutGuide.dll"

// Non-localizable
//////////////////////////////
32 changes: 0 additions & 32 deletions src/modules/shortcut_guide/resource.h

This file was deleted.

Binary file added src/modules/shortcut_guide/shortcut_guide.base.rc
Binary file not shown.
1 change: 0 additions & 1 deletion src/modules/shortcut_guide/shortcut_guide.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@
#include "shortcut_guide.h"
#include "target_state.h"
#include "trace.h"
#include "resource.h"

#include <common/common.h>
#include <common/settings_objects.h>
Expand Down
2 changes: 1 addition & 1 deletion src/modules/shortcut_guide/shortcut_guide.h
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@
#include <interface/powertoy_module_interface.h>
#include "overlay_window.h"

#include "resource.h"
#include "Generated Files/resource.h"

#include <common/LowlevelKeyboardEvent.h>

Expand Down
Binary file removed src/modules/shortcut_guide/shortcut_guide.rc
Binary file not shown.
12 changes: 10 additions & 2 deletions src/modules/shortcut_guide/shortcut_guide.vcxproj
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,9 @@
<Platform>x64</Platform>
</ProjectConfiguration>
</ItemGroup>
<Target Name="GenerateResourceFiles" BeforeTargets="PrepareForBuild">
<Exec Command="powershell -NonInteractive -executionpolicy Unrestricted $(SolutionDir)tools\build\convert-resx-to-rc.ps1 . resource.base.h resource.h shortcut_guide.base.rc shortcut_guide.rc" />
</Target>
<PropertyGroup Label="Globals">
<VCProjectVersion>15.0</VCProjectVersion>
<ProjectGuid>{A46629C4-1A6C-40FA-A8B6-10E5102BB0BA}</ProjectGuid>
Expand Down Expand Up @@ -104,7 +107,8 @@
<ItemGroup>
<ClInclude Include="overlay_window.h" />
<ClInclude Include="keyboard_state.h" />
<ClInclude Include="resource.h" />
<ClInclude Include="Generated Files/resource.h" />
<None Include="resource.base.h" />
<ClInclude Include="shortcut_guide.h" />
<ClInclude Include="pch.h" />
<ClInclude Include="target_state.h" />
Expand All @@ -127,11 +131,15 @@
</ProjectReference>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="shortcut_guide.rc" />
<ResourceCompile Include="Generated Files/shortcut_guide.rc" />
<None Include="shortcut_guide.base.rc" />
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
</ItemGroup>
<ItemGroup>
<None Include="Resources.resx" />
</ItemGroup>
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets">
<Import Project="..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets" Condition="Exists('..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" />
Expand Down
22 changes: 17 additions & 5 deletions src/modules/shortcut_guide/shortcut_guide.vcxproj.filters
Original file line number Diff line number Diff line change
Expand Up @@ -36,8 +36,8 @@
<ClInclude Include="trace.h">
<Filter>Header Files</Filter>
</ClInclude>
<ClInclude Include="resource.h">
<Filter>Header Files</Filter>
<ClInclude Include="Generated Files/resource.h">
<Filter>Generated Files</Filter>
</ClInclude>
</ItemGroup>
<ItemGroup>
Expand All @@ -50,13 +50,25 @@
<Filter Include="Resource Files">
<UniqueIdentifier>{d7932c11-20ad-4625-adbc-0780ea5e308d}</UniqueIdentifier>
</Filter>
<Filter Include="Generated Files">
<UniqueIdentifier>{41a2f27e-76b5-4799-94c3-90a33a71786b}</UniqueIdentifier>
</Filter>
</ItemGroup>
<ItemGroup>
<ResourceCompile Include="shortcut_guide.rc">
<None Include="packages.config" />
<None Include="Resources.resx">
<Filter>Resource Files</Filter>
</ResourceCompile>
</None>
<None Include="shortcut_guide.base.rc">
<Filter>Resource Files</Filter>
</None>
<None Include="resource.base.h">
<Filter>Header Files</Filter>
</None>
</ItemGroup>
<ItemGroup>
<None Include="packages.config" />
<ResourceCompile Include="Generated Files/shortcut_guide.rc">
<Filter>Generated Files</Filter>
</ResourceCompile>
</ItemGroup>
</Project>

0 comments on commit 15938a1

Please sign in to comment.