Merge branch 'master' into lego/hb_2939_20201109110559091

This commit is contained in:
Clint Rutkas 2020-11-09 16:36:17 -08:00
commit 7bbcde9310
101 changed files with 3655 additions and 573 deletions

View File

@ -295,6 +295,7 @@ codeofconduct
codereview codereview
COINIT COINIT
Colorbrush Colorbrush
colorconv
colorpicker colorpicker
colorpickerref colorpickerref
COLORREF COLORREF
@ -903,6 +904,8 @@ hresult
hrgn hrgn
HRSRC HRSRC
HSCROLL HSCROLL
hsb
hsi
hsl hsl
hstring hstring
hsv hsv
@ -913,6 +916,7 @@ html
htt htt
http http
hu hu
hwb
HWINEVENTHOOK HWINEVENTHOOK
hwnd hwnd
HWNDFIRST HWNDFIRST
@ -1087,6 +1091,7 @@ IPrincipal
IProgram IProgram
IPublic IPublic
IQuery IQuery
IRead
IReflect IReflect
IRegistered IRegistered
IRegistration IRegistration
@ -1246,6 +1251,7 @@ LOGMSG
logon logon
LOGPIXELSX LOGPIXELSX
LOn LOn
lookbehind
lowlevel lowlevel
lowlevelkb lowlevelkb
LOWORD LOWORD
@ -1438,6 +1444,7 @@ NCMBUTTONDOWN
NCMBUTTONUP NCMBUTTONUP
NCMOUSELEAVE NCMOUSELEAVE
NCMOUSEMOVE NCMOUSEMOVE
NCol
NCPAINT NCPAINT
NCRBUTTONDBLCLK NCRBUTTONDBLCLK
NCRBUTTONDOWN NCRBUTTONDOWN

View File

@ -10,6 +10,11 @@ data:[a-zA-Z=;,/0-9+-]+
"Lorem[^"]+?\." "Lorem[^"]+?\."
TestCase\("[^"]+" TestCase\("[^"]+"
# Test line with hexadecimal colors
\[DataRow\("[0-9A-F]{6}", \d{3}, \d{3}, \d{3}\)\]
\[DataRow\("[0-9A-F]{6}", \d{3}.\d{1}, \d{3}.\d{1}, \d{3}.\d{1}\)\]
\[DataRow\("[0-9A-F]{6}", "[BCGMRY]\d\d?", \d{3}, \d{3}\)\]
# Windows paths # Windows paths
\\native \\native
\\notifications \\notifications

View File

@ -28,6 +28,276 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET konnte nicht installiert werden.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_COMPLETE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Download complete]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Download abgeschlossen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_IN_PROGRESS" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Download wird ausgeführt...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";EXTRACTING_INSTALLER" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Extracting PowerToys MSI...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys-MSI wird extrahiert...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_ABORT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Abort]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Abbrechen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Für PowerToys ist ein Update verfügbar.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE_OFFER_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Für PowerToys ist ein Update verfügbar. Besuchen Sie unsere GitHub-Seite, um das Update durchzuführen.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: couldn't download PowerToys installer. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Fehler: Der PowerToys-Installer konnte nicht heruntergeladen werden. Besuchen Sie unsere GitHub-Seite, um das Update durchzuführen.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_STARTED" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys download started.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Der PowerToys-Download wurde gestartet.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_MORE_INFO" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[More info...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Weitere Informationen...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_READY_TO_INSTALL" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is ready to install.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ein Update für PowerToys ist zur Installation bereit.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_SNOOZE_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Click Snooze to be reminded in:]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Klicken Sie auf "Erneut erinnern", um erinnert zu werden in:]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UNAVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys is up to date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys ist auf dem neuesten Stand.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_AFTER_RESTART" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[At next launch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Beim nächsten Start]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_NOW" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Update now]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Jetzt aktualisieren]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_1D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[1 day]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[1 Tag]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_5D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[5 days]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[5 Tagen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Visit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Besuchen Sie]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[MSI-Installer konnte nicht extrahiert werden.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing dotnet...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[.NET wird installiert...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_NEW_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing new PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Neue PowerToys-Version wird installiert...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_DONE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installation complete!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Die PowerToys-Installation ist abgeschlossen.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install new PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Die neue PowerToys-Version konnte nicht installiert werden.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[We've detected a previous installation of PowerToys. Would you like to remove it?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Es wurde eine vorherige Installation von PowerToys gefunden. Möchten Sie sie entfernen?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys: uninstall previous version?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys: Vorherige Version deinstallieren?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Erneut erinnern]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";TOAST_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys Update]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys-Update]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLATION_UNKNOWN_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: please uninstall the previous version of PowerToys manually.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Fehler: Deinstallieren Sie die vorherige Version von PowerToys manuell.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLING_PREVIOUS_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Uninstalling previous PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Vorherige PowerToys-Version wird deinstalliert...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Die vorherige PowerToys-Version konnte nicht deinstalliert werden.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -28,6 +28,276 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Impossible d'installer dotnet !]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_COMPLETE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Download complete]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Téléchargement terminé]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_IN_PROGRESS" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Téléchargement...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";EXTRACTING_INSTALLER" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Extracting PowerToys MSI...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Extraction du MSI de PowerToys...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_ABORT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Abort]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Abandonner]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Une mise à jour de PowerToys est disponible.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE_OFFER_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Une mise à jour de PowerToys est disponible. Visitez notre page GitHub pour effectuer la mise à jour.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: couldn't download PowerToys installer. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Erreur : Impossible de télécharger le programme d'installation de PowerToys. Visitez notre page GitHub pour effectuer la mise à jour.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_STARTED" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys download started.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Le téléchargement de PowerToys a démarré.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_MORE_INFO" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[More info...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Plus d'informations...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_READY_TO_INSTALL" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is ready to install.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Une mise à jour de PowerToys est prête à installer.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_SNOOZE_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Click Snooze to be reminded in:]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Cliquez sur Répéter pour recevoir un rappel dans :]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UNAVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys is up to date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys est à jour.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_AFTER_RESTART" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[At next launch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Au prochain lancement]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_NOW" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Update now]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Mettre à jour maintenant]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_1D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[1 day]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[1 jour]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_5D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[5 days]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[5 jours]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Visit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Visiter]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Impossible d'extraire le programme d'installation de MSI !]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing dotnet...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Installation de dotnet...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_NEW_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing new PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Installation d'une nouvelle version de PowerToys...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_DONE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installation complete!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Installation de PowerToys effectuée !]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install new PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Impossible d'installer la nouvelle version de PowerToys.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[We've detected a previous installation of PowerToys. Would you like to remove it?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nous avons détecté une installation précédente de PowerToys. Voulez-vous la supprimer ?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys: uninstall previous version?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys : désinstaller la version précédente ?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Répéter]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";TOAST_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys Update]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Mise à jour de PowerToys]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLATION_UNKNOWN_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: please uninstall the previous version of PowerToys manually.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Erreur : Désinstallez manuellement la version précédente de PowerToys.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLING_PREVIOUS_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Uninstalling previous PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Désinstallation de la version précédente de PowerToys...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Impossible de désinstaller la version précédente de PowerToys !]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -28,6 +28,276 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Kan dotnet niet installeren.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_COMPLETE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Download complete]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Het downloaden is voltooid]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_IN_PROGRESS" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Downloaden...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";EXTRACTING_INSTALLER" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Extracting PowerToys MSI...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys-MSI uitpakken...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_ABORT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Abort]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Afbreken]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Er is een update beschikbaar voor PowerToys.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE_OFFER_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Er is een update beschikbaar voor PowerToys. Bezoek onze GitHub-pagina om bij te werken.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: couldn't download PowerToys installer. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Fout: kan het installatieprogramma voor PowerToys niet downloaden. Ga naar onze GitHub-pagina om bij te werken.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_STARTED" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys download started.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Downloaden van PowerToys is gestart.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_MORE_INFO" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[More info...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Meer informatie...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_READY_TO_INSTALL" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is ready to install.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Er is een update voor PowerToys die kan worden geïnstalleerd.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_SNOOZE_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Click Snooze to be reminded in:]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Klik op Uitstellen om eraan te worden herinnerd:]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UNAVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys is up to date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys is up-to-date.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_AFTER_RESTART" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[At next launch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Bij de volgende keer opstarten]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_NOW" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Update now]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nu bijwerken]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_1D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[1 day]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Over 1 dag]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_5D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[5 days]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Over 5 dagen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Visit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Openen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Kan het MSI-installatieprogramma niet uitpakken.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing dotnet...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[dotnet installeren...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_NEW_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing new PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nieuwe PowerToys-versie installeren...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_DONE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installation complete!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[De installatie van PowerToys is voltooid.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install new PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Kan de nieuwe PowerToys-versie niet installeren.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[We've detected a previous installation of PowerToys. Would you like to remove it?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Er is een eerdere installatie van PowerToys gedetecteerd. Wilt u deze verwijderen?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys: uninstall previous version?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys: vorige versie verwijderen?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Uitstellen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";TOAST_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys Update]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys-update]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLATION_UNKNOWN_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: please uninstall the previous version of PowerToys manually.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Fout: verwijder de vorige versie van PowerToys handmatig.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLING_PREVIOUS_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Uninstalling previous PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[De vorige versie van PowerToys wordt verwijderd...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Kan de vorige PowerToys-versie niet verwijderen.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -28,6 +28,276 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Не удалось установить .Net.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_COMPLETE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Download complete]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Скачивание завершено]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_IN_PROGRESS" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Скачивание…]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";EXTRACTING_INSTALLER" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Extracting PowerToys MSI...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Извлечение MSI для PowerToys…]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_ABORT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Abort]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Прервать]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Доступно обновление для PowerToys.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE_OFFER_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Доступно обновление для PowerToys. Посетите страницу GitHub, чтобы получить его.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: couldn't download PowerToys installer. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ошибка. Скачать установщик PowerToys не удалось. Посетите страницу GitHub для обновления.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_STARTED" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys download started.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Скачивание PowerToys начато.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_MORE_INFO" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[More info...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Дополнительные сведения…]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_READY_TO_INSTALL" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is ready to install.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Обновление для PowerToys готово к установке.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_SNOOZE_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Click Snooze to be reminded in:]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Щелкните "Отложить", чтобы получить напоминание через:]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UNAVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys is up to date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Обновление PowerToys не требуется.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_AFTER_RESTART" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[At next launch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[При следующем запуске]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_NOW" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Update now]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Обновить]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_1D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[1 day]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[1 день]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_5D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[5 days]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[5 дней]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Visit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Зайдите сюда:]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Не удалось извлечь установщик MSI.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing dotnet...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Установка .Net…]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_NEW_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing new PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Установка новой версии PowerToys…]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_DONE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installation complete!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Установка PowerToys завершена.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install new PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Установить новую версию PowerToys не удалось.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[We've detected a previous installation of PowerToys. Would you like to remove it?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Обнаружена предыдущая установка PowerToys. Хотите удалить ее?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys: uninstall previous version?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Удалить предыдущую версию PowerToys?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Отложить]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";TOAST_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys Update]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Обновление PowerToys]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLATION_UNKNOWN_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: please uninstall the previous version of PowerToys manually.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ошибка. Удалите предыдущую версию PowerToys вручную.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLING_PREVIOUS_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Uninstalling previous PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Удаление предыдущей версии PowerToys…]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Удалить предыдущую версию PowerToys не удалось.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -28,6 +28,249 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_COMPLETE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Download complete]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nedladdningen är klar]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_IN_PROGRESS" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Laddar ned...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";EXTRACTING_INSTALLER" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Extracting PowerToys MSI...]]></Val>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_ABORT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Abort]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Avbryt]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[En PowerToys-uppdatering är tillgänglig.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE_OFFER_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[En PowerToys-uppdatering är tillgänglig. Uppdatera genom att gå till vår GitHub-sida.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: couldn't download PowerToys installer. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Fel: Det gick inte att ladda ned installationsprogrammet för PowerToys. Uppdatera genom att gå till vår GitHub-sida.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_STARTED" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys download started.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Nedladdningen av PowerToys har påbörjats.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_MORE_INFO" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[More info...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Mer information...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_READY_TO_INSTALL" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is ready to install.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[En PowerToys-uppdatering är klar att installera.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_SNOOZE_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Click Snooze to be reminded in:]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Klicka på Snooze för att bli påmind om:]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UNAVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys is up to date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys har uppdaterats.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_AFTER_RESTART" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[At next launch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Vid nästa start]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_NOW" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Update now]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Uppdatera nu]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_1D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[1 day]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[1 dag]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_5D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[5 days]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[5 dagar]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Visit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Besök]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing dotnet...]]></Val>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_NEW_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing new PowerToys version...]]></Val>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_DONE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installation complete!]]></Val>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install new PowerToys version.]]></Val>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[We've detected a previous installation of PowerToys. Would you like to remove it?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Vi har identifierat en tidigare installation av PowerToys. Vill du ta bort den?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys: uninstall previous version?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys: Vill du avinstallera föregående version?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Snooze]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";TOAST_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys Update]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys-uppdatering]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLATION_UNKNOWN_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: please uninstall the previous version of PowerToys manually.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Fel: Avinstallera den föregående versionen av PowerToys manuellt.]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLING_PREVIOUS_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Uninstalling previous PowerToys version...]]></Val>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -28,6 +28,276 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";DOTNET_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install dotnet!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[無法安裝 dotnet!]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_COMPLETE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Download complete]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[下載完成]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";DOWNLOAD_IN_PROGRESS" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Downloading...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[正在下載...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";EXTRACTING_INSTALLER" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Extracting PowerToys MSI...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[正在解壓縮 PowerToys MSI...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_ABORT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Abort]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[中止]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys 已有可用的更新。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_AVAILABLE_OFFER_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is available. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys 已有可用的更新。若要更新,請前往 GitHub 頁面。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_INSTALL_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: couldn't download PowerToys installer. Visit our GitHub page to update.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[錯誤: 無法下載 PowerToys 安裝程式。若要更新,請前往 GitHub 頁面。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_DOWNLOAD_STARTED" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys download started.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys 下載已開始。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_MORE_INFO" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[More info...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[更多資訊...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_READY_TO_INSTALL" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[An update to PowerToys is ready to install.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[已就緒,可以開始安裝 PowerToys 的更新。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_SNOOZE_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Click Snooze to be reminded in:]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[按一下 [暫停]5D;,以於下列時間提醒:]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UNAVAILABLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys is up to date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys 已是最新。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_AFTER_RESTART" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[At next launch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[下次啟動時]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_NOW" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Update now]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[立即更新]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_1D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[1 day]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[1 天]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_UPDATE_SNOOZE_5D" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[5 days]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[5 天]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";GITHUB_NEW_VERSION_VISIT" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Visit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[前往]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLER_EXTRACT_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't extract MSI installer!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[無法解壓縮 MSI 安裝程式!]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_DOTNET" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing dotnet...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[正在安裝 dotnet...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";INSTALLING_NEW_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Installing new PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[正在安裝新的 PowerToys 版本...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_DONE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys installation complete!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys 安裝完成!]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";NEW_VERSION_INSTALLATION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't install new PowerToys version.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[無法安裝新的 PowerToys 版本。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[We've detected a previous installation of PowerToys. Would you like to remove it?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[偵測到舊版的 PowerToys 安裝。要移除舊版嗎?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";OFFER_UNINSTALL_MSI_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys: uninstall previous version?]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys: 要解除安裝舊版嗎?]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SNOOZE_BUTTON" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Snooze]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[延遲]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";TOAST_TITLE" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[PowerToys Update]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[PowerToys 更新]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLATION_UNKNOWN_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Error: please uninstall the previous version of PowerToys manually.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[錯誤: 請手動解除安裝舊版的 PowerToys。]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALLING_PREVIOUS_VERSION" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Uninstalling previous PowerToys version...]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[正在解除安裝舊的 PowerToys 版本...]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";UNINSTALL_PREVIOUS_VERSION_ERROR" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Couldn't uninstall previous PowerToys version!]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[無法解除安裝舊的 PowerToys 版本!]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -4,37 +4,10 @@
using System.Text.Json; using System.Text.Json;
using System.Text.Json.Serialization; using System.Text.Json.Serialization;
using Microsoft.PowerToys.Settings.UI.Library.Enumerations;
namespace Microsoft.PowerToys.Settings.UI.Library namespace Microsoft.PowerToys.Settings.UI.Library
{ {
public enum ColorRepresentationType
{
/// <summary>
/// Color presentation as hexadecimal color value without the alpha-value (e.g. #0055FF)
/// </summary>
HEX = 0,
/// <summary>
/// Color presentation as RGB color value (red[0..255], green[0..255], blue[0..255])
/// </summary>
RGB = 1,
/// <summary>
/// Color presentation as CMYK color value (cyan[0%..100%], magenta[0%..100%], yellow[0%..100%], black key[0%..100%])
/// </summary>
CMYK = 2,
/// <summary>
/// Color presentation as HSL color value (hue[0°..360°], saturation[0..100%], lightness[0%..100%])
/// </summary>
HSL = 3,
/// <summary>
/// Color presentation as HSV color value (hue[0°..360°], saturation[0%..100%], value[0%..100%])
/// </summary>
HSV = 4,
}
public class ColorPickerProperties public class ColorPickerProperties
{ {
public ColorPickerProperties() public ColorPickerProperties()

View File

@ -40,14 +40,10 @@ namespace Microsoft.PowerToys.Settings.UI.Library
} }
public string GetModuleName() public string GetModuleName()
{ => Name;
return Name;
}
// This can be utilized in the future if the settings.json file is to be modified/deleted. // This can be utilized in the future if the settings.json file is to be modified/deleted.
public bool UpgradeSettingsConfiguration() public bool UpgradeSettingsConfiguration()
{ => false;
return false;
}
} }
} }

View File

@ -0,0 +1,59 @@
// Copyright (c) Microsoft Corporation
// The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
namespace Microsoft.PowerToys.Settings.UI.Library.Enumerations
{
// NOTE: don't change the order (numbers) of the enumeration entires
/// <summary>
/// The type of the color representation
/// </summary>
public enum ColorRepresentationType
{
/// <summary>
/// Color presentation as hexadecimal color value without the alpha-value (e.g. #0055FF)
/// </summary>
HEX = 0,
/// <summary>
/// Color presentation as RGB color value (red[0..255], green[0..255], blue[0..255])
/// </summary>
RGB = 1,
/// <summary>
/// Color presentation as CMYK color value (cyan[0%..100%], magenta[0%..100%], yellow[0%..100%], black key[0%..100%])
/// </summary>
CMYK = 2,
/// <summary>
/// Color presentation as HSL color value (hue[0°..360°], saturation[0..100%], lightness[0%..100%])
/// </summary>
HSL = 3,
/// <summary>
/// Color presentation as HSV color value (hue[0°..360°], saturation[0%..100%], value[0%..100%])
/// </summary>
HSV = 4,
/// <summary>
/// Color presentation as HSB color value (hue[0°..360°], saturation[0%..100%], brightness[0%..100%])
/// </summary>
HSB = 5,
/// <summary>
/// Color presentation as HSI color value (hue[0°..360°], saturation[0%..100%], intensity[0%..100%])
/// </summary>
HSI = 6,
/// <summary>
/// Color presentation as HWB color value (hue[0°..360°], whiteness[0%..100%], blackness[0%..100%])
/// </summary>
HWB = 7,
/// <summary>
/// Color presentation as natural color (hue, whiteness[0%..100%], blackness[0%..100%])
/// </summary>
NCol = 8,
}
}

View File

@ -16,6 +16,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library
MaxMRUSize = 0; MaxMRUSize = 0;
ShowIcon = false; ShowIcon = false;
ExtendedContextMenuOnly = false; ExtendedContextMenuOnly = false;
UseBoostLib = false;
} }
private int _maxSize; private int _maxSize;
@ -48,6 +49,8 @@ namespace Microsoft.PowerToys.Settings.UI.Library
public bool ExtendedContextMenuOnly { get; set; } public bool ExtendedContextMenuOnly { get; set; }
public bool UseBoostLib { get; set; }
public string ToJsonString() public string ToJsonString()
{ {
return JsonSerializer.Serialize(this); return JsonSerializer.Serialize(this);

View File

@ -15,6 +15,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library
MaxMRUSize = new IntProperty(); MaxMRUSize = new IntProperty();
ShowIcon = new BoolProperty(); ShowIcon = new BoolProperty();
ExtendedContextMenuOnly = new BoolProperty(); ExtendedContextMenuOnly = new BoolProperty();
UseBoostLib = new BoolProperty();
Enabled = new BoolProperty(); Enabled = new BoolProperty();
} }
@ -34,5 +35,8 @@ namespace Microsoft.PowerToys.Settings.UI.Library
[JsonPropertyName("bool_show_extended_menu")] [JsonPropertyName("bool_show_extended_menu")]
public BoolProperty ExtendedContextMenuOnly { get; set; } public BoolProperty ExtendedContextMenuOnly { get; set; }
[JsonPropertyName("bool_use_boost_lib")]
public BoolProperty UseBoostLib { get; set; }
} }
} }

View File

@ -35,6 +35,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library
Properties.MaxMRUSize.Value = localProperties.MaxMRUSize; Properties.MaxMRUSize.Value = localProperties.MaxMRUSize;
Properties.ShowIcon.Value = localProperties.ShowIcon; Properties.ShowIcon.Value = localProperties.ShowIcon;
Properties.ExtendedContextMenuOnly.Value = localProperties.ExtendedContextMenuOnly; Properties.ExtendedContextMenuOnly.Value = localProperties.ExtendedContextMenuOnly;
Properties.UseBoostLib.Value = localProperties.UseBoostLib;
Version = "1"; Version = "1";
Name = ModuleName; Name = ModuleName;

View File

@ -3,8 +3,10 @@
// See the LICENSE file in the project root for more information. // See the LICENSE file in the project root for more information.
using System; using System;
using System.Collections.Generic;
using System.Globalization; using System.Globalization;
using System.Text.Json; using System.Text.Json;
using Microsoft.PowerToys.Settings.UI.Library.Enumerations;
using Microsoft.PowerToys.Settings.UI.Library.Helpers; using Microsoft.PowerToys.Settings.UI.Library.Helpers;
using Microsoft.PowerToys.Settings.UI.Library.Interfaces; using Microsoft.PowerToys.Settings.UI.Library.Interfaces;
@ -16,7 +18,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
private readonly ISettingsUtils _settingsUtils; private readonly ISettingsUtils _settingsUtils;
private ColorPickerSettings _colorPickerSettings; private readonly ColorPickerSettings _colorPickerSettings;
private bool _isEnabled; private bool _isEnabled;
@ -30,6 +32,19 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
throw new ArgumentNullException(nameof(settingsRepository)); throw new ArgumentNullException(nameof(settingsRepository));
} }
SelectableColorRepresentations = new Dictionary<ColorRepresentationType, string>
{
{ ColorRepresentationType.CMYK, "CMYK - cmyk(100%, 50%, 75%, 0%)" },
{ ColorRepresentationType.HEX, "HEX - #FFAA00" },
{ ColorRepresentationType.HSB, "HSB - hsb(100, 50%, 75%)" },
{ ColorRepresentationType.HSI, "HSI - hsi(100, 50%, 75%)" },
{ ColorRepresentationType.HSL, "HSL - hsl(100, 50%, 75%)" },
{ ColorRepresentationType.HSV, "HSV - hsv(100, 50%, 75%)" },
{ ColorRepresentationType.HWB, "HWB - hwb(100, 50%, 75%)" },
{ ColorRepresentationType.NCol, "NCol - R10, 50%, 75%" },
{ ColorRepresentationType.RGB, "RGB - rgb(100, 50, 75)" },
};
GeneralSettingsConfig = settingsRepository.SettingsConfig; GeneralSettingsConfig = settingsRepository.SettingsConfig;
_settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils)); _settingsUtils = settingsUtils ?? throw new ArgumentNullException(nameof(settingsUtils));
@ -48,13 +63,14 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
SendConfigMSG = ipcMSGCallBackFunc; SendConfigMSG = ipcMSGCallBackFunc;
} }
/// <summary>
/// Gets a list with all selectable <see cref="ColorRepresentationType"/>s
/// </summary>
public IReadOnlyDictionary<ColorRepresentationType, string> SelectableColorRepresentations { get; }
public bool IsEnabled public bool IsEnabled
{ {
get get => _isEnabled;
{
return _isEnabled;
}
set set
{ {
if (_isEnabled != value) if (_isEnabled != value)
@ -64,7 +80,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
// Set the status of ColorPicker in the general settings // Set the status of ColorPicker in the general settings
GeneralSettingsConfig.Enabled.ColorPicker = value; GeneralSettingsConfig.Enabled.ColorPicker = value;
OutGoingGeneralSettings outgoing = new OutGoingGeneralSettings(GeneralSettingsConfig); var outgoing = new OutGoingGeneralSettings(GeneralSettingsConfig);
SendConfigMSG(outgoing.ToString()); SendConfigMSG(outgoing.ToString());
} }
@ -73,11 +89,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
public bool ChangeCursor public bool ChangeCursor
{ {
get get => _colorPickerSettings.Properties.ChangeCursor;
{
return _colorPickerSettings.Properties.ChangeCursor;
}
set set
{ {
if (_colorPickerSettings.Properties.ChangeCursor != value) if (_colorPickerSettings.Properties.ChangeCursor != value)
@ -91,11 +103,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
public HotkeySettings ActivationShortcut public HotkeySettings ActivationShortcut
{ {
get get => _colorPickerSettings.Properties.ActivationShortcut;
{
return _colorPickerSettings.Properties.ActivationShortcut;
}
set set
{ {
if (_colorPickerSettings.Properties.ActivationShortcut != value) if (_colorPickerSettings.Properties.ActivationShortcut != value)
@ -107,19 +115,15 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
} }
} }
public int CopiedColorRepresentationIndex public ColorRepresentationType SelectedColorRepresentationValue
{ {
get get => _colorPickerSettings.Properties.CopiedColorRepresentation;
{
return (int)_colorPickerSettings.Properties.CopiedColorRepresentation;
}
set set
{ {
if (_colorPickerSettings.Properties.CopiedColorRepresentation != (ColorRepresentationType)value) if (_colorPickerSettings.Properties.CopiedColorRepresentation != value)
{ {
_colorPickerSettings.Properties.CopiedColorRepresentation = (ColorRepresentationType)value; _colorPickerSettings.Properties.CopiedColorRepresentation = value;
OnPropertyChanged(nameof(CopiedColorRepresentationIndex)); OnPropertyChanged(nameof(SelectedColorRepresentationValue));
NotifySettingsChanged(); NotifySettingsChanged();
} }
} }

View File

@ -67,6 +67,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
_powerRenameRestoreFlagsOnLaunch = Settings.Properties.PersistState.Value; _powerRenameRestoreFlagsOnLaunch = Settings.Properties.PersistState.Value;
_powerRenameMaxDispListNumValue = Settings.Properties.MaxMRUSize.Value; _powerRenameMaxDispListNumValue = Settings.Properties.MaxMRUSize.Value;
_autoComplete = Settings.Properties.MRUEnabled.Value; _autoComplete = Settings.Properties.MRUEnabled.Value;
_powerRenameUseBoostLib = Settings.Properties.UseBoostLib.Value;
_powerRenameEnabled = GeneralSettingsConfig.Enabled.PowerRename; _powerRenameEnabled = GeneralSettingsConfig.Enabled.PowerRename;
} }
@ -76,6 +77,7 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
private bool _powerRenameRestoreFlagsOnLaunch; private bool _powerRenameRestoreFlagsOnLaunch;
private int _powerRenameMaxDispListNumValue; private int _powerRenameMaxDispListNumValue;
private bool _autoComplete; private bool _autoComplete;
private bool _powerRenameUseBoostLib;
public bool IsEnabled public bool IsEnabled
{ {
@ -199,6 +201,24 @@ namespace Microsoft.PowerToys.Settings.UI.Library.ViewModels
} }
} }
public bool UseBoostLib
{
get
{
return _powerRenameUseBoostLib;
}
set
{
if (value != _powerRenameUseBoostLib)
{
_powerRenameUseBoostLib = value;
Settings.Properties.UseBoostLib.Value = value;
RaisePropertyChanged();
}
}
}
public string GetSettingsSubPath() public string GetSettingsSubPath()
{ {
return _settingsConfigFileFolder + "\\" + ModuleName; return _settingsConfigFileFolder + "\\" + ModuleName;

View File

@ -817,4 +817,11 @@
<data name="FancyZones_WindowBehavior_GroupSettings.Text" xml:space="preserve"> <data name="FancyZones_WindowBehavior_GroupSettings.Text" xml:space="preserve">
<value>Window behavior</value> <value>Window behavior</value>
</data> </data>
<data name="PowerRename_BehaviorHeader.Text" xml:space="preserve">
<value>Behavior</value>
</data>
<data name="PowerRename_Toggle_UseBoostLib.Content" xml:space="preserve">
<value>Use Boost library (provides extended features but may use different regex syntax)</value>
<comment>Boost is a product name, should not be translated</comment>
</data>
</root> </root>

View File

@ -13,68 +13,41 @@
AutomationProperties.LandmarkType="Main"> AutomationProperties.LandmarkType="Main">
<Grid RowSpacing="{StaticResource DefaultRowSpacing}"> <Grid RowSpacing="{StaticResource DefaultRowSpacing}">
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="LayoutVisualStates">
<VisualState x:Name="WideLayout">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource WideLayoutMinWidth}" />
</VisualState.StateTriggers>
</VisualState>
<VisualState x:Name="SmallLayout">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource SmallLayoutMinWidth}" />
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SidePanel.(Grid.Column)" Value="0"/>
<Setter Target="SidePanel.Width" Value="Auto"/>
<Setter Target="ColorPickerView.(Grid.Row)" Value="1" />
<Setter Target="LinksPanel.(RelativePanel.RightOf)" Value="AboutImage"/>
<Setter Target="LinksPanel.(RelativePanel.AlignTopWith)" Value="AboutImage"/>
<Setter Target="AboutImage.Margin" Value="0,12,12,0"/>
<Setter Target="AboutTitle.Visibility" Value="Collapsed" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
<Grid.ColumnDefinitions> <Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/> <ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto"/> <ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions> </Grid.ColumnDefinitions>
<Grid.RowDefinitions> <Grid.RowDefinitions>
<RowDefinition Height="Auto"/> <RowDefinition Height="Auto" />
<RowDefinition Height="Auto" /> <RowDefinition Height="Auto" />
</Grid.RowDefinitions> </Grid.RowDefinitions>
<StackPanel Orientation="Vertical" x:Name="ColorPickerView"> <StackPanel x:Name="ColorPickerView" Orientation="Vertical">
<ToggleSwitch x:Uid="ColorPicker_EnableColorPicker" <ToggleSwitch x:Uid="ColorPicker_EnableColorPicker" IsOn="{Binding IsEnabled, Mode=TwoWay}" />
IsOn="{Binding IsEnabled, Mode=TwoWay}"/>
<Custom:HotkeySettingsControl x:Uid="ColorPicker_ActivationShortcut" <Custom:HotkeySettingsControl x:Uid="ColorPicker_ActivationShortcut"
Margin="{StaticResource MediumTopMargin}"
HotkeySettings="{x:Bind Path=ViewModel.ActivationShortcut, Mode=TwoWay}"
Keys="Win, Ctrl, Alt, Shift"
Enabled="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabled}"
HorizontalAlignment="Left"
MinWidth="240" MinWidth="240"
/> Margin="{StaticResource MediumTopMargin}"
HorizontalAlignment="Left"
Enabled="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabled}"
HotkeySettings="{x:Bind Path=ViewModel.ActivationShortcut, Mode=TwoWay}"
Keys="Win, Ctrl, Alt, Shift" />
<TextBlock x:Uid="ShortcutGuide_Appearance_Behavior" <TextBlock x:Uid="ShortcutGuide_Appearance_Behavior"
Style="{StaticResource SettingsGroupTitleStyle}" Foreground="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabled, Converter={StaticResource ModuleEnabledToForegroundConverter}}"
Foreground="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabled, Converter={StaticResource ModuleEnabledToForegroundConverter}}"/> Style="{StaticResource SettingsGroupTitleStyle}" />
<ComboBox x:Uid="ColorPicker_CopiedColorRepresentation" <ComboBox x:Name="ColorPicker_ComboBox"
SelectedIndex="{Binding CopiedColorRepresentationIndex, Mode=TwoWay}" x:Uid="ColorPicker_CopiedColorRepresentation"
MinWidth="240"
Margin="{StaticResource SmallTopMargin}" Margin="{StaticResource SmallTopMargin}"
IsEnabled="{Binding IsEnabled}"
HorizontalAlignment="Left" HorizontalAlignment="Left"
MinWidth="240"> DisplayMemberPath="Value"
<ComboBoxItem Content="HEX - #FFAA00"/> IsEnabled="{Binding IsEnabled}"
<ComboBoxItem Content="RGB - rgb(100, 50, 75)"/> ItemsSource="{Binding SelectableColorRepresentations}"
<ComboBoxItem Content="CMYK - cmyk(100%, 50%, 75%, 0%)"/> Loaded="ColorPicker_ComboBox_Loaded"
<ComboBoxItem Content="HSL - hsl(100, 50%, 75%)"/> SelectedValue="{Binding SelectedColorRepresentationValue, Mode=TwoWay}"
<ComboBoxItem Content="HSV - hsv(100, 50%, 75%)"/> SelectedValuePath="Key" />
</ComboBox>
<!-- <!--
Disabling this until we have a safer way to reset cursor as Disabling this until we have a safer way to reset cursor as
@ -88,31 +61,33 @@
</StackPanel> </StackPanel>
<RelativePanel x:Name="SidePanel" <RelativePanel x:Name="SidePanel"
HorizontalAlignment="Left" Grid.Column="1"
Width="{StaticResource SidePanelWidth}" Width="{StaticResource SidePanelWidth}"
Grid.Column="1"> HorizontalAlignment="Left">
<StackPanel x:Name="DescriptionPanel"> <StackPanel x:Name="DescriptionPanel">
<TextBlock x:Uid="About_ColorPicker" x:Name="AboutTitle" Grid.ColumnSpan="2" <TextBlock x:Name="AboutTitle"
Style="{StaticResource SettingsGroupTitleStyle}" x:Uid="About_ColorPicker"
Margin="{StaticResource XSmallBottomMargin}"/> Grid.ColumnSpan="2"
Margin="{StaticResource XSmallBottomMargin}"
Style="{StaticResource SettingsGroupTitleStyle}" />
<TextBlock x:Uid="ColorPicker_Description" <TextBlock x:Uid="ColorPicker_Description"
TextWrapping="Wrap" Grid.Row="1"
Grid.Row="1" /> TextWrapping="Wrap" />
</StackPanel> </StackPanel>
<Border x:Name="AboutImage" <Border x:Name="AboutImage"
CornerRadius="4"
Grid.Row="2" Grid.Row="2"
MaxWidth="240" MaxWidth="240"
HorizontalAlignment="Left"
Margin="{StaticResource SmallTopBottomMargin}" Margin="{StaticResource SmallTopBottomMargin}"
HorizontalAlignment="Left"
CornerRadius="4"
RelativePanel.Below="DescriptionPanel"> RelativePanel.Below="DescriptionPanel">
<Image x:Uid="ColorPicker_Image" Source="ms-appx:///Assets/Modules/ColorPicker.png" /> <Image x:Uid="ColorPicker_Image" Source="ms-appx:///Assets/Modules/ColorPicker.png" />
</Border> </Border>
<StackPanel x:Name="LinksPanel" <StackPanel x:Name="LinksPanel"
Margin="0,1,0,0" Margin="0,1,0,0"
RelativePanel.Below="AboutImage" Orientation="Vertical"
Orientation="Vertical" > RelativePanel.Below="AboutImage">
<HyperlinkButton NavigateUri="https://aka.ms/PowerToysOverview_ColorPicker"> <HyperlinkButton NavigateUri="https://aka.ms/PowerToysOverview_ColorPicker">
<TextBlock x:Uid="Module_overview" /> <TextBlock x:Uid="Module_overview" />
</HyperlinkButton> </HyperlinkButton>
@ -120,15 +95,36 @@
<TextBlock x:Uid="Give_Feedback" /> <TextBlock x:Uid="Give_Feedback" />
</HyperlinkButton> </HyperlinkButton>
<TextBlock <TextBlock x:Uid="AttributionTitle" Style="{StaticResource SettingsGroupTitleStyle}" />
x:Uid="AttributionTitle"
Style="{StaticResource SettingsGroupTitleStyle}" />
<HyperlinkButton Margin="0,-3,0,0" <HyperlinkButton Margin="0,-3,0,0" NavigateUri="https://github.com/martinchrzan/ColorPicker/">
NavigateUri="https://github.com/martinchrzan/ColorPicker/">
<TextBlock Text="Martin Chrzan's Color Picker" TextWrapping="Wrap" /> <TextBlock Text="Martin Chrzan's Color Picker" TextWrapping="Wrap" />
</HyperlinkButton> </HyperlinkButton>
</StackPanel> </StackPanel>
</RelativePanel> </RelativePanel>
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="LayoutVisualStates">
<VisualState x:Name="WideLayout">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource WideLayoutMinWidth}" />
</VisualState.StateTriggers>
</VisualState>
<VisualState x:Name="SmallLayout">
<VisualState.StateTriggers>
<AdaptiveTrigger MinWindowWidth="{StaticResource SmallLayoutMinWidth}" />
<AdaptiveTrigger MinWindowWidth="0" />
</VisualState.StateTriggers>
<VisualState.Setters>
<Setter Target="SidePanel.(Grid.Column)" Value="0" />
<Setter Target="SidePanel.Width" Value="Auto" />
<Setter Target="ColorPickerView.(Grid.Row)" Value="1" />
<Setter Target="LinksPanel.(RelativePanel.RightOf)" Value="AboutImage" />
<Setter Target="LinksPanel.(RelativePanel.AlignTopWith)" Value="AboutImage" />
<Setter Target="AboutImage.Margin" Value="0,12,12,0" />
<Setter Target="AboutTitle.Visibility" Value="Collapsed" />
</VisualState.Setters>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
</Grid> </Grid>
</Page> </Page>

View File

@ -21,5 +21,33 @@ namespace Microsoft.PowerToys.Settings.UI.Views
DataContext = ViewModel; DataContext = ViewModel;
InitializeComponent(); InitializeComponent();
} }
/// <summary>
/// Event is called when the <see cref="ComboBox"/> is completely loaded, inclusive the ItemSource
/// </summary>
/// <param name="sender">The sender of this event</param>
/// <param name="e">The arguments of this event</param>
private void ColorPicker_ComboBox_Loaded(object sender, Windows.UI.Xaml.RoutedEventArgs e)
{
/**
* UWP hack
* because UWP load the bound ItemSource of the ComboBox asynchronous,
* so after InitializeComponent() the ItemSource is still empty and can't automatically select a entry.
* Selection via SelectedItem and SelectedValue is still not working too
*/
var index = 0;
foreach (var item in ViewModel.SelectableColorRepresentations)
{
if (item.Key == ViewModel.SelectedColorRepresentationValue)
{
break;
}
index++;
}
ColorPicker_ComboBox.SelectedIndex = index;
}
} }
} }

View File

@ -90,6 +90,15 @@
Margin="0, 17, 0, 0" Margin="0, 17, 0, 0"
IsChecked="{x:Bind Mode=TwoWay, Path=ViewModel.RestoreFlagsOnLaunch}" IsChecked="{x:Bind Mode=TwoWay, Path=ViewModel.RestoreFlagsOnLaunch}"
IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabled}"/> IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabled}"/>
<TextBlock x:Uid="PowerRename_BehaviorHeader"
Style="{StaticResource SettingsGroupTitleStyle}"
Foreground="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabled, Converter={StaticResource ModuleEnabledToForegroundConverter}}"/>
<CheckBox x:Uid="PowerRename_Toggle_UseBoostLib"
Margin="{StaticResource SmallTopMargin}"
IsChecked="{x:Bind Mode=TwoWay, Path=ViewModel.UseBoostLib}"
IsEnabled="{x:Bind Mode=OneWay, Path=ViewModel.IsEnabled}"/>
</StackPanel> </StackPanel>

View File

@ -118,7 +118,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";AttributionTitle.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";AttributionTitle.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Attribution]]></Val> <Val><![CDATA[Attribution]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -136,7 +136,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ColorPicker_ActivationShortcut.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ColorPicker_ActivationShortcut.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open Color Picker]]></Val> <Val><![CDATA[Open Color Picker]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -172,7 +172,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ColorPicker_EnableColorPicker.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ColorPicker_EnableColorPicker.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Color Picker]]></Val> <Val><![CDATA[Enable Color Picker]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -219,14 +219,17 @@
</Item> </Item>
<Item ItemId=";FancyZones_BorderColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_BorderColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone border color (Default: #FFFFFF)]]></Val> <Val><![CDATA[Zone border color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Farbe für Zonenrahmen (Standardwert: #FFFFFF)]]></Val> <Val><![CDATA[Farbe für Zonenrahmen]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone border color (Default: #FFFFFF)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_Description.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_Description.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Create window layouts to help make multi-tasking easy.]]></Val> <Val><![CDATA[Create window layouts to help make multi-tasking easy.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -235,7 +238,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_DisplayChangeMoveWindowsCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_DisplayChangeMoveWindowsCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Keep windows in their zones when the screen resolution changes]]></Val> <Val><![CDATA[Keep windows in their zones when the screen resolution changes]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -244,7 +247,16 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_EnableToggleControl_HeaderText.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_Editor_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Editor]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";FancyZones_EnableToggleControl_HeaderText.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable FancyZones]]></Val> <Val><![CDATA[Enable FancyZones]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -289,30 +301,39 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_HotkeyEditorControl.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_HotkeyEditorControl.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open zones editor]]></Val> <Val><![CDATA[Open layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Zonen-Editor öffnen]]></Val> <Val><![CDATA[Layout-Editor öffnen]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Open zones editor]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_InActiveColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_InActiveColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone inactive color (Default: #F5FCFF)]]></Val> <Val><![CDATA[Zone inactive color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Farbe für inaktive Zonen (Standardwert: #F5FCFF)]]></Val> <Val><![CDATA[Farbe für inaktive Zonen]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone inactive color (Default: #F5FCFF)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_LaunchEditorButtonControl.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_LaunchEditorButtonControl.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Launch zones editor]]></Val> <Val><![CDATA[Launch layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Zonen-Editor starten]]></Val> <Val><![CDATA[Layout-Editor starten]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Launch zones editor]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -343,7 +364,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_MoveWindowsBasedOnPositionCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_MoveWindowsBasedOnPositionCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Move windows based on their position]]></Val> <Val><![CDATA[Move windows based on their position]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -415,6 +436,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_WindowBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Window behavior]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Fensterverhalten]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";FancyZones_ZoneBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_ZoneBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone behavior]]></Val> <Val><![CDATA[Zone behavior]]></Val>
@ -426,10 +456,13 @@
</Item> </Item>
<Item ItemId=";FancyZones_ZoneHighlightColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_ZoneHighlightColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone highlight color (Default: #0078D7)]]></Val> <Val><![CDATA[Zone highlight color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Farbe für Zonenhervorhebung (Standardwert: #0078D7)]]></Val> <Val><![CDATA[Farbe für Zonenhervorhebung]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone highlight color (Default: #0078D7)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -442,7 +475,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Fancyzones_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Fancyzones_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[FancyZones windows]]></Val> <Val><![CDATA[FancyZones windows]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -451,7 +484,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";File.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";File.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[File]]></Val> <Val><![CDATA[File]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -523,7 +556,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_MD.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_MD.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Markdown (.md) preview]]></Val> <Val><![CDATA[Enable Markdown (.md) preview]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -532,7 +565,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_SVG.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_SVG.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable SVG (.svg) preview]]></Val> <Val><![CDATA[Enable SVG (.svg) preview]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -541,7 +574,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_SVG_Thumbnail.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_SVG_Thumbnail.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable SVG (.svg) thumbnails]]></Val> <Val><![CDATA[Enable SVG (.svg) thumbnails]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -577,7 +610,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_ReportAbug.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_ReportAbug.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Report a bug]]></Val> <Val><![CDATA[Report a bug]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -586,7 +619,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_RequestAFeature_URL.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_RequestAFeature_URL.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Request a feature]]></Val> <Val><![CDATA[Request a feature]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -595,7 +628,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_RestartAsAdmin_Button.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_RestartAsAdmin_Button.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Restart as administrator]]></Val> <Val><![CDATA[Restart as administrator]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -678,10 +711,13 @@
</Item> </Item>
<Item ItemId=";GeneralSettings_VersionIsLatest" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralSettings_VersionIsLatest" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[You have the latest available version.]]></Val> <Val><![CDATA[PowerToys is up-to-date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Sie verfügen über die neueste verfügbare Version.]]></Val> <Val><![CDATA[PowerToys ist auf dem neuesten Stand.]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[You have the latest available version.]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -838,7 +874,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_EnableToggle.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_EnableToggle.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Image Resizer]]></Val> <Val><![CDATA[Enable Image Resizer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1063,7 +1099,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Fill.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Fill.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Fill]]></Val> <Val><![CDATA[Fill]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1072,7 +1108,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Fit.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Fit.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Fit]]></Val> <Val><![CDATA[Fit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1081,7 +1117,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Stretch.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Stretch.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Stretch]]></Val> <Val><![CDATA[Stretch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1171,6 +1207,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KBM_KeysCannotBeRemapped.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Learn more about remapping limitations]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Weitere Informationen zu Einschränkungen bei der Neuzuordnung]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";KeyboardManager_ConfigHeader.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true"> <Item ItemId=";KeyboardManager_ConfigHeader.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Current configuration]]></Val> <Val><![CDATA[Current configuration]]></Val>
@ -1198,7 +1243,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Keyboard Manager]]></Val> <Val><![CDATA[Keyboard Manager]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1279,7 +1324,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_RemappedKeysListItem.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_RemappedKeysListItem.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Key Remapping]]></Val> <Val><![CDATA[Key Remapping]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1315,7 +1360,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_TargetApp.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_TargetApp.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[For Target Application]]></Val> <Val><![CDATA[For Target Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1324,12 +1369,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Module_overview.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Module_overview.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Module overview]]></Val> <Val><![CDATA[Learn more]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Modulübersicht]]></Val> <Val><![CDATA[Weitere Informationen]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Module overview]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -1389,14 +1437,17 @@
</Item> </Item>
<Item ItemId=";PowerLauncher_DisableDriveDetectionWarning.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_DisableDriveDetectionWarning.Content" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Disable drive detection warning for the indexer plugin]]></Val> <Val><![CDATA[Disable drive detection warning for the file search plugin]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Warnung zur Laufwerkserkennung für das Indexer-Plug-In deaktivieren]]></Val> <Val><![CDATA[Warnung zur Laufwerkserkennung für das Plug-In zur Dateisuche deaktivieren]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Disable drive detection warning for the indexer plugin]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerLauncher_EnablePowerLauncher.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_EnablePowerLauncher.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable PowerToys Run]]></Val> <Val><![CDATA[Enable PowerToys Run]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1423,7 +1474,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerLauncher_OpenConsole.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_OpenConsole.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open console]]></Val> <Val><![CDATA[Open console]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1585,7 +1636,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerRename_ShellIntegration.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerRename_ShellIntegration.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Shell integration]]></Val> <Val><![CDATA[Shell integration]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1603,7 +1654,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerRename_Toggle_Enable.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerRename_Toggle_Enable.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable PowerRename]]></Val> <Val><![CDATA[Enable PowerRename]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1675,7 +1726,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Radio_Theme_Dark.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Radio_Theme_Dark.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Dark]]></Val> <Val><![CDATA[Dark]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1720,7 +1771,16 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";RemoveButton.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";RemoveButton.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Remove]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Entfernen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";RemoveTooltip.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Remove]]></Val> <Val><![CDATA[Remove]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1849,7 +1909,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ShortcutGuide_Enable.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ShortcutGuide_Enable.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Shortcut Guide]]></Val> <Val><![CDATA[Enable Shortcut Guide]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1894,7 +1954,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Windows_Color_Settings.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true"> <Item ItemId=";Windows_Color_Settings.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Windows color settings]]></Val> <Val><![CDATA[Windows color settings]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">

View File

@ -109,24 +109,6 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";AppDescription" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft.PowerToys.Settings.UI]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft.PowerToys.Settings.UI]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";AppDisplayName" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft.PowerToys.Settings.UI]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft.PowerToys.Settings.UI]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Appearance_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Appearance_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Appearance]]></Val> <Val><![CDATA[Appearance]]></Val>
@ -136,7 +118,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";AttributionTitle.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";AttributionTitle.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Attribution]]></Val> <Val><![CDATA[Attribution]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -154,7 +136,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ColorPicker_ActivationShortcut.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ColorPicker_ActivationShortcut.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open Color Picker]]></Val> <Val><![CDATA[Open Color Picker]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -190,7 +172,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ColorPicker_EnableColorPicker.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ColorPicker_EnableColorPicker.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Color Picker]]></Val> <Val><![CDATA[Enable Color Picker]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -237,14 +219,17 @@
</Item> </Item>
<Item ItemId=";FancyZones_BorderColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_BorderColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone border color (Default: #FFFFFF)]]></Val> <Val><![CDATA[Zone border color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Couleur de bordure de zone (par défaut : #FFFFFF)]]></Val> <Val><![CDATA[Couleur de bordure de zone]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone border color (Default: #FFFFFF)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_Description.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_Description.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Create window layouts to help make multi-tasking easy.]]></Val> <Val><![CDATA[Create window layouts to help make multi-tasking easy.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -253,7 +238,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_DisplayChangeMoveWindowsCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_DisplayChangeMoveWindowsCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Keep windows in their zones when the screen resolution changes]]></Val> <Val><![CDATA[Keep windows in their zones when the screen resolution changes]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -262,7 +247,16 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_EnableToggleControl_HeaderText.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_Editor_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Éditeur]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";FancyZones_EnableToggleControl_HeaderText.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable FancyZones]]></Val> <Val><![CDATA[Enable FancyZones]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -307,30 +301,39 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_HotkeyEditorControl.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_HotkeyEditorControl.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open zones editor]]></Val> <Val><![CDATA[Open layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ouvrir l'éditeur de zones]]></Val> <Val><![CDATA[Ouvrir l'éditeur de disposition]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Open zones editor]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_InActiveColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_InActiveColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone inactive color (Default: #F5FCFF)]]></Val> <Val><![CDATA[Zone inactive color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Couleur d'inactivité de zone (par défaut : #F5FCFF)]]></Val> <Val><![CDATA[Couleur d'inactivité de zone]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone inactive color (Default: #F5FCFF)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_LaunchEditorButtonControl.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_LaunchEditorButtonControl.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Launch zones editor]]></Val> <Val><![CDATA[Launch layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Lancer l'éditeur de zones]]></Val> <Val><![CDATA[Lancer l'éditeur de disposition]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Launch zones editor]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -361,7 +364,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_MoveWindowsBasedOnPositionCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_MoveWindowsBasedOnPositionCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Move windows based on their position]]></Val> <Val><![CDATA[Move windows based on their position]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -433,6 +436,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_WindowBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Window behavior]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Comportement de la fenêtre]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";FancyZones_ZoneBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_ZoneBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone behavior]]></Val> <Val><![CDATA[Zone behavior]]></Val>
@ -444,10 +456,13 @@
</Item> </Item>
<Item ItemId=";FancyZones_ZoneHighlightColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_ZoneHighlightColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone highlight color (Default: #0078D7)]]></Val> <Val><![CDATA[Zone highlight color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Couleur de surbrillance de la zone (par défaut : #0078D7)]]></Val> <Val><![CDATA[Couleur de surbrillance de la zone]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone highlight color (Default: #0078D7)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -460,7 +475,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Fancyzones_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Fancyzones_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[FancyZones windows]]></Val> <Val><![CDATA[FancyZones windows]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -469,7 +484,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";File.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";File.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[File]]></Val> <Val><![CDATA[File]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -541,7 +556,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_MD.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_MD.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Markdown (.md) preview]]></Val> <Val><![CDATA[Enable Markdown (.md) preview]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -550,7 +565,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_SVG.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_SVG.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable SVG (.svg) preview]]></Val> <Val><![CDATA[Enable SVG (.svg) preview]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -559,7 +574,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_SVG_Thumbnail.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_SVG_Thumbnail.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable SVG (.svg) thumbnails]]></Val> <Val><![CDATA[Enable SVG (.svg) thumbnails]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -595,7 +610,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_ReportAbug.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_ReportAbug.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Report a bug]]></Val> <Val><![CDATA[Report a bug]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -604,7 +619,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_RequestAFeature_URL.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_RequestAFeature_URL.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Request a feature]]></Val> <Val><![CDATA[Request a feature]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -613,7 +628,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_RestartAsAdmin_Button.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_RestartAsAdmin_Button.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Restart as administrator]]></Val> <Val><![CDATA[Restart as administrator]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -696,10 +711,13 @@
</Item> </Item>
<Item ItemId=";GeneralSettings_VersionIsLatest" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralSettings_VersionIsLatest" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[You have the latest available version.]]></Val> <Val><![CDATA[PowerToys is up-to-date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Vous avez la dernière version disponible.]]></Val> <Val><![CDATA[PowerToys est à jour.]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[You have the latest available version.]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -856,7 +874,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_EnableToggle.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_EnableToggle.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Image Resizer]]></Val> <Val><![CDATA[Enable Image Resizer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1081,7 +1099,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Fill.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Fill.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Fill]]></Val> <Val><![CDATA[Fill]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1090,7 +1108,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Fit.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Fit.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Fit]]></Val> <Val><![CDATA[Fit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1099,7 +1117,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Stretch.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Stretch.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Stretch]]></Val> <Val><![CDATA[Stretch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1189,6 +1207,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KBM_KeysCannotBeRemapped.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Learn more about remapping limitations]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[En savoir plus sur les limitations de remappage]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";KeyboardManager_ConfigHeader.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true"> <Item ItemId=";KeyboardManager_ConfigHeader.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Current configuration]]></Val> <Val><![CDATA[Current configuration]]></Val>
@ -1216,7 +1243,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Keyboard Manager]]></Val> <Val><![CDATA[Keyboard Manager]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1297,7 +1324,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_RemappedKeysListItem.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_RemappedKeysListItem.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Key Remapping]]></Val> <Val><![CDATA[Key Remapping]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1333,7 +1360,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_TargetApp.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_TargetApp.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[For Target Application]]></Val> <Val><![CDATA[For Target Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1342,12 +1369,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Module_overview.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Module_overview.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Module overview]]></Val> <Val><![CDATA[Learn more]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Vue d'ensemble du module]]></Val> <Val><![CDATA[En savoir plus]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Module overview]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -1407,14 +1437,17 @@
</Item> </Item>
<Item ItemId=";PowerLauncher_DisableDriveDetectionWarning.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_DisableDriveDetectionWarning.Content" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Disable drive detection warning for the indexer plugin]]></Val> <Val><![CDATA[Disable drive detection warning for the file search plugin]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Désactiver l'avertissement de détection de lecteur pour le plug-in de l'indexeur]]></Val> <Val><![CDATA[Désactiver l'avertissement de détection de lecteur pour le plug-in de recherche de fichiers]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Disable drive detection warning for the indexer plugin]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerLauncher_EnablePowerLauncher.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_EnablePowerLauncher.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable PowerToys Run]]></Val> <Val><![CDATA[Enable PowerToys Run]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1441,7 +1474,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerLauncher_OpenConsole.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_OpenConsole.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open console]]></Val> <Val><![CDATA[Open console]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1603,7 +1636,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerRename_ShellIntegration.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerRename_ShellIntegration.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Shell integration]]></Val> <Val><![CDATA[Shell integration]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1621,7 +1654,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerRename_Toggle_Enable.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerRename_Toggle_Enable.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable PowerRename]]></Val> <Val><![CDATA[Enable PowerRename]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1693,7 +1726,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Radio_Theme_Dark.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Radio_Theme_Dark.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Dark]]></Val> <Val><![CDATA[Dark]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1702,7 +1735,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Radio_Theme_Default.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Radio_Theme_Default.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Windows default]]></Val> <Val><![CDATA[Windows default]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1711,7 +1744,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Radio_Theme_Light.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Radio_Theme_Light.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Light]]></Val> <Val><![CDATA[Light]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1738,7 +1771,16 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";RemoveButton.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";RemoveButton.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Remove]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Supprimer]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";RemoveTooltip.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Remove]]></Val> <Val><![CDATA[Remove]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1813,15 +1855,6 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Shell_Main.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Main]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Principal]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Shell_PowerLauncher.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true"> <Item ItemId=";Shell_PowerLauncher.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[PowerToys Run]]></Val> <Val><![CDATA[PowerToys Run]]></Val>
@ -1876,7 +1909,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ShortcutGuide_Enable.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ShortcutGuide_Enable.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Shortcut Guide]]></Val> <Val><![CDATA[Enable Shortcut Guide]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1921,7 +1954,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Windows_Color_Settings.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Windows_Color_Settings.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Windows color settings]]></Val> <Val><![CDATA[Windows color settings]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">

View File

@ -118,7 +118,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";AttributionTitle.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";AttributionTitle.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Attribution]]></Val> <Val><![CDATA[Attribution]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -136,7 +136,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ColorPicker_ActivationShortcut.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ColorPicker_ActivationShortcut.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open Color Picker]]></Val> <Val><![CDATA[Open Color Picker]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -172,7 +172,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ColorPicker_EnableColorPicker.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ColorPicker_EnableColorPicker.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Color Picker]]></Val> <Val><![CDATA[Enable Color Picker]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -219,14 +219,17 @@
</Item> </Item>
<Item ItemId=";FancyZones_BorderColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_BorderColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone border color (Default: #FFFFFF)]]></Val> <Val><![CDATA[Zone border color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Randkleur van zone (standaard: #FFFFFF)]]></Val> <Val><![CDATA[Randkleur van zone]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone border color (Default: #FFFFFF)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_Description.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_Description.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Create window layouts to help make multi-tasking easy.]]></Val> <Val><![CDATA[Create window layouts to help make multi-tasking easy.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -235,7 +238,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_DisplayChangeMoveWindowsCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_DisplayChangeMoveWindowsCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Keep windows in their zones when the screen resolution changes]]></Val> <Val><![CDATA[Keep windows in their zones when the screen resolution changes]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -244,7 +247,16 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_EnableToggleControl_HeaderText.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_Editor_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Editor]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";FancyZones_EnableToggleControl_HeaderText.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable FancyZones]]></Val> <Val><![CDATA[Enable FancyZones]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -289,30 +301,39 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_HotkeyEditorControl.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_HotkeyEditorControl.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open zones editor]]></Val> <Val><![CDATA[Open layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Zone-editor openen]]></Val> <Val><![CDATA[Lay-outeditor openen]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Open zones editor]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_InActiveColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_InActiveColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone inactive color (Default: #F5FCFF)]]></Val> <Val><![CDATA[Zone inactive color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Kleur van inactieve zone (standaard: #F5FCFF)]]></Val> <Val><![CDATA[Kleur van inactieve zone]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone inactive color (Default: #F5FCFF)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_LaunchEditorButtonControl.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_LaunchEditorButtonControl.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Launch zones editor]]></Val> <Val><![CDATA[Launch layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Zone-editor starten]]></Val> <Val><![CDATA[Lay-outeditor starten]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Launch zones editor]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -343,7 +364,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_MoveWindowsBasedOnPositionCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_MoveWindowsBasedOnPositionCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Move windows based on their position]]></Val> <Val><![CDATA[Move windows based on their position]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -415,6 +436,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_WindowBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Window behavior]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Venstergedrag]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";FancyZones_ZoneBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_ZoneBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone behavior]]></Val> <Val><![CDATA[Zone behavior]]></Val>
@ -426,10 +456,13 @@
</Item> </Item>
<Item ItemId=";FancyZones_ZoneHighlightColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_ZoneHighlightColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone highlight color (Default: #0078D7)]]></Val> <Val><![CDATA[Zone highlight color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Markeringskleur van zone (standaard: #0078D7)]]></Val> <Val><![CDATA[Markeringskleur van zone]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone highlight color (Default: #0078D7)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -442,7 +475,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Fancyzones_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Fancyzones_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[FancyZones windows]]></Val> <Val><![CDATA[FancyZones windows]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -451,7 +484,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";File.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";File.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[File]]></Val> <Val><![CDATA[File]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -523,7 +556,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_MD.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_MD.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Markdown (.md) preview]]></Val> <Val><![CDATA[Enable Markdown (.md) preview]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -532,7 +565,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_SVG.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_SVG.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable SVG (.svg) preview]]></Val> <Val><![CDATA[Enable SVG (.svg) preview]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -541,7 +574,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_SVG_Thumbnail.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_SVG_Thumbnail.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable SVG (.svg) thumbnails]]></Val> <Val><![CDATA[Enable SVG (.svg) thumbnails]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -577,7 +610,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_ReportAbug.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_ReportAbug.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Report a bug]]></Val> <Val><![CDATA[Report a bug]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -586,7 +619,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_RequestAFeature_URL.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_RequestAFeature_URL.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Request a feature]]></Val> <Val><![CDATA[Request a feature]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -595,7 +628,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_RestartAsAdmin_Button.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_RestartAsAdmin_Button.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Restart as administrator]]></Val> <Val><![CDATA[Restart as administrator]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -678,10 +711,13 @@
</Item> </Item>
<Item ItemId=";GeneralSettings_VersionIsLatest" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralSettings_VersionIsLatest" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[You have the latest available version.]]></Val> <Val><![CDATA[PowerToys is up-to-date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[U beschikt over de nieuwste versie.]]></Val> <Val><![CDATA[PowerToys is up-to-date.]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[You have the latest available version.]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -838,7 +874,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_EnableToggle.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_EnableToggle.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Image Resizer]]></Val> <Val><![CDATA[Enable Image Resizer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1063,7 +1099,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Fill.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Fill.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Fill]]></Val> <Val><![CDATA[Fill]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1072,7 +1108,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Fit.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Fit.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Fit]]></Val> <Val><![CDATA[Fit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1081,7 +1117,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Stretch.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Stretch.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Stretch]]></Val> <Val><![CDATA[Stretch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1171,6 +1207,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KBM_KeysCannotBeRemapped.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Learn more about remapping limitations]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Meer informatie over het opnieuw toewijzen van beperkingen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";KeyboardManager_ConfigHeader.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true"> <Item ItemId=";KeyboardManager_ConfigHeader.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Current configuration]]></Val> <Val><![CDATA[Current configuration]]></Val>
@ -1198,7 +1243,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Keyboard Manager]]></Val> <Val><![CDATA[Keyboard Manager]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1279,7 +1324,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_RemappedKeysListItem.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_RemappedKeysListItem.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Key Remapping]]></Val> <Val><![CDATA[Key Remapping]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1315,7 +1360,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_TargetApp.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_TargetApp.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[For Target Application]]></Val> <Val><![CDATA[For Target Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1324,12 +1369,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Module_overview.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Module_overview.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Module overview]]></Val> <Val><![CDATA[Learn more]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Moduleoverzicht]]></Val> <Val><![CDATA[Meer informatie]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Module overview]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -1389,14 +1437,17 @@
</Item> </Item>
<Item ItemId=";PowerLauncher_DisableDriveDetectionWarning.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_DisableDriveDetectionWarning.Content" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Disable drive detection warning for the indexer plugin]]></Val> <Val><![CDATA[Disable drive detection warning for the file search plugin]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Waarschuwing voor schijfdetectie uitschakelen voor de indexeerfunctie-invoegtoepassing]]></Val> <Val><![CDATA[Waarschuwing voor schijfdetectie uitschakelen voor de invoegtoepassing voor het zoeken van bestanden]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Disable drive detection warning for the indexer plugin]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerLauncher_EnablePowerLauncher.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_EnablePowerLauncher.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable PowerToys Run]]></Val> <Val><![CDATA[Enable PowerToys Run]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1423,7 +1474,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerLauncher_OpenConsole.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_OpenConsole.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open console]]></Val> <Val><![CDATA[Open console]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1585,7 +1636,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerRename_ShellIntegration.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerRename_ShellIntegration.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Shell integration]]></Val> <Val><![CDATA[Shell integration]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1603,7 +1654,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerRename_Toggle_Enable.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerRename_Toggle_Enable.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable PowerRename]]></Val> <Val><![CDATA[Enable PowerRename]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1675,7 +1726,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Radio_Theme_Dark.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Radio_Theme_Dark.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Dark]]></Val> <Val><![CDATA[Dark]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1720,7 +1771,16 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";RemoveButton.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";RemoveButton.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Remove]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Verwijderen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";RemoveTooltip.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Remove]]></Val> <Val><![CDATA[Remove]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1849,7 +1909,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ShortcutGuide_Enable.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ShortcutGuide_Enable.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Shortcut Guide]]></Val> <Val><![CDATA[Enable Shortcut Guide]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1894,7 +1954,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Windows_Color_Settings.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true"> <Item ItemId=";Windows_Color_Settings.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Windows color settings]]></Val> <Val><![CDATA[Windows color settings]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">

View File

@ -109,24 +109,6 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";AppDescription" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft.PowerToys.Settings.UI]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft.PowerToys.Settings.UI]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";AppDisplayName" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Microsoft.PowerToys.Settings.UI]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Microsoft.PowerToys.Settings.UI]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Appearance_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Appearance_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Appearance]]></Val> <Val><![CDATA[Appearance]]></Val>
@ -136,7 +118,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";AttributionTitle.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";AttributionTitle.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Attribution]]></Val> <Val><![CDATA[Attribution]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -154,7 +136,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ColorPicker_ActivationShortcut.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ColorPicker_ActivationShortcut.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open Color Picker]]></Val> <Val><![CDATA[Open Color Picker]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -190,7 +172,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ColorPicker_EnableColorPicker.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ColorPicker_EnableColorPicker.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Color Picker]]></Val> <Val><![CDATA[Enable Color Picker]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -237,14 +219,17 @@
</Item> </Item>
<Item ItemId=";FancyZones_BorderColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_BorderColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone border color (Default: #FFFFFF)]]></Val> <Val><![CDATA[Zone border color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Цвет границы зоны (по умолчанию #FFFFFF)]]></Val> <Val><![CDATA[Цвет границы зоны]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone border color (Default: #FFFFFF)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_Description.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_Description.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Create window layouts to help make multi-tasking easy.]]></Val> <Val><![CDATA[Create window layouts to help make multi-tasking easy.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -253,7 +238,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_DisplayChangeMoveWindowsCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_DisplayChangeMoveWindowsCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Keep windows in their zones when the screen resolution changes]]></Val> <Val><![CDATA[Keep windows in their zones when the screen resolution changes]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -262,7 +247,16 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_EnableToggleControl_HeaderText.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_Editor_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Редактор]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";FancyZones_EnableToggleControl_HeaderText.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable FancyZones]]></Val> <Val><![CDATA[Enable FancyZones]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -307,30 +301,39 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_HotkeyEditorControl.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_HotkeyEditorControl.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open zones editor]]></Val> <Val><![CDATA[Open layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Открыть редактор зон]]></Val> <Val><![CDATA[Открытие редактора макета]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Open zones editor]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_InActiveColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_InActiveColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone inactive color (Default: #F5FCFF)]]></Val> <Val><![CDATA[Zone inactive color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Неактивный цвет зоны (по умолчанию #F5FCFF)]]></Val> <Val><![CDATA[Неактивный цвет зоны]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone inactive color (Default: #F5FCFF)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_LaunchEditorButtonControl.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_LaunchEditorButtonControl.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Launch zones editor]]></Val> <Val><![CDATA[Launch layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Запустить редактор зон]]></Val> <Val><![CDATA[Запуск редактора макета]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Launch zones editor]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -361,7 +364,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_MoveWindowsBasedOnPositionCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_MoveWindowsBasedOnPositionCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Move windows based on their position]]></Val> <Val><![CDATA[Move windows based on their position]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -433,6 +436,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_WindowBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Window behavior]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Поведение окна]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";FancyZones_ZoneBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_ZoneBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone behavior]]></Val> <Val><![CDATA[Zone behavior]]></Val>
@ -444,10 +456,13 @@
</Item> </Item>
<Item ItemId=";FancyZones_ZoneHighlightColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_ZoneHighlightColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone highlight color (Default: #0078D7)]]></Val> <Val><![CDATA[Zone highlight color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Цвет выделения зоны (по умолчанию #0078D7)]]></Val> <Val><![CDATA[Цвет выделения зоны]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone highlight color (Default: #0078D7)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -460,7 +475,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Fancyzones_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Fancyzones_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[FancyZones windows]]></Val> <Val><![CDATA[FancyZones windows]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -469,7 +484,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";File.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";File.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[File]]></Val> <Val><![CDATA[File]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -541,7 +556,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_MD.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_MD.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Markdown (.md) preview]]></Val> <Val><![CDATA[Enable Markdown (.md) preview]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -550,7 +565,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_SVG.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_SVG.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable SVG (.svg) preview]]></Val> <Val><![CDATA[Enable SVG (.svg) preview]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -559,7 +574,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_SVG_Thumbnail.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_SVG_Thumbnail.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable SVG (.svg) thumbnails]]></Val> <Val><![CDATA[Enable SVG (.svg) thumbnails]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -595,7 +610,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_ReportAbug.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_ReportAbug.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Report a bug]]></Val> <Val><![CDATA[Report a bug]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -604,7 +619,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_RequestAFeature_URL.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_RequestAFeature_URL.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Request a feature]]></Val> <Val><![CDATA[Request a feature]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -613,7 +628,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_RestartAsAdmin_Button.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_RestartAsAdmin_Button.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Restart as administrator]]></Val> <Val><![CDATA[Restart as administrator]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -696,10 +711,13 @@
</Item> </Item>
<Item ItemId=";GeneralSettings_VersionIsLatest" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralSettings_VersionIsLatest" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[You have the latest available version.]]></Val> <Val><![CDATA[PowerToys is up-to-date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[У вас последняя доступная версия.]]></Val> <Val><![CDATA[PowerToys не требует обновления.]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[You have the latest available version.]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -856,7 +874,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_EnableToggle.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_EnableToggle.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Image Resizer]]></Val> <Val><![CDATA[Enable Image Resizer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1081,7 +1099,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Fill.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Fill.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Fill]]></Val> <Val><![CDATA[Fill]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1090,7 +1108,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Fit.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Fit.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Fit]]></Val> <Val><![CDATA[Fit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1099,7 +1117,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Stretch.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Stretch.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Stretch]]></Val> <Val><![CDATA[Stretch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1189,6 +1207,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KBM_KeysCannotBeRemapped.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Learn more about remapping limitations]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Дополнительные сведения об ограничениях переназначения]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";KeyboardManager_ConfigHeader.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true"> <Item ItemId=";KeyboardManager_ConfigHeader.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Current configuration]]></Val> <Val><![CDATA[Current configuration]]></Val>
@ -1216,7 +1243,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Keyboard Manager]]></Val> <Val><![CDATA[Keyboard Manager]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1297,7 +1324,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_RemappedKeysListItem.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_RemappedKeysListItem.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Key Remapping]]></Val> <Val><![CDATA[Key Remapping]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1333,7 +1360,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_TargetApp.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_TargetApp.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[For Target Application]]></Val> <Val><![CDATA[For Target Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1342,12 +1369,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Module_overview.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Module_overview.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Module overview]]></Val> <Val><![CDATA[Learn more]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Обзор модуля]]></Val> <Val><![CDATA[Дополнительные сведения]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Module overview]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -1407,14 +1437,17 @@
</Item> </Item>
<Item ItemId=";PowerLauncher_DisableDriveDetectionWarning.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_DisableDriveDetectionWarning.Content" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Disable drive detection warning for the indexer plugin]]></Val> <Val><![CDATA[Disable drive detection warning for the file search plugin]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Отключить предупреждение об обнаружении диска для подключаемого модуля индексатора]]></Val> <Val><![CDATA[Отключить предупреждение об обнаружении диска для подключаемого модуля поиска файлов]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Disable drive detection warning for the indexer plugin]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerLauncher_EnablePowerLauncher.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_EnablePowerLauncher.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable PowerToys Run]]></Val> <Val><![CDATA[Enable PowerToys Run]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1441,7 +1474,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerLauncher_OpenConsole.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_OpenConsole.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open console]]></Val> <Val><![CDATA[Open console]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1603,7 +1636,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerRename_ShellIntegration.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerRename_ShellIntegration.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Shell integration]]></Val> <Val><![CDATA[Shell integration]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1621,7 +1654,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerRename_Toggle_Enable.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerRename_Toggle_Enable.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable PowerRename]]></Val> <Val><![CDATA[Enable PowerRename]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1693,7 +1726,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Radio_Theme_Dark.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Radio_Theme_Dark.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Dark]]></Val> <Val><![CDATA[Dark]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1702,7 +1735,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Radio_Theme_Default.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Radio_Theme_Default.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Windows default]]></Val> <Val><![CDATA[Windows default]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1711,7 +1744,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Radio_Theme_Light.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Radio_Theme_Light.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Light]]></Val> <Val><![CDATA[Light]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1738,7 +1771,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";RemoveButton.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";RemoveButton.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Remove]]></Val> <Val><![CDATA[Remove]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1747,6 +1780,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";RemoveTooltip.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Remove]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Удаление]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";SettingsPage_SetShortcut.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";SettingsPage_SetShortcut.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Shortcut setting]]></Val> <Val><![CDATA[Shortcut setting]]></Val>
@ -1813,15 +1855,6 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Shell_Main.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Main]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Главный]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Shell_PowerLauncher.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true"> <Item ItemId=";Shell_PowerLauncher.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[PowerToys Run]]></Val> <Val><![CDATA[PowerToys Run]]></Val>
@ -1876,7 +1909,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ShortcutGuide_Enable.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ShortcutGuide_Enable.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Shortcut Guide]]></Val> <Val><![CDATA[Enable Shortcut Guide]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1921,7 +1954,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Windows_Color_Settings.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Windows_Color_Settings.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Windows color settings]]></Val> <Val><![CDATA[Windows color settings]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">

View File

@ -118,7 +118,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";AttributionTitle.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";AttributionTitle.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Attribution]]></Val> <Val><![CDATA[Attribution]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -136,7 +136,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ColorPicker_ActivationShortcut.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ColorPicker_ActivationShortcut.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open Color Picker]]></Val> <Val><![CDATA[Open Color Picker]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -172,7 +172,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ColorPicker_EnableColorPicker.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ColorPicker_EnableColorPicker.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Color Picker]]></Val> <Val><![CDATA[Enable Color Picker]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -219,14 +219,17 @@
</Item> </Item>
<Item ItemId=";FancyZones_BorderColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_BorderColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone border color (Default: #FFFFFF)]]></Val> <Val><![CDATA[Zone border color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[區域框線的色彩 (預設: #FFFFFF)]]></Val> <Val><![CDATA[區域框線的色彩]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone border color (Default: #FFFFFF)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_Description.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_Description.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Create window layouts to help make multi-tasking easy.]]></Val> <Val><![CDATA[Create window layouts to help make multi-tasking easy.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -235,7 +238,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_DisplayChangeMoveWindowsCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_DisplayChangeMoveWindowsCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Keep windows in their zones when the screen resolution changes]]></Val> <Val><![CDATA[Keep windows in their zones when the screen resolution changes]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -244,7 +247,16 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_EnableToggleControl_HeaderText.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_Editor_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[編輯器]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";FancyZones_EnableToggleControl_HeaderText.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable FancyZones]]></Val> <Val><![CDATA[Enable FancyZones]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -289,30 +301,39 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_HotkeyEditorControl.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_HotkeyEditorControl.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open zones editor]]></Val> <Val><![CDATA[Open layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[開啟區域編輯器]]></Val> <Val><![CDATA[開啟配置編輯器]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Open zones editor]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_InActiveColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_InActiveColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone inactive color (Default: #F5FCFF)]]></Val> <Val><![CDATA[Zone inactive color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[非使用中區域的色彩 (預設: #F5FCFF)]]></Val> <Val><![CDATA[非使用中區域的色彩]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone inactive color (Default: #F5FCFF)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_LaunchEditorButtonControl.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_LaunchEditorButtonControl.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Launch zones editor]]></Val> <Val><![CDATA[Launch layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[啟動區域編輯器]]></Val> <Val><![CDATA[啟動配置編輯器]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Launch zones editor]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -343,7 +364,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_MoveWindowsBasedOnPositionCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_MoveWindowsBasedOnPositionCheckBoxControl.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Move windows based on their position]]></Val> <Val><![CDATA[Move windows based on their position]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -415,6 +436,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FancyZones_WindowBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Window behavior]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[視窗行為]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";FancyZones_ZoneBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_ZoneBehavior_GroupSettings.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone behavior]]></Val> <Val><![CDATA[Zone behavior]]></Val>
@ -426,10 +456,13 @@
</Item> </Item>
<Item ItemId=";FancyZones_ZoneHighlightColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FancyZones_ZoneHighlightColor.Text" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Zone highlight color (Default: #0078D7)]]></Val> <Val><![CDATA[Zone highlight color]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[區域醒目提示色彩 (預設: #0078D7)]]></Val> <Val><![CDATA[區域醒目提示色彩]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Zone highlight color (Default: #0078D7)]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -442,7 +475,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Fancyzones_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Fancyzones_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[FancyZones windows]]></Val> <Val><![CDATA[FancyZones windows]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -451,7 +484,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";File.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";File.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[File]]></Val> <Val><![CDATA[File]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -523,7 +556,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_MD.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_MD.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Markdown (.md) preview]]></Val> <Val><![CDATA[Enable Markdown (.md) preview]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -532,7 +565,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_SVG.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_Preview_SVG.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable SVG (.svg) preview]]></Val> <Val><![CDATA[Enable SVG (.svg) preview]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -541,7 +574,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";FileExplorerPreview_ToggleSwitch_SVG_Thumbnail.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";FileExplorerPreview_ToggleSwitch_SVG_Thumbnail.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable SVG (.svg) thumbnails]]></Val> <Val><![CDATA[Enable SVG (.svg) thumbnails]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -577,7 +610,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_ReportAbug.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_ReportAbug.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Report a bug]]></Val> <Val><![CDATA[Report a bug]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -586,7 +619,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_RequestAFeature_URL.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_RequestAFeature_URL.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Request a feature]]></Val> <Val><![CDATA[Request a feature]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -595,7 +628,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";GeneralPage_RestartAsAdmin_Button.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralPage_RestartAsAdmin_Button.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Restart as administrator]]></Val> <Val><![CDATA[Restart as administrator]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -678,10 +711,13 @@
</Item> </Item>
<Item ItemId=";GeneralSettings_VersionIsLatest" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";GeneralSettings_VersionIsLatest" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[You have the latest available version.]]></Val> <Val><![CDATA[PowerToys is up-to-date.]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[您已是使用最新的版本。]]></Val> <Val><![CDATA[PowerToys 已是最新。]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[You have the latest available version.]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -838,7 +874,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_EnableToggle.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_EnableToggle.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Image Resizer]]></Val> <Val><![CDATA[Enable Image Resizer]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1063,7 +1099,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Fill.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Fill.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Fill]]></Val> <Val><![CDATA[Fill]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1072,7 +1108,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Fit.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Fit.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Fit]]></Val> <Val><![CDATA[Fit]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1081,7 +1117,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ImageResizer_Sizes_Fit_Stretch.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ImageResizer_Sizes_Fit_Stretch.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Stretch]]></Val> <Val><![CDATA[Stretch]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1171,6 +1207,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KBM_KeysCannotBeRemapped.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Learn more about remapping limitations]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[深入了解重新對應的限制]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";KeyboardManager_ConfigHeader.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true"> <Item ItemId=";KeyboardManager_ConfigHeader.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Current configuration]]></Val> <Val><![CDATA[Current configuration]]></Val>
@ -1198,7 +1243,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_Image.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Keyboard Manager]]></Val> <Val><![CDATA[Keyboard Manager]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1279,7 +1324,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_RemappedKeysListItem.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_RemappedKeysListItem.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Key Remapping]]></Val> <Val><![CDATA[Key Remapping]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1315,7 +1360,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";KeyboardManager_TargetApp.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";KeyboardManager_TargetApp.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[For Target Application]]></Val> <Val><![CDATA[For Target Application]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1324,12 +1369,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Module_overview.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Module_overview.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Module overview]]></Val> <Val><![CDATA[Learn more]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[模組概觀]]></Val> <Val><![CDATA[深入了解]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Module overview]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -1389,14 +1437,17 @@
</Item> </Item>
<Item ItemId=";PowerLauncher_DisableDriveDetectionWarning.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_DisableDriveDetectionWarning.Content" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Disable drive detection warning for the indexer plugin]]></Val> <Val><![CDATA[Disable drive detection warning for the file search plugin]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[停用索引工具外掛程式的磁碟機偵測警告]]></Val> <Val><![CDATA[停用檔案搜尋外掛程式的磁碟機偵測警告]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Disable drive detection warning for the indexer plugin]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerLauncher_EnablePowerLauncher.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_EnablePowerLauncher.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable PowerToys Run]]></Val> <Val><![CDATA[Enable PowerToys Run]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1423,7 +1474,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerLauncher_OpenConsole.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerLauncher_OpenConsole.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Open console]]></Val> <Val><![CDATA[Open console]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1585,7 +1636,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerRename_ShellIntegration.Text" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerRename_ShellIntegration.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Shell integration]]></Val> <Val><![CDATA[Shell integration]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1603,7 +1654,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";PowerRename_Toggle_Enable.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";PowerRename_Toggle_Enable.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable PowerRename]]></Val> <Val><![CDATA[Enable PowerRename]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1675,7 +1726,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Radio_Theme_Dark.Content" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Radio_Theme_Dark.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Dark]]></Val> <Val><![CDATA[Dark]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1720,7 +1771,16 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";RemoveButton.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";RemoveButton.AutomationProperties.Name" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Remove]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[移除]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";RemoveTooltip.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Remove]]></Val> <Val><![CDATA[Remove]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1849,7 +1909,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";ShortcutGuide_Enable.Header" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";ShortcutGuide_Enable.Header" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Enable Shortcut Guide]]></Val> <Val><![CDATA[Enable Shortcut Guide]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -1894,7 +1954,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Windows_Color_Settings.Content" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true"> <Item ItemId=";Windows_Color_Settings.Text" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Windows color settings]]></Val> <Val><![CDATA[Windows color settings]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">

View File

@ -13,44 +13,7 @@ namespace ColorPicker.Helpers
internal static class ColorHelper internal static class ColorHelper
{ {
/// <summary> /// <summary>
/// Convert a given <see cref="Color"/> color to a HSL color (hue, saturation, lightness) /// Convert a given <see cref="Color"/> to a CYMK color (cyan, magenta, yellow, black key)
/// </summary>
/// <param name="color">The <see cref="Color"/> to convert</param>
/// <returns>The hue [0°..360°], saturation [0..1] and lightness [0..1] values of the converted color</returns>
internal static (double hue, double saturation, double lightness) ConvertToHSLColor(Color color)
{
var min = Math.Min(Math.Min(color.R, color.G), color.B) / 255d;
var max = Math.Max(Math.Max(color.R, color.G), color.B) / 255d;
var lightness = (max + min) / 2d;
if (lightness == 0d || min == max)
{
return (color.GetHue(), 0d, lightness);
}
else if (lightness > 0d && lightness <= 0.5d)
{
return (color.GetHue(), (max - min) / (max + min), lightness);
}
return (color.GetHue(), (max - min) / (2d - (max + min)), lightness);
}
/// <summary>
/// Convert a given <see cref="Color"/> color to a HSV color (hue, saturation, value)
/// </summary>
/// <param name="color">The <see cref="Color"/> to convert</param>
/// <returns>The hue [0°..360°], saturation [0..1] and value [0..1] of the converted color</returns>
internal static (double hue, double saturation, double value) ConvertToHSVColor(Color color)
{
var min = Math.Min(Math.Min(color.R, color.G), color.B) / 255d;
var max = Math.Max(Math.Max(color.R, color.G), color.B) / 255d;
return (color.GetHue(), max == 0d ? 0d : (max - min) / max, max);
}
/// <summary>
/// Convert a given <see cref="Color"/> color to a CYMK color (cyan, magenta, yellow, black key)
/// </summary> /// </summary>
/// <param name="color">The <see cref="Color"/> to convert</param> /// <param name="color">The <see cref="Color"/> to convert</param>
/// <returns>The cyan[0..1], magenta[0..1], yellow[0..1] and black key[0..1] of the converted color</returns> /// <returns>The cyan[0..1], magenta[0..1], yellow[0..1] and black key[0..1] of the converted color</returns>
@ -80,5 +43,135 @@ namespace ColorPicker.Helpers
return (cyan, magenta, yellow, blackKey); return (cyan, magenta, yellow, blackKey);
} }
/// <summary>
/// Convert a given <see cref="Color"/> to a HSB color (hue, saturation, brightness)
/// </summary>
/// <param name="color">The <see cref="Color"/> to convert</param>
/// <returns>The hue [0°..360°], saturation [0..1] and brightness [0..1] of the converted color</returns>
internal static (double hue, double saturation, double brightness) ConvertToHSBColor(Color color)
=> (color.GetHue(), color.GetSaturation(), color.GetBrightness());
/// <summary>
/// Convert a given <see cref="Color"/> to a HSI color (hue, saturation, intensity)
/// </summary>
/// <param name="color">The <see cref="Color"/> to convert</param>
/// <returns>The hue [0°..360°], saturation [0..1] and intensity [0..1] of the converted color</returns>
internal static (double hue, double saturation, double intensity) ConvertToHSIColor(Color color)
{
// special case for black
if (color.R == 0 && color.G == 0 && color.B == 0)
{
return (0d, 0d, 0d);
}
var red = color.R / 255d;
var green = color.G / 255d;
var blue = color.B / 255d;
var intensity = (red + green + blue) / 3d;
var min = Math.Min(Math.Min(color.R, color.G), color.B) / 255d;
return (color.GetHue(), 1d - (min / intensity), intensity);
}
/// <summary>
/// Convert a given <see cref="Color"/> to a HSL color (hue, saturation, lightness)
/// </summary>
/// <param name="color">The <see cref="Color"/> to convert</param>
/// <returns>The hue [0°..360°], saturation [0..1] and lightness [0..1] values of the converted color</returns>
internal static (double hue, double saturation, double lightness) ConvertToHSLColor(Color color)
{
var min = Math.Min(Math.Min(color.R, color.G), color.B) / 255d;
var max = Math.Max(Math.Max(color.R, color.G), color.B) / 255d;
var lightness = (max + min) / 2d;
if (lightness == 0d || min == max)
{
return (color.GetHue(), 0d, lightness);
}
else if (lightness > 0d && lightness <= 0.5d)
{
return (color.GetHue(), (max - min) / (max + min), lightness);
}
return (color.GetHue(), (max - min) / (2d - (max + min)), lightness);
}
/// <summary>
/// Convert a given <see cref="Color"/> to a HSV color (hue, saturation, value)
/// </summary>
/// <param name="color">The <see cref="Color"/> to convert</param>
/// <returns>The hue [0°..360°], saturation [0..1] and value [0..1] of the converted color</returns>
internal static (double hue, double saturation, double value) ConvertToHSVColor(Color color)
{
var min = Math.Min(Math.Min(color.R, color.G), color.B) / 255d;
var max = Math.Max(Math.Max(color.R, color.G), color.B) / 255d;
return (color.GetHue(), max == 0d ? 0d : (max - min) / max, max);
}
/// <summary>
/// Convert a given <see cref="Color"/> to a HWB color (hue, whiteness, blackness)
/// </summary>
/// <param name="color">The <see cref="Color"/> to convert</param>
/// <returns>The hue [0°..360°], whiteness [0..1] and blackness [0..1] of the converted color</returns>
internal static (double hue, double whiteness, double blackness) ConvertToHWBColor(Color color)
{
var min = Math.Min(Math.Min(color.R, color.G), color.B) / 255d;
var max = Math.Max(Math.Max(color.R, color.G), color.B) / 255d;
return (color.GetHue(), min, 1 - max);
}
/// <summary>
/// Convert a given <see cref="Color"/> to a natural color (hue, whiteness, blackness)
/// </summary>
/// <param name="color">The <see cref="Color"/> to convert</param>
/// <returns>The hue, whiteness [0..1] and blackness [0..1] of the converted color</returns>
internal static (string hue, double whiteness, double blackness) ConvertToNaturalColor(Color color)
{
var min = Math.Min(Math.Min(color.R, color.G), color.B) / 255d;
var max = Math.Max(Math.Max(color.R, color.G), color.B) / 255d;
return (GetNaturalColorFromHue(color.GetHue()), min, 1 - max);
}
/// <summary>
/// Return the natural color for the given hue value
/// </summary>
/// <param name="hue">The hue value to convert</param>
/// <returns>A natural color</returns>
private static string GetNaturalColorFromHue(double hue)
{
if (hue < 60d)
{
return $"R{Math.Round(hue / 0.6d, 0)}";
}
if (hue < 120d)
{
return $"Y{Math.Round((hue - 60d) / 0.6d, 0)}";
}
if (hue < 180d)
{
return $"G{Math.Round((hue - 120d) / 0.6d, 0)}";
}
if (hue < 240d)
{
return $"C{Math.Round((hue - 180d) / 0.6d, 0)}";
}
if (hue < 300d)
{
return $"B{Math.Round((hue - 240d) / 0.6d, 0)}";
}
return $"M{Math.Round((hue - 300d) / 0.6d, 0)}";
}
} }
} }

View File

@ -5,7 +5,7 @@
using System; using System;
using System.Drawing; using System.Drawing;
using System.Globalization; using System.Globalization;
using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Enumerations;
namespace ColorPicker.Helpers namespace ColorPicker.Helpers
{ {
@ -25,14 +25,38 @@ namespace ColorPicker.Helpers
{ {
ColorRepresentationType.CMYK => ColorToCYMK(color), ColorRepresentationType.CMYK => ColorToCYMK(color),
ColorRepresentationType.HEX => ColorToHex(color), ColorRepresentationType.HEX => ColorToHex(color),
ColorRepresentationType.HSB => ColorToHSB(color),
ColorRepresentationType.HSI => ColorToHSI(color),
ColorRepresentationType.HSL => ColorToHSL(color), ColorRepresentationType.HSL => ColorToHSL(color),
ColorRepresentationType.HSV => ColorToHSV(color), ColorRepresentationType.HSV => ColorToHSV(color),
ColorRepresentationType.HWB => ColorToHWB(color),
ColorRepresentationType.NCol => ColorToNCol(color),
ColorRepresentationType.RGB => ColorToRGB(color), ColorRepresentationType.RGB => ColorToRGB(color),
// Fall-back value, when "_userSettings.CopiedColorRepresentation.Value" is incorrect // Fall-back value, when "_userSettings.CopiedColorRepresentation.Value" is incorrect
_ => ColorToHex(color), _ => ColorToHex(color),
}; };
/// <summary>
/// Return a <see cref="string"/> representation of a CYMK color
/// </summary>
/// <param name="color">The <see cref="Color"/> for the CYMK color presentation</param>
/// <returns>A <see cref="string"/> representation of a CYMK color</returns>
private static string ColorToCYMK(Color color)
{
var (cyan, magenta, yellow, blackKey) = ColorHelper.ConvertToCMYKColor(color);
cyan = Math.Round(cyan * 100);
magenta = Math.Round(magenta * 100);
yellow = Math.Round(yellow * 100);
blackKey = Math.Round(blackKey * 100);
return $"cmyk({cyan.ToString(CultureInfo.InvariantCulture)}%"
+ $", {magenta.ToString(CultureInfo.InvariantCulture)}%"
+ $", {yellow.ToString(CultureInfo.InvariantCulture)}%"
+ $", {blackKey.ToString(CultureInfo.InvariantCulture)}%)";
}
/// <summary> /// <summary>
/// Return a hexadecimal <see cref="string"/> representation of a RGB color /// Return a hexadecimal <see cref="string"/> representation of a RGB color
/// </summary> /// </summary>
@ -44,19 +68,45 @@ namespace ColorPicker.Helpers
+ $"{color.B.ToString("X2", CultureInfo.InvariantCulture)}"; + $"{color.B.ToString("X2", CultureInfo.InvariantCulture)}";
/// <summary> /// <summary>
/// Return a <see cref="string"/> representation of a RGB color /// Return a <see cref="string"/> representation of a HSB color
/// </summary> /// </summary>
/// <param name="color">The see cref="Color"/> for the RGB color presentation</param> /// <param name="color">The <see cref="Color"/> for the HSB color presentation</param>
/// <returns>A <see cref="string"/> representation of a RGB color</returns> /// <returns>A <see cref="string"/> representation of a HSB color</returns>
private static string ColorToRGB(Color color) private static string ColorToHSB(Color color)
=> $"rgb({color.R.ToString(CultureInfo.InvariantCulture)}" {
+ $", {color.G.ToString(CultureInfo.InvariantCulture)}" var (hue, saturation, brightness) = ColorHelper.ConvertToHSBColor(color);
+ $", {color.B.ToString(CultureInfo.InvariantCulture)})";
hue = Math.Round(hue);
saturation = Math.Round(saturation * 100);
brightness = Math.Round(brightness * 100);
return $"hsb({hue.ToString(CultureInfo.InvariantCulture)}"
+ $", {saturation.ToString(CultureInfo.InvariantCulture)}%"
+ $", {brightness.ToString(CultureInfo.InvariantCulture)}%)";
}
/// <summary>
/// Return a <see cref="string"/> representation of a HSI color
/// </summary>
/// <param name="color">The <see cref="Color"/> for the HSI color presentation</param>
/// <returns>A <see cref="string"/> representation of a HSI color</returns>
private static string ColorToHSI(Color color)
{
var (hue, saturation, intensity) = ColorHelper.ConvertToHSIColor(color);
hue = Math.Round(hue);
saturation = Math.Round(saturation * 100);
intensity = Math.Round(intensity * 100);
return $"hsi({hue.ToString(CultureInfo.InvariantCulture)}"
+ $", {saturation.ToString(CultureInfo.InvariantCulture)}%"
+ $", {intensity.ToString(CultureInfo.InvariantCulture)}%)";
}
/// <summary> /// <summary>
/// Return a <see cref="string"/> representation of a HSL color /// Return a <see cref="string"/> representation of a HSL color
/// </summary> /// </summary>
/// <param name="color">The see cref="Color"/> for the HSL color presentation</param> /// <param name="color">The <see cref="Color"/> for the HSL color presentation</param>
/// <returns>A <see cref="string"/> representation of a HSL color</returns> /// <returns>A <see cref="string"/> representation of a HSL color</returns>
private static string ColorToHSL(Color color) private static string ColorToHSL(Color color)
{ {
@ -75,7 +125,7 @@ namespace ColorPicker.Helpers
/// <summary> /// <summary>
/// Return a <see cref="string"/> representation of a HSV color /// Return a <see cref="string"/> representation of a HSV color
/// </summary> /// </summary>
/// <param name="color">The see cref="Color"/> for the HSV color presentation</param> /// <param name="color">The <see cref="Color"/> for the HSV color presentation</param>
/// <returns>A <see cref="string"/> representation of a HSV color</returns> /// <returns>A <see cref="string"/> representation of a HSV color</returns>
private static string ColorToHSV(Color color) private static string ColorToHSV(Color color)
{ {
@ -92,24 +142,48 @@ namespace ColorPicker.Helpers
} }
/// <summary> /// <summary>
/// Return a <see cref="string"/> representation of a HSV color /// Return a <see cref="string"/> representation of a HWB color
/// </summary> /// </summary>
/// <param name="color">The see cref="Color"/> for the HSV color presentation</param> /// <param name="color">The <see cref="Color"/> for the HWB color presentation</param>
/// <returns>A <see cref="string"/> representation of a HSV color</returns> /// <returns>A <see cref="string"/> representation of a HWB color</returns>
private static string ColorToCYMK(Color color) private static string ColorToHWB(Color color)
{ {
var (cyan, magenta, yellow, blackKey) = ColorHelper.ConvertToCMYKColor(color); var (hue, whiteness, blackness) = ColorHelper.ConvertToHWBColor(color);
cyan = Math.Round(cyan * 100); hue = Math.Round(hue);
magenta = Math.Round(magenta * 100); whiteness = Math.Round(whiteness * 100);
yellow = Math.Round(yellow * 100); blackness = Math.Round(blackness * 100);
blackKey = Math.Round(blackKey * 100);
// Using InvariantCulture since this is used for color representation return $"hwb({hue.ToString(CultureInfo.InvariantCulture)}"
return $"cmyk({cyan.ToString(CultureInfo.InvariantCulture)}%" + $", {whiteness.ToString(CultureInfo.InvariantCulture)}%"
+ $", {magenta.ToString(CultureInfo.InvariantCulture)}%" + $", {blackness.ToString(CultureInfo.InvariantCulture)}%)";
+ $", {yellow.ToString(CultureInfo.InvariantCulture)}%"
+ $", {blackKey.ToString(CultureInfo.InvariantCulture)}%)";
} }
/// <summary>
/// Return a <see cref="string"/> representation of a natural color
/// </summary>
/// <param name="color">The <see cref="Color"/> for the natural color presentation</param>
/// <returns>A <see cref="string"/> representation of a natural color</returns>
private static string ColorToNCol(Color color)
{
var (hue, whiteness, blackness) = ColorHelper.ConvertToNaturalColor(color);
whiteness = Math.Round(whiteness * 100);
blackness = Math.Round(blackness * 100);
return $"{hue}"
+ $", {whiteness.ToString(CultureInfo.InvariantCulture)}%"
+ $", {blackness.ToString(CultureInfo.InvariantCulture)}%";
}
/// <summary>
/// Return a <see cref="string"/> representation of a RGB color
/// </summary>
/// <param name="color">The see cref="Color"/> for the RGB color presentation</param>
/// <returns>A <see cref="string"/> representation of a RGB color</returns>
private static string ColorToRGB(Color color)
=> $"rgb({color.R.ToString(CultureInfo.InvariantCulture)}"
+ $", {color.G.ToString(CultureInfo.InvariantCulture)}"
+ $", {color.B.ToString(CultureInfo.InvariantCulture)})";
} }
} }

View File

@ -2,7 +2,7 @@
// The Microsoft Corporation licenses this file to you under the MIT license. // The Microsoft Corporation licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information. // See the LICENSE file in the project root for more information.
using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Enumerations;
namespace ColorPicker.Settings namespace ColorPicker.Settings
{ {

View File

@ -8,6 +8,7 @@ using System.IO;
using System.IO.Abstractions; using System.IO.Abstractions;
using System.Threading; using System.Threading;
using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.PowerToys.Settings.UI.Library.Enumerations;
using Microsoft.PowerToys.Settings.UI.Library.Utilities; using Microsoft.PowerToys.Settings.UI.Library.Utilities;
namespace ColorPicker.Settings namespace ColorPicker.Settings

View File

@ -15,7 +15,6 @@ using ColorPicker.Mouse;
using ColorPicker.Settings; using ColorPicker.Settings;
using ColorPicker.Telemetry; using ColorPicker.Telemetry;
using ColorPicker.ViewModelContracts; using ColorPicker.ViewModelContracts;
using Microsoft.PowerToys.Settings.UI.Library;
using Microsoft.PowerToys.Telemetry; using Microsoft.PowerToys.Telemetry;
namespace ColorPicker.ViewModels namespace ColorPicker.ViewModels

View File

@ -1,5 +1,6 @@
using System; using System;
using System.Drawing; using System.Drawing;
using System.Globalization;
using ColorPicker.Helpers; using ColorPicker.Helpers;
using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting;
@ -41,7 +42,7 @@ namespace UnitTest_ColorPickerUI.Helpers
[DataRow(315, 100, 050, 100, 000, 075)] // Red-magenta [DataRow(315, 100, 050, 100, 000, 075)] // Red-magenta
[DataRow(330, 100, 050, 100, 000, 050)] // Blue-red [DataRow(330, 100, 050, 100, 000, 050)] // Blue-red
[DataRow(345, 100, 050, 100, 000, 025)] // Light blue-red [DataRow(345, 100, 050, 100, 000, 025)] // Light blue-red
public void ColorRGBtoHSL(double hue, double saturation, double lightness, int red, int green, int blue) public void ColorRGBtoHSLTest(double hue, double saturation, double lightness, int red, int green, int blue)
{ {
red = Convert.ToInt32(Math.Round(255d / 100d * red)); // [0%..100%] to [0..255] red = Convert.ToInt32(Math.Round(255d / 100d * red)); // [0%..100%] to [0..255]
green = Convert.ToInt32(Math.Round(255d / 100d * green)); // [0%..100%] to [0..255] green = Convert.ToInt32(Math.Round(255d / 100d * green)); // [0%..100%] to [0..255]
@ -90,7 +91,7 @@ namespace UnitTest_ColorPickerUI.Helpers
[DataRow(315, 100, 100, 100, 000, 075)] // Red-magenta [DataRow(315, 100, 100, 100, 000, 075)] // Red-magenta
[DataRow(330, 100, 100, 100, 000, 050)] // Blue-red [DataRow(330, 100, 100, 100, 000, 050)] // Blue-red
[DataRow(345, 100, 100, 100, 000, 025)] // Light blue-red [DataRow(345, 100, 100, 100, 000, 025)] // Light blue-red
public void ColorRGBtoHSV(double hue, double saturation, double value, int red, int green, int blue) public void ColorRGBtoHSVTest(double hue, double saturation, double value, int red, int green, int blue)
{ {
red = Convert.ToInt32(Math.Round(255d / 100d * red)); // [0%..100%] to [0..255] red = Convert.ToInt32(Math.Round(255d / 100d * red)); // [0%..100%] to [0..255]
green = Convert.ToInt32(Math.Round(255d / 100d * green)); // [0%..100%] to [0..255] green = Convert.ToInt32(Math.Round(255d / 100d * green)); // [0%..100%] to [0..255]
@ -138,7 +139,7 @@ namespace UnitTest_ColorPickerUI.Helpers
[DataRow(000, 100, 025, 000, 255, 000, 192)] // Red-magenta [DataRow(000, 100, 025, 000, 255, 000, 192)] // Red-magenta
[DataRow(000, 100, 050, 000, 255, 000, 128)] // Blue-red [DataRow(000, 100, 050, 000, 255, 000, 128)] // Blue-red
[DataRow(000, 100, 075, 000, 255, 000, 064)] // Light blue-red [DataRow(000, 100, 075, 000, 255, 000, 064)] // Light blue-red
public void ColorRGBtoCMYK(int cyan, int magenta, int yellow, int blackKey, int red, int green, int blue) public void ColorRGBtoCMYKTest(int cyan, int magenta, int yellow, int blackKey, int red, int green, int blue)
{ {
var color = Color.FromArgb(255, red, green, blue); var color = Color.FromArgb(255, red, green, blue);
var result = ColorHelper.ConvertToCMYKColor(color); var result = ColorHelper.ConvertToCMYKColor(color);
@ -156,8 +157,130 @@ namespace UnitTest_ColorPickerUI.Helpers
Assert.AreEqual(result.blackKey * 100d, blackKey, 0.5d); Assert.AreEqual(result.blackKey * 100d, blackKey, 0.5d);
} }
// values taken from https://en.wikipedia.org/wiki/HSL_and_HSV#Examples
[TestMethod] [TestMethod]
public void ColorRGBtoCMYKZeroDiv() [DataRow("FFFFFF", 000.0, 000.0, 100.0)] // white
[DataRow("808080", 000.0, 000.0, 050.0)] // gray
[DataRow("000000", 000.0, 000.0, 000.0)] // black
[DataRow("FF0000", 000.0, 100.0, 033.3)] // red
[DataRow("BFBF00", 060.0, 100.0, 050.0)] // yellow
[DataRow("008000", 120.0, 100.0, 016.7)] // green
[DataRow("80FFFF", 180.0, 040.0, 083.3)] // cyan
[DataRow("8080FF", 240.0, 025.0, 066.7)] // blue
[DataRow("BF40BF", 300.0, 057.1, 058.3)] // magenta
[DataRow("A0A424", 061.8, 069.9, 047.1)]
[DataRow("411BEA", 251.1, 075.6, 042.6)]
[DataRow("1EAC41", 134.9, 066.7, 034.9)]
[DataRow("F0C80E", 049.5, 091.1, 059.3)]
[DataRow("B430E5", 283.7, 068.6, 059.6)]
[DataRow("ED7651", 014.3, 044.6, 057.0)]
[DataRow("FEF888", 056.9, 036.3, 083.5)]
[DataRow("19CB97", 162.4, 080.0, 049.5)]
[DataRow("362698", 248.3, 053.3, 031.9)]
[DataRow("7E7EB8", 240.5, 013.5, 057.0)]
public void ColorRGBtoHSITest(string hexValue, double hue, double saturation, double intensity)
{
var red = int.Parse(hexValue.Substring(0, 2), NumberStyles.HexNumber);
var green = int.Parse(hexValue.Substring(2, 2), NumberStyles.HexNumber);
var blue = int.Parse(hexValue.Substring(4, 2), NumberStyles.HexNumber);
var color = Color.FromArgb(255, red, green, blue);
var result = ColorHelper.ConvertToHSIColor(color);
// hue[0°..360°]
Assert.AreEqual(result.hue, hue, 0.5d);
// saturation[0..1]
Assert.AreEqual(result.saturation * 100d, saturation, 0.5d);
// intensity[0..1]
Assert.AreEqual(result.intensity * 100d, intensity, 0.5d);
}
// values taken from https://en.wikipedia.org/wiki/HSL_and_HSV#Examples
// and manual convert via https://colorconv.com/hwb
[TestMethod]
[DataRow("FFFFFF", 000, 100, 000)] // white
[DataRow("808080", 000, 050, 050)] // gray
[DataRow("000000", 000, 000, 100)] // black
[DataRow("FF0000", 000, 000, 000)] // red
[DataRow("BFBF00", 060, 000, 025)] // yellow
[DataRow("008000", 120, 000, 050)] // green
[DataRow("80FFFF", 180, 050, 000)] // cyan
[DataRow("8080FF", 240, 050, 000)] // blue
[DataRow("BF40BF", 300, 025, 025)] // magenta
[DataRow("A0A424", 062, 014, 036)]
[DataRow("411BEA", 251, 011, 008)]
[DataRow("1EAC41", 135, 012, 033)]
[DataRow("F0C80E", 049, 005, 006)]
[DataRow("B430E5", 284, 019, 010)]
[DataRow("ED7651", 014, 032, 007)]
[DataRow("FEF888", 057, 053, 000)]
[DataRow("19CB97", 162, 010, 020)]
[DataRow("362698", 248, 015, 040)]
[DataRow("7E7EB8", 240, 049, 028)]
public void ColorRGBtoHWBTest(string hexValue, double hue, double whiteness, double blackness)
{
var red = int.Parse(hexValue.Substring(0, 2), NumberStyles.HexNumber);
var green = int.Parse(hexValue.Substring(2, 2), NumberStyles.HexNumber);
var blue = int.Parse(hexValue.Substring(4, 2), NumberStyles.HexNumber);
var color = Color.FromArgb(255, red, green, blue);
var result = ColorHelper.ConvertToHWBColor(color);
// hue[0°..360°]
Assert.AreEqual(result.hue, hue, 0.5d);
// whiteness[0..1]
Assert.AreEqual(result.whiteness * 100d, whiteness, 0.5d);
// blackness[0..1]
Assert.AreEqual(result.blackness * 100d, blackness, 0.5d);
}
// values taken from https://en.wikipedia.org/wiki/HSL_and_HSV#Examples
// and manual convert via https://colorconv.com/hwb
[TestMethod]
[DataRow("FFFFFF", "R0", 100, 000)] // white
[DataRow("808080", "R0", 050, 050)] // gray
[DataRow("000000", "R0", 000, 100)] // black
[DataRow("FF0000", "R0", 000, 000)] // red
[DataRow("BFBF00", "Y0", 000, 025)] // yellow
[DataRow("008000", "G0", 000, 050)] // green
[DataRow("80FFFF", "C0", 050, 000)] // cyan
[DataRow("8080FF", "B0", 050, 000)] // blue
[DataRow("BF40BF", "M0", 025, 025)] // magenta
[DataRow("A0A424", "Y3", 014, 036)]
[DataRow("411BEA", "B18", 011, 008)]
[DataRow("1EAC41", "G25", 012, 033)]
[DataRow("F0C80E", "R82", 005, 006)]
[DataRow("B430E5", "B73", 019, 010)]
[DataRow("ED7651", "R24", 032, 007)]
[DataRow("FEF888", "R95", 053, 000)]
[DataRow("19CB97", "G71", 010, 020)]
[DataRow("362698", "B14", 015, 040)]
[DataRow("7E7EB8", "B0", 049, 028)]
public void ColorRGBtoNColTest(string hexValue, string hue, double whiteness, double blackness)
{
var red = int.Parse(hexValue.Substring(0, 2), NumberStyles.HexNumber);
var green = int.Parse(hexValue.Substring(2, 2), NumberStyles.HexNumber);
var blue = int.Parse(hexValue.Substring(4, 2), NumberStyles.HexNumber);
var color = Color.FromArgb(255, red, green, blue);
var result = ColorHelper.ConvertToNaturalColor(color);
// hue
Assert.AreEqual(result.hue, hue);
// whiteness[0..1]
Assert.AreEqual(result.whiteness * 100d, whiteness, 0.5d);
// blackness[0..1]
Assert.AreEqual(result.blackness * 100d, blackness, 0.5d);
}
[TestMethod]
public void ColorRGBtoCMYKZeroDivTest()
{ {
for(var red = 0; red < 256; red++) for(var red = 0; red < 256; red++)
{ {

View File

@ -1,5 +1,5 @@
using ColorPicker.Helpers; using ColorPicker.Helpers;
using Microsoft.PowerToys.Settings.UI.Library; using Microsoft.PowerToys.Settings.UI.Library.Enumerations;
using Microsoft.VisualStudio.TestTools.UnitTesting; using Microsoft.VisualStudio.TestTools.UnitTesting;
using System.Drawing; using System.Drawing;
@ -11,11 +11,15 @@ namespace UnitTest_ColorPickerUI.Helpers
[TestMethod] [TestMethod]
[DataRow(ColorRepresentationType.CMYK, "cmyk(0%, 0%, 0%, 100%)")] [DataRow(ColorRepresentationType.CMYK, "cmyk(0%, 0%, 0%, 100%)")]
[DataRow(ColorRepresentationType.HEX, "#000000")] [DataRow(ColorRepresentationType.HEX, "#000000")]
[DataRow(ColorRepresentationType.NCol, "R0, 0%, 100%")]
[DataRow(ColorRepresentationType.HSB, "hsb(0, 0%, 0%)")]
[DataRow(ColorRepresentationType.HSI, "hsi(0, 0%, 0%)")]
[DataRow(ColorRepresentationType.HSL, "hsl(0, 0%, 0%)")] [DataRow(ColorRepresentationType.HSL, "hsl(0, 0%, 0%)")]
[DataRow(ColorRepresentationType.HSV, "hsv(0, 0%, 0%)")] [DataRow(ColorRepresentationType.HSV, "hsv(0, 0%, 0%)")]
[DataRow(ColorRepresentationType.HWB, "hwb(0, 0%, 100%)")]
[DataRow(ColorRepresentationType.RGB, "rgb(0, 0, 0)")] [DataRow(ColorRepresentationType.RGB, "rgb(0, 0, 0)")]
public void ColorRGBtoCMYKZeroDiv(ColorRepresentationType type, string expected) public void GetStringRepresentationTest(ColorRepresentationType type, string expected)
{ {
var result = ColorRepresentationHelper.GetStringRepresentation(Color.Black, type); var result = ColorRepresentationHelper.GetStringRepresentation(Color.Black, type);
Assert.AreEqual(result, expected); Assert.AreEqual(result, expected);

View File

@ -91,6 +91,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Custom_Layout_Delete_Button" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Delete custom layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Benutzerdefiniertes Layout löschen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Custom_Table_Layout" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Custom_Table_Layout" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Custom table layout creator]]></Val> <Val><![CDATA[Custom table layout creator]]></Val>
@ -136,6 +145,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Grid_Layout_Editor" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Grid layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Rasterlayout-Editor]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Name" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Name]]></Val> <Val><![CDATA[Name]]></Val>
@ -190,6 +208,24 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Zone_Count_Decrement" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Decrement number of zones in template layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Anzahl von Zonen im Vorlagenlayout verringern]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Zone_Count_Increment" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Increment number of zones in template layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Anzahl von Zonen im Vorlagenlayout erhöhen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -91,6 +91,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Custom_Layout_Delete_Button" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Delete custom layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Supprimer la disposition personnalisée]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Custom_Table_Layout" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Custom_Table_Layout" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Custom table layout creator]]></Val> <Val><![CDATA[Custom table layout creator]]></Val>
@ -136,6 +145,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Grid_Layout_Editor" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Grid layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Éditeur de disposition de grille]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Name" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Name]]></Val> <Val><![CDATA[Name]]></Val>
@ -190,6 +208,24 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Zone_Count_Decrement" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Decrement number of zones in template layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Décrémenter le nombre de zones dans la disposition du modèle]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Zone_Count_Increment" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Increment number of zones in template layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Incrémenter le nombre de zones dans la disposition du modèle]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -91,6 +91,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Custom_Layout_Delete_Button" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Delete custom layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aangepaste indeling verwijderen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Custom_Table_Layout" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Custom_Table_Layout" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Custom table layout creator]]></Val> <Val><![CDATA[Custom table layout creator]]></Val>
@ -136,6 +145,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Grid_Layout_Editor" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Grid layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Editor voor rasterindeling]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Name" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Name]]></Val> <Val><![CDATA[Name]]></Val>
@ -190,6 +208,24 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Zone_Count_Decrement" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Decrement number of zones in template layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aantal zones in sjabloonindeling verlagen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Zone_Count_Increment" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Increment number of zones in template layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Aantal zones in sjabloonindeling verhogen]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -91,6 +91,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Custom_Layout_Delete_Button" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Delete custom layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Удалить пользовательский макет]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Custom_Table_Layout" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Custom_Table_Layout" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Custom table layout creator]]></Val> <Val><![CDATA[Custom table layout creator]]></Val>
@ -136,6 +145,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Grid_Layout_Editor" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Grid layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Редактор макета сетки]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Name" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Name]]></Val> <Val><![CDATA[Name]]></Val>
@ -190,6 +208,24 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Zone_Count_Decrement" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Decrement number of zones in template layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Уменьшение числа зон в макете шаблона]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Zone_Count_Increment" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Increment number of zones in template layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Увеличение числа зон в макете шаблона]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -91,6 +91,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Custom_Layout_Delete_Button" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Delete custom layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[刪除自訂配置]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Custom_Table_Layout" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Custom_Table_Layout" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Custom table layout creator]]></Val> <Val><![CDATA[Custom table layout creator]]></Val>
@ -136,6 +145,15 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Grid_Layout_Editor" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Grid layout editor]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[方格配置編輯器]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Name" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Name" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Name]]></Val> <Val><![CDATA[Name]]></Val>
@ -190,6 +208,24 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Zone_Count_Decrement" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Decrement number of zones in template layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[減少範本配置中的區域數]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Zone_Count_Increment" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Increment number of zones in template layout]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[增加範本配置中的區域數]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
</Item> </Item>
</Item> </Item>
</LCX> </LCX>

View File

@ -106,7 +106,7 @@
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
<IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets> <IncludeAssets>runtime; build; native; contentfiles; analyzers; buildtransitive</IncludeAssets>
</PackageReference> </PackageReference>
<PackageReference Include="PropertyChanged.Fody" Version="3.2.10"> <PackageReference Include="PropertyChanged.Fody" Version="3.3.1">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
</PackageReference> </PackageReference>
<PackageReference Include="SharpZipLib" Version="1.2.0" /> <PackageReference Include="SharpZipLib" Version="1.2.0" />

View File

@ -42,9 +42,9 @@ namespace PowerLauncher
{ {
string path = Log.CurrentLogDirectory; string path = Log.CurrentLogDirectory;
var directory = new DirectoryInfo(path); var directory = new DirectoryInfo(path);
var log = directory.GetFiles().OrderByDescending(f => f.LastWriteTime).First(); var log = directory.GetFiles().OrderByDescending(f => f.LastWriteTime).FirstOrDefault();
LogFilePathBox.Text = log.FullName; LogFilePathBox.Text = log?.FullName;
StringBuilder content = new StringBuilder(); StringBuilder content = new StringBuilder();
content.AppendLine(ErrorReporting.RuntimeInfo()); content.AppendLine(ErrorReporting.RuntimeInfo());

View File

@ -120,10 +120,13 @@
</Item> </Item>
<Item ItemId=";deseralization_error_title" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";deseralization_error_title" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Powertoys Run deserialization error]]></Val> <Val><![CDATA[PowerToys Run deserialization error]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ошибка десериализации Панели PowerToys]]></Val> <Val><![CDATA[Ошибка десериализации Панели PowerToys]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Powertoys Run deserialization error]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
@ -154,7 +157,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";reportWindow_file_bug" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";reportWindow_file_bug" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Please file a bug in the]]></Val> <Val><![CDATA[Please file a bug in the]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
@ -163,7 +166,7 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";reportWindow_github_repo" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";reportWindow_github_repo" ItemType="0;.resx" PsrId="211" InstFlg="true" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[PowerToys GitHub repository]]></Val> <Val><![CDATA[PowerToys GitHub repository]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">

View File

@ -41,8 +41,8 @@ namespace Wox.Plugin.Logger
var rule = new LoggingRule("*", LogLevel.Info, target); var rule = new LoggingRule("*", LogLevel.Info, target);
#endif #endif
configuration.LoggingRules.Add(rule); configuration.LoggingRules.Add(rule);
LogManager.Configuration = configuration;
target.Dispose(); target.Dispose();
LogManager.Configuration = configuration;
} }
private static void LogInternalException(string message, System.Exception e, Type fullClassName, [CallerMemberName] string methodName = "", [CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0) private static void LogInternalException(string message, System.Exception e, Type fullClassName, [CallerMemberName] string methodName = "", [CallerFilePath] string sourceFilePath = "", [CallerLineNumber] int sourceLineNumber = 0)

View File

@ -84,7 +84,7 @@
<PackageReference Include="Mono.Cecil" Version="0.11.3" /> <PackageReference Include="Mono.Cecil" Version="0.11.3" />
<PackageReference Include="Newtonsoft.Json" Version="12.0.3" /> <PackageReference Include="Newtonsoft.Json" Version="12.0.3" />
<PackageReference Include="NLog.Extensions.Logging" Version="1.6.5" /> <PackageReference Include="NLog.Extensions.Logging" Version="1.6.5" />
<PackageReference Include="PropertyChanged.Fody" Version="3.2.10"> <PackageReference Include="PropertyChanged.Fody" Version="3.3.1">
<PrivateAssets>all</PrivateAssets> <PrivateAssets>all</PrivateAssets>
</PackageReference> </PackageReference>
<PackageReference Include="System.Runtime" Version="4.3.1" /> <PackageReference Include="System.Runtime" Version="4.3.1" />

View File

@ -146,6 +146,8 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <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')" /> <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')" />
<Import Project="..\..\..\..\packages\boost.1.72.0.0\build\boost.targets" Condition="Exists('..\..\..\..\packages\boost.1.72.0.0\build\boost.targets')" />
<Import Project="..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets" Condition="Exists('..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets')" />
</ImportGroup> </ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup> <PropertyGroup>
@ -153,5 +155,7 @@
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props'))" /> <Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets'))" /> <Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\boost.1.72.0.0\build\boost.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\boost.1.72.0.0\build\boost.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets'))" />
</Target> </Target>
</Project> </Project>

View File

@ -1,4 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="boost" version="1.72.0.0" targetFramework="native" />
<package id="boost_regex-vc142" version="1.72.0.0" targetFramework="native" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.200729.8" targetFramework="native" /> <package id="Microsoft.Windows.CppWinRT" version="2.0.200729.8" targetFramework="native" />
</packages> </packages>

View File

@ -218,6 +218,8 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <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')" /> <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')" />
<Import Project="..\..\..\..\packages\boost.1.72.0.0\build\boost.targets" Condition="Exists('..\..\..\..\packages\boost.1.72.0.0\build\boost.targets')" />
<Import Project="..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets" Condition="Exists('..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets')" />
</ImportGroup> </ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup> <PropertyGroup>
@ -225,5 +227,7 @@
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props'))" /> <Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets'))" /> <Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\boost.1.72.0.0\build\boost.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\boost.1.72.0.0\build\boost.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets'))" />
</Target> </Target>
</Project> </Project>

View File

@ -144,4 +144,8 @@
<data name="Extended_Menu_Info" xml:space="preserve"> <data name="Extended_Menu_Info" xml:space="preserve">
<value>Only show the PowerRename menu item on the extended context menu (Shift + Right-click).</value> <value>Only show the PowerRename menu item on the extended context menu (Shift + Right-click).</value>
</data> </data>
<data name="Use_Boost_Lib" xml:space="preserve">
<value>Use Boost library (provides extended features but may use different regex syntax).</value>
<comment>Boost is a product name, should not be translated</comment>
</data>
</root> </root>

View File

@ -234,6 +234,11 @@ public:
GET_RESOURCE_STRING(IDS_EXTENDED_MENU_INFO), GET_RESOURCE_STRING(IDS_EXTENDED_MENU_INFO),
CSettingsInstance().GetExtendedContextMenuOnly()); CSettingsInstance().GetExtendedContextMenuOnly());
settings.add_bool_toggle(
L"bool_use_boost_lib",
GET_RESOURCE_STRING(IDS_USE_BOOST_LIB),
CSettingsInstance().GetUseBoostLib());
return settings.serialize_to_buffer(buffer, buffer_size); return settings.serialize_to_buffer(buffer, buffer_size);
} }
@ -252,6 +257,7 @@ public:
CSettingsInstance().SetMaxMRUSize(values.get_int_value(L"int_max_mru_size").value()); CSettingsInstance().SetMaxMRUSize(values.get_int_value(L"int_max_mru_size").value());
CSettingsInstance().SetShowIconOnMenu(values.get_bool_value(L"bool_show_icon_on_menu").value()); CSettingsInstance().SetShowIconOnMenu(values.get_bool_value(L"bool_show_icon_on_menu").value());
CSettingsInstance().SetExtendedContextMenuOnly(values.get_bool_value(L"bool_show_extended_menu").value()); CSettingsInstance().SetExtendedContextMenuOnly(values.get_bool_value(L"bool_show_extended_menu").value());
CSettingsInstance().SetUseBoostLib(values.get_bool_value(L"bool_use_boost_lib").value());
CSettingsInstance().Save(); CSettingsInstance().Save();
Trace::SettingsChanged(); Trace::SettingsChanged();

View File

@ -1,4 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="boost" version="1.72.0.0" targetFramework="native" />
<package id="boost_regex-vc142" version="1.72.0.0" targetFramework="native" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.200729.8" targetFramework="native" /> <package id="Microsoft.Windows.CppWinRT" version="2.0.200729.8" targetFramework="native" />
</packages> </packages>

View File

@ -189,6 +189,8 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <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')" /> <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')" />
<Import Project="..\..\..\..\packages\boost.1.72.0.0\build\boost.targets" Condition="Exists('..\..\..\..\packages\boost.1.72.0.0\build\boost.targets')" />
<Import Project="..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets" Condition="Exists('..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets')" />
</ImportGroup> </ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup> <PropertyGroup>
@ -196,5 +198,7 @@
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props'))" /> <Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets'))" /> <Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\boost.1.72.0.0\build\boost.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\boost.1.72.0.0\build\boost.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets'))" />
</Target> </Target>
</Project> </Project>

View File

@ -1,8 +1,10 @@
#include "pch.h" #include "pch.h"
#include "PowerRenameRegEx.h" #include "PowerRenameRegEx.h"
#include "Settings.h"
#include <regex> #include <regex>
#include <string> #include <string>
#include <algorithm> #include <algorithm>
#include <boost/regex.hpp>
using namespace std; using namespace std;
@ -177,6 +179,8 @@ CPowerRenameRegEx::CPowerRenameRegEx() :
// Init to empty strings // Init to empty strings
SHStrDup(L"", &m_searchTerm); SHStrDup(L"", &m_searchTerm);
SHStrDup(L"", &m_replaceTerm); SHStrDup(L"", &m_replaceTerm);
_useBoostLib = CSettingsInstance().GetUseBoostLib();
} }
CPowerRenameRegEx::~CPowerRenameRegEx() CPowerRenameRegEx::~CPowerRenameRegEx()
@ -205,6 +209,20 @@ HRESULT CPowerRenameRegEx::Replace(_In_ PCWSTR source, _Outptr_ PWSTR* result)
replaceTerm = regex_replace(replaceTerm, std::wregex(L"(([^\\$]|^)(\\$\\$)*)\\$([1-9])"), L"$1$0$4"); replaceTerm = regex_replace(replaceTerm, std::wregex(L"(([^\\$]|^)(\\$\\$)*)\\$([1-9])"), L"$1$0$4");
if (m_flags & UseRegularExpressions) if (m_flags & UseRegularExpressions)
{
if (_useBoostLib)
{
boost::wregex pattern(m_searchTerm, (!(m_flags & CaseSensitive)) ? boost::regex::icase | boost::regex::ECMAScript : boost::regex::ECMAScript);
if (m_flags & MatchAllOccurences)
{
res = boost::regex_replace(wstring(source), pattern, replaceTerm);
}
else
{
res = boost::regex_replace(wstring(source), pattern, replaceTerm, boost::regex_constants::format_first_only);
}
}
else
{ {
std::wregex pattern(m_searchTerm, (!(m_flags & CaseSensitive)) ? regex_constants::icase | regex_constants::ECMAScript : regex_constants::ECMAScript); std::wregex pattern(m_searchTerm, (!(m_flags & CaseSensitive)) ? regex_constants::icase | regex_constants::ECMAScript : regex_constants::ECMAScript);
if (m_flags & MatchAllOccurences) if (m_flags & MatchAllOccurences)
@ -216,6 +234,7 @@ HRESULT CPowerRenameRegEx::Replace(_In_ PCWSTR source, _Outptr_ PWSTR* result)
res = regex_replace(wstring(source), pattern, replaceTerm, regex_constants::format_first_only); res = regex_replace(wstring(source), pattern, replaceTerm, regex_constants::format_first_only);
} }
} }
}
else else
{ {
// Simple search and replace // Simple search and replace

View File

@ -39,6 +39,7 @@ protected:
size_t _Find(std::wstring data, std::wstring toSearch, bool caseInsensitive, size_t pos); size_t _Find(std::wstring data, std::wstring toSearch, bool caseInsensitive, size_t pos);
bool _useBoostLib = false;
DWORD m_flags = DEFAULT_FLAGS; DWORD m_flags = DEFAULT_FLAGS;
PWSTR m_searchTerm = nullptr; PWSTR m_searchTerm = nullptr;
PWSTR m_replaceTerm = nullptr; PWSTR m_replaceTerm = nullptr;

View File

@ -31,6 +31,7 @@ namespace
const wchar_t c_mruEnabled[] = L"MRUEnabled"; const wchar_t c_mruEnabled[] = L"MRUEnabled";
const wchar_t c_mruList[] = L"MRUList"; const wchar_t c_mruList[] = L"MRUList";
const wchar_t c_insertionIdx[] = L"InsertionIdx"; const wchar_t c_insertionIdx[] = L"InsertionIdx";
const wchar_t c_useBoostLib[] = L"UseBoostLib";
unsigned int GetRegNumber(const std::wstring& valueName, unsigned int defaultValue) unsigned int GetRegNumber(const std::wstring& valueName, unsigned int defaultValue)
{ {
@ -414,6 +415,7 @@ void CSettings::Save()
jsonData.SetNamedValue(c_maxMRUSize, json::value(settings.maxMRUSize)); jsonData.SetNamedValue(c_maxMRUSize, json::value(settings.maxMRUSize));
jsonData.SetNamedValue(c_searchText, json::value(settings.searchText)); jsonData.SetNamedValue(c_searchText, json::value(settings.searchText));
jsonData.SetNamedValue(c_replaceText, json::value(settings.replaceText)); jsonData.SetNamedValue(c_replaceText, json::value(settings.replaceText));
jsonData.SetNamedValue(c_useBoostLib, json::value(settings.useBoostLib));
json::to_file(jsonFilePath, jsonData); json::to_file(jsonFilePath, jsonData);
GetSystemTimeAsFileTime(&lastLoadedTime); GetSystemTimeAsFileTime(&lastLoadedTime);
@ -457,6 +459,7 @@ void CSettings::MigrateFromRegistry()
settings.flags = GetRegNumber(c_flags, 0); settings.flags = GetRegNumber(c_flags, 0);
settings.searchText = GetRegString(c_searchText, L""); settings.searchText = GetRegString(c_searchText, L"");
settings.replaceText = GetRegString(c_replaceText, L""); settings.replaceText = GetRegString(c_replaceText, L"");
settings.useBoostLib = false; // Never existed in registry, disabled by default.
} }
void CSettings::ParseJson() void CSettings::ParseJson()
@ -499,6 +502,10 @@ void CSettings::ParseJson()
{ {
settings.replaceText = jsonSettings.GetNamedString(c_replaceText); settings.replaceText = jsonSettings.GetNamedString(c_replaceText);
} }
if (json::has(jsonSettings, c_useBoostLib, json::JsonValueType::Boolean))
{
settings.useBoostLib = jsonSettings.GetNamedBoolean(c_useBoostLib);
}
} }
catch (const winrt::hresult_error&) { } catch (const winrt::hresult_error&) { }
} }

View File

@ -51,6 +51,16 @@ public:
settings.persistState = persistState; settings.persistState = persistState;
} }
inline bool GetUseBoostLib() const
{
return settings.useBoostLib;
}
inline void SetUseBoostLib(bool useBoostLib)
{
settings.useBoostLib = useBoostLib;
}
inline bool GetMRUEnabled() const inline bool GetMRUEnabled() const
{ {
return settings.MRUEnabled; return settings.MRUEnabled;
@ -114,6 +124,7 @@ private:
bool showIconOnMenu{ true }; bool showIconOnMenu{ true };
bool extendedContextMenuOnly{ false }; // Disabled by default. bool extendedContextMenuOnly{ false }; // Disabled by default.
bool persistState{ true }; bool persistState{ true };
bool useBoostLib{ false }; // Disabled by default.
bool MRUEnabled{ true }; bool MRUEnabled{ true };
unsigned int maxMRUSize{ 10 }; unsigned int maxMRUSize{ 10 };
unsigned int flags{ 0 }; unsigned int flags{ 0 };

View File

@ -1,4 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="boost" version="1.72.0.0" targetFramework="native" />
<package id="boost_regex-vc142" version="1.72.0.0" targetFramework="native" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.200729.8" targetFramework="native" /> <package id="Microsoft.Windows.CppWinRT" version="2.0.200729.8" targetFramework="native" />
</packages> </packages>

View File

@ -85,5 +85,6 @@ void Trace::SettingsChanged() noexcept
TraceLoggingBoolean(CSettingsInstance().GetPersistState(), "PersistState"), TraceLoggingBoolean(CSettingsInstance().GetPersistState(), "PersistState"),
TraceLoggingBoolean(CSettingsInstance().GetMRUEnabled(), "IsMRUEnabled"), TraceLoggingBoolean(CSettingsInstance().GetMRUEnabled(), "IsMRUEnabled"),
TraceLoggingUInt64(CSettingsInstance().GetMaxMRUSize(), "MaxMRUSize"), TraceLoggingUInt64(CSettingsInstance().GetMaxMRUSize(), "MaxMRUSize"),
TraceLoggingBoolean(CSettingsInstance().GetUseBoostLib(), "UseBoostLib"),
TraceLoggingUInt64(CSettingsInstance().GetFlags(), "Flags")); TraceLoggingUInt64(CSettingsInstance().GetFlags(), "Flags"));
} }

View File

@ -202,6 +202,8 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <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')" /> <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')" />
<Import Project="..\..\..\..\packages\boost.1.72.0.0\build\boost.targets" Condition="Exists('..\..\..\..\packages\boost.1.72.0.0\build\boost.targets')" />
<Import Project="..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets" Condition="Exists('..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets')" />
</ImportGroup> </ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup> <PropertyGroup>
@ -209,5 +211,7 @@
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props'))" /> <Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets'))" /> <Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\boost.1.72.0.0\build\boost.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\boost.1.72.0.0\build\boost.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets'))" />
</Target> </Target>
</Project> </Project>

View File

@ -1,4 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="boost" version="1.72.0.0" targetFramework="native" />
<package id="boost_regex-vc142" version="1.72.0.0" targetFramework="native" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.200729.8" targetFramework="native" /> <package id="Microsoft.Windows.CppWinRT" version="2.0.200729.8" targetFramework="native" />
</packages> </packages>

View File

@ -37,11 +37,20 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Countslabelfmt" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Countslabelrenamingfmt" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Items Selected: %u | Renaming: %u]]></Val> <Val><![CDATA[Items Renaming: %u]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ausgewählte Elemente: %u | Umbenennung: %u]]></Val> <Val><![CDATA[Umbenannte Elemente: %u]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Countslabelselectedfmt" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Items Selected: %u]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ausgewählte Elemente: %u]]></Val>
</Tgt> </Tgt>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
@ -118,12 +127,24 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Items_Renaming" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Items Renaming: 0]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Umbenannte Elemente: 0]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Items_Selected" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Items_Selected" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Items Selected: 0 | Renaming: 0]]></Val> <Val><![CDATA[Items Selected: 0]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Ausgewählte Elemente: 0 | Umbenennung: 0]]></Val> <Val><![CDATA[Ausgewählte Elemente: 0]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Items Selected: 0 | Renaming: 0]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>

View File

@ -37,11 +37,20 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Countslabelfmt" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Countslabelrenamingfmt" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Items Selected: %u | Renaming: %u]]></Val> <Val><![CDATA[Items Renaming: %u]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Éléments sélectionnés : %u | Renommage : %u]]></Val> <Val><![CDATA[Renommage des éléments : %u]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Countslabelselectedfmt" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Items Selected: %u]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Éléments sélectionnés : %u]]></Val>
</Tgt> </Tgt>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
@ -118,12 +127,24 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Items_Renaming" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Items Renaming: 0]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Renommage des éléments : 0]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Items_Selected" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Items_Selected" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Items Selected: 0 | Renaming: 0]]></Val> <Val><![CDATA[Items Selected: 0]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Éléments sélectionnés : 0 | Renommage : 0]]></Val> <Val><![CDATA[Éléments sélectionnés : 0]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Items Selected: 0 | Renaming: 0]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>

View File

@ -37,11 +37,20 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Countslabelfmt" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Countslabelrenamingfmt" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Items Selected: %u | Renaming: %u]]></Val> <Val><![CDATA[Items Renaming: %u]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Geselecteerde items: %u | Naam wijzigen: %u]]></Val> <Val><![CDATA[Items waarvoor de naam wordt gewijzigd: %u]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Countslabelselectedfmt" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Items Selected: %u]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Geselecteerde items: %u]]></Val>
</Tgt> </Tgt>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
@ -118,12 +127,24 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Items_Renaming" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Items Renaming: 0]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Items waarvoor de naam wordt gewijzigd: 0]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Items_Selected" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Items_Selected" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Items Selected: 0 | Renaming: 0]]></Val> <Val><![CDATA[Items Selected: 0]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Geselecteerde items: 0 | Naam wijzigen: 0]]></Val> <Val><![CDATA[Geselecteerde items: 0]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Items Selected: 0 | Renaming: 0]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>

View File

@ -37,11 +37,20 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Countslabelfmt" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Countslabelrenamingfmt" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Items Selected: %u | Renaming: %u]]></Val> <Val><![CDATA[Items Renaming: %u]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Выбрано элементов: %u | Переименовывается: %u]]></Val> <Val><![CDATA[Переименование элементов: %u]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Countslabelselectedfmt" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Items Selected: %u]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Выбрано элементов: %u]]></Val>
</Tgt> </Tgt>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
@ -118,12 +127,24 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Items_Renaming" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Items Renaming: 0]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Переименование элементов: 0]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Items_Selected" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Items_Selected" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Items Selected: 0 | Renaming: 0]]></Val> <Val><![CDATA[Items Selected: 0]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[Выбрано элементов: 0 | Переименовывается: 0]]></Val> <Val><![CDATA[Выбрано элементов: 0]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Items Selected: 0 | Renaming: 0]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>

View File

@ -37,11 +37,20 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Countslabelfmt" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Countslabelrenamingfmt" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Items Selected: %u | Renaming: %u]]></Val> <Val><![CDATA[Items Renaming: %u]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[選取的項目: %u | 將重新命名: %u]]></Val> <Val><![CDATA[要重新命名的項目數: %u]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Countslabelselectedfmt" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Items Selected: %u]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[選取的項目數: %u]]></Val>
</Tgt> </Tgt>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
@ -118,12 +127,24 @@
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>
<Item ItemId=";Items_Renaming" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text">
<Val><![CDATA[Items Renaming: 0]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[要重新命名的項目數: 0]]></Val>
</Tgt>
</Str>
<Disp Icon="Str" />
</Item>
<Item ItemId=";Items_Selected" ItemType="0;.resx" PsrId="211" Leaf="true"> <Item ItemId=";Items_Selected" ItemType="0;.resx" PsrId="211" Leaf="true">
<Str Cat="Text"> <Str Cat="Text">
<Val><![CDATA[Items Selected: 0 | Renaming: 0]]></Val> <Val><![CDATA[Items Selected: 0]]></Val>
<Tgt Cat="Text" Stat="Loc" Orig="New"> <Tgt Cat="Text" Stat="Loc" Orig="New">
<Val><![CDATA[選取的項目: 0 | 將重新命名: 0]]></Val> <Val><![CDATA[選取的項目: 0]]></Val>
</Tgt> </Tgt>
<Prev Cat="Text">
<Val><![CDATA[Items Selected: 0 | Renaming: 0]]></Val>
</Prev>
</Str> </Str>
<Disp Icon="Str" /> <Disp Icon="Str" />
</Item> </Item>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003"> <Project DefaultTargets="Build" ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" /> <Import Project="..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props" Condition="Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" />
<ItemGroup Label="ProjectConfigurations"> <ItemGroup Label="ProjectConfigurations">
@ -196,6 +196,7 @@
<ClCompile Include="MockPowerRenameItem.cpp" /> <ClCompile Include="MockPowerRenameItem.cpp" />
<ClCompile Include="MockPowerRenameManagerEvents.cpp" /> <ClCompile Include="MockPowerRenameManagerEvents.cpp" />
<ClCompile Include="MockPowerRenameRegExEvents.cpp" /> <ClCompile Include="MockPowerRenameRegExEvents.cpp" />
<ClCompile Include="PowerRenameRegExBoostTests.cpp" />
<ClCompile Include="PowerRenameManagerTests.cpp" /> <ClCompile Include="PowerRenameManagerTests.cpp" />
<ClCompile Include="pch.cpp"> <ClCompile Include="pch.cpp">
<PrecompiledHeader Condition="'$(CIBuild)'!='true'">Create</PrecompiledHeader> <PrecompiledHeader Condition="'$(CIBuild)'!='true'">Create</PrecompiledHeader>
@ -217,6 +218,8 @@
<Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" /> <Import Project="$(VCTargetsPath)\Microsoft.Cpp.targets" />
<ImportGroup Label="ExtensionTargets"> <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')" /> <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')" />
<Import Project="..\..\..\..\packages\boost.1.72.0.0\build\boost.targets" Condition="Exists('..\..\..\..\packages\boost.1.72.0.0\build\boost.targets')" />
<Import Project="..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets" Condition="Exists('..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets')" />
</ImportGroup> </ImportGroup>
<Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild"> <Target Name="EnsureNuGetPackageBuildImports" BeforeTargets="PrepareForBuild">
<PropertyGroup> <PropertyGroup>
@ -224,5 +227,7 @@
</PropertyGroup> </PropertyGroup>
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props'))" /> <Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.props'))" />
<Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets'))" /> <Error Condition="!Exists('..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\Microsoft.Windows.CppWinRT.2.0.200729.8\build\native\Microsoft.Windows.CppWinRT.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\boost.1.72.0.0\build\boost.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\boost.1.72.0.0\build\boost.targets'))" />
<Error Condition="!Exists('..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets')" Text="$([System.String]::Format('$(ErrorText)', '..\..\..\..\packages\boost_regex-vc142.1.72.0.0\build\boost_regex-vc142.targets'))" />
</Target> </Target>
</Project> </Project>

View File

@ -8,6 +8,7 @@
<ClCompile Include="pch.cpp" /> <ClCompile Include="pch.cpp" />
<ClCompile Include="PowerRenameRegExTests.cpp" /> <ClCompile Include="PowerRenameRegExTests.cpp" />
<ClCompile Include="TestFileHelper.cpp" /> <ClCompile Include="TestFileHelper.cpp" />
<ClCompile Include="PowerRenameRegExBoostTests.cpp" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>
<ClInclude Include="MockPowerRenameItem.h" /> <ClInclude Include="MockPowerRenameItem.h" />

View File

@ -0,0 +1,437 @@
#include "pch.h"
#include "CppUnitTest.h"
#include "powerrename/lib/Settings.h"
#include <PowerRenameInterfaces.h>
#include <PowerRenameRegEx.h>
#include "MockPowerRenameRegExEvents.h"
using namespace Microsoft::VisualStudio::CppUnitTestFramework;
namespace PowerRenameRegExBoostTests
{
struct SearchReplaceExpected
{
PCWSTR search;
PCWSTR replace;
PCWSTR test;
PCWSTR expected;
};
TEST_CLASS(SimpleTests)
{
public:
TEST_CLASS_INITIALIZE(ClassInitialize)
{
CSettingsInstance().SetUseBoostLib(true);
}
TEST_CLASS_CLEANUP(ClassCleanup)
{
CSettingsInstance().SetUseBoostLib(false);
}
TEST_METHOD(GeneralReplaceTest)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(L"foo") == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(L"big") == S_OK);
Assert::IsTrue(renameRegEx->Replace(L"foobar", &result) == S_OK);
Assert::IsTrue(wcscmp(result, L"bigbar") == 0);
CoTaskMemFree(result);
}
TEST_METHOD(ReplaceNoMatch)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(L"notfound") == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(L"big") == S_OK);
Assert::IsTrue(renameRegEx->Replace(L"foobar", &result) == S_OK);
Assert::IsTrue(wcscmp(result, L"foobar") == 0);
CoTaskMemFree(result);
}
TEST_METHOD(ReplaceNoSearchOrReplaceTerm)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->Replace(L"foobar", &result) != S_OK);
Assert::IsTrue(result == nullptr);
CoTaskMemFree(result);
}
TEST_METHOD(ReplaceNoReplaceTerm)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(L"foo") == S_OK);
Assert::IsTrue(renameRegEx->Replace(L"foobar", &result) == S_OK);
Assert::IsTrue(wcscmp(result, L"bar") == 0);
CoTaskMemFree(result);
}
TEST_METHOD(ReplaceEmptyStringReplaceTerm)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(L"foo") == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(L"") == S_OK);
Assert::IsTrue(renameRegEx->Replace(L"foobar", &result) == S_OK);
Assert::IsTrue(wcscmp(result, L"bar") == 0);
CoTaskMemFree(result);
}
TEST_METHOD(VerifyDefaultFlags)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
DWORD flags = 0;
Assert::IsTrue(renameRegEx->GetFlags(&flags) == S_OK);
Assert::IsTrue(flags == MatchAllOccurences);
}
TEST_METHOD(VerifyCaseSensitiveSearch)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
DWORD flags = CaseSensitive;
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
SearchReplaceExpected sreTable[] = {
{ L"Foo", L"Foo", L"FooBar", L"FooBar" },
{ L"Foo", L"boo", L"FooBar", L"booBar" },
{ L"Foo", L"boo", L"foobar", L"foobar" },
{ L"123", L"654", L"123456", L"654456" },
};
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::IsTrue(wcscmp(result, sreTable[i].expected) == 0);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyReplaceFirstOnly)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
DWORD flags = 0;
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
SearchReplaceExpected sreTable[] = {
{ L"B", L"BB", L"ABA", L"ABBA" },
{ L"B", L"A", L"ABBBA", L"AABBA" },
{ L"B", L"BBB", L"ABABAB", L"ABBBABAB" },
};
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::IsTrue(wcscmp(result, sreTable[i].expected) == 0);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyReplaceAll)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
DWORD flags = MatchAllOccurences;
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
SearchReplaceExpected sreTable[] = {
{ L"B", L"BB", L"ABA", L"ABBA" },
{ L"B", L"A", L"ABBBA", L"AAAAA" },
{ L"B", L"BBB", L"ABABAB", L"ABBBABBBABBB" },
};
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::IsTrue(wcscmp(result, sreTable[i].expected) == 0);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyReplaceAllCaseInsensitive)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
DWORD flags = MatchAllOccurences | CaseSensitive;
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
SearchReplaceExpected sreTable[] = {
{ L"B", L"BB", L"ABA", L"ABBA" },
{ L"B", L"A", L"ABBBA", L"AAAAA" },
{ L"B", L"BBB", L"ABABAB", L"ABBBABBBABBB" },
{ L"b", L"BBB", L"AbABAb", L"ABBBABABBB" },
};
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::IsTrue(wcscmp(result, sreTable[i].expected) == 0);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyReplaceFirstOnlyUseRegEx)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
DWORD flags = UseRegularExpressions;
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
SearchReplaceExpected sreTable[] = {
{ L"B", L"BB", L"ABA", L"ABBA" },
{ L"B", L"A", L"ABBBA", L"AABBA" },
{ L"B", L"BBB", L"ABABAB", L"ABBBABAB" },
};
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::IsTrue(wcscmp(result, sreTable[i].expected) == 0);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyReplaceAllUseRegEx)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
DWORD flags = MatchAllOccurences | UseRegularExpressions;
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
SearchReplaceExpected sreTable[] = {
{ L"B", L"BB", L"ABA", L"ABBA" },
{ L"B", L"A", L"ABBBA", L"AAAAA" },
{ L"B", L"BBB", L"ABABAB", L"ABBBABBBABBB" },
};
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::IsTrue(wcscmp(result, sreTable[i].expected) == 0);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyReplaceAllUseRegExCaseSensitive)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
DWORD flags = MatchAllOccurences | UseRegularExpressions | CaseSensitive;
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
SearchReplaceExpected sreTable[] = {
{ L"B", L"BB", L"ABA", L"ABBA" },
{ L"B", L"A", L"ABBBA", L"AAAAA" },
{ L"b", L"BBB", L"AbABAb", L"ABBBABABBB" },
};
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::IsTrue(wcscmp(result, sreTable[i].expected) == 0);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyMatchAllWildcardUseRegEx)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
DWORD flags = MatchAllOccurences | UseRegularExpressions;
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
// This differs from the Standard Library: .* has two matches (all and nothing).
SearchReplaceExpected sreTable[] = {
//search, replace, test, result
{ L".*", L"Foo", L"AAAAAA", L"FooFoo" },
{ L".+", L"Foo", L"AAAAAA", L"Foo" },
};
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::IsTrue(wcscmp(result, sreTable[i].expected) == 0);
CoTaskMemFree(result);
}
}
void VerifyReplaceFirstWildcard(SearchReplaceExpected sreTable[], int tableSize, DWORD flags)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
for (int i = 0; i < tableSize; i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::AreEqual(sreTable[i].expected, result);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyReplaceFirstWildCardUseRegex)
{
SearchReplaceExpected sreTable[] = {
//search, replace, test, result
{ L".*", L"Foo", L"AAAAAA", L"Foo" },
};
VerifyReplaceFirstWildcard(sreTable, ARRAYSIZE(sreTable), UseRegularExpressions);
}
TEST_METHOD(VerifyReplaceFirstWildCardUseRegexMatchAllOccurrences)
{
// This differs from the Standard Library: .* has two matches (all and nothing).
SearchReplaceExpected sreTable[] = {
//search, replace, test, result
{ L".*", L"Foo", L"AAAAAA", L"FooFoo" },
{ L".+", L"Foo", L"AAAAAA", L"Foo" },
};
VerifyReplaceFirstWildcard(sreTable, ARRAYSIZE(sreTable), UseRegularExpressions | MatchAllOccurences);
}
TEST_METHOD(VerifyReplaceFirstWildCardMatchAllOccurrences)
{
SearchReplaceExpected sreTable[] = {
//search, replace, test, result
{ L".*", L"Foo", L"AAAAAA", L"AAAAAA" },
{ L".*", L"Foo", L".*", L"Foo" },
{ L".*", L"Foo", L".*Bar.*", L"FooBarFoo" },
};
VerifyReplaceFirstWildcard(sreTable, ARRAYSIZE(sreTable), MatchAllOccurences);
}
TEST_METHOD(VerifyReplaceFirstWildNoFlags)
{
SearchReplaceExpected sreTable[] = {
//search, replace, test, result
{ L".*", L"Foo", L"AAAAAA", L"AAAAAA" },
{ L".*", L"Foo", L".*", L"Foo" },
};
VerifyReplaceFirstWildcard(sreTable, ARRAYSIZE(sreTable), 0);
}
TEST_METHOD(VerifyHandleCapturingGroups)
{
// This differs from the Standard Library: Boost does not recognize $123 as $1 and "23".
// To use a capturing group followed by numbers as replacement curly braces are needed.
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
DWORD flags = MatchAllOccurences | UseRegularExpressions | CaseSensitive;
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
SearchReplaceExpected sreTable[] = {
//search, replace, test, result
{ L"(foo)(bar)", L"$1_$002_$223_$001021_$00001", L"foobar", L"foo_$002__$001021_$00001" },
{ L"(foo)(bar)", L"$1_$002_${2}23_$001021_$00001", L"foobar", L"foo_$002_bar23_$001021_$00001" },
{ L"(foo)(bar)", L"_$1$2_$123$040", L"foobar", L"_foobar_$040" },
{ L"(foo)(bar)", L"_$1$2_${1}23$040", L"foobar", L"_foobar_foo23$040" },
{ L"(foo)(bar)", L"$$$1", L"foobar", L"$foo" },
{ L"(foo)(bar)", L"$$1", L"foobar", L"$1" },
{ L"(foo)(bar)", L"$12", L"foobar", L"" },
{ L"(foo)(bar)", L"${1}2", L"foobar", L"foo2" },
{ L"(foo)(bar)", L"$10", L"foobar", L"" },
{ L"(foo)(bar)", L"${1}0", L"foobar", L"foo0" },
{ L"(foo)(bar)", L"$01", L"foobar", L"$01" },
{ L"(foo)(bar)", L"$$$11", L"foobar", L"$" },
{ L"(foo)(bar)", L"$$${1}1", L"foobar", L"$foo1" },
{ L"(foo)(bar)", L"$$$$113a", L"foobar", L"$$113a" },
};
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::IsTrue(wcscmp(result, sreTable[i].expected) == 0);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyLookbehind)
{
SearchReplaceExpected sreTable[] = {
//search, replace, test, result
{ L"(?<=E12).*", L"Foo", L"AAE12BBB", L"AAE12Foo" },
{ L"(?<=E12).+", L"Foo", L"AAE12BBB", L"AAE12Foo" },
{ L"(?<=E\\d\\d).+", L"Foo", L"AAE12BBB", L"AAE12Foo" },
{ L"(?<!E12).*", L"Foo", L"AAE12BBB", L"Foo" },
{ L"(?<!E12).+", L"Foo", L"AAE12BBB", L"Foo" },
{ L"(?<!E\\d\\d).+", L"Foo", L"AAE12BBB", L"Foo" },
};
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
Assert::IsTrue(renameRegEx->PutFlags(UseRegularExpressions) == S_OK);
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == S_OK);
Assert::IsTrue(wcscmp(result, sreTable[i].expected) == 0);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyEventsFire)
{
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
CMockPowerRenameRegExEvents* mockEvents = new CMockPowerRenameRegExEvents();
CComPtr<IPowerRenameRegExEvents> regExEvents;
Assert::IsTrue(mockEvents->QueryInterface(IID_PPV_ARGS(&regExEvents)) == S_OK);
DWORD cookie = 0;
Assert::IsTrue(renameRegEx->Advise(regExEvents, &cookie) == S_OK);
DWORD flags = MatchAllOccurences | UseRegularExpressions | CaseSensitive;
Assert::IsTrue(renameRegEx->PutFlags(flags) == S_OK);
Assert::IsTrue(renameRegEx->PutSearchTerm(L"FOO") == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(L"BAR") == S_OK);
Assert::IsTrue(lstrcmpi(L"FOO", mockEvents->m_searchTerm) == 0);
Assert::IsTrue(lstrcmpi(L"BAR", mockEvents->m_replaceTerm) == 0);
Assert::IsTrue(flags == mockEvents->m_flags);
Assert::IsTrue(renameRegEx->UnAdvise(cookie) == S_OK);
mockEvents->Release();
}
};
}

View File

@ -1,5 +1,6 @@
#include "pch.h" #include "pch.h"
#include "CppUnitTest.h" #include "CppUnitTest.h"
#include "powerrename/lib/Settings.h"
#include <PowerRenameInterfaces.h> #include <PowerRenameInterfaces.h>
#include <PowerRenameRegEx.h> #include <PowerRenameRegEx.h>
#include "MockPowerRenameRegExEvents.h" #include "MockPowerRenameRegExEvents.h"
@ -18,7 +19,13 @@ namespace PowerRenameRegExTests
TEST_CLASS(SimpleTests){ TEST_CLASS(SimpleTests){
public: public:
TEST_METHOD(GeneralReplaceTest){ TEST_CLASS_INITIALIZE(ClassInitialize)
{
CSettingsInstance().SetUseBoostLib(false);
}
TEST_METHOD(GeneralReplaceTest)
{
CComPtr<IPowerRenameRegEx> renameRegEx; CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK); Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
PWSTR result = nullptr; PWSTR result = nullptr;
@ -362,6 +369,30 @@ TEST_METHOD(VerifyHandleCapturingGroups)
} }
} }
TEST_METHOD(VerifyLookbehindFails)
{
// Standard Library Regex Engine does not support lookbehind, thus test should fail.
SearchReplaceExpected sreTable[] = {
//search, replace, test, result
{ L"(?<=E12).*", L"Foo", L"AAAAAA", nullptr },
{ L"(?<!E12).*", L"Foo", L"AAAAAA", nullptr },
};
CComPtr<IPowerRenameRegEx> renameRegEx;
Assert::IsTrue(CPowerRenameRegEx::s_CreateInstance(&renameRegEx) == S_OK);
Assert::IsTrue(renameRegEx->PutFlags(UseRegularExpressions) == S_OK);
for (int i = 0; i < ARRAYSIZE(sreTable); i++)
{
PWSTR result = nullptr;
Assert::IsTrue(renameRegEx->PutSearchTerm(sreTable[i].search) == S_OK);
Assert::IsTrue(renameRegEx->PutReplaceTerm(sreTable[i].replace) == S_OK);
Assert::IsTrue(renameRegEx->Replace(sreTable[i].test, &result) == E_FAIL);
Assert::AreEqual(sreTable[i].expected, result);
CoTaskMemFree(result);
}
}
TEST_METHOD(VerifyEventsFire) TEST_METHOD(VerifyEventsFire)
{ {
CComPtr<IPowerRenameRegEx> renameRegEx; CComPtr<IPowerRenameRegEx> renameRegEx;

View File

@ -1,4 +1,6 @@
<?xml version="1.0" encoding="utf-8"?> <?xml version="1.0" encoding="utf-8"?>
<packages> <packages>
<package id="boost" version="1.72.0.0" targetFramework="native" />
<package id="boost_regex-vc142" version="1.72.0.0" targetFramework="native" />
<package id="Microsoft.Windows.CppWinRT" version="2.0.200729.8" targetFramework="native" /> <package id="Microsoft.Windows.CppWinRT" version="2.0.200729.8" targetFramework="native" />
</packages> </packages>

Some files were not shown because too many files have changed in this diff Show More