From aca0b9c747adaa8116cd34179d5a9d1630eef221 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ji=C5=99=C3=AD=20Pol=C3=A1=C5=A1ek?= Date: Thu, 12 Feb 2026 16:34:48 +0100 Subject: [PATCH] CmdPal: Clipboard history - localize metadata strings (#45506) ## Summary of the Pull Request This PR enables the localization of strings in metadata providers (section titles and keys) and other unlocalized strings in Clipboard History built-in extension. ## PR Checklist - [x] Closes: #42185 - [ ] **Communication:** I've discussed this with core contributors already. If the work hasn't been agreed, this work might be rejected - [ ] **Tests:** Added/updated and all pass - [ ] **Localization:** All end-user-facing strings can be localized - [ ] **Dev docs:** Added/updated - [ ] **New binaries:** Added on the required places - [ ] [JSON for signing](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ESRPSigning_core.json) for new binaries - [ ] [WXS for installer](https://github.com/microsoft/PowerToys/blob/main/installer/PowerToysSetup/Product.wxs) for new binaries and localization folder - [ ] [YML for CI pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/ci/templates/build-powertoys-steps.yml) for new test projects - [ ] [YML for signed pipeline](https://github.com/microsoft/PowerToys/blob/main/.pipelines/release.yml) - [ ] **Documentation updated:** If checked, please file a pull request on [our docs repo](https://github.com/MicrosoftDocs/windows-uwp/tree/docs/hub/powertoys) and link it here: #xxx ## Detailed Description of the Pull Request / Additional comments ## Validation Steps Performed --- .../Analyzers/ImageMetadataProvider.cs | 9 +- .../TextFileSystemMetadataProvider.cs | 29 +- .../Helpers/Analyzers/TextMetadataProvider.cs | 15 +- .../Analyzers/WebLinkMetadataProvider.cs | 15 +- .../Pages/ClipboardListItem.cs | 6 +- .../Properties/Resources.Designer.cs | 261 ++++++++++++++++++ .../Properties/Resources.resx | 87 ++++++ 7 files changed, 387 insertions(+), 35 deletions(-) diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/ImageMetadataProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/ImageMetadataProvider.cs index 09a3f33f2e..ae55bbcb73 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/ImageMetadataProvider.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/ImageMetadataProvider.cs @@ -6,13 +6,14 @@ using System; using System.Collections.Generic; using ManagedCommon; using Microsoft.CmdPal.Ext.ClipboardHistory.Models; +using Microsoft.CmdPal.Ext.ClipboardHistory.Properties; using Microsoft.CommandPalette.Extensions.Toolkit; namespace Microsoft.CmdPal.Ext.ClipboardHistory.Helpers.Analyzers; internal sealed class ImageMetadataProvider : IClipboardMetadataProvider { - public string SectionTitle => "Image metadata"; + public string SectionTitle => Resources.metadata_image_section_title; public bool CanHandle(ClipboardItem item) => item.IsImage; @@ -30,12 +31,12 @@ internal sealed class ImageMetadataProvider : IClipboardMetadataProvider result.Add(new DetailsElement { - Key = "Dimensions", + Key = Resources.metadata_image_dimensions_key, Data = new DetailsLink($"{metadata.Width} x {metadata.Height}"), }); result.Add(new DetailsElement { - Key = "DPI", + Key = Resources.metadata_image_dpi_key, Data = new DetailsLink($"{metadata.DpiX:0.###} x {metadata.DpiY:0.###}"), }); @@ -43,7 +44,7 @@ internal sealed class ImageMetadataProvider : IClipboardMetadataProvider { result.Add(new DetailsElement { - Key = "Storage size", + Key = Resources.metadata_image_storage_size_key, Data = new DetailsLink(SizeFormatter.FormatSize(metadata.StorageSize.Value)), }); } diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/TextFileSystemMetadataProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/TextFileSystemMetadataProvider.cs index a51444a3af..082d5dc643 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/TextFileSystemMetadataProvider.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/TextFileSystemMetadataProvider.cs @@ -9,6 +9,7 @@ using System.IO; using ManagedCommon; using Microsoft.CmdPal.Core.Common.Helpers; using Microsoft.CmdPal.Ext.ClipboardHistory.Models; +using Microsoft.CmdPal.Ext.ClipboardHistory.Properties; using Microsoft.CommandPalette.Extensions.Toolkit; namespace Microsoft.CmdPal.Ext.ClipboardHistory.Helpers.Analyzers; @@ -18,7 +19,7 @@ namespace Microsoft.CmdPal.Ext.ClipboardHistory.Helpers.Analyzers; /// internal sealed class TextFileSystemMetadataProvider : IClipboardMetadataProvider { - public string SectionTitle => "File"; + public string SectionTitle => Resources.metadata_file_system_section_title; public bool CanHandle(ClipboardItem item) { @@ -47,8 +48,8 @@ internal sealed class TextFileSystemMetadataProvider : IClipboardMetadataProvide if (PathHelper.IsSlow(path) || !PathHelper.Exists(path, out var isDirectory)) { - result.Add(new DetailsElement { Key = "Name", Data = new DetailsLink(Path.GetFileName(path)) }); - result.Add(new DetailsElement { Key = "Location", Data = new DetailsLink(UrlHelper.NormalizeUrl(path), path) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_name_key, Data = new DetailsLink(Path.GetFileName(path)) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_location_key, Data = new DetailsLink(UrlHelper.NormalizeUrl(path), path) }); return result; } @@ -57,21 +58,21 @@ internal sealed class TextFileSystemMetadataProvider : IClipboardMetadataProvide if (!isDirectory) { var fi = new FileInfo(path); - result.Add(new DetailsElement { Key = "Name", Data = new DetailsLink(fi.Name) }); - result.Add(new DetailsElement { Key = "Location", Data = new DetailsLink(UrlHelper.NormalizeUrl(fi.FullName), fi.FullName) }); - result.Add(new DetailsElement { Key = "Type", Data = new DetailsLink(fi.Extension) }); - result.Add(new DetailsElement { Key = "Size", Data = new DetailsLink(SizeFormatter.FormatSize(fi.Length)) }); - result.Add(new DetailsElement { Key = "Modified", Data = new DetailsLink(fi.LastWriteTime.ToString(CultureInfo.CurrentCulture)) }); - result.Add(new DetailsElement { Key = "Created", Data = new DetailsLink(fi.CreationTime.ToString(CultureInfo.CurrentCulture)) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_name_key, Data = new DetailsLink(fi.Name) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_location_key, Data = new DetailsLink(UrlHelper.NormalizeUrl(fi.FullName), fi.FullName) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_type_key, Data = new DetailsLink(fi.Extension) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_size_key, Data = new DetailsLink(SizeFormatter.FormatSize(fi.Length)) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_modified_key, Data = new DetailsLink(fi.LastWriteTime.ToString(CultureInfo.CurrentCulture)) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_created_key, Data = new DetailsLink(fi.CreationTime.ToString(CultureInfo.CurrentCulture)) }); } else { var di = new DirectoryInfo(path); - result.Add(new DetailsElement { Key = "Name", Data = new DetailsLink(di.Name) }); - result.Add(new DetailsElement { Key = "Location", Data = new DetailsLink(UrlHelper.NormalizeUrl(di.FullName), di.FullName) }); - result.Add(new DetailsElement { Key = "Type", Data = new DetailsLink("Folder") }); - result.Add(new DetailsElement { Key = "Modified", Data = new DetailsLink(di.LastWriteTime.ToString(CultureInfo.CurrentCulture)) }); - result.Add(new DetailsElement { Key = "Created", Data = new DetailsLink(di.CreationTime.ToString(CultureInfo.CurrentCulture)) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_name_key, Data = new DetailsLink(di.Name) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_location_key, Data = new DetailsLink(UrlHelper.NormalizeUrl(di.FullName), di.FullName) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_type_key, Data = new DetailsLink(Resources.metadata_file_system_folder_value) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_modified_key, Data = new DetailsLink(di.LastWriteTime.ToString(CultureInfo.CurrentCulture)) }); + result.Add(new DetailsElement { Key = Resources.metadata_file_system_created_key, Data = new DetailsLink(di.CreationTime.ToString(CultureInfo.CurrentCulture)) }); } } catch (Exception ex) diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/TextMetadataProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/TextMetadataProvider.cs index 86e2a32270..4a081592ee 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/TextMetadataProvider.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/TextMetadataProvider.cs @@ -5,13 +5,14 @@ using System.Collections.Generic; using System.Globalization; using Microsoft.CmdPal.Ext.ClipboardHistory.Models; +using Microsoft.CmdPal.Ext.ClipboardHistory.Properties; using Microsoft.CommandPalette.Extensions.Toolkit; namespace Microsoft.CmdPal.Ext.ClipboardHistory.Helpers.Analyzers; internal sealed class TextMetadataProvider : IClipboardMetadataProvider { - public string SectionTitle => "Text statistics"; + public string SectionTitle => Resources.metadata_text_section_title; public bool CanHandle(ClipboardItem item) => item.IsText; @@ -27,32 +28,32 @@ internal sealed class TextMetadataProvider : IClipboardMetadataProvider result.Add(new DetailsElement { - Key = "Characters", + Key = Resources.metadata_text_characters_key, Data = new DetailsLink(r.CharacterCount.ToString(CultureInfo.CurrentCulture)), }); result.Add(new DetailsElement { - Key = "Words", + Key = Resources.metadata_text_words_key, Data = new DetailsLink(r.WordCount.ToString(CultureInfo.CurrentCulture)), }); result.Add(new DetailsElement { - Key = "Sentences", + Key = Resources.metadata_text_sentences_key, Data = new DetailsLink(r.SentenceCount.ToString(CultureInfo.CurrentCulture)), }); result.Add(new DetailsElement { - Key = "Lines", + Key = Resources.metadata_text_lines_key, Data = new DetailsLink(r.LineCount.ToString(CultureInfo.CurrentCulture)), }); result.Add(new DetailsElement { - Key = "Paragraphs", + Key = Resources.metadata_text_paragraphs_key, Data = new DetailsLink(r.ParagraphCount.ToString(CultureInfo.CurrentCulture)), }); result.Add(new DetailsElement { - Key = "Line Ending", + Key = Resources.metadata_text_line_ending_key, Data = new DetailsLink(r.LineEnding.ToString()), }); diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/WebLinkMetadataProvider.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/WebLinkMetadataProvider.cs index 0a2afc3e01..a578085e32 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/WebLinkMetadataProvider.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Helpers/Analyzers/WebLinkMetadataProvider.cs @@ -7,6 +7,7 @@ using System.Collections.Generic; using System.Globalization; using System.Linq; using Microsoft.CmdPal.Ext.ClipboardHistory.Models; +using Microsoft.CmdPal.Ext.ClipboardHistory.Properties; using Microsoft.CommandPalette.Extensions.Toolkit; namespace Microsoft.CmdPal.Ext.ClipboardHistory.Helpers.Analyzers; @@ -16,7 +17,7 @@ namespace Microsoft.CmdPal.Ext.ClipboardHistory.Helpers.Analyzers; /// internal sealed class WebLinkMetadataProvider : IClipboardMetadataProvider { - public string SectionTitle => "Link"; + public string SectionTitle => Resources.metadata_web_link_section_title; public bool CanHandle(ClipboardItem item) { @@ -62,29 +63,29 @@ internal sealed class WebLinkMetadataProvider : IClipboardMetadataProvider return result; } - result.Add(new DetailsElement { Key = "URL", Data = new DetailsLink(normalized) }); - result.Add(new DetailsElement { Key = "Host", Data = new DetailsLink(uri.Host) }); + result.Add(new DetailsElement { Key = Resources.metadata_web_link_url_key, Data = new DetailsLink(normalized) }); + result.Add(new DetailsElement { Key = Resources.metadata_web_link_host_key, Data = new DetailsLink(uri.Host) }); if (!uri.IsDefaultPort) { - result.Add(new DetailsElement { Key = "Port", Data = new DetailsLink(uri.Port.ToString(CultureInfo.CurrentCulture)) }); + result.Add(new DetailsElement { Key = Resources.metadata_web_link_port_key, Data = new DetailsLink(uri.Port.ToString(CultureInfo.CurrentCulture)) }); } if (!string.IsNullOrEmpty(uri.AbsolutePath) && uri.AbsolutePath != "/") { - result.Add(new DetailsElement { Key = "Path", Data = new DetailsLink(uri.AbsolutePath) }); + result.Add(new DetailsElement { Key = Resources.metadata_web_link_path_key, Data = new DetailsLink(uri.AbsolutePath) }); } if (!string.IsNullOrEmpty(uri.Query)) { var q = uri.Query; var count = q.Count(static c => c == '&') + (q.Length > 1 ? 1 : 0); - result.Add(new DetailsElement { Key = "Query params", Data = new DetailsLink(count.ToString(CultureInfo.CurrentCulture)) }); + result.Add(new DetailsElement { Key = Resources.metadata_web_link_query_params_key, Data = new DetailsLink(count.ToString(CultureInfo.CurrentCulture)) }); } if (!string.IsNullOrEmpty(uri.Fragment)) { - result.Add(new DetailsElement { Key = "Fragment", Data = new DetailsLink(uri.Fragment) }); + result.Add(new DetailsElement { Key = Resources.metadata_web_link_fragment_key, Data = new DetailsLink(uri.Fragment) }); } } catch diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Pages/ClipboardListItem.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Pages/ClipboardListItem.cs index bd1ad3d1c1..d2ee0d03d8 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Pages/ClipboardListItem.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Pages/ClipboardListItem.cs @@ -68,7 +68,7 @@ internal sealed partial class ClipboardListItem : ListItem if (item.IsImage) { - Title = "Image"; + Title = Properties.Resources.clipboard_item_image_title; _pasteCommand = new CommandContextItem(new PasteCommand(_item, ClipboardFormat.Image, _settingsManager)); _copyCommand = new CommandContextItem(new CopyCommand(_item, ClipboardFormat.Image)); @@ -220,12 +220,12 @@ internal sealed partial class ClipboardListItem : ListItem metadata.Add(new DetailsElement { - Key = "General", + Key = Properties.Resources.metadata_general_section_title, Data = new DetailsSeparator(), }); metadata.Add(new DetailsElement { - Key = "Copied", + Key = Properties.Resources.metadata_copied_key, Data = new DetailsLink(_item.Timestamp.DateTime.ToString(DateTimeFormatInfo.CurrentInfo)), }); diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Properties/Resources.Designer.cs b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Properties/Resources.Designer.cs index f8695cae1b..edd5871bfd 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Properties/Resources.Designer.cs +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Properties/Resources.Designer.cs @@ -78,6 +78,15 @@ namespace Microsoft.CmdPal.Ext.ClipboardHistory.Properties { } } + /// + /// Looks up a localized string similar to Image. + /// + public static string clipboard_item_image_title { + get { + return ResourceManager.GetString("clipboard_item_image_title", resourceCulture); + } + } + /// /// Looks up a localized string similar to Copied to clipboard. /// @@ -150,6 +159,258 @@ namespace Microsoft.CmdPal.Ext.ClipboardHistory.Properties { } } + /// + /// Looks up a localized string similar to Copied. + /// + public static string metadata_copied_key { + get { + return ResourceManager.GetString("metadata_copied_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Created. + /// + public static string metadata_file_system_created_key { + get { + return ResourceManager.GetString("metadata_file_system_created_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Folder. + /// + public static string metadata_file_system_folder_value { + get { + return ResourceManager.GetString("metadata_file_system_folder_value", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Location. + /// + public static string metadata_file_system_location_key { + get { + return ResourceManager.GetString("metadata_file_system_location_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Modified. + /// + public static string metadata_file_system_modified_key { + get { + return ResourceManager.GetString("metadata_file_system_modified_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Name. + /// + public static string metadata_file_system_name_key { + get { + return ResourceManager.GetString("metadata_file_system_name_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to File. + /// + public static string metadata_file_system_section_title { + get { + return ResourceManager.GetString("metadata_file_system_section_title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Size. + /// + public static string metadata_file_system_size_key { + get { + return ResourceManager.GetString("metadata_file_system_size_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Type. + /// + public static string metadata_file_system_type_key { + get { + return ResourceManager.GetString("metadata_file_system_type_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to General. + /// + public static string metadata_general_section_title { + get { + return ResourceManager.GetString("metadata_general_section_title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Dimensions. + /// + public static string metadata_image_dimensions_key { + get { + return ResourceManager.GetString("metadata_image_dimensions_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to DPI. + /// + public static string metadata_image_dpi_key { + get { + return ResourceManager.GetString("metadata_image_dpi_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Image metadata. + /// + public static string metadata_image_section_title { + get { + return ResourceManager.GetString("metadata_image_section_title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Storage size. + /// + public static string metadata_image_storage_size_key { + get { + return ResourceManager.GetString("metadata_image_storage_size_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Characters. + /// + public static string metadata_text_characters_key { + get { + return ResourceManager.GetString("metadata_text_characters_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Line ending. + /// + public static string metadata_text_line_ending_key { + get { + return ResourceManager.GetString("metadata_text_line_ending_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Lines. + /// + public static string metadata_text_lines_key { + get { + return ResourceManager.GetString("metadata_text_lines_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Paragraphs. + /// + public static string metadata_text_paragraphs_key { + get { + return ResourceManager.GetString("metadata_text_paragraphs_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Text statistics. + /// + public static string metadata_text_section_title { + get { + return ResourceManager.GetString("metadata_text_section_title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Sentences. + /// + public static string metadata_text_sentences_key { + get { + return ResourceManager.GetString("metadata_text_sentences_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Words. + /// + public static string metadata_text_words_key { + get { + return ResourceManager.GetString("metadata_text_words_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Fragment. + /// + public static string metadata_web_link_fragment_key { + get { + return ResourceManager.GetString("metadata_web_link_fragment_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Host. + /// + public static string metadata_web_link_host_key { + get { + return ResourceManager.GetString("metadata_web_link_host_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Path. + /// + public static string metadata_web_link_path_key { + get { + return ResourceManager.GetString("metadata_web_link_path_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Port. + /// + public static string metadata_web_link_port_key { + get { + return ResourceManager.GetString("metadata_web_link_port_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Query params. + /// + public static string metadata_web_link_query_params_key { + get { + return ResourceManager.GetString("metadata_web_link_query_params_key", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to Web link. + /// + public static string metadata_web_link_section_title { + get { + return ResourceManager.GetString("metadata_web_link_section_title", resourceCulture); + } + } + + /// + /// Looks up a localized string similar to URL. + /// + public static string metadata_web_link_url_key { + get { + return ResourceManager.GetString("metadata_web_link_url_key", resourceCulture); + } + } + /// /// Looks up a localized string similar to Open URL. /// diff --git a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Properties/Resources.resx b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Properties/Resources.resx index 56d0805871..1c4c83fb33 100644 --- a/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Properties/Resources.resx +++ b/src/modules/cmdpal/ext/Microsoft.CmdPal.Ext.ClipboardHistory/Properties/Resources.resx @@ -186,4 +186,91 @@ Open URL + + Image metadata + + + Dimensions + + + DPI + + + Storage size + + + Text statistics + + + Characters + + + Words + + + Sentences + + + Lines + + + Paragraphs + + + Line ending + + + File + + + Name + + + Location + + + Type + + + Size + + + Modified + + + Created + + + Web link + + + URL + + + Host + + + Port + + + Path + + + Query params + + + Fragment + + + Image + + + General + + + Copied + + + Folder + \ No newline at end of file