From 8d2e0557305ed0e0cd49484a748c0064f74d0687 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 27 Jun 2024 12:05:03 -0400 Subject: [PATCH 001/664] ci: Add macOS desktop runtime tests --- build/ci/.azure-devops-skia-tests.yml | 45 +++++++++++++++++++++++++++ 1 file changed, 45 insertions(+) diff --git a/build/ci/.azure-devops-skia-tests.yml b/build/ci/.azure-devops-skia-tests.yml index d2c8f2ada85b..71c2e83082b4 100644 --- a/build/ci/.azure-devops-skia-tests.yml +++ b/build/ci/.azure-devops-skia-tests.yml @@ -440,3 +440,48 @@ jobs: testResultsFiles: '$(build.sourcesdirectory)/build/skia-linux-runtime-tests-results.xml' failTaskOnFailedTests: true failTaskOnMissingResultsFile: true + +- job: Skia_macos_Runtime_Tests_Build + displayName: 'Run Skia macOS Runtime Tests' + timeoutInMinutes: 60 + + pool: + vmImage: ${{ parameters.vmMacImage }} + + dependsOn: Skia_Tests_Build + + variables: + SamplesAppArtifactName: skia-generic-samples-app-$(XAML_FLAVOR_BUILD) + SamplesAppArtifactPath: $(build.sourcesdirectory)/build/$(SamplesAppArtifactName) + + UNO_UWP_BUILD: ${{ parameters.UNO_UWP_BUILD }} + XAML_FLAVOR_BUILD: ${{ parameters.XAML_FLAVOR_BUILD }} + + steps: + + - template: templates/download-winui-converted-tree.yml + + - task: DownloadBuildArtifacts@0 + inputs: + artifactName: $(SamplesAppArtifactName) + downloadPath: '$(build.sourcesdirectory)/build' + + - template: templates/dotnet-install.yml + + - script: | + cd $(SamplesAppArtifactPath) + dotnet SamplesApp.Skia.Generic.dll --runtime-tests=$(build.sourcesdirectory)/build/skia-macos-runtime-tests-results.xml' + + displayName: Run Skia $(XAML_FLAVOR_BUILD) Runtime Tests + env: + SamplesAppArtifactPath: $(SamplesAppArtifactPath) + SamplesAppArtifactName: $(SamplesAppArtifactName) + + - task: PublishTestResults@2 + condition: always() + inputs: + testRunTitle: 'Skia macOS $(XAML_FLAVOR_BUILD) Runtime Tests' + testResultsFormat: 'NUnit' + testResultsFiles: '$(build.sourcesdirectory)/build/skia-macos-runtime-tests-results.xml' + failTaskOnFailedTests: true + failTaskOnMissingResultsFile: true From 29fb75ddc4ed3f4b300290893aae9752f5bd5cd3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 27 Jun 2024 13:31:13 -0400 Subject: [PATCH 002/664] chore: Adjust command line --- build/ci/.azure-devops-skia-tests.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ci/.azure-devops-skia-tests.yml b/build/ci/.azure-devops-skia-tests.yml index 71c2e83082b4..907ab53df439 100644 --- a/build/ci/.azure-devops-skia-tests.yml +++ b/build/ci/.azure-devops-skia-tests.yml @@ -470,7 +470,7 @@ jobs: - script: | cd $(SamplesAppArtifactPath) - dotnet SamplesApp.Skia.Generic.dll --runtime-tests=$(build.sourcesdirectory)/build/skia-macos-runtime-tests-results.xml' + dotnet SamplesApp.Skia.Generic.dll --runtime-tests=$(build.sourcesdirectory)/build/skia-macos-runtime-tests-results.xml displayName: Run Skia $(XAML_FLAVOR_BUILD) Runtime Tests env: From 66daa6504568f4f0588f85088fc53c47a0ac5e14 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Fri, 28 Jun 2024 09:00:05 -0400 Subject: [PATCH 003/664] feat: Add native embedding to netXX-desktop/macOS --- .../MacOSNativeElementHostingExtension.cs | 154 ++++++++++++++++++ src/Uno.UI.Runtime.Skia.MacOS/MacSkiaHost.cs | 1 + src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs | 12 ++ .../UnoNativeMac.xcodeproj/project.pbxproj | 6 + .../UnoNativeMac/UnoNativeMac/UNONative.h | 19 +++ .../UnoNativeMac/UnoNativeMac/UNONative.m | 60 +++++++ 6 files changed, 252 insertions(+) create mode 100644 src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs create mode 100644 src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h create mode 100644 src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs new file mode 100644 index 000000000000..7a7b02e46764 --- /dev/null +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs @@ -0,0 +1,154 @@ +#nullable enable + +using Windows.Foundation; +using Windows.UI.Core; +using Microsoft.UI.Xaml.Controls; + +using Uno.Foundation.Extensibility; +using Uno.Foundation.Logging; + +namespace Uno.UI.Runtime.Skia.MacOS; + +internal class MacOSNativeElement +{ + internal MacOSNativeElement(nint handle) + { + Handle = handle; + } + + public nint Handle { get; private set; } +} + +internal class MacOSNativeElementHostingExtension : ContentPresenter.INativeElementHostingExtension +{ + private readonly ContentPresenter _presenter; + private readonly MacOSWindowNative? _window; + + private MacOSNativeElementHostingExtension(ContentPresenter contentPresenter) + { + _presenter = contentPresenter; + _window = _presenter.XamlRoot?.HostWindow?.NativeWindow as MacOSWindowNative; + } + + public static void Register() => ApiExtensibility.Register(typeof(ContentPresenter.INativeElementHostingExtension), o => new MacOSNativeElementHostingExtension(o)); + + public void ArrangeNativeElement(object content, Rect arrangeRect, Rect clipRect) + { + if (content is MacOSNativeElement element) + { + // TODO uno_native_arrange(element.Handle, arrangeRect.Left, arrangeRect.Top, arrangeRect.Width, arrangeRect.Height, clipRect.Left, clipRect.Top, clipRect.Width, clipRect.Height); + } + else + { + if (this.Log().IsEnabled(LogLevel.Warning)) + { + this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); + } + } + } + + public void AttachNativeElement(object content) + { + if (content is MacOSNativeElement element) + { + // TODO uno_native_attach(element.Handle); + } + else + { + if (this.Log().IsEnabled(LogLevel.Warning)) + { + this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); + } + } + } + + public void ChangeNativeElementOpacity(object content, double opacity) + { + if (content is MacOSNativeElement element) + { + // https://developer.apple.com/documentation/appkit/nsview/1483560-alphavalue?language=objc + // note: no marshaling needed as CGFloat is double for 64bits apps + NativeUno.uno_native_set_opacity(element.Handle, opacity); + } + else + { + if (this.Log().IsEnabled(LogLevel.Warning)) + { + this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); + } + } + } + + public void ChangeNativeElementVisibility(object content, bool visible) + { + if (content is MacOSNativeElement element) + { + // https://developer.apple.com/documentation/appkit/nsview/1483369-hidden?language=objc + NativeUno.uno_native_set_visibility(element.Handle, visible); + } + else + { + if (this.Log().IsEnabled(LogLevel.Warning)) + { + this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); + } + } + } + + public object? CreateSampleComponent(string text) + { + var handle = NativeUno.uno_native_create_sample(_window!.Handle, text); + return new MacOSNativeElement(handle); + } + + public void DetachNativeElement(object content) + { + if (content is MacOSNativeElement element) + { + // TODO uno_native_detach(element.Handle); + } + else + { + if (this.Log().IsEnabled(LogLevel.Warning)) + { + this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); + } + } + } + + public bool IsNativeElement(object content) => content is MacOSNativeElement; + + public bool IsNativeElementAttached(object owner, object nativeElement) + { + if (nativeElement is MacOSNativeElement element) + { + // TODO uno_native_is_attached(element.Handle); + return false; + } + else + { + if (this.Log().IsEnabled(LogLevel.Warning)) + { + this.Log().Warn($"Object `{nameof(owner)}` is a {owner.GetType().FullName} and not a MacOSNativeElement subclass."); + } + return false; + } + } + + public Size MeasureNativeElement(object content, Size childMeasuredSize, Size availableSize) + { + if (content is MacOSNativeElement element) + { + NativeUno.uno_native_measure(element.Handle, childMeasuredSize.Width, childMeasuredSize.Height, availableSize.Width, availableSize.Height, out var width, out var height); + return new Size(width, height); + } + else + { + if (this.Log().IsEnabled(LogLevel.Warning)) + { + this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); + } + return Size.Empty; + } + } +} diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacSkiaHost.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacSkiaHost.cs index 6aedc2abd791..28ed27db81e7 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacSkiaHost.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacSkiaHost.cs @@ -25,6 +25,7 @@ static MacSkiaHost() MacOSFileSavePickerExtension.Register(); MacOSFolderPickerExtension.Register(); MacOSLauncherExtension.Register(); + MacOSNativeElementHostingExtension.Register(); MacOSNativeWindowFactoryExtension.Register(); MacOSSystemNavigationManagerPreviewExtension.Register(); MacOSSystemThemeHelperExtension.Register(); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs b/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs index a3a4835f4308..f19766f53097 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs @@ -306,4 +306,16 @@ internal static unsafe partial void uno_set_window_close_callbacks( [LibraryImport("libUnoNativeMac.dylib")] [return: MarshalAs(UnmanagedType.I1)] internal static partial bool uno_cursor_set(CoreCursorType cursorType); + + [LibraryImport("libUnoNativeMac.dylib", StringMarshalling = StringMarshalling.Utf8)] + internal static partial nint uno_native_create_sample(nint window, string text); + + [LibraryImport("libUnoNativeMac.dylib")] + internal static partial void uno_native_set_opacity(nint element, double opacity); + + [LibraryImport("libUnoNativeMac.dylib")] + internal static partial void uno_native_set_visibility(nint element, [MarshalAs(UnmanagedType.I1)] bool visible); + + [LibraryImport("libUnoNativeMac.dylib")] + internal static partial void uno_native_measure(nint element, double childWidth, double childHeight, double availableWidth, double availableHeight, out double width, out double height); } diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj index 7dbcf6cb66ec..0be42284d811 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj @@ -9,6 +9,7 @@ /* Begin PBXBuildFile section */ D116C63E2AC79876004B975F /* UNOCursor.m in Sources */ = {isa = PBXBuildFile; fileRef = D116C63D2AC79876004B975F /* UNOCursor.m */; }; D13AB8A82B5839B200693F8E /* libSkiaSharp.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D13AB8A72B5839B200693F8E /* libSkiaSharp.dylib */; }; + D18D4FAC2C2DE804003E4BBF /* UNONative.m in Sources */ = {isa = PBXBuildFile; fileRef = D18D4FAB2C2DE804003E4BBF /* UNONative.m */; }; D1A0651E2A7066F700101BE6 /* UNOMetalViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A0651D2A7066F700101BE6 /* UNOMetalViewDelegate.m */; }; D1A065202A8467B200101BE6 /* UNOApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = D1A0651F2A8467B200101BE6 /* UNOApplication.h */; }; D1A065222A84688000101BE6 /* UNOApplication.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A065212A84688000101BE6 /* UNOApplication.m */; }; @@ -24,6 +25,8 @@ D116C63D2AC79876004B975F /* UNOCursor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UNOCursor.m; sourceTree = ""; }; D13AB8A72B5839B200693F8E /* libSkiaSharp.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libSkiaSharp.dylib; path = UnoNativeMac/libSkiaSharp.dylib; sourceTree = ""; }; D13AB8AC2B58566400693F8E /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; + D18D4FAA2C2DE76F003E4BBF /* UNONative.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UNONative.h; sourceTree = ""; }; + D18D4FAB2C2DE804003E4BBF /* UNONative.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UNONative.m; sourceTree = ""; }; D1A0651C2A70664A00101BE6 /* UNOMetalViewDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UNOMetalViewDelegate.h; sourceTree = ""; }; D1A0651D2A7066F700101BE6 /* UNOMetalViewDelegate.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UNOMetalViewDelegate.m; sourceTree = ""; }; D1A0651F2A8467B200101BE6 /* UNOApplication.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UNOApplication.h; sourceTree = ""; }; @@ -90,6 +93,8 @@ D116C63D2AC79876004B975F /* UNOCursor.m */, D1A0651C2A70664A00101BE6 /* UNOMetalViewDelegate.h */, D1A0651D2A7066F700101BE6 /* UNOMetalViewDelegate.m */, + D18D4FAA2C2DE76F003E4BBF /* UNONative.h */, + D18D4FAB2C2DE804003E4BBF /* UNONative.m */, D1CC768E2ABA1368002A44F0 /* UNOPickers.h */, D1CC768C2ABA1337002A44F0 /* UNOPickers.m */, D1FE7A2C2B75C8E100ACFC76 /* UNOSoftView.h */, @@ -176,6 +181,7 @@ D1A065252A8AC23800101BE6 /* UNOWindow.m in Sources */, D1CC768B2AB9D464002A44F0 /* UNOClipboard.m in Sources */, D116C63E2AC79876004B975F /* UNOCursor.m in Sources */, + D18D4FAC2C2DE804003E4BBF /* UNONative.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; }; diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h new file mode 100644 index 000000000000..1a5c33744f1d --- /dev/null +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h @@ -0,0 +1,19 @@ +// +// UNONative.h +// + +#pragma once + +#import "UnoNativeMac.h" + +NS_ASSUME_NONNULL_BEGIN + +NSView* uno_native_create_sample(NSWindow *window, const char* _Nullable text); + +void uno_native_measure(NSView* element, double childWidth, double childHeight, double availableWidth, double availableHeight, double* width, double* height); + +void uno_native_set_opacity(NSView* element, double opacity); + +void uno_native_set_visibility(NSView* element, bool visible); + +NS_ASSUME_NONNULL_END diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m new file mode 100644 index 000000000000..c4eec93415e5 --- /dev/null +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m @@ -0,0 +1,60 @@ +// +// UNONative.m +// + +#import "UNONative.h" + +static NSMutableSet *elements; + +NSView* uno_native_create_sample(NSWindow *window, const char* _Nullable text) +{ + // no NSLabel on macOS + NSTextField* label = [[NSTextField alloc] initWithFrame:NSMakeRect(100, 300, 200, 200)]; + label.bezeled = NO; + label.drawsBackground = NO; + label.editable = NO; + label.selectable = NO; +#if DEBUG + NSLog(@"uno_native_create_sample label #%p : %s", label, text); +#endif + label.stringValue = [NSString stringWithUTF8String:text]; + + NSView* sample = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 300, 600)]; + [sample addSubview:label]; +#if DEBUG + NSLog(@"uno_native_create_sample #%p : %@", sample, label.stringValue); +#endif + [window.contentViewController.view addSubview:sample]; + if (!elements) { + elements = [[NSMutableSet alloc] initWithCapacity:10]; + } + [elements addObject:sample]; + return sample; +} + +void uno_native_measure(NSView* element, double childWidth, double childHeight, double availableWidth, double availableHeight, double* width, double* height) +{ + // FIXME + CGSize size = element.frame.size; // element.fittingSize; + *width = size.width; + *height = size.height; +#if DEBUG + NSLog(@"uno_native_measure #%p : child %g x %g / available %g x %g -> %g x %g", element, childWidth, childHeight, availableWidth, availableHeight, *width, *height); +#endif +} + +void uno_native_set_opacity(NSView* element, double opacity) +{ +#if DEBUG + NSLog(@"uno_native_set_opacity #%p : %g -> %g", element, element.alphaValue, opacity); +#endif + element.alphaValue = opacity; +} + +void uno_native_set_visibility(NSView* element, bool visible) +{ +#if DEBUG + NSLog(@"uno_native_set_visibility #%p : %s -> %s", element, element.hidden ? "TRUE" : "FALSE", visible ? "TRUE" : "FALSE"); +#endif + element.hidden = !visible; +} From 14c0f993f8f9617aeaa790c54c1b7860b1defa2a Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Thu, 4 Jul 2024 13:55:53 -0400 Subject: [PATCH 004/664] chore: rework logging code --- .../MacOSNativeElementHostingExtension.cs | 64 ++++++++----------- 1 file changed, 26 insertions(+), 38 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs index 7a7b02e46764..002611d2a871 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs @@ -38,12 +38,9 @@ public void ArrangeNativeElement(object content, Rect arrangeRect, Rect clipRect { // TODO uno_native_arrange(element.Handle, arrangeRect.Left, arrangeRect.Top, arrangeRect.Width, arrangeRect.Height, clipRect.Left, clipRect.Top, clipRect.Width, clipRect.Height); } - else + else if (this.Log().IsEnabled(LogLevel.Debug)) { - if (this.Log().IsEnabled(LogLevel.Warning)) - { - this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); - } + this.Log().Debug($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); } } @@ -53,12 +50,9 @@ public void AttachNativeElement(object content) { // TODO uno_native_attach(element.Handle); } - else + else if (this.Log().IsEnabled(LogLevel.Debug)) { - if (this.Log().IsEnabled(LogLevel.Warning)) - { - this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); - } + this.Log().Debug($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); } } @@ -70,12 +64,9 @@ public void ChangeNativeElementOpacity(object content, double opacity) // note: no marshaling needed as CGFloat is double for 64bits apps NativeUno.uno_native_set_opacity(element.Handle, opacity); } - else + else if (this.Log().IsEnabled(LogLevel.Debug)) { - if (this.Log().IsEnabled(LogLevel.Warning)) - { - this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); - } + this.Log().Debug($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); } } @@ -86,18 +77,24 @@ public void ChangeNativeElementVisibility(object content, bool visible) // https://developer.apple.com/documentation/appkit/nsview/1483369-hidden?language=objc NativeUno.uno_native_set_visibility(element.Handle, visible); } - else + else if (this.Log().IsEnabled(LogLevel.Debug)) { - if (this.Log().IsEnabled(LogLevel.Warning)) - { - this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); - } + this.Log().Debug($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); } } public object? CreateSampleComponent(string text) { - var handle = NativeUno.uno_native_create_sample(_window!.Handle, text); + if (_window is null) + { + if (this.Log().IsEnabled(LogLevel.Debug)) + { + this.Log().Debug($"CreateSampleComponent failed as no MacOSWindowNative could be found."); + } + return null; + } + + var handle = NativeUno.uno_native_create_sample(_window.Handle, text); return new MacOSNativeElement(handle); } @@ -107,12 +104,9 @@ public void DetachNativeElement(object content) { // TODO uno_native_detach(element.Handle); } - else + else if (this.Log().IsEnabled(LogLevel.Debug)) { - if (this.Log().IsEnabled(LogLevel.Warning)) - { - this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); - } + this.Log().Debug($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); } } @@ -125,14 +119,11 @@ public bool IsNativeElementAttached(object owner, object nativeElement) // TODO uno_native_is_attached(element.Handle); return false; } - else + else if (this.Log().IsEnabled(LogLevel.Debug)) { - if (this.Log().IsEnabled(LogLevel.Warning)) - { - this.Log().Warn($"Object `{nameof(owner)}` is a {owner.GetType().FullName} and not a MacOSNativeElement subclass."); - } - return false; + this.Log().Debug($"Object `{nameof(owner)}` is a {owner.GetType().FullName} and not a MacOSNativeElement subclass."); } + return false; } public Size MeasureNativeElement(object content, Size childMeasuredSize, Size availableSize) @@ -142,13 +133,10 @@ public Size MeasureNativeElement(object content, Size childMeasuredSize, Size av NativeUno.uno_native_measure(element.Handle, childMeasuredSize.Width, childMeasuredSize.Height, availableSize.Width, availableSize.Height, out var width, out var height); return new Size(width, height); } - else + else if (this.Log().IsEnabled(LogLevel.Debug)) { - if (this.Log().IsEnabled(LogLevel.Warning)) - { - this.Log().Warn($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); - } - return Size.Empty; + this.Log().Debug($"Object `{nameof(content)}` is a {content.GetType().FullName} and not a MacOSNativeElement subclass."); } + return Size.Empty; } } From f606e5f67ce98baea512a35c647e8c153a66d7d5 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Thu, 4 Jul 2024 21:35:46 -0400 Subject: [PATCH 005/664] chore: change sample native element background to red --- .../MacOSNativeElementHostingExtension.cs | 21 +++--- src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs | 13 ++++ .../UnoNativeMac/UnoNativeMac/UNONative.h | 14 ++++ .../UnoNativeMac/UnoNativeMac/UNONative.m | 68 ++++++++++++++++--- 4 files changed, 97 insertions(+), 19 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs index 002611d2a871..cf7e06aca489 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs @@ -9,14 +9,14 @@ namespace Uno.UI.Runtime.Skia.MacOS; -internal class MacOSNativeElement +internal class MacOSNativeElement : Microsoft.UI.Xaml.FrameworkElement { internal MacOSNativeElement(nint handle) { - Handle = handle; + NativeHandle = handle; } - public nint Handle { get; private set; } + public nint NativeHandle { get; private set; } } internal class MacOSNativeElementHostingExtension : ContentPresenter.INativeElementHostingExtension @@ -36,7 +36,7 @@ public void ArrangeNativeElement(object content, Rect arrangeRect, Rect clipRect { if (content is MacOSNativeElement element) { - // TODO uno_native_arrange(element.Handle, arrangeRect.Left, arrangeRect.Top, arrangeRect.Width, arrangeRect.Height, clipRect.Left, clipRect.Top, clipRect.Width, clipRect.Height); + NativeUno.uno_native_arrange(element.NativeHandle, arrangeRect.Left, arrangeRect.Top, arrangeRect.Width, arrangeRect.Height, clipRect.Left, clipRect.Top, clipRect.Width, clipRect.Height); } else if (this.Log().IsEnabled(LogLevel.Debug)) { @@ -48,7 +48,7 @@ public void AttachNativeElement(object content) { if (content is MacOSNativeElement element) { - // TODO uno_native_attach(element.Handle); + NativeUno.uno_native_attach(element.NativeHandle); } else if (this.Log().IsEnabled(LogLevel.Debug)) { @@ -62,7 +62,7 @@ public void ChangeNativeElementOpacity(object content, double opacity) { // https://developer.apple.com/documentation/appkit/nsview/1483560-alphavalue?language=objc // note: no marshaling needed as CGFloat is double for 64bits apps - NativeUno.uno_native_set_opacity(element.Handle, opacity); + NativeUno.uno_native_set_opacity(element.NativeHandle, opacity); } else if (this.Log().IsEnabled(LogLevel.Debug)) { @@ -75,7 +75,7 @@ public void ChangeNativeElementVisibility(object content, bool visible) if (content is MacOSNativeElement element) { // https://developer.apple.com/documentation/appkit/nsview/1483369-hidden?language=objc - NativeUno.uno_native_set_visibility(element.Handle, visible); + NativeUno.uno_native_set_visibility(element.NativeHandle, visible); } else if (this.Log().IsEnabled(LogLevel.Debug)) { @@ -102,7 +102,7 @@ public void DetachNativeElement(object content) { if (content is MacOSNativeElement element) { - // TODO uno_native_detach(element.Handle); + NativeUno.uno_native_detach(element.NativeHandle); } else if (this.Log().IsEnabled(LogLevel.Debug)) { @@ -116,8 +116,7 @@ public bool IsNativeElementAttached(object owner, object nativeElement) { if (nativeElement is MacOSNativeElement element) { - // TODO uno_native_is_attached(element.Handle); - return false; + return NativeUno.uno_native_is_attached(element.NativeHandle); } else if (this.Log().IsEnabled(LogLevel.Debug)) { @@ -130,7 +129,7 @@ public Size MeasureNativeElement(object content, Size childMeasuredSize, Size av { if (content is MacOSNativeElement element) { - NativeUno.uno_native_measure(element.Handle, childMeasuredSize.Width, childMeasuredSize.Height, availableSize.Width, availableSize.Height, out var width, out var height); + NativeUno.uno_native_measure(element.NativeHandle, childMeasuredSize.Width, childMeasuredSize.Height, availableSize.Width, availableSize.Height, out var width, out var height); return new Size(width, height); } else if (this.Log().IsEnabled(LogLevel.Debug)) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs b/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs index f19766f53097..7b6e52708999 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs @@ -310,6 +310,19 @@ internal static unsafe partial void uno_set_window_close_callbacks( [LibraryImport("libUnoNativeMac.dylib", StringMarshalling = StringMarshalling.Utf8)] internal static partial nint uno_native_create_sample(nint window, string text); + [LibraryImport("libUnoNativeMac.dylib")] + internal static partial void uno_native_arrange(nint element, double arrangeLeft, double arrangeTop, double arrangeWidth, double arrangeHeight, double clipLeft, double clipTop, double clipWidth, double clipHeight); + + [LibraryImport("libUnoNativeMac.dylib")] + internal static partial void uno_native_attach(nint element); + + [LibraryImport("libUnoNativeMac.dylib")] + internal static partial void uno_native_detach(nint element); + + [LibraryImport("libUnoNativeMac.dylib")] + [return: MarshalAs(UnmanagedType.I1)] + internal static partial bool uno_native_is_attached(nint element); + [LibraryImport("libUnoNativeMac.dylib")] internal static partial void uno_native_set_opacity(nint element, double opacity); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h index 1a5c33744f1d..5438df472ac9 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h @@ -8,8 +8,22 @@ NS_ASSUME_NONNULL_BEGIN +@interface UNOFlippedView : NSView + +@property(getter=isFlipped, readonly) BOOL flipped; + +@end + NSView* uno_native_create_sample(NSWindow *window, const char* _Nullable text); +void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, double arrangeWidth, double arrangeHeight, double clipLeft, double clipTop, double clipWidth, double clipHeight); + +void uno_native_attach(NSView* element); + +void uno_native_detach(NSView* element); + +bool uno_native_is_attached(NSView* element); + void uno_native_measure(NSView* element, double childWidth, double childHeight, double availableWidth, double availableHeight, double* width, double* height); void uno_native_set_opacity(NSView* element, double opacity); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m index c4eec93415e5..a7b63647de2c 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m @@ -6,23 +6,41 @@ static NSMutableSet *elements; +@implementation UNOFlippedView : NSView + +// behave like UIView (top/left) instead of bottom/left +-(BOOL) isFlipped { + return YES; +} + +// make the background red for easier tracking +- (BOOL)wantsUpdateLayer +{ + return YES; +} + +- (void)updateLayer +{ + self.layer.backgroundColor = NSColor.redColor.CGColor; +} + +@end + NSView* uno_native_create_sample(NSWindow *window, const char* _Nullable text) { // no NSLabel on macOS - NSTextField* label = [[NSTextField alloc] initWithFrame:NSMakeRect(100, 300, 200, 200)]; + NSTextField* label = [[NSTextField alloc] initWithFrame:NSMakeRect(0, 0, 100, 100)]; label.bezeled = NO; label.drawsBackground = NO; label.editable = NO; label.selectable = NO; -#if DEBUG - NSLog(@"uno_native_create_sample label #%p : %s", label, text); -#endif label.stringValue = [NSString stringWithUTF8String:text]; + label.frame = NSMakeRect(0, 0, label.fittingSize.width, label.fittingSize.height); - NSView* sample = [[NSView alloc] initWithFrame:NSMakeRect(0, 0, 300, 600)]; + NSView* sample = [[UNOFlippedView alloc] initWithFrame:label.frame]; [sample addSubview:label]; #if DEBUG - NSLog(@"uno_native_create_sample #%p : %@", sample, label.stringValue); + NSLog(@"uno_native_create_sample #%p label: %@", sample, label.stringValue); #endif [window.contentViewController.view addSubview:sample]; if (!elements) { @@ -32,14 +50,48 @@ return sample; } +void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, double arrangeWidth, double arrangeHeight, double clipLeft, double clipTop, double clipWidth, double clipHeight) +{ +#if DEBUG + NSLog(@"uno_native_arrange %p arrange(%g,%g,%g,%g) clip(%g,%g,%g,%g)", element, arrangeLeft, arrangeTop, arrangeWidth, arrangeHeight, clipLeft, clipTop, clipWidth, clipHeight); +#endif + element.frame = NSMakeRect(arrangeLeft, arrangeTop, arrangeWidth, arrangeWidth); + // TODO +} + +void uno_native_attach(NSView* element) +{ +#if DEBUG + NSLog(@"uno_native_attach %p", element); +#endif + // TODO +} + +void uno_native_detach(NSView *element) +{ +#if DEBUG + NSLog(@"uno_native_detach %p", element); +#endif + // TODO +} + +bool uno_native_is_attached(NSView* element) +{ + bool attached = false; // TODO +#if DEBUG + NSLog(@"uno_native_is_attached %s", attached ? "TRUE" : "FALSE"); +#endif + return attached; +} + void uno_native_measure(NSView* element, double childWidth, double childHeight, double availableWidth, double availableHeight, double* width, double* height) { // FIXME - CGSize size = element.frame.size; // element.fittingSize; + CGSize size = element.subviews.firstObject.frame.size; // element.fittingSize; *width = size.width; *height = size.height; #if DEBUG - NSLog(@"uno_native_measure #%p : child %g x %g / available %g x %g -> %g x %g", element, childWidth, childHeight, availableWidth, availableHeight, *width, *height); + NSLog(@"uno_native_measure %p : child %g x %g / available %g x %g -> %g x %g", element, childWidth, childHeight, availableWidth, availableHeight, *width, *height); #endif } From 7496a4fba76ff0ca15fdaa9597a327cd3843d6d2 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Fri, 12 Jul 2024 10:53:35 -0400 Subject: [PATCH 006/664] chore: keep a ref when attaching, drop it when detaching --- .../UnoNativeMac/UnoNativeMac/UNONative.m | 21 ++++++++++--------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m index a7b63647de2c..3bdbcad098e8 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m @@ -8,7 +8,7 @@ @implementation UNOFlippedView : NSView -// behave like UIView (top/left) instead of bottom/left +// behave like UIView/UWP/WinUI, where the origin is top/left, instead of bottom/left -(BOOL) isFlipped { return YES; } @@ -43,10 +43,6 @@ - (void)updateLayer NSLog(@"uno_native_create_sample #%p label: %@", sample, label.stringValue); #endif [window.contentViewController.view addSubview:sample]; - if (!elements) { - elements = [[NSMutableSet alloc] initWithCapacity:10]; - } - [elements addObject:sample]; return sample; } @@ -62,9 +58,12 @@ void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, void uno_native_attach(NSView* element) { #if DEBUG - NSLog(@"uno_native_attach %p", element); + NSLog(@"uno_native_attach %p -> %s attached", element, [elements containsObject:element] ? "already" : "not"); #endif - // TODO + if (!elements) { + elements = [[NSMutableSet alloc] initWithCapacity:10]; + } + [elements addObject:element]; } void uno_native_detach(NSView *element) @@ -72,14 +71,16 @@ void uno_native_detach(NSView *element) #if DEBUG NSLog(@"uno_native_detach %p", element); #endif - // TODO + if (elements) { + [elements removeObject:element]; + } } bool uno_native_is_attached(NSView* element) { - bool attached = false; // TODO + bool attached = elements ? [elements containsObject:element] : NO; #if DEBUG - NSLog(@"uno_native_is_attached %s", attached ? "TRUE" : "FALSE"); + NSLog(@"uno_native_is_attached %s", attached ? "YES" : "NO"); #endif return attached; } From bd0aae9f7f92be549a4604ac03e37319f4e4356c Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Mon, 15 Jul 2024 22:02:54 -0400 Subject: [PATCH 007/664] chore: fix flipped view and plugin svg clipping code (not yet working) --- .../MacOSWindowHost.cs | 23 ++++++-- src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs | 3 + .../UnoNativeMac/UnoNativeMac/UNONative.h | 4 +- .../UnoNativeMac/UnoNativeMac/UNONative.m | 9 +-- .../UnoNativeMac/UnoNativeMac/UNOWindow.h | 8 +++ .../UnoNativeMac/UnoNativeMac/UNOWindow.m | 57 ++++++++++++++++++- 6 files changed, 89 insertions(+), 15 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs index 44bd2e8e8310..0d257e07a5b8 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs @@ -16,6 +16,7 @@ using Uno.Foundation.Extensibility; using Uno.Foundation.Logging; +using Uno.UI.Helpers; using Uno.UI.Hosting; namespace Uno.UI.Runtime.Skia.MacOS; @@ -68,7 +69,7 @@ private void UpdateWindowSize(double nativeWidth, double nativeHeight) SizeChanged?.Invoke(this, new Size(nativeWidth, nativeHeight)); } - private void Draw(SKSurface surface) + private void Draw(double nativeWidth, double nativeHeight, SKSurface surface) { using var canvas = surface.Canvas; using (new SKAutoCanvasRestore(canvas, true)) @@ -77,7 +78,21 @@ private void Draw(SKSurface surface) if (RootElement?.Visual is { } rootVisual) { - RootElement.XamlRoot?.Compositor.RenderRootVisual(surface, rootVisual, null); + // remove previous clipping (if any) + NativeUno.uno_window_clip_svg(_nativeWindow.Handle, null); + int width = (int)nativeWidth; + int height = (int)nativeHeight; + var path = SkiaRenderHelper.RenderRootVisualAndReturnPath(width, height, rootVisual, surface); + // we clip the "negative" of what was drawn + if (path is { }) + { + using var negativePath = new SKPath(); + negativePath.AddRect(new SKRect(0, 0, width, height)); + using var diffPath = negativePath.Op(path, SKPathOp.Difference); + // FIXME: clipping not working correctly, comment next line to get something better + // note: use an online svg viewer to visualize the clipping path + NativeUno.uno_window_clip_svg(_nativeWindow.Handle, diffPath.ToSvgPathData()); + } } } @@ -112,7 +127,7 @@ private void MetalDraw(double nativeWidth, double nativeHeight, nint texture) surface.Canvas.Scale(scale, scale); - Draw(surface); + Draw(nativeWidth, nativeHeight, surface); _context?.Flush(); } @@ -152,7 +167,7 @@ private unsafe void SoftDraw(double nativeWidth, double nativeHeight, nint* data _rowBytes = info.RowBytes; } - Draw(_surface!); + Draw(nativeWidth, nativeHeight, _surface!); *data = _bitmap.GetPixels(out var bitmapSize); *size = (int)bitmapSize; diff --git a/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs b/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs index 7b6e52708999..cfd82446ed0d 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs @@ -263,6 +263,9 @@ internal static unsafe partial void uno_set_window_close_callbacks( [LibraryImport("libUnoNativeMac.dylib")] internal static partial void uno_window_set_min_size(nint window, double width, double height); + [LibraryImport("libUnoNativeMac.dylib", StringMarshalling = StringMarshalling.Utf8)] + internal static partial void uno_window_clip_svg(nint window, string? svg); + [LibraryImport("libUnoNativeMac.dylib", StringMarshalling = StringMarshalling.Utf8)] internal static partial string? /* const char* _Nullable */ uno_pick_single_folder(string? prompt, string? identifier, int suggestedStartLocation); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h index 5438df472ac9..d2e229a539ea 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h @@ -8,9 +8,7 @@ NS_ASSUME_NONNULL_BEGIN -@interface UNOFlippedView : NSView - -@property(getter=isFlipped, readonly) BOOL flipped; +@interface UNORedView : NSView @end diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m index 3bdbcad098e8..61401cecd3c5 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m @@ -6,12 +6,7 @@ static NSMutableSet *elements; -@implementation UNOFlippedView : NSView - -// behave like UIView/UWP/WinUI, where the origin is top/left, instead of bottom/left --(BOOL) isFlipped { - return YES; -} +@implementation UNORedView : NSView // make the background red for easier tracking - (BOOL)wantsUpdateLayer @@ -37,7 +32,7 @@ - (void)updateLayer label.stringValue = [NSString stringWithUTF8String:text]; label.frame = NSMakeRect(0, 0, label.fittingSize.width, label.fittingSize.height); - NSView* sample = [[UNOFlippedView alloc] initWithFrame:label.frame]; + NSView* sample = [[UNORedView alloc] initWithFrame:label.frame]; [sample addSubview:label]; #if DEBUG NSLog(@"uno_native_create_sample #%p label: %@", sample, label.stringValue); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h index acbbbb759f1c..be9aa9b9c0f5 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h @@ -53,6 +53,7 @@ void uno_window_exit_full_screen(NSWindow *window); void uno_window_minimize(NSWindow *window, bool activateWindow); void uno_window_restore(NSWindow *window, bool activateWindow); +void uno_window_clip_svg(UNOWindow* window, const char* svg); typedef NS_ENUM(sint32, OverlappedPresenterState) { OverlappedPresenterStateMaximized, @@ -322,4 +323,11 @@ void uno_set_window_screen_change_callbacks(window_did_change_screen_fn_ptr scre void uno_window_notify_screen_change(NSWindow *window); + +@interface UNOMetalFlippedView : MTKView + +@property(getter=isFlipped, readonly) BOOL flipped; + +@end + NS_ASSUME_NONNULL_END diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m index a29aa0ff8f36..91d57cd20544 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m @@ -87,6 +87,15 @@ - (void) applicationDidChangeScreenParametersNotification:(NSNotification*) note return main_window; } +@implementation UNOMetalFlippedView : MTKView + +// behave like UIView/UWP/WinUI, where the origin is top/left, instead of bottom/left +-(BOOL) isFlipped { + return YES; +} + +@end + NSWindow* uno_window_create(double width, double height) { CGRect size = NSMakeRect(0, 0, width, height); @@ -98,7 +107,7 @@ - (void) applicationDidChangeScreenParametersNotification:(NSNotification*) note id device = uno_application_get_metal_device(); if (device) { - MTKView *v = [[MTKView alloc] initWithFrame:size device:device]; + UNOMetalFlippedView *v = [[UNOMetalFlippedView alloc] initWithFrame:size device:device]; v.enableSetNeedsDisplay = YES; window.metalViewDelegate = [[UNOMetalViewDelegate alloc] initWithMetalKitView:v]; v.delegate = window.metalViewDelegate; @@ -589,6 +598,52 @@ void uno_set_window_close_callbacks(window_should_close_fn_ptr shouldClose, wind return gr_direct_context_make_metal(device, queue); } +void uno_window_clip_svg(UNOWindow* window, const char* svg) +{ + if (svg) { +#if DEBUG + NSLog(@"uno_window_clip_svg %@ %@ %s", window, window.contentView.layer.description, svg); +#endif + // FIXME: convert SVG string into a CGMutablePathRef, what's below is hardcoded to the initiall values + CGMutablePathRef path = CGPathCreateMutable(); + // M613 246L776 246L776 261L613 261L613 246Z + CGPathMoveToPoint(path, nil, 613, 246); + CGPathAddLineToPoint(path, nil, 776, 246); + CGPathAddLineToPoint(path, nil, 776, 261); + CGPathAddLineToPoint(path, nil, 613, 261); + CGPathAddLineToPoint(path, nil, 613, 246); + CGPathCloseSubpath(path); + // M22 323L32 323L32 338L22 338L22 323Z + CGPathMoveToPoint(path, nil, 22, 323); + CGPathAddLineToPoint(path, nil, 32, 323); + CGPathAddLineToPoint(path, nil, 32, 338); + CGPathAddLineToPoint(path, nil, 22, 338); + CGPathAddLineToPoint(path, nil, 22, 323); + CGPathCloseSubpath(path); + // M34 523L22 523L22 538L34 538L34 523Z + CGPathMoveToPoint(path, nil, 34, 523); + CGPathAddLineToPoint(path, nil, 22, 523); + CGPathAddLineToPoint(path, nil, 22, 538); + CGPathAddLineToPoint(path, nil, 34, 538); + CGPathAddLineToPoint(path, nil, 34, 523); + CGPathCloseSubpath(path); + + // TODO make a CAShapeLayer out of the given SVG, note: we already have a CAMetalLayer present + CAShapeLayer* layer = nil; + if (!window.contentView.layer.sublayers) { + layer = [CAShapeLayer layer]; + [window.contentView.layer addSublayer:layer]; + } + layer.path = path; + layer.fillRule = kCAFillRuleEvenOdd; + } else { +#if DEBUG + NSLog(@"uno_window_clip_svg %@ nil - reseting layer %@ mask to nil", window, window.contentView.layer.description); +#endif + window.contentView.layer.sublayers = nil; + } +} + @implementation UNOWindow : NSWindow + (void)initialize { From 313e2cf2f3c758ded3facc6555cc4545bf2e8e3a Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Tue, 16 Jul 2024 14:02:56 -0400 Subject: [PATCH 008/664] chore: fix clipping removal --- .../MacOSWindowHost.cs | 1 - .../UnoNativeMac/UnoNativeMac/UNOWindow.h | 2 ++ .../UnoNativeMac/UnoNativeMac/UNOWindow.m | 23 ++++++++++++------- .../UnoNativeMac/UnoNativeMac/UnoNativeMac.h | 1 + 4 files changed, 18 insertions(+), 9 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs index 0d257e07a5b8..0a0c5d953e9d 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs @@ -89,7 +89,6 @@ private void Draw(double nativeWidth, double nativeHeight, SKSurface surface) using var negativePath = new SKPath(); negativePath.AddRect(new SKRect(0, 0, width, height)); using var diffPath = negativePath.Op(path, SKPathOp.Difference); - // FIXME: clipping not working correctly, comment next line to get something better // note: use an online svg viewer to visualize the clipping path NativeUno.uno_window_clip_svg(_nativeWindow.Handle, diffPath.ToSvgPathData()); } diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h index be9aa9b9c0f5..d40f906399be 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h @@ -328,6 +328,8 @@ void uno_window_notify_screen_change(NSWindow *window); @property(getter=isFlipped, readonly) BOOL flipped; +@property CAShapeLayer *clipLayer; + @end NS_ASSUME_NONNULL_END diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m index 91d57cd20544..e363faf1dbdb 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m @@ -94,6 +94,14 @@ -(BOOL) isFlipped { return YES; } +-(instancetype) initWithFrame:(CGRect)frameRect device:(id)device { + self = [super initWithFrame:frameRect device:device]; + if (self) { + self.clipLayer = [CAShapeLayer layer]; + } + return self; +} + @end NSWindow* uno_window_create(double width, double height) @@ -600,6 +608,7 @@ void uno_set_window_close_callbacks(window_should_close_fn_ptr shouldClose, wind void uno_window_clip_svg(UNOWindow* window, const char* svg) { + UNOMetalFlippedView* v = window.contentView; if (svg) { #if DEBUG NSLog(@"uno_window_clip_svg %@ %@ %s", window, window.contentView.layer.description, svg); @@ -628,19 +637,17 @@ void uno_window_clip_svg(UNOWindow* window, const char* svg) CGPathAddLineToPoint(path, nil, 34, 523); CGPathCloseSubpath(path); - // TODO make a CAShapeLayer out of the given SVG, note: we already have a CAMetalLayer present - CAShapeLayer* layer = nil; + // TODO set the CAShapeLayer path to the given SVG + // note: we already have a CAMetalLayer present as the _main_ layer if (!window.contentView.layer.sublayers) { - layer = [CAShapeLayer layer]; - [window.contentView.layer addSublayer:layer]; + UNOMetalFlippedView* v = window.contentView; + [window.contentView.layer addSublayer:v.clipLayer]; } - layer.path = path; - layer.fillRule = kCAFillRuleEvenOdd; } else { #if DEBUG - NSLog(@"uno_window_clip_svg %@ nil - reseting layer %@ mask to nil", window, window.contentView.layer.description); + NSLog(@"uno_window_clip_svg %@ reset", window); #endif - window.contentView.layer.sublayers = nil; + [v.clipLayer removeFromSuperlayer]; } } diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UnoNativeMac.h b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UnoNativeMac.h index d582469f2d3e..4fdaeaae44e2 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UnoNativeMac.h +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UnoNativeMac.h @@ -5,3 +5,4 @@ #import #import #import +#import From 49e741c4ca650f092f6d0937ddf41ffa3a7a4180 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Tue, 16 Jul 2024 20:03:49 -0400 Subject: [PATCH 009/664] chore: implement SVG parsing for clipping --- .../UnoNativeMac/UnoNativeMac/UNONative.m | 13 ++- .../UnoNativeMac/UnoNativeMac/UNOWindow.m | 92 ++++++++++++++----- 2 files changed, 78 insertions(+), 27 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m index 61401cecd3c5..462fa7adf422 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m @@ -43,11 +43,18 @@ - (void)updateLayer void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, double arrangeWidth, double arrangeHeight, double clipLeft, double clipTop, double clipWidth, double clipHeight) { + NSRect clip = NSMakeRect(clipLeft, clipTop, clipWidth, clipHeight); + element.hidden = NSIsEmptyRect(clip); + // TODO handle partial case with element special layers + + NSRect arrange = NSMakeRect(arrangeLeft, arrangeTop, arrangeWidth, arrangeWidth); + element.frame = arrange; #if DEBUG - NSLog(@"uno_native_arrange %p arrange(%g,%g,%g,%g) clip(%g,%g,%g,%g)", element, arrangeLeft, arrangeTop, arrangeWidth, arrangeHeight, clipLeft, clipTop, clipWidth, clipHeight); + NSLog(@"uno_native_arrange %p arrange(%g,%g,%g,%g) clip(%g,%g,%g,%g) %s", element, + arrangeLeft, arrangeTop, arrangeWidth, arrangeHeight, + clipLeft, clipTop, clipWidth, clipHeight, + element.hidden ? "EMPTY" : (clipWidth < arrangeWidth) || (clipHeight < arrangeHeight) ? "partial" : ""); #endif - element.frame = NSMakeRect(arrangeLeft, arrangeTop, arrangeWidth, arrangeWidth); - // TODO } void uno_native_attach(NSView* element) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m index e363faf1dbdb..436748ac94d1 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m @@ -606,6 +606,32 @@ void uno_set_window_close_callbacks(window_should_close_fn_ptr shouldClose, wind return gr_direct_context_make_metal(device, queue); } +CGFloat readNextCoord(const char *svg, int *position, long length) +{ + CGFloat result = NAN; + if (*position >= length) { +#if DEBUG + NSLog(@"uno_window_clip_svg readNextCoord position:%d >= length:%ld", *position, length); +#endif + return result; + } + for (int i=*position; i < length; i++) { + if (isdigit(svg[i])) { + if (isnan(result)) { + result = svg[i] - '0'; + } else { + result *= 10; + result += svg[i] - '0'; + } + *position = i; + } else if (!isnan(result)) { + *position = i - 1; + break; + } + } + return result; +} + void uno_window_clip_svg(UNOWindow* window, const char* svg) { UNOMetalFlippedView* v = window.contentView; @@ -613,31 +639,49 @@ void uno_window_clip_svg(UNOWindow* window, const char* svg) #if DEBUG NSLog(@"uno_window_clip_svg %@ %@ %s", window, window.contentView.layer.description, svg); #endif - // FIXME: convert SVG string into a CGMutablePathRef, what's below is hardcoded to the initiall values CGMutablePathRef path = CGPathCreateMutable(); - // M613 246L776 246L776 261L613 261L613 246Z - CGPathMoveToPoint(path, nil, 613, 246); - CGPathAddLineToPoint(path, nil, 776, 246); - CGPathAddLineToPoint(path, nil, 776, 261); - CGPathAddLineToPoint(path, nil, 613, 261); - CGPathAddLineToPoint(path, nil, 613, 246); - CGPathCloseSubpath(path); - // M22 323L32 323L32 338L22 338L22 323Z - CGPathMoveToPoint(path, nil, 22, 323); - CGPathAddLineToPoint(path, nil, 32, 323); - CGPathAddLineToPoint(path, nil, 32, 338); - CGPathAddLineToPoint(path, nil, 22, 338); - CGPathAddLineToPoint(path, nil, 22, 323); - CGPathCloseSubpath(path); - // M34 523L22 523L22 538L34 538L34 523Z - CGPathMoveToPoint(path, nil, 34, 523); - CGPathAddLineToPoint(path, nil, 22, 523); - CGPathAddLineToPoint(path, nil, 22, 538); - CGPathAddLineToPoint(path, nil, 34, 538); - CGPathAddLineToPoint(path, nil, 34, 523); - CGPathCloseSubpath(path); - - // TODO set the CAShapeLayer path to the given SVG + // small subset of an SVG path parser handling trusted input of integer-based points + long length = strlen(svg); + for (int i=0; i < length; i++) { + CGFloat x, y; + char op = svg[i]; + switch (op) { + case 'M': + x = readNextCoord(svg, &i, length); + i++; // skip separator + y = readNextCoord(svg, &i, length); + // there might not be a separator (not required before the next op) +#if DEBUG_PARSER + NSLog(@"uno_window_clip_svg parsing CGPathMoveToPoint %g %g - position %d", x, y, i); +#endif + CGPathMoveToPoint(path, nil, x, y); + break; + case 'L': + x = readNextCoord(svg, &i, length); + i++; // skip separator + y = readNextCoord(svg, &i, length); + // there might not be a separator (not required before the next op) +#if DEBUG_PARSER + NSLog(@"uno_window_clip_svg parsing CGPathAddLineToPoint %g %g - position %d", x, y, i); +#endif + CGPathAddLineToPoint(path, nil, x, y); + break; + case 'Z': +#if DEBUG_PARSER + NSLog(@"uno_window_clip_svg parsing CGPathCloseSubpath - position %d", i); +#endif + CGPathCloseSubpath(path); + break; +#if DEBUG + default: + if (op != ' ') { + NSLog(@"uno_window_clip_svg parsing unknown op %c at position %d", op, i - 1); + } + break; +#endif + } + } + // note: we already have a CAMetalLayer present as the _main_ layer if (!window.contentView.layer.sublayers) { UNOMetalFlippedView* v = window.contentView; From c29745252cc8a6dc37955f63be9980d2f1598afa Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Fri, 9 Aug 2024 14:57:55 -0400 Subject: [PATCH 010/664] fix: fix native element visibility (reset by clipping) --- .../UnoNativeMac/UnoNativeMac/UNONative.m | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m index 462fa7adf422..05e5bf635cf6 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m @@ -44,7 +44,9 @@ - (void)updateLayer void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, double arrangeWidth, double arrangeHeight, double clipLeft, double clipTop, double clipWidth, double clipHeight) { NSRect clip = NSMakeRect(clipLeft, clipTop, clipWidth, clipHeight); - element.hidden = NSIsEmptyRect(clip); + if (!element.hidden) { + element.hidden = NSIsEmptyRect(clip); + } // TODO handle partial case with element special layers NSRect arrange = NSMakeRect(arrangeLeft, arrangeTop, arrangeWidth, arrangeWidth); @@ -109,7 +111,7 @@ void uno_native_set_opacity(NSView* element, double opacity) void uno_native_set_visibility(NSView* element, bool visible) { #if DEBUG - NSLog(@"uno_native_set_visibility #%p : %s -> %s", element, element.hidden ? "TRUE" : "FALSE", visible ? "TRUE" : "FALSE"); + NSLog(@"uno_native_set_visibility #%p : hidden %s -> visible %s", element, element.hidden ? "TRUE" : "FALSE", visible ? "TRUE" : "FALSE"); #endif element.hidden = !visible; } From 61041aee49aafd12028785fbf96120113b6795f1 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 18 Sep 2024 09:57:18 +0200 Subject: [PATCH 011/664] feat: Uno.UI.GooglePlay --- Directory.Build.props | 1 + .../Properties/AssemblyInfo.cs | 7 ++ .../Uno.UI.GooglePlay.netcoremobile.csproj | 77 +++++++++++++++++++ .../Uno.WinUI.GooglePlay.targets | 8 ++ ...BindingHelper.Android.netcoremobile.csproj | 2 +- 5 files changed, 94 insertions(+), 1 deletion(-) create mode 100644 src/AddIns/Uno.UI.GooglePlay/Properties/AssemblyInfo.cs create mode 100644 src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj create mode 100644 src/AddIns/Uno.UI.GooglePlay/buildTransitive/Uno.WinUI.GooglePlay.targets diff --git a/Directory.Build.props b/Directory.Build.props index 0d481f59ff94..1a293b95a86b 100644 --- a/Directory.Build.props +++ b/Directory.Build.props @@ -28,6 +28,7 @@ $(NetCurrent)-windows $(NetPreviousNetCoreMobile);$(NetCurrentNetCoreMobile) + $(NetPrevious)-android;$(NetCurrent)-android $(NetPreviousWpf);$(NetCurrentWpf) $(NetPrevious);$(NetCurrent) $(NetPrevious);$(NetCurrent) diff --git a/src/AddIns/Uno.UI.GooglePlay/Properties/AssemblyInfo.cs b/src/AddIns/Uno.UI.GooglePlay/Properties/AssemblyInfo.cs new file mode 100644 index 000000000000..c8ea7d3394c7 --- /dev/null +++ b/src/AddIns/Uno.UI.GooglePlay/Properties/AssemblyInfo.cs @@ -0,0 +1,7 @@ +using System.Reflection; +using Uno.Foundation.Extensibility; +using Uno.UI.Xaml.Media.Imaging.Svg; + +[assembly: AssemblyMetadata("IsTrimmable", "True")] + +[assembly: ApiExtension(typeof(IInAppReviewExtension), typeof(InAppReviewExtension))] diff --git a/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj b/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj new file mode 100644 index 000000000000..8559b9fa077f --- /dev/null +++ b/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj @@ -0,0 +1,77 @@ + + + + $(NetAndroidPreviousAndCurrent) + + + + + + $(NoWarn);Uno0001 + true + enable + Uno.UI.GooglePlay + Uno.UI.GooglePlay + + $(DefineConstants);HAS_SKOTTIE + + + + + + + + + build + true + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <_OverrideTargetFramework>$(TargetFramework) + + + <_OverrideTargetFramework Condition="$(_OverrideTargetFramework.EndsWith('.0-android'))">$(_OverrideTargetFramework)30.0 + + <_TargetNugetFolder>$(NuGetPackageRoot)\uno.ui.GooglePlay\$(UnoNugetOverrideVersion)\lib\$(_OverrideTargetFramework) + + + <_OutputFiles Include="$(TargetDir)**" /> + + + + + + + + + diff --git a/src/AddIns/Uno.UI.GooglePlay/buildTransitive/Uno.WinUI.GooglePlay.targets b/src/AddIns/Uno.UI.GooglePlay/buildTransitive/Uno.WinUI.GooglePlay.targets new file mode 100644 index 000000000000..1302828ad5ad --- /dev/null +++ b/src/AddIns/Uno.UI.GooglePlay/buildTransitive/Uno.WinUI.GooglePlay.targets @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/src/Uno.UI.BindingHelper.Android/Uno.UI.BindingHelper.Android.netcoremobile.csproj b/src/Uno.UI.BindingHelper.Android/Uno.UI.BindingHelper.Android.netcoremobile.csproj index 2ff5c6a50366..4f8e91f290a8 100644 --- a/src/Uno.UI.BindingHelper.Android/Uno.UI.BindingHelper.Android.netcoremobile.csproj +++ b/src/Uno.UI.BindingHelper.Android/Uno.UI.BindingHelper.Android.netcoremobile.csproj @@ -1,6 +1,6 @@  - $(NetPrevious)-android;$(NetCurrent)-android + $(NetAndroidPreviousAndCurrent) true 1701;1702;1705;109 From f9b0475f53b1fa87425b61c4caeb0768936b49e1 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 18 Sep 2024 12:11:04 +0200 Subject: [PATCH 012/664] chore: Add StoreContext extension for Android --- .../Properties/AssemblyInfo.cs | 3 +- src/Uno.UI-netcoremobile-only.slnf | 1 + src/Uno.UI.sln | 45 +++++++++++++++++++ src/Uno.UWP/AssemblyInfo.cs | 1 + .../Store/Internal/IStoreContextExtension.cs | 13 ++++++ .../Services/Store/StoreContext.Android.cs | 32 ++++++++++++- src/Uno.UWP/Services/Store/StoreContext.cs | 3 ++ 7 files changed, 96 insertions(+), 2 deletions(-) create mode 100644 src/Uno.UWP/Services/Store/Internal/IStoreContextExtension.cs diff --git a/src/AddIns/Uno.UI.GooglePlay/Properties/AssemblyInfo.cs b/src/AddIns/Uno.UI.GooglePlay/Properties/AssemblyInfo.cs index c8ea7d3394c7..fdbf88e77fd7 100644 --- a/src/AddIns/Uno.UI.GooglePlay/Properties/AssemblyInfo.cs +++ b/src/AddIns/Uno.UI.GooglePlay/Properties/AssemblyInfo.cs @@ -1,7 +1,8 @@ using System.Reflection; using Uno.Foundation.Extensibility; using Uno.UI.Xaml.Media.Imaging.Svg; +using Windows.Services.Store.Internal; [assembly: AssemblyMetadata("IsTrimmable", "True")] -[assembly: ApiExtension(typeof(IInAppReviewExtension), typeof(InAppReviewExtension))] +[assembly: ApiExtension(typeof(IStoreContextExtension), typeof(StoreContextExtension))] diff --git a/src/Uno.UI-netcoremobile-only.slnf b/src/Uno.UI-netcoremobile-only.slnf index a4f4f28932de..eb8af0fccd23 100644 --- a/src/Uno.UI-netcoremobile-only.slnf +++ b/src/Uno.UI-netcoremobile-only.slnf @@ -2,6 +2,7 @@ "solution": { "path": "Uno.UI.sln", "projects": [ + "AddIns\\Uno.UI.GooglePlay\\Uno.UI.GooglePlay.netcoremobile.csproj", "AddIns\\Uno.UI.Lottie\\Uno.UI.Lottie.netcoremobile.csproj", "AddIns\\Uno.UI.MSAL\\Uno.UI.MSAL.netcoremobile.csproj", "AddIns\\Uno.UI.Svg\\Uno.UI.Svg.netcoremobile.csproj", diff --git a/src/Uno.UI.sln b/src/Uno.UI.sln index 599d35388e04..784378252b3b 100644 --- a/src/Uno.UI.sln +++ b/src/Uno.UI.sln @@ -317,6 +317,8 @@ Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "Uno.UI.Runtime.Skia.X11", " EndProject Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Uno.WinUI.Graphics3DGL", "AddIns\Uno.WinUI.Graphics3DGL\Uno.WinUI.Graphics3DGL.csproj", "{0F62DA75-6AD9-4F58-B69C-D63CA9053E34}" EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Uno.UI.GooglePlay.netcoremobile", "AddIns\Uno.UI.GooglePlay\Uno.UI.GooglePlay.netcoremobile.csproj", "{E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}" +EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution Debug|Any CPU = Debug|Any CPU @@ -5772,6 +5774,48 @@ Global {0F62DA75-6AD9-4F58-B69C-D63CA9053E34}.Release|x64.Build.0 = Release|Any CPU {0F62DA75-6AD9-4F58-B69C-D63CA9053E34}.Release|x86.ActiveCfg = Release|Any CPU {0F62DA75-6AD9-4F58-B69C-D63CA9053E34}.Release|x86.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|Any CPU.Build.0 = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|ARM.ActiveCfg = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|ARM.Build.0 = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|ARM64.ActiveCfg = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|ARM64.Build.0 = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|iPhone.ActiveCfg = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|iPhone.Build.0 = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|x64.ActiveCfg = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|x64.Build.0 = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|x86.ActiveCfg = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Debug|x86.Build.0 = Debug|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|Any CPU.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|Any CPU.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|ARM.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|ARM.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|ARM64.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|ARM64.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|iPhone.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|iPhone.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|iPhoneSimulator.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|x64.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|x64.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|x86.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release_NoSamples|x86.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|Any CPU.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|Any CPU.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|ARM.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|ARM.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|ARM64.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|ARM64.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|iPhone.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|iPhone.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|iPhoneSimulator.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|x64.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|x64.Build.0 = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|x86.ActiveCfg = Release|Any CPU + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B}.Release|x86.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE @@ -5916,6 +5960,7 @@ Global {93E6D033-52E2-4C2B-A715-A9FC1F609E3D} = {995C1054-AB61-42EE-9A17-C32155BD6D13} {37441DE3-088B-4B63-A1E2-E70E39BF4222} = {416684CF-A4E3-4079-B380-3FF0B00E433C} {0F62DA75-6AD9-4F58-B69C-D63CA9053E34} = {E872CD33-A455-4DC4-8A87-5FEEC1C39A44} + {E6E7A247-864E-4EE4-A85F-6CDD2426FA9B} = {E872CD33-A455-4DC4-8A87-5FEEC1C39A44} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution SolutionGuid = {9B2608F4-D82B-4B72-B399-33E822DF01D0} diff --git a/src/Uno.UWP/AssemblyInfo.cs b/src/Uno.UWP/AssemblyInfo.cs index 2f199f5d6d22..78ebcc6ae48b 100644 --- a/src/Uno.UWP/AssemblyInfo.cs +++ b/src/Uno.UWP/AssemblyInfo.cs @@ -11,6 +11,7 @@ [assembly: InternalsVisibleTo("Uno.UI.Toolkit")] [assembly: InternalsVisibleTo("Uno.UI.Composition")] [assembly: InternalsVisibleTo("Uno.UI.Lottie")] +[assembly: InternalsVisibleTo("Uno.UI.GooglePlay")] [assembly: InternalsVisibleTo("Uno.UI.Svg")] [assembly: InternalsVisibleTo("Uno.UI.MediaPlayer.Skia.Gtk")] [assembly: InternalsVisibleTo("Uno.UI.MediaPlayer.WebAssembly")] diff --git a/src/Uno.UWP/Services/Store/Internal/IStoreContextExtension.cs b/src/Uno.UWP/Services/Store/Internal/IStoreContextExtension.cs new file mode 100644 index 000000000000..ba71240a94df --- /dev/null +++ b/src/Uno.UWP/Services/Store/Internal/IStoreContextExtension.cs @@ -0,0 +1,13 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; + +namespace Windows.Services.Store.Internal; + +internal interface IStoreContextExtension +{ + Task RequestRateAndReviewAsync(CancellationToken token); +} diff --git a/src/Uno.UWP/Services/Store/StoreContext.Android.cs b/src/Uno.UWP/Services/Store/StoreContext.Android.cs index 326225b3bced..a01598d02825 100644 --- a/src/Uno.UWP/Services/Store/StoreContext.Android.cs +++ b/src/Uno.UWP/Services/Store/StoreContext.Android.cs @@ -1,15 +1,31 @@ -using System; +#nullable enable + +using System; using System.Collections.Generic; using System.Linq; using System.Text; +using System.Threading; using System.Threading.Tasks; +using Uno.Foundation.Extensibility; +using Uno.Foundation.Logging; using Uno.UI; using Windows.Foundation; +using Windows.Services.Store.Internal; namespace Windows.Services.Store; public sealed partial class StoreContext { + private IStoreContextExtension? _storeContextExtension; + + partial void InitializePlatform() + { + if (ApiExtensibility.CreateInstance(this) is { } extension) + { + _storeContextExtension = extension; + } + } + public IAsyncOperation GetStoreProductForCurrentAppAsync() { return AsyncOperation.FromTask(ct => @@ -26,4 +42,18 @@ public IAsyncOperation GetStoreProductForCurrentAppAsync() }); }); } + + private async Task RequestRateAndReviewAppTaskAsync(CancellationToken cancellationToken) + { + if (_storeContextExtension is null) + { + if (this.Log().IsEnabled(LogLevel.Error)) + { + this.Log().LogError("No StoreContext extension is available. Cannot request rate and review."); + } + + return new StoreRateAndReviewResult(StoreRateAndReviewStatus.Error); + } + return await _storeContextExtension.RequestRateAndReviewAsync(cancellationToken); + } } diff --git a/src/Uno.UWP/Services/Store/StoreContext.cs b/src/Uno.UWP/Services/Store/StoreContext.cs index 27b2218e7036..8dfb2c5ad65b 100644 --- a/src/Uno.UWP/Services/Store/StoreContext.cs +++ b/src/Uno.UWP/Services/Store/StoreContext.cs @@ -9,8 +9,11 @@ public sealed partial class StoreContext private StoreContext() { + InitializePlatform(); } + partial void InitializePlatform(); + /// /// Gets a StoreContext object that can be used to access /// and manage store-related data for the current From 760205acb6d3defca7fe69b2ab7ae1ff0022aa66 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Wed, 18 Sep 2024 21:18:39 +0200 Subject: [PATCH 013/664] feat: In app review on Android --- .../StoreContextExtension.cs | 91 +++++++++++++++++++ .../Uno.UI.GooglePlay.netcoremobile.csproj | 20 +--- src/Uno.Foundation.Logging/AssemblyInfo.cs | 1 + .../WinRTFeatureConfiguration.cs | 10 ++ .../Windows.Services.Store/StoreContext.cs | 2 +- src/Uno.UWP/Services/Store/StoreContext.cs | 2 +- 6 files changed, 109 insertions(+), 17 deletions(-) create mode 100644 src/AddIns/Uno.UI.GooglePlay/StoreContextExtension.cs diff --git a/src/AddIns/Uno.UI.GooglePlay/StoreContextExtension.cs b/src/AddIns/Uno.UI.GooglePlay/StoreContextExtension.cs new file mode 100644 index 000000000000..ce207ea5d2b1 --- /dev/null +++ b/src/AddIns/Uno.UI.GooglePlay/StoreContextExtension.cs @@ -0,0 +1,91 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading; +using System.Threading.Tasks; +using Android.App; +using Android.Content; +using Android.Content.PM; +using Android.OS; +using Android.Print; +using Uno.Foundation.Logging; +using Windows.Foundation.Metadata; +using Windows.Services.Store; +using Windows.Services.Store.Internal; +using Xamarin.Google.Android.Play.Core.Review; +using Xamarin.Google.Android.Play.Core.Review.Testing; +using Xamarin.Google.Android.Play.Core.Tasks; + +namespace Uno.UI.GooglePlay; + +internal class StoreContextExtension : IStoreContextExtension +{ + public async Task RequestRateAndReviewAsync(CancellationToken token) + { + TaskCompletionSource? inAppRateTcs; + + inAppRateTcs = new(); + + using var reviewManager = WinRTFeatureConfiguration.StoreContext.TestMode + ? new FakeReviewManager(Application.Context) + : ReviewManagerFactory.Create(Application.Context); + + using var request = reviewManager.RequestReviewFlow(); + + request.AddOnCompleteListener(new InAppReviewListener(reviewManager, inAppRateTcs)); + + return await inAppRateTcs.Task; + } + + private class InAppReviewListener : Java.Lang.Object, IOnCompleteListener + { + private IReviewManager _reviewManager; + private TaskCompletionSource? _inAppRateTcs; + private Xamarin.Google.Android.Play.Core.Tasks.Task? _launchTask; + private bool _forceReturn; + + public InAppReviewListener(IReviewManager reviewManager, TaskCompletionSource? inAppRateTcs) + { + _reviewManager = reviewManager; + _inAppRateTcs = inAppRateTcs; + } + + public void OnComplete(Xamarin.Google.Android.Play.Core.Tasks.Task task) + { + var context = ContextHelper.Current; + var activity = (Activity)context; + + if (!task.IsSuccessful) + { + _inAppRateTcs?.TrySetResult(new StoreRateAndReviewResult(StoreRateAndReviewStatus.Error)); + + _launchTask?.Dispose(); + + return; + } + + try + { + var reviewInfo = (ReviewInfo?)task.GetResult(Java.Lang.Class.FromType(typeof(ReviewInfo))); + + _forceReturn = true; + _launchTask = _reviewManager?.LaunchReviewFlow(activity, reviewInfo!); + + _launchTask?.AddOnCompleteListener(this); + } + catch (Exception ex) + { + if (this.Log().IsEnabled(LogLevel.Error)) + { + this.Log().LogError("Error", "There was an error launching in-app review. Please try again."); + } + + _inAppRateTcs?.TrySetResult(new(StoreRateAndReviewStatus.Error)); + + System.Diagnostics.Debug.WriteLine($"Error message: {ex.Message}"); + System.Diagnostics.Debug.WriteLine($"Stacktrace: {ex}"); + } + } + } +} diff --git a/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj b/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj index 8559b9fa077f..ba7ffb6470b3 100644 --- a/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj +++ b/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj @@ -28,20 +28,10 @@ - - - - - + - - - - - - - - + + @@ -49,8 +39,8 @@ - - + + diff --git a/src/Uno.Foundation.Logging/AssemblyInfo.cs b/src/Uno.Foundation.Logging/AssemblyInfo.cs index 3e3b0f6d7d14..ad59d57780f1 100644 --- a/src/Uno.Foundation.Logging/AssemblyInfo.cs +++ b/src/Uno.Foundation.Logging/AssemblyInfo.cs @@ -17,6 +17,7 @@ [assembly: InternalsVisibleTo("Uno.UI.FluentTheme")] [assembly: InternalsVisibleTo("Uno.UI.FluentTheme.v1")] [assembly: InternalsVisibleTo("Uno.UI.FluentTheme.v2")] +[assembly: InternalsVisibleTo("Uno.UI.GooglePlay")] [assembly: InternalsVisibleTo("Uno.UI.Lottie")] [assembly: InternalsVisibleTo("Uno.UI.Svg")] [assembly: InternalsVisibleTo("Uno.UI.Svg.Skia")] diff --git a/src/Uno.UWP/FeatureConfiguration/WinRTFeatureConfiguration.cs b/src/Uno.UWP/FeatureConfiguration/WinRTFeatureConfiguration.cs index 61b0631f7988..22fd4c4d4d5b 100644 --- a/src/Uno.UWP/FeatureConfiguration/WinRTFeatureConfiguration.cs +++ b/src/Uno.UWP/FeatureConfiguration/WinRTFeatureConfiguration.cs @@ -35,4 +35,14 @@ public static class ResourceLoader /// public static bool PreserveParsedResources { get; set; } } + +#if __ANDROID__ + public static class StoreContext + { + /// + /// Set True to test Store Context APIs on Android. False by default. + /// + public static bool TestMode { get; set; } + } +#endif } diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.Services.Store/StoreContext.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.Services.Store/StoreContext.cs index f56917019267..8157ae161734 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.Services.Store/StoreContext.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.Services.Store/StoreContext.cs @@ -256,7 +256,7 @@ public bool CanSilentlyDownloadStorePackageUpdates throw new global::System.NotImplementedException("The member IAsyncOperation StoreContext.UninstallStorePackageByStoreIdAsync(string storeId) is not implemented. For more information, visit https://aka.platform.uno/notimplemented#m=IAsyncOperation%3CStoreUninstallStorePackageResult%3E%20StoreContext.UninstallStorePackageByStoreIdAsync%28string%20storeId%29"); } #endif -#if __ANDROID__ || false || IS_UNIT_TESTS || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ +#if false || false || IS_UNIT_TESTS || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "IS_UNIT_TESTS", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public global::Windows.Foundation.IAsyncOperation RequestRateAndReviewAppAsync() { diff --git a/src/Uno.UWP/Services/Store/StoreContext.cs b/src/Uno.UWP/Services/Store/StoreContext.cs index 8dfb2c5ad65b..8336abe1555c 100644 --- a/src/Uno.UWP/Services/Store/StoreContext.cs +++ b/src/Uno.UWP/Services/Store/StoreContext.cs @@ -23,7 +23,7 @@ private StoreContext() /// store-related data for the current user. public static StoreContext GetDefault() => _instance.Value; -#if __IOS__ +#if __IOS__ || __ANDROID__ /// /// Requests the user to rate and review the app. This method will /// display the UI for the user to select a store rating and add From c6b0514295a3d8e332bf83caa32b949a7011aaf0 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Wed, 18 Sep 2024 21:19:13 +0200 Subject: [PATCH 014/664] test: In app review --- src/SamplesApp/SamplesApp.Shared/App.xaml.cs | 3 +++ .../UITests.Shared/UITests.Shared.projitems | 7 ++++++ .../StoreContextTests.xaml | 11 ++++++++ .../StoreContextTests.xaml.cs | 25 +++++++++++++++++++ 4 files changed, 46 insertions(+) create mode 100644 src/SamplesApp/UITests.Shared/Windows_Services_Store/StoreContextTests.xaml create mode 100644 src/SamplesApp/UITests.Shared/Windows_Services_Store/StoreContextTests.xaml.cs diff --git a/src/SamplesApp/SamplesApp.Shared/App.xaml.cs b/src/SamplesApp/SamplesApp.Shared/App.xaml.cs index 02c6d131677f..f5ac4ab48cbe 100644 --- a/src/SamplesApp/SamplesApp.Shared/App.xaml.cs +++ b/src/SamplesApp/SamplesApp.Shared/App.xaml.cs @@ -544,6 +544,9 @@ static void ConfigureFeatureFlags() Uno.UI.FeatureConfiguration.ToolTip.UseToolTips = true; Uno.UI.FeatureConfiguration.Font.DefaultTextFontFamily = "ms-appx:///Uno.Fonts.OpenSans/Fonts/OpenSans.ttf"; +#endif +#if __ANDROID__ + Uno.WinRTFeatureConfiguration.StoreContext.TestMode = true; #endif } diff --git a/src/SamplesApp/UITests.Shared/UITests.Shared.projitems b/src/SamplesApp/UITests.Shared/UITests.Shared.projitems index fef65dcef30d..310387447793 100644 --- a/src/SamplesApp/UITests.Shared/UITests.Shared.projitems +++ b/src/SamplesApp/UITests.Shared/UITests.Shared.projitems @@ -702,6 +702,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -5994,6 +5998,9 @@ EasClientDeviceInformationTests.xaml + + StoreContextTests.xaml + NativeStorageRuntimeTests.xaml diff --git a/src/SamplesApp/UITests.Shared/Windows_Services_Store/StoreContextTests.xaml b/src/SamplesApp/UITests.Shared/Windows_Services_Store/StoreContextTests.xaml new file mode 100644 index 000000000000..01c424c6c4d3 --- /dev/null +++ b/src/SamplesApp/UITests.Shared/Windows_Services_Store/StoreContextTests.xaml @@ -0,0 +1,11 @@ + + + + + internal bool IsTouchPad { get; set; } public bool IsLeftButtonPressed { get; internal set; } From 4280e2d72aad2e7d794aec836d7d65277cbc6b0a Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 1 Oct 2024 11:39:38 +0200 Subject: [PATCH 034/664] chore: Formatting --- src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs | 2 +- src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.x11events.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs index 81f320d760ec..cafa10d01791 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs @@ -528,7 +528,7 @@ private bool IsTouchpad(IEnumerable props) } } else if (xiAnyClassInfo->Type == XiDeviceClass.XIValuatorClass && - ((XIValuatorClassInfo*)xiAnyClassInfo)->Label == X11Helper.GetAtom(display, "Abs MT Pressure")) + ((XIValuatorClassInfo*)xiAnyClassInfo)->Label == X11Helper.GetAtom(display, "Abs MT Pressure")) { pressureValuator = ((XIValuatorClassInfo*)xiAnyClassInfo)->Number; } diff --git a/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.x11events.cs b/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.x11events.cs index 0403a19bb2a2..42d7c90d287b 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.x11events.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.x11events.cs @@ -174,7 +174,7 @@ static IEnumerable GetEvents(IntPtr display) } } else if (@event.AnyEvent.window == x11Window.Window || - (@event.type is XEventName.GenericEvent && @event.GenericEventCookie.extension == GetXI2Details(x11Window.Window).opcode)) + (@event.type is XEventName.GenericEvent && @event.GenericEventCookie.extension == GetXI2Details(x11Window.Window).opcode)) { switch (@event.type) { From d44c0bf64d23566722ace5f51789939f42b29330 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 19:16:41 +0300 Subject: [PATCH 035/664] chore: post rebase --- .../X11PointerInputSource.CoreProtocol.cs | 4 +--- src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.Mouse.cs | 1 - src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs | 4 +--- 3 files changed, 2 insertions(+), 7 deletions(-) delete mode 100644 src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.Mouse.cs diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.CoreProtocol.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.CoreProtocol.cs index 8114f8781dc1..9c241394073b 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.CoreProtocol.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.CoreProtocol.cs @@ -123,11 +123,9 @@ private PointerPoint CreatePointFromCurrentState(IntPtr time) ? root.RasterizationScale : 1; - // Time is given in milliseconds since system boot - // This doesn't match the format of WinUI. See also: https://github.com/unoplatform/uno/issues/14535 var point = new PointerPoint( frameId: (uint)time, // UNO TODO: How should set the frame, timestamp may overflow. - timestamp: (uint)time, + timestamp: (uint)(time * TimeSpan.TicksPerMillisecond), // Time is given in milliseconds since system boot. See also: https://github.com/unoplatform/uno/issues/14535 PointerDevice.For(PointerDeviceType.Mouse), 0, // TODO: XInput new Point(_mousePosition.X / scale, _mousePosition.Y / scale), diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.Mouse.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.Mouse.cs deleted file mode 100644 index 5f282702bb03..000000000000 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.Mouse.cs +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs index cafa10d01791..a6d3b4c437f7 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs @@ -194,11 +194,9 @@ public unsafe PointerEventArgs CreatePointerEventArgsFromDeviceEvent(XIDeviceEve ? XamlRoot.GetDisplayInformation(root).RawPixelsPerViewPixel : 1; - // Time is given in milliseconds since system boot - // This doesn't match the format of WinUI. See also: https://github.com/unoplatform/uno/issues/14535 var point = new PointerPoint( frameId: (uint)data.time, // UNO TODO: How should we set the frame, timestamp may overflow. - timestamp: (ulong)data.time, + timestamp: (uint)(data.time * TimeSpan.TicksPerMillisecond), // Time is given in milliseconds since system boot. See also: https://github.com/unoplatform/uno/issues/14535 data.evtype is XiEventType.XI_TouchBegin or XiEventType.XI_TouchEnd or XiEventType.XI_TouchUpdate ? PointerDevice.For(PointerDeviceType.Touch) : PointerDevice.For(PointerDeviceType.Mouse), (uint)data.sourceid, new Point(data.event_x / scale, data.event_y / scale), From 49c045687b34de7328366dee399b5f5d1d68a540 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 19:31:04 +0300 Subject: [PATCH 036/664] chore: check for emulated pointer events --- .../X11PointerInputSource.XInput.cs | 8 ++++++++ .../X11_Bindings/x11Bindings_XInput.cs | 2 +- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs index a6d3b4c437f7..73f5b218de5f 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs @@ -321,6 +321,14 @@ public void HandleXI2Event(XEvent ev) break; } + if ((data.flags & XiDeviceEventFlags.XIPointerEmulated) != 0) + { + if (this.Log().IsEnabled(LogLevel.Trace)) + { + this.Log().Trace($"Ignoring emulated {evtype} event."); + } + } + var args = CreatePointerEventArgsFromDeviceEvent(data); switch (evtype) { diff --git a/src/Uno.UI.Runtime.Skia.X11/X11_Bindings/x11Bindings_XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11_Bindings/x11Bindings_XInput.cs index eda3bc06cd6a..5e89080b9c2a 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11_Bindings/x11Bindings_XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11_Bindings/x11Bindings_XInput.cs @@ -294,7 +294,7 @@ internal struct XIEnterLeaveEvent internal enum XiDeviceEventFlags : int { None = 0, - XIPointfocuserEmulated = (1 << 16) + XIPointerEmulated = (1 << 16) } [StructLayout(LayoutKind.Sequential)] From 76a8a1a85583a0cf0efe88fa2bee152abc7ace8f Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 19:47:43 +0300 Subject: [PATCH 037/664] chore: make a stronger assumption about XI2 versions --- src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.XInput.cs | 4 ++-- src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.cs | 4 +++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.XInput.cs index 7a8ecfd6e8f5..36016147761d 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.XInput.cs @@ -84,12 +84,12 @@ internal partial class X11XamlRootHost { private enum XIVersion { + Unsupported, XI2_0, XI2_1, XI2_2, XI2_3, - XI2_4, - Unsupported + XI2_4 } // These should match X11XamlRootHost.EventsHandledByXI2Mask diff --git a/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.cs b/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.cs index 8bc96173ade1..194927936de8 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.cs @@ -380,7 +380,9 @@ private void Initialize() ? CreateGLXWindow(topWindowDisplay, screen, size, RootX11Window.Window) : CreateSoftwareRenderWindow(topWindowDisplay, screen, size, RootX11Window.Window); - var usingXi2 = GetXI2Details(display).version is not XIVersion.Unsupported; + // Only XI2.2 has touch events, and that's pretty much the only reason we're using XI2, + // so to make our assumptions simpler, we assume XI >= 2.2 or no XI at all. + var usingXi2 = GetXI2Details(display).version >= XIVersion.XI2_2; if (usingXi2) { SetXIEventMask(TopX11Window); From ae2f6d3e69de0f2b14e9e30da077a4f740d5a1cd Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 20:13:34 +0300 Subject: [PATCH 038/664] chore: use touch IDs --- src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs index 73f5b218de5f..de90a9f88254 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs @@ -197,8 +197,8 @@ public unsafe PointerEventArgs CreatePointerEventArgsFromDeviceEvent(XIDeviceEve var point = new PointerPoint( frameId: (uint)data.time, // UNO TODO: How should we set the frame, timestamp may overflow. timestamp: (uint)(data.time * TimeSpan.TicksPerMillisecond), // Time is given in milliseconds since system boot. See also: https://github.com/unoplatform/uno/issues/14535 - data.evtype is XiEventType.XI_TouchBegin or XiEventType.XI_TouchEnd or XiEventType.XI_TouchUpdate ? PointerDevice.For(PointerDeviceType.Touch) : PointerDevice.For(PointerDeviceType.Mouse), - (uint)data.sourceid, + PointerDevice.For(data.evtype is XiEventType.XI_TouchBegin or XiEventType.XI_TouchEnd or XiEventType.XI_TouchUpdate ? PointerDeviceType.Touch : PointerDeviceType.Mouse), + (uint)(data.evtype is XiEventType.XI_TouchBegin or XiEventType.XI_TouchEnd or XiEventType.XI_TouchUpdate ? data.detail : data.sourceid), // for touch, data.detail is the touch ID new Point(data.event_x / scale, data.event_y / scale), new Point(data.event_x / scale, data.event_y / scale), properties.HasPressedButton, From 6a2ede4464f6a944523080e6b7d3a4fe9737ab02 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 20:18:36 +0300 Subject: [PATCH 039/664] chore: add excerpt on multi-touch in XI2 --- .../X11PointerInputSource.XInput.cs | 51 +++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs index de90a9f88254..a8c719a0e6b3 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs @@ -92,6 +92,57 @@ internal partial class X11PointerInputSource private readonly Dictionary _lastVerticalTouchpadWheelPosition = new(); private readonly Dictionary _deviceInfoCache = new(); + // Excerpt from https://www.x.org/releases/X11R7.7/doc/inputproto/XI2proto.txt + // Pointer control of dependent devices + // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + // On a dependent device, the device may differ between a pointer-controlling + // touch and a non-pointer-controlling touch. For example, on a touchpad the + // first touch is pointer-controlling (i.e. serves only to move the visible + // pointer). Multi-finger gestures on a touchpad cause all touches to be + // non-pointer-controlling. + // + // For pointer-controlling touches, no touch events are sent; the touch + // generates regular pointer events instead. Non-pointer-controlling touches + // send touch events. A touch may change from pointer-controlling to + // non-pointer-controlling, or vice versa. + // + // - If a touch changes from pointer-controlling to non-pointer-controlling, + // a new touch ID is assigned and a TouchBegin is sent for the last known + // position of the touch. Further events are sent as TouchUpdate events, or as + // TouchEnd event if the touch terminates. + // + // - If a touch changes from non-pointer-controlling to pointer-controlling, a + // TouchEnd is sent for that touch at the last known position of the touch. + // Further events are sent as pointer events. + // + // The conditions to switch from pointer-controlling to non-pointer-controlling + // touch is implementation-dependent. A device may support touches that are + // both pointer-controlling and a touch event. + // + // In the dependent touch example event sequence below, touches are marked when + // switching to pointer-controlling (pc) or to non-pointer-controlling (np). + // + // .Dependent touch example event sequence on a touchpad + // [width="50%", options="header"] + // |==================================================== + // | Finger 1 | Finger 2 | Event generated(touchid) + // | down | | Motion + // | move | | Motion + // | move | | Motion + // | (np) | down | TouchBegin(0), TouchBegin(1) + // | move | -- | TouchUpdate(0) + // | -- | move | TouchUpdate(1) + // | up | (pc) | TouchEnd(0), TouchEnd(1) + // | | move | Motion + // | down | (np) | TouchBegin(2), TouchBegin(3) + // | move | -- | TouchUpdate(2) + // | up | (pc) | TouchEnd(2), TouchEnd(3) + // | | up | Motion + // | down | | Motion + // | (np) | down | TouchBegin(4), TouchBegin(5) + // | (pc) | up | TouchEnd(4), TouchEnd(5) + // | move | | Motion + // | up | | Motion public unsafe PointerEventArgs CreatePointerEventArgsFromDeviceEvent(XIDeviceEvent data) { (double wheelDelta, bool isHorizontalMouseWheel) = (0, false); From 1d533200d5e6083ac1e78c1b48778e8abe9ae8ad Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 10 Oct 2024 11:01:59 -0400 Subject: [PATCH 040/664] chore: Adjust release branch --- build/Uno.UI.Build.csproj | 35 +---------------------------------- 1 file changed, 1 insertion(+), 34 deletions(-) diff --git a/build/Uno.UI.Build.csproj b/build/Uno.UI.Build.csproj index da6061f9ecc2..be051cb0dc48 100644 --- a/build/Uno.UI.Build.csproj +++ b/build/Uno.UI.Build.csproj @@ -358,40 +358,7 @@ - - Uno.WinUI - Uno.UI - WinUI - UWP - - - - <_diffPackage Include="$(PackageNamePrefix)" Other="$(PackageNamePrefix).$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Foldable" Other="..\..\..\NugetPackages-Artifacts-netcoremobile-$(ArtifactsPlatformName)\vslatest-netcoremobile\$(PackageNamePrefix).Foldable.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Lottie" Other="$(PackageNamePrefix).Lottie.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Maps" Other="..\..\..\NugetPackages-Artifacts-netcoremobile-$(ArtifactsPlatformName)\vslatest-netcoremobile\$(PackageNamePrefix).Maps.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).MSAL" Other="$(PackageNamePrefix).MSAL.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Svg" Other="$(PackageNamePrefix).Svg.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Skia.Gtk" Other="$(PackageNamePrefix).Skia.Gtk.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Runtime.Skia.Gtk" Other="..\..\..\NugetPackages-Artifacts-skia-$(ArtifactsPlatformName)\vslatest-skia\$(PackageNamePrefix).Runtime.Skia.Gtk.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Runtime.Skia.Linux.FrameBuffer" Other="..\..\..\NugetPackages-Artifacts-skia-$(ArtifactsPlatformName)\vslatest-skia\$(PackageNamePrefix).Runtime.Skia.Linux.FrameBuffer.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Skia.Linux.FrameBuffer" Other="$(PackageNamePrefix).Skia.Linux.FrameBuffer.$(GITVERSION_SemVer).nupkg" /> - - <_diffPackage Include="$(PackageNamePrefix).Skia.Wpf" Other="$(PackageNamePrefix).Skia.Wpf.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Runtime.Skia.Wpf" Other="..\..\..\NugetPackages-Artifacts-skia-$(ArtifactsPlatformName)\vslatest-skia\$(PackageNamePrefix).Runtime.Skia.Wpf.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).XamlHost" Other="$(PackageNamePrefix).XamlHost.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).XamlHost.Skia.Wpf" Other="$(PackageNamePrefix).XamlHost.Skia.Wpf.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).WebAssembly" Other="$(PackageNamePrefix).WebAssembly.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="$(PackageNamePrefix).Runtime.WebAssembly" Other="..\..\..\NugetPackages-Artifacts-wasm-$(ArtifactsPlatformName)\vslatest-wasm\$(PackageNamePrefix).Runtime.WebAssembly.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="Uno.Foundation.Logging" Other="..\..\..\NugetPackages-Artifacts-skia-$(ArtifactsPlatformName)\vslatest-skia\Uno.Foundation.Logging.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="Uno.Foundation.Runtime.WebAssembly" Other="..\..\..\NugetPackages-Artifacts-wasm-$(ArtifactsPlatformName)\vslatest-wasm\Uno.Foundation.Runtime.WebAssembly.$(GITVERSION_SemVer).nupkg" /> - <_diffPackage Include="Uno.UI.Adapter.Microsoft.Extensions.Logging" Other="..\..\..\NugetPackages-Artifacts-skia-$(ArtifactsPlatformName)\vslatest-skia\Uno.UI.Adapter.Microsoft.Extensions.Logging.$(GITVERSION_SemVer).nupkg" /> - - - - - - + From 7761c6204f3653239b2df80cb521f611bc9fa760 Mon Sep 17 00:00:00 2001 From: Youssef Victor Date: Thu, 10 Oct 2024 18:52:13 +0300 Subject: [PATCH 041/664] ci: Fix Graphics3DGL version publishing (cherry picked from commit 03001c8a7e47e7689bda79150bc9bc0eabf1a1d8) --- build/ci/.azure-devops-package-netcoremobile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ci/.azure-devops-package-netcoremobile.yml b/build/ci/.azure-devops-package-netcoremobile.yml index b0599d845a9d..68b6e65ac2c0 100644 --- a/build/ci/.azure-devops-package-netcoremobile.yml +++ b/build/ci/.azure-devops-package-netcoremobile.yml @@ -74,7 +74,7 @@ jobs: msbuildLocationMethod: version msbuildVersion: latest msbuildArchitecture: x86 - msbuildArguments: /r /m /v:m /p:Configuration=Release /p:BuildGraphics3DGLForWindows=true /p:PackageOutputPath=$(build.artifactstagingdirectory)\vslatest-netcoremobile /detailedsummary /bl:$(build.artifactstagingdirectory)/build-$(GitVersion.FullSemVer)-graphics3dgl-windows-$(XAML_FLAVOR_BUILD)-binaries.binlog + msbuildArguments: /r /m /v:m /p:Configuration=Release /p:BuildGraphics3DGLForWindows=true /p:PackageVersion=$(GITVERSION.SemVer) InformationalVersion=$(GITVERSION.InformationalVersion) /p:PackageOutputPath=$(build.artifactstagingdirectory)\vslatest-netcoremobile /detailedsummary /bl:$(build.artifactstagingdirectory)/build-$(GitVersion.FullSemVer)-graphics3dgl-windows-$(XAML_FLAVOR_BUILD)-binaries.binlog clean: false restoreNugetPackages: false logProjectEvents: false From 35603126d393ea1afd33792b7104e9b002e8a08b Mon Sep 17 00:00:00 2001 From: Youssef Victor Date: Thu, 10 Oct 2024 18:56:23 +0300 Subject: [PATCH 042/664] chore: Update build/ci/.azure-devops-package-netcoremobile.yml MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jérôme Laban (cherry picked from commit fd405a3c186269f992a7f4e6bf3b089fd41c6baf) --- build/ci/.azure-devops-package-netcoremobile.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/ci/.azure-devops-package-netcoremobile.yml b/build/ci/.azure-devops-package-netcoremobile.yml index 68b6e65ac2c0..bb8cf9e3afdb 100644 --- a/build/ci/.azure-devops-package-netcoremobile.yml +++ b/build/ci/.azure-devops-package-netcoremobile.yml @@ -74,7 +74,7 @@ jobs: msbuildLocationMethod: version msbuildVersion: latest msbuildArchitecture: x86 - msbuildArguments: /r /m /v:m /p:Configuration=Release /p:BuildGraphics3DGLForWindows=true /p:PackageVersion=$(GITVERSION.SemVer) InformationalVersion=$(GITVERSION.InformationalVersion) /p:PackageOutputPath=$(build.artifactstagingdirectory)\vslatest-netcoremobile /detailedsummary /bl:$(build.artifactstagingdirectory)/build-$(GitVersion.FullSemVer)-graphics3dgl-windows-$(XAML_FLAVOR_BUILD)-binaries.binlog + msbuildArguments: /r /m /v:m /p:Configuration=Release /p:BuildGraphics3DGLForWindows=true /p:PackageVersion=$(GITVERSION.SemVer) /p:InformationalVersion=$(GITVERSION.InformationalVersion) /p:PackageOutputPath=$(build.artifactstagingdirectory)\vslatest-netcoremobile /detailedsummary /bl:$(build.artifactstagingdirectory)/build-$(GitVersion.FullSemVer)-graphics3dgl-windows-$(XAML_FLAVOR_BUILD)-binaries.binlog clean: false restoreNugetPackages: false logProjectEvents: false From 87101c205de5b12d1bf940414ad4d19ecedcb5e0 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 16:01:19 +0300 Subject: [PATCH 043/664] fix(GLCanvasElement): GLCanvasElement not working on Uno Islands (cherry picked from commit c59eeffb8a3310e5c863f23af2ff41c58f3d7d21) --- src/AddIns/Uno.WinUI.Graphics3DGL/.gitignore | 3 +- .../Uno.WinUI.Graphics3DGL/GLCanvasElement.cs | 97 ++++++++++--------- .../Uno.WinUI.Graphics3DGL.csproj | 2 +- .../Extensions/WpfNativeOpenGLWrapper.cs | 5 +- 4 files changed, 54 insertions(+), 53 deletions(-) diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/.gitignore b/src/AddIns/Uno.WinUI.Graphics3DGL/.gitignore index 8d1f1ac147eb..7edd3d4bc3d7 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/.gitignore +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/.gitignore @@ -1,2 +1 @@ -angle/ -angle_binaries/ \ No newline at end of file +angle_binaries/ diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs index ef4bb7be5826..360ab5e9a891 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs @@ -1,4 +1,5 @@ using System; +using System.Collections.Generic; using System.Diagnostics.CodeAnalysis; using Microsoft.Extensions.Logging; using Silk.NET.OpenGL; @@ -40,7 +41,7 @@ public abstract partial class GLCanvasElement : Grid, INativeContext { private const int BytesPerPixel = 4; private static readonly BitmapImage _fallbackImage = new BitmapImage(new Uri("ms-appx:///Assets/error.png")); - private static bool? _glAvailable; + private static readonly Dictionary _xamlRootToWrapper = new(); private readonly uint _width; private readonly uint _height; @@ -48,7 +49,6 @@ public abstract partial class GLCanvasElement : Grid, INativeContext private readonly WriteableBitmap _backBuffer; - private bool _loadedAtleastOnce; // valid if and only if _loadedAtleastOnce and _glAvailable private INativeOpenGLWrapper? _nativeOpenGlWrapper; // These are valid if and only if IsLoaded and _glAvailable @@ -118,18 +118,24 @@ protected GLCanvasElement(uint width, uint height, Func? getWindowFunc) Unloaded += OnUnloaded; } - private static INativeOpenGLWrapper? CreateNativeOpenGlWrapper(XamlRoot xamlRoot, Func? getWindowFunc) + private static INativeOpenGLWrapper? GetOrCreateNativeOpenGlWrapper(XamlRoot xamlRoot, Func? getWindowFunc) { try { + // This is done on the UI thread, so no concurrency concerns. + if (!_xamlRootToWrapper.TryGetValue(xamlRoot, out var nativeOpenGlWrapper)) + { #if WINAPPSDK - var nativeOpenGlWrapper = new WinUINativeOpenGLWrapper(xamlRoot, getWindowFunc!); + var nativeOpenGlWrapper = new WinUINativeOpenGLWrapper(xamlRoot, getWindowFunc!); #else - if (!ApiExtensibility.CreateInstance(xamlRoot, out var nativeOpenGlWrapper)) - { - throw new InvalidOperationException($"Couldn't create a {nameof(INativeOpenGLWrapper)} object. Make sure you are running on a platform with OpenGL support."); - } + if (!ApiExtensibility.CreateInstance(xamlRoot, out nativeOpenGlWrapper)) + { + throw new InvalidOperationException($"Couldn't create a {nameof(INativeOpenGLWrapper)} object. Make sure you are running on a platform with OpenGL support."); + } #endif + + _xamlRootToWrapper.Add(xamlRoot, nativeOpenGlWrapper); + } return nativeOpenGlWrapper; } catch (Exception e) @@ -144,16 +150,16 @@ protected GLCanvasElement(uint width, uint height, Func? getWindowFunc) private void OnClosed(object _, object __) { - if (GlAvailable!.Value) + // OnUnloaded is called after OnClosed, which leads to disposing the context first and then trying to + // delete the framebuffer, etc. and this causes exceptions. + DispatcherQueue.TryEnqueue(DispatcherQueuePriority.Low, () => { - // OnUnloaded is called after OnClosed, which leads to disposing the context first and then trying to - // delete the framebuffer, etc. and this causes exceptions. - DispatcherQueue.TryEnqueue(DispatcherQueuePriority.Low, () => + if (_xamlRootToWrapper.Remove(XamlRoot!, out var wrapper)) { - using var _ = _nativeOpenGlWrapper!.MakeCurrent(); - _nativeOpenGlWrapper.Dispose(); - }); - } + using var _ = wrapper.MakeCurrent(); + wrapper.Dispose(); + } + }); } /// @@ -168,44 +174,25 @@ private void OnClosed(object _, object __) public void Invalidate() => NativeDispatcher.Main.Enqueue(Render, NativeDispatcherPriority.Idle); #endif - /// not null after the first instance is loaded. - private bool? GlAvailable + private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) { - get => _glAvailable; - set + if (GetOrCreateNativeOpenGlWrapper(XamlRoot!, _getWindowFunc) is { } glWrapper) { - if (!value!.Value) - { - ((ImageBrush)Background).ImageSource = _fallbackImage; - } - _glAvailable = value; + _nativeOpenGlWrapper = glWrapper; + ((ImageBrush)Background).ImageSource = _backBuffer; } - } - - private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) - { - if (!_loadedAtleastOnce) + else { - _loadedAtleastOnce = true; - - if ((!GlAvailable ?? false) || CreateNativeOpenGlWrapper(XamlRoot!, _getWindowFunc) is not { } glWrapper) - { - GlAvailable = false; - } - else - { - GlAvailable = true; - _nativeOpenGlWrapper = glWrapper; - } + _nativeOpenGlWrapper = null; + ((ImageBrush)Background).ImageSource = _fallbackImage; } - if (!GlAvailable!.Value) + if (_nativeOpenGlWrapper is null) { return; } _gl = GL.GetApi(this); - GlAvailable = true; #if WINAPPSDK _pixels = Marshal.AllocHGlobal((int)(_width * _height * BytesPerPixel)); @@ -251,16 +238,23 @@ private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) #if WINAPPSDK _getWindowFunc!(); #else - XamlRoot?.HostWindow; + XamlRoot!.HostWindow; #endif - window!.Closed += OnClosed; + if (window is not null) + { + window.Closed += OnClosed; + } + else if (XamlRoot.Content is FrameworkElement fe) // for Uno Islands + { + fe.Unloaded += OnClosed; + } Invalidate(); } private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) { - if (!GlAvailable!.Value) + if (_nativeOpenGlWrapper is null) { return; } @@ -302,9 +296,16 @@ private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) #if WINAPPSDK _getWindowFunc!(); #else - XamlRoot?.HostWindow; + XamlRoot!.HostWindow; #endif - window!.Closed -= OnClosed; + if (window is not null) + { + window.Closed -= OnClosed; + } + else if (XamlRoot.Content is FrameworkElement fe) // for Uno Islands + { + fe.Unloaded -= OnClosed; + } } private unsafe void Render() diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj b/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj index 0c3fbedc6a50..ff33ec179446 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj @@ -67,7 +67,7 @@ $(DefaultItemExcludes);angle/** - + diff --git a/src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeOpenGLWrapper.cs b/src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeOpenGLWrapper.cs index 513c15c561c2..680b595a3ccb 100644 --- a/src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeOpenGLWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.Wpf/Extensions/WpfNativeOpenGLWrapper.cs @@ -18,6 +18,7 @@ using Uno.Graphics; using Uno.UI.Runtime.Skia.Wpf.Rendering; using WpfWindow = System.Windows.Window; +using WpfControl = System.Windows.Controls.Control; #endif #if WINDOWS_UWP || WINAPPSDK @@ -68,9 +69,9 @@ public WpfNativeOpenGLWrapper(XamlRoot xamlRoot) #if WINDOWS_UWP || WINAPPSDK var hwnd = WinRT.Interop.WindowNative.GetWindowHandle(_getWindowFunc()); #else - if (xamlRoot.HostWindow?.NativeWindow is not WpfWindow wpfWindow) + if (WpfManager.XamlRootMap.GetHostForRoot(xamlRoot) is not WpfControl wpfControl || WpfWindow.GetWindow(wpfControl) is not { } wpfWindow) { - throw new InvalidOperationException($"The XamlRoot and its NativeWindow must be initialized on the element before constructing a {_type.Name}."); + throw new InvalidOperationException($"The XamlRoot and the XamlRootMap must be initialized before constructing a {_type.Name}."); } var hwnd = new WindowInteropHelper(wpfWindow).Handle; #endif From 747ff3e540aa4aae20036fd974ebd7bb07a77b3d Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 17:54:16 +0300 Subject: [PATCH 044/664] chore: csproj adjustments (cherry picked from commit c73deeae9ac2fa37680e492f841b7bcab7302295) --- .../Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj b/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj index ff33ec179446..2c5f21008c14 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/Uno.WinUI.Graphics3DGL.csproj @@ -69,15 +69,21 @@ + + + + From c88ca5091f4d7c2c86a74d413898d41e1fbe7e7b Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 17:55:07 +0300 Subject: [PATCH 045/664] chore: resize framebuffer when GLCanvasElement is resized (cherry picked from commit baef2c6d0de84855815472e8a3f9f3d3fd0ca6e1) --- .../GLCanvasElement.FrameBufferDetails.cs | 60 ++++++++ .../Uno.WinUI.Graphics3DGL/GLCanvasElement.cs | 136 ++++++++---------- .../RotatingCubeGlCanvasElement.cs | 2 +- .../SimpleTriangleGlCanvasElement.cs | 4 +- 4 files changed, 121 insertions(+), 81 deletions(-) create mode 100644 src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.FrameBufferDetails.cs diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.FrameBufferDetails.cs b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.FrameBufferDetails.cs new file mode 100644 index 000000000000..e2c52511b49a --- /dev/null +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.FrameBufferDetails.cs @@ -0,0 +1,60 @@ +using System; +using Windows.Foundation; +using Silk.NET.OpenGL; + +namespace Uno.WinUI.Graphics3DGL; + +public abstract partial class GLCanvasElement +{ + private class FrameBufferDetails : IDisposable + { + private readonly GL _gl; + private readonly uint _textureColorBuffer; + private readonly uint _renderBuffer; + + public uint Framebuffer { get; } + + public unsafe FrameBufferDetails(GL gl, Size renderSize) + { + _gl = gl; + + Framebuffer = gl.GenBuffer(); + gl.BindFramebuffer(GLEnum.Framebuffer, Framebuffer); + { + _textureColorBuffer = gl.GenTexture(); + gl.BindTexture(GLEnum.Texture2D, _textureColorBuffer); + { + gl.TexImage2D(GLEnum.Texture2D, 0, InternalFormat.Rgb, (uint)renderSize.Width, (uint)renderSize.Height, 0, GLEnum.Rgb, + GLEnum.UnsignedByte, (void*)0); + gl.TexParameterI(GLEnum.Texture2D, GLEnum.TextureMinFilter, (uint)GLEnum.Linear); + gl.TexParameterI(GLEnum.Texture2D, GLEnum.TextureMagFilter, (uint)GLEnum.Linear); + gl.FramebufferTexture2D(GLEnum.Framebuffer, FramebufferAttachment.ColorAttachment0, + GLEnum.Texture2D, _textureColorBuffer, 0); + } + gl.BindTexture(GLEnum.Texture2D, 0); + + _renderBuffer = gl.GenRenderbuffer(); + gl.BindRenderbuffer(GLEnum.Renderbuffer, _renderBuffer); + { + gl.RenderbufferStorage(GLEnum.Renderbuffer, InternalFormat.Depth24Stencil8, (uint)renderSize.Width, (uint)renderSize.Width); + gl.FramebufferRenderbuffer(GLEnum.Framebuffer, GLEnum.DepthStencilAttachment, + GLEnum.Renderbuffer, _renderBuffer); + } + gl.BindRenderbuffer(GLEnum.Renderbuffer, 0); + + if (gl.CheckFramebufferStatus(GLEnum.Framebuffer) != GLEnum.FramebufferComplete) + { + throw new InvalidOperationException("Offscreen framebuffer is not complete"); + } + } + gl.BindFramebuffer(GLEnum.Framebuffer, 0); + } + + public void Dispose() + { + _gl.DeleteFramebuffer(Framebuffer); + _gl.DeleteTexture(_textureColorBuffer); + _gl.DeleteRenderbuffer(_renderBuffer); + } + } +} diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs index 360ab5e9a891..d4047aa01561 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs @@ -43,19 +43,14 @@ public abstract partial class GLCanvasElement : Grid, INativeContext private static readonly BitmapImage _fallbackImage = new BitmapImage(new Uri("ms-appx:///Assets/error.png")); private static readonly Dictionary _xamlRootToWrapper = new(); - private readonly uint _width; - private readonly uint _height; private readonly Func? _getWindowFunc; - private readonly WriteableBitmap _backBuffer; - - // valid if and only if _loadedAtleastOnce and _glAvailable + // valid if and only if _loadedAtleastOnce and OpenGL is available on the running platform private INativeOpenGLWrapper? _nativeOpenGlWrapper; - // These are valid if and only if IsLoaded and _glAvailable + // These are valid if and only if IsLoaded private GL? _gl; - private uint _framebuffer; - private uint _textureColorBuffer; - private uint _renderBuffer; + private WriteableBitmap? _backBuffer; + private FrameBufferDetails? _details; #if WINAPPSDK private IntPtr _pixels; #endif @@ -97,25 +92,21 @@ public abstract partial class GLCanvasElement : Grid, INativeContext /// The height of the backing framebuffer. /// A function that returns the Window object that this element belongs to. This parameter is only used on WinUI. On Uno Platform, it can be set to null. #if WINAPPSDK - protected GLCanvasElement(uint width, uint height, Func getWindowFunc) + protected GLCanvasElement(Func getWindowFunc) #else - protected GLCanvasElement(uint width, uint height, Func? getWindowFunc) + protected GLCanvasElement(Func? getWindowFunc) #endif { - _width = width; - _height = height; _getWindowFunc = getWindowFunc; - _backBuffer = new WriteableBitmap((int)width, (int)height); - Background = new ImageBrush { - ImageSource = _backBuffer, RelativeTransform = new ScaleTransform { ScaleX = 1, ScaleY = -1, CenterX = 0.5, CenterY = 0.5 } // because OpenGL coordinates go bottom-to-top }; Loaded += OnLoaded; Unloaded += OnUnloaded; + SizeChanged += (_, _) => UpdateFramebuffer(); } private static INativeOpenGLWrapper? GetOrCreateNativeOpenGlWrapper(XamlRoot xamlRoot, Func? getWindowFunc) @@ -140,9 +131,9 @@ protected GLCanvasElement(uint width, uint height, Func? getWindowFunc) } catch (Exception e) { - if (typeof(INativeOpenGLWrapper).Log().IsEnabled(LogLevel.Error)) + if (typeof(GLCanvasElement).Log().IsEnabled(LogLevel.Error)) { - typeof(INativeOpenGLWrapper).Log().Error($"{nameof(INativeOpenGLWrapper)} creation failed.", e); + typeof(GLCanvasElement).Log().Error($"{nameof(INativeOpenGLWrapper)} creation failed.", e); } return null; } @@ -154,6 +145,10 @@ private void OnClosed(object _, object __) // delete the framebuffer, etc. and this causes exceptions. DispatcherQueue.TryEnqueue(DispatcherQueuePriority.Low, () => { + if (this.Log().IsEnabled(LogLevel.Debug)) + { + this.Log().Debug($"Window is closing. Destroying the {nameof(INativeOpenGLWrapper)} for this window"); + } if (_xamlRootToWrapper.Remove(XamlRoot!, out var wrapper)) { using var _ = wrapper.MakeCurrent(); @@ -174,18 +169,9 @@ private void OnClosed(object _, object __) public void Invalidate() => NativeDispatcher.Main.Enqueue(Render, NativeDispatcherPriority.Idle); #endif - private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) + private void OnLoaded(object sender, RoutedEventArgs routedEventArgs) { - if (GetOrCreateNativeOpenGlWrapper(XamlRoot!, _getWindowFunc) is { } glWrapper) - { - _nativeOpenGlWrapper = glWrapper; - ((ImageBrush)Background).ImageSource = _backBuffer; - } - else - { - _nativeOpenGlWrapper = null; - ((ImageBrush)Background).ImageSource = _fallbackImage; - } + _nativeOpenGlWrapper = GetOrCreateNativeOpenGlWrapper(XamlRoot!, _getWindowFunc); if (_nativeOpenGlWrapper is null) { @@ -194,44 +180,10 @@ private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) _gl = GL.GetApi(this); -#if WINAPPSDK - _pixels = Marshal.AllocHGlobal((int)(_width * _height * BytesPerPixel)); -#endif - using (_nativeOpenGlWrapper!.MakeCurrent()) { - _framebuffer = _gl.GenBuffer(); - _gl.BindFramebuffer(GLEnum.Framebuffer, _framebuffer); - { - _textureColorBuffer = _gl.GenTexture(); - _gl.BindTexture(GLEnum.Texture2D, _textureColorBuffer); - { - _gl.TexImage2D(GLEnum.Texture2D, 0, InternalFormat.Rgb, _width, _height, 0, GLEnum.Rgb, - GLEnum.UnsignedByte, (void*)0); - _gl.TexParameterI(GLEnum.Texture2D, GLEnum.TextureMinFilter, (uint)GLEnum.Linear); - _gl.TexParameterI(GLEnum.Texture2D, GLEnum.TextureMagFilter, (uint)GLEnum.Linear); - _gl.FramebufferTexture2D(GLEnum.Framebuffer, FramebufferAttachment.ColorAttachment0, - GLEnum.Texture2D, _textureColorBuffer, 0); - } - _gl.BindTexture(GLEnum.Texture2D, 0); - - _renderBuffer = _gl.GenRenderbuffer(); - _gl.BindRenderbuffer(GLEnum.Renderbuffer, _renderBuffer); - { - _gl.RenderbufferStorage(GLEnum.Renderbuffer, InternalFormat.Depth24Stencil8, _width, _height); - _gl.FramebufferRenderbuffer(GLEnum.Framebuffer, GLEnum.DepthStencilAttachment, - GLEnum.Renderbuffer, _renderBuffer); - } - _gl.BindRenderbuffer(GLEnum.Renderbuffer, 0); - - if (_gl.CheckFramebufferStatus(GLEnum.Framebuffer) != GLEnum.FramebufferComplete) - { - throw new InvalidOperationException("Offscreen framebuffer is not complete"); - } - - Init(_gl); - } - _gl.BindFramebuffer(GLEnum.Framebuffer, 0); + UpdateFramebuffer(); + Init(_gl); } var window = @@ -248,8 +200,6 @@ private unsafe void OnLoaded(object sender, RoutedEventArgs routedEventArgs) { fe.Unloaded += OnClosed; } - - Invalidate(); } private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) @@ -278,16 +228,12 @@ private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) } #endif OnDestroy(_gl); - _gl.DeleteFramebuffer(_framebuffer); - _gl.DeleteTexture(_textureColorBuffer); - _gl.DeleteRenderbuffer(_renderBuffer); + _details?.Dispose(); _gl.Dispose(); } _gl = default; - _framebuffer = default; - _textureColorBuffer = default; - _renderBuffer = default; + _details = default; #if WINAPPSDK _pixels = default; #endif @@ -308,6 +254,40 @@ private void OnUnloaded(object sender, RoutedEventArgs routedEventArgs) } } + private void UpdateFramebuffer() + { + if (!IsLoaded) + { + return; + } + + global::System.Diagnostics.Debug.Assert(_gl is not null); + + if (this.Log().IsEnabled(LogLevel.Debug)) + { + this.Log().Debug($"Updating backing framebuffer with size={RenderSize}"); + } + + using (_nativeOpenGlWrapper!.MakeCurrent()) + { + _details?.Dispose(); + _details = new FrameBufferDetails(_gl, RenderSize); + } + +#if WINAPPSDK + if (_pixels != IntPtr.Zero) + { + Marshal.FreeHGlobal(_pixels); + } + _pixels = Marshal.AllocHGlobal(((int)RenderSize.Width * (int)RenderSize.Height * BytesPerPixel)); +#endif + + _backBuffer = new WriteableBitmap((int)RenderSize.Width, (int)RenderSize.Height); + ((ImageBrush)Background).ImageSource = _backBuffer; + + Invalidate(); + } + private unsafe void Render() { if (!IsLoaded) @@ -315,13 +295,13 @@ private unsafe void Render() return; } - global::System.Diagnostics.Debug.Assert(_gl is not null); // because _gl exists if loaded + global::System.Diagnostics.Debug.Assert(_gl is not null && _details is not null && _backBuffer is not null); using var _ = _nativeOpenGlWrapper!.MakeCurrent(); - _gl!.BindFramebuffer(GLEnum.Framebuffer, _framebuffer); + _gl!.BindFramebuffer(GLEnum.Framebuffer, _details.Framebuffer); { - _gl.Viewport(new System.Drawing.Size((int)_width, (int)_height)); + _gl.Viewport(new System.Drawing.Size((int)RenderSize.Width, (int)RenderSize.Height)); RenderOverride(_gl); @@ -336,9 +316,9 @@ private unsafe void Render() #else Buffer.Cast(_backBuffer.PixelBuffer).ApplyActionOnRawBufferPtr(ptr => { - _gl.ReadPixels(0, 0, _width, _height, GLEnum.Bgra, GLEnum.UnsignedByte, (void*)ptr); + _gl.ReadPixels(0, 0, (uint)RenderSize.Width, (uint)RenderSize.Height, GLEnum.Bgra, GLEnum.UnsignedByte, (void*)ptr); }); - _backBuffer.PixelBuffer.Length = _width * _height * BytesPerPixel; + _backBuffer.PixelBuffer.Length = (uint)RenderSize.Width * (uint)RenderSize.Height * BytesPerPixel; #endif _backBuffer.Invalidate(); } diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs index 07b1e327a772..40d05b96d803 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs @@ -23,7 +23,7 @@ namespace UITests.Shared.Windows_UI_Composition #if WINAPPSDK public class RotatingCubeGlCanvasElement() : GLCanvasElement(1200, 800, () => SamplesApp.App.MainWindow) #else - public class RotatingCubeGlCanvasElement() : GLCanvasElement(1200, 800, null) + public class RotatingCubeGlCanvasElement() : GLCanvasElement(null) #endif { private static BufferObject _vbo; diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs index ec43239acfac..58965b1e4914 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs @@ -9,9 +9,9 @@ namespace UITests.Shared.Windows_UI_Composition // https://learnopengl.com/Getting-started/Hello-Triangle public class SimpleTriangleGlCanvasElement() #if WINAPPSDK - : GLCanvasElement(1200, 800, () => SamplesApp.App.MainWindow) + : GLCanvasElement(() => SamplesApp.App.MainWindow) #else - : GLCanvasElement(1200, 800, null) + : GLCanvasElement(null) #endif { private uint _vao; From 09b3e61edc6201762eb825eab67ed951b83a202c Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 17:55:18 +0300 Subject: [PATCH 046/664] chore: doc adjustments (cherry picked from commit ef09851f149c78ee3abdd7eae23fb972235e03a0) --- doc/articles/controls/GLCanvasElement.md | 12 +++++------- 1 file changed, 5 insertions(+), 7 deletions(-) diff --git a/doc/articles/controls/GLCanvasElement.md b/doc/articles/controls/GLCanvasElement.md index 18bc78a96ccc..9e92f9d8a189 100644 --- a/doc/articles/controls/GLCanvasElement.md +++ b/doc/articles/controls/GLCanvasElement.md @@ -12,22 +12,20 @@ uid: Uno.Controls.GLCanvasElement To use `GLCanvasElement`, create a subclass of `GLCanvasElement` and override the abstract methods `Init`, `RenderOverride` and `OnDestroy`. ```csharp -protected GLCanvasElement(uint width, uint height, Func getWindowFunc); +protected GLCanvasElement(Func getWindowFunc); protected abstract void Init(GL gl); protected abstract void RenderOverride(GL gl); protected abstract void OnDestroy(GL gl); ``` -The protected constructor has `width` and `height` parameters, which decide the resolution of the offscreen framebuffer that the `GLCanvasElement` will draw onto. Note that these parameters are unrelated to the final size of the drawing in the window. After drawing (using `RenderOverride`) is done, the output is resized to fit the arranged size of the `GLCanvasElement`. You can control the final size just like any other `Grid`, e.g. using `MeasureOverride`, `ArrangeOverride`, the `Width/Height` properties, etc. - -The protected constructor additionally requires a `Func` argument that fetches the `Microsoft.UI.Xaml.Window` object that the `GLCanvasElement` belongs to. This function is required because WinUI doesn't provide a way to get the `Window` of a `FrameworkElement`. This paramater is ignored on Uno Platform and can be set to null. This function is only called while the `GLCanvasElement` is still in the visual tree. +The protected constructor requires a `Func` argument that fetches the `Microsoft.UI.Xaml.Window` object that the `GLCanvasElement` belongs to. This function is required because WinUI doesn't provide a way to get the `Window` of a `FrameworkElement`. This paramater is ignored on Uno Platform and can be set to null. This function is only called while the `GLCanvasElement` is still in the visual tree. The 3 abstract methods above all take a `Silk.NET.OpenGL.GL` parameter that can be used to make OpenGL calls. The `Init` method is a regular OpenGL setup method that you can use to set up the needed OpenGL objects, like textures, Vertex Array Buffers (VAOs), Element Array Buffers (EBOs), etc. The `OnDestroy` method is the complement of `Init` and is used to clean up any allocated resources. `Init` and `OnDestroy` might be called multiple times alternatingly. In other words, 2 `OnDestroy` calls are guaranteed to have an `Init` call in between and vice versa. -The `RenderOverride` is the main render-loop function. When adding your drawing logic in `RenderOverride`, you can assume that the OpenGL viewport rectangle is already set and its dimensions are equal to the `resolution` parameter provided to the `GLCanvasElement` constructor. +The `RenderOverride` is the main render-loop function. When adding your drawing logic in `RenderOverride`, you can assume that the OpenGL viewport rectangle is already set and its dimensions are equal to the `RenderSize` of the `GLCanvasElement`. On MacOS, since OpenGL support is not natively present, we use [ANGLE](https://en.wikipedia.org/wiki/ANGLE_(software)) to provide OpenGL ES support. This means that we're actually using OpenGL ES 3.00, not OpenGL. Due to the similarity between desktop OpenGL and OpenGL ES, (almost) all the OpenGL ES functions are present in the `Silk.NET.OpenGL.GL` API surface and therefore we can use the same class to represent both the OpenGL and OpenGL ES APIs. To run the same `GLCanvasElement` subclasses on all supported platforms, make sure to use a subset of functions that are present in both APIs (which is almost all of OpenGL ES). @@ -85,9 +83,9 @@ public partial class GLCanvasElementExample : UserControl // https://learnopengl.com/Getting-started/Hello-Triangle public class SimpleTriangleGlCanvasElement() #if WINAPPSDK - : GLCanvasElement(1200, 800, () => SamplesApp.App.MainWindow) + : GLCanvasElement(() => SamplesApp.App.MainWindow) #else - : GLCanvasElement(1200, 800, null) + : GLCanvasElement(null) #endif { private uint _vao; From c710032395beb336501af64fa529e3aa6b117e78 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 17:59:44 +0300 Subject: [PATCH 047/664] chore: adjust docs (cherry picked from commit 6f7d982c8f562ce92b6fe7bd525cfb3b673b4e1f) --- doc/articles/controls/GLCanvasElement.md | 9 +++------ .../RotatingCubeGlCanvasElement.cs | 7 ++----- .../SimpleTriangleGlCanvasElement.cs | 8 +++----- 3 files changed, 8 insertions(+), 16 deletions(-) diff --git a/doc/articles/controls/GLCanvasElement.md b/doc/articles/controls/GLCanvasElement.md index 9e92f9d8a189..5df8619aa714 100644 --- a/doc/articles/controls/GLCanvasElement.md +++ b/doc/articles/controls/GLCanvasElement.md @@ -79,14 +79,11 @@ public partial class GLCanvasElementExample : UserControl ```csharp // GLTriangleElement.cs -# __SKIA__ || WINAPPSDK +#if DESKTOP || WINDOWS // https://learnopengl.com/Getting-started/Hello-Triangle public class SimpleTriangleGlCanvasElement() -#if WINAPPSDK - : GLCanvasElement(() => SamplesApp.App.MainWindow) -#else - : GLCanvasElement(null) -#endif + // Assuming that App.xaml.cs has a static property named MainWindow + : GLCanvasElement(() => App.MainWindow) { private uint _vao; private uint _vbo; diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs index 40d05b96d803..09b674d6ce5c 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/RotatingCubeGlCanvasElement.cs @@ -15,16 +15,13 @@ using System; using System.Diagnostics; using System.Numerics; +using SamplesApp; using Silk.NET.OpenGL; using Uno.WinUI.Graphics3DGL; namespace UITests.Shared.Windows_UI_Composition { -#if WINAPPSDK - public class RotatingCubeGlCanvasElement() : GLCanvasElement(1200, 800, () => SamplesApp.App.MainWindow) -#else - public class RotatingCubeGlCanvasElement() : GLCanvasElement(null) -#endif + public class RotatingCubeGlCanvasElement() : GLCanvasElement(() => App.MainWindow) { private static BufferObject _vbo; private static BufferObject _ebo; diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs index 58965b1e4914..a64a808ae7ac 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Composition/SimpleTriangleGlCanvasElement.cs @@ -1,6 +1,8 @@ #if __SKIA__ || WINAPPSDK using System; using System.Drawing; +using Microsoft.UI.Xaml; +using SamplesApp; using Silk.NET.OpenGL; using Uno.WinUI.Graphics3DGL; @@ -8,11 +10,7 @@ namespace UITests.Shared.Windows_UI_Composition { // https://learnopengl.com/Getting-started/Hello-Triangle public class SimpleTriangleGlCanvasElement() -#if WINAPPSDK - : GLCanvasElement(() => SamplesApp.App.MainWindow) -#else - : GLCanvasElement(null) -#endif + : GLCanvasElement(() => App.MainWindow) { private uint _vao; private uint _vbo; From 3fe780fdcc68eb38fe8cce20de850f2db9d1766d Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 9 Oct 2024 20:07:11 +0300 Subject: [PATCH 048/664] chore: build errors (cherry picked from commit e918a944130a69b5c6d23b351ed689246de30dd7) --- src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs index d4047aa01561..fe6a994616b5 100644 --- a/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs +++ b/src/AddIns/Uno.WinUI.Graphics3DGL/GLCanvasElement.cs @@ -117,7 +117,7 @@ protected GLCanvasElement(Func? getWindowFunc) if (!_xamlRootToWrapper.TryGetValue(xamlRoot, out var nativeOpenGlWrapper)) { #if WINAPPSDK - var nativeOpenGlWrapper = new WinUINativeOpenGLWrapper(xamlRoot, getWindowFunc!); + nativeOpenGlWrapper = new WinUINativeOpenGLWrapper(xamlRoot, getWindowFunc!); #else if (!ApiExtensibility.CreateInstance(xamlRoot, out nativeOpenGlWrapper)) { @@ -308,10 +308,10 @@ private unsafe void Render() _gl.ReadBuffer(GLEnum.ColorAttachment0); #if WINAPPSDK - _gl.ReadPixels(0, 0, _width, _height, GLEnum.Bgra, GLEnum.UnsignedByte, (void*)_pixels); + _gl.ReadPixels(0, 0, (uint)RenderSize.Width, (uint)RenderSize.Height, GLEnum.Bgra, GLEnum.UnsignedByte, (void*)_pixels); using (var stream = _backBuffer.PixelBuffer.AsStream()) { - stream.Write(new ReadOnlySpan((void*)_pixels, (int)(_width * _height * BytesPerPixel))); + stream.Write(new ReadOnlySpan((void*)_pixels, (int)RenderSize.Width * (int)RenderSize.Height * BytesPerPixel)); } #else Buffer.Cast(_backBuffer.PixelBuffer).ApplyActionOnRawBufferPtr(ptr => From bdbb1edfb0d2708ed579285bc52621c3bed3a330 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 10 Oct 2024 11:53:19 -0400 Subject: [PATCH 049/664] chore: Adjust GL docs, use GLCanvas feature (cherry picked from commit 6c47d28a0a4a42a513a637d72baf703e3cb9252a) --- .../test-scripts/run-net7-template-linux.ps1 | 4 +-- doc/articles/controls/GLCanvasElement.md | 26 ++++++++++++++----- doc/articles/features/using-the-uno-sdk.md | 1 + doc/articles/toc.yml | 4 ++- src/Uno.Sdk/Sdk/Sdk.props.buildschema.json | 2 +- src/Uno.Sdk/UnoFeature.cs | 2 +- ...cit.Packages.ProjectSystem.Desktop.targets | 2 +- ...t.Packages.ProjectSystem.WinAppSdk.targets | 2 +- 8 files changed, 29 insertions(+), 14 deletions(-) diff --git a/build/test-scripts/run-net7-template-linux.ps1 b/build/test-scripts/run-net7-template-linux.ps1 index 5d03aca580e2..ecfff12045fa 100644 --- a/build/test-scripts/run-net7-template-linux.ps1 +++ b/build/test-scripts/run-net7-template-linux.ps1 @@ -62,8 +62,8 @@ $projects = # 5.2 Blank SkiaSharp 3 @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", "-p:SkiaSharpVersion=3.0.0-preview.3.1"), - # 5.2 Blank Canvas3DGL - @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", "-p:UnoFeatures=Canvas3DGL"), + # 5.2 Blank GLCanvas + @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", "-p:UnoFeatures=GLCanvas"), # 5.2 Uno Lib @(1, "5.2/uno52Lib/uno52Lib.csproj", ""), diff --git a/doc/articles/controls/GLCanvasElement.md b/doc/articles/controls/GLCanvasElement.md index 5df8619aa714..5e3d9e342858 100644 --- a/doc/articles/controls/GLCanvasElement.md +++ b/doc/articles/controls/GLCanvasElement.md @@ -2,12 +2,12 @@ uid: Uno.Controls.GLCanvasElement --- -## Uno.WinUI.Graphics3D.GLCanvasElement - > [!IMPORTANT] -> This functionality is only available on WinUI and Skia Desktop (`netX.0-desktop`) targets that are running on platforms with support for hardware acceleration. On Windows and Linux, this means having (desktop) OpenGL support. On Mac OS X, this means having Vulkan support (to be used by [ANGLE](https://en.wikipedia.org/wiki/ANGLE_(software))). +> This functionality is only available on WinAppSDK and Skia Desktop (`netX.0-desktop`) targets that are running on platforms with support for hardware acceleration. On Windows and Linux, OpenGL is used directly and on macOS, Metal is used through the [ANGLE](https://en.wikipedia.org/wiki/ANGLE_(software)) library. + +`GLCanvasElement` is a control for drawing 3D graphics with OpenGL. It can be enabled by adding the [`GLCanvas` UnoFeature](xref:Uno.Features.Uno.Sdk). The OpenGL APIs provided are provided by [Silk.NET](https://dotnet.github.io/Silk.NET/). -`GLCanvasElement` is a `Grid` for drawing 3D graphics with OpenGL. This class comes as a part of the `Uno.WinUI.Graphics3D` package. +## Using the GLCanvasElement To use `GLCanvasElement`, create a subclass of `GLCanvasElement` and override the abstract methods `Init`, `RenderOverride` and `OnDestroy`. @@ -19,20 +19,32 @@ protected abstract void RenderOverride(GL gl); protected abstract void OnDestroy(GL gl); ``` -The protected constructor requires a `Func` argument that fetches the `Microsoft.UI.Xaml.Window` object that the `GLCanvasElement` belongs to. This function is required because WinUI doesn't provide a way to get the `Window` of a `FrameworkElement`. This paramater is ignored on Uno Platform and can be set to null. This function is only called while the `GLCanvasElement` is still in the visual tree. +These three abstract methods take a `Silk.NET.OpenGL.GL` parameter that can be used to make OpenGL calls. + +### The GLCanvasElement constructor -The 3 abstract methods above all take a `Silk.NET.OpenGL.GL` parameter that can be used to make OpenGL calls. +The protected constructor requires a `Func` argument that fetches the `Microsoft.UI.Xaml.Window` object that the `GLCanvasElement` belongs to. This function is required because WinUI doesn't yet provide a way to get the `Window` of a `FrameworkElement`. This paramater is ignored on Uno Platform and must be set to null. This function is only called while the `GLCanvasElement` is still in the visual tree. + +### The `Init` method The `Init` method is a regular OpenGL setup method that you can use to set up the needed OpenGL objects, like textures, Vertex Array Buffers (VAOs), Element Array Buffers (EBOs), etc. The `OnDestroy` method is the complement of `Init` and is used to clean up any allocated resources. `Init` and `OnDestroy` might be called multiple times alternatingly. In other words, 2 `OnDestroy` calls are guaranteed to have an `Init` call in between and vice versa. +### The `RenderOverride` method + The `RenderOverride` is the main render-loop function. When adding your drawing logic in `RenderOverride`, you can assume that the OpenGL viewport rectangle is already set and its dimensions are equal to the `RenderSize` of the `GLCanvasElement`. +### macOS Specifics + On MacOS, since OpenGL support is not natively present, we use [ANGLE](https://en.wikipedia.org/wiki/ANGLE_(software)) to provide OpenGL ES support. This means that we're actually using OpenGL ES 3.00, not OpenGL. Due to the similarity between desktop OpenGL and OpenGL ES, (almost) all the OpenGL ES functions are present in the `Silk.NET.OpenGL.GL` API surface and therefore we can use the same class to represent both the OpenGL and OpenGL ES APIs. To run the same `GLCanvasElement` subclasses on all supported platforms, make sure to use a subset of functions that are present in both APIs (which is almost all of OpenGL ES). -To learn more about using [Silk.NET](https://www.nuget.org/packages/Silk.NET.OpenGL/) as a C# binding for OpenGL, see the examples in the Silk.NET repository [here](https://github.com/dotnet/Silk.NET/tree/main/examples/CSharp). Note that the windowing and inputs APIs in Silk.NET are not relevant to `GLCanvasElement`, since we only use Silk.NET as an OpenGL binding library, not a windowing library. +## Invalidating the canvas Additionally, `GLCanvasElement` has an `Invalidate` method that requests a redrawing of the `GLCanvasElement`, calling `RenderOverride` in the process. Note that `RenderOverride` will only be called once per `Invalidate` call and the output will be saved to be used in future frames. To update the output, you must call `Invalidate`. If you need to continuously update the output (e.g. in an animation), you can add an `Invalidate` call inside `RenderOverride`. +## How to use Silk.NET + +To learn more about using [Silk.NET](https://www.nuget.org/packages/Silk.NET.OpenGL/) as a C# binding for OpenGL, see the examples in the Silk.NET repository [here](https://github.com/dotnet/Silk.NET/tree/main/examples/CSharp). Note that the windowing and inputs APIs in Silk.NET are not relevant to `GLCanvasElement`, since we only use Silk.NET as an OpenGL binding library, not a windowing library. + ## Full example To see this in action, here's a complete sample that uses `GLCanvasElement` to draw a triangle. Note how you have to be careful with surrounding all the OpenGL-related logic in platform-specific guards. This is the case for both the [XAML](platform-specific-xaml) and the [code-behind](platform-specific-csharp). diff --git a/doc/articles/features/using-the-uno-sdk.md b/doc/articles/features/using-the-uno-sdk.md index 0fe4e356758d..f82af75ffb31 100644 --- a/doc/articles/features/using-the-uno-sdk.md +++ b/doc/articles/features/using-the-uno-sdk.md @@ -74,6 +74,7 @@ Here are the supported features: | `Dsp` | Adds support for the [Uno.Dsp.Tasks packages](https://www.nuget.org/packages?q=uno.dsp.tasks). | | `Prism` | Adds [Prism](https://github.com/PrismLibrary/Prism) support for Uno Platform applications WinUI. | | `Skia` | Adds support for [SkiaSharp](https://github.com/mono/SkiaSharp). | +| `GLCanvas` | Adds support for the [OpenGL Canvas](xref:Uno.Controls.GLCanvasElement). | | `Svg` | [SVG](xref:Uno.Features.SVG) support for iOS, Android, and Mac Catalyst. This option is not needed when only targeting WebAssembly and WinAppSDK. | | `Lottie` | Adds support for [Lottie animations](xref:Uno.Features.Lottie). | diff --git a/doc/articles/toc.yml b/doc/articles/toc.yml index 9ad0e31383d8..8102bd116d05 100644 --- a/doc/articles/toc.yml +++ b/doc/articles/toc.yml @@ -441,7 +441,7 @@ - name: Frame href: controls/Frame.md - name: GLCanvasElement - href: controls/GLCanvasElement.md + href: xref:Uno.Controls.GLCanvasElement - name: Image href: xref:Uno.Features.Image - name: ListView and GridView @@ -464,6 +464,8 @@ href: controls/RefreshContainer.md - name: ScrollViewer href: controls/ScrollViewer.md + - name: SKCanvasElement + href: xref:Uno.Controls.SKCanvasElement - name: TextBox href: controls/TextBox.md - name: TimePicker diff --git a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json index 88e31a3360bf..2eccb69242cc 100644 --- a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json +++ b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json @@ -515,7 +515,7 @@ "description": "Adds support for SVG images.", "helpUrl": "https://aka.platform.uno/feature-svg" }, - "Canvas3DGL": { + "GLCanvas": { "description": "Adds support for 3D graphics APIs based on OpenGL." } } diff --git a/src/Uno.Sdk/UnoFeature.cs b/src/Uno.Sdk/UnoFeature.cs index e83c7e334735..dce59c3e85e7 100644 --- a/src/Uno.Sdk/UnoFeature.cs +++ b/src/Uno.Sdk/UnoFeature.cs @@ -93,5 +93,5 @@ public enum UnoFeature Svg, [UnoArea(UnoArea.Core)] - Canvas3DGL + GLCanvas } diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets index 8815c12f0f5b..88512919efb3 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets @@ -6,7 +6,7 @@ --> - + <_UnoProjectSystemPackageReference Include="Uno.WinUI.Graphics3DGL" ProjectSystem="true" /> diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets index a8a806218f3e..38272123d0a3 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets @@ -14,7 +14,7 @@ <_UnoProjectSystemPackageReference Include="SkiaSharp.Views.WinUI" ProjectSystem="true" /> - + <_UnoProjectSystemPackageReference Include="Uno.WinUI.Graphics3DGL" ProjectSystem="true" /> From 17b043930614c949d5c873779758b4043cbebd22 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 10 Oct 2024 12:27:43 -0400 Subject: [PATCH 050/664] chore: Adjust lowercase feature (cherry picked from commit 1c1de9fe4ea9a841da970d665a2f570321a2e928) --- .../targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets | 2 +- .../Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets index 88512919efb3..7189164753d9 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.Desktop.targets @@ -6,7 +6,7 @@ --> - + <_UnoProjectSystemPackageReference Include="Uno.WinUI.Graphics3DGL" ProjectSystem="true" /> diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets index 38272123d0a3..015da8c212a6 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.WinAppSdk.targets @@ -14,7 +14,7 @@ <_UnoProjectSystemPackageReference Include="SkiaSharp.Views.WinUI" ProjectSystem="true" /> - + <_UnoProjectSystemPackageReference Include="Uno.WinUI.Graphics3DGL" ProjectSystem="true" /> From 44c5bce9ef3dbe6719da426a682793346c905c9f Mon Sep 17 00:00:00 2001 From: David Date: Thu, 10 Oct 2024 15:02:10 -0400 Subject: [PATCH 051/664] feat: All server processors to get services from DI (cherry picked from commit bd05b70b9015200fd904d3ab5373d7962f574391) --- .../Uno.Utils.DependencyInjection/ServiceAttribute.cs | 9 +++++++-- .../ServiceCollectionServiceExtensions.cs | 2 +- src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs | 3 ++- 3 files changed, 10 insertions(+), 4 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs index 7c99d5d2f9c8..136798d820de 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs @@ -9,7 +9,7 @@ namespace Uno.Utils.DependencyInjection; /// /// Type of the contract (i.e. interface) implemented by the concrete type. /// Concrete type to register in the service collection. -[AttributeUsage(AttributeTargets.Assembly)] +[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] public class ServiceAttribute(Type contract, Type implementation) : Attribute { /// @@ -37,7 +37,12 @@ public ServiceAttribute(Type implementation) public ServiceLifetime LifeTime { get; set; } = ServiceLifetime.Singleton; /// - /// Indicates if the service should be automatically initialized at startup. + /// Indicates if the service should be automatically initialized at startup (a.k.a. hosted service). /// public bool IsAutoInit { get; set; } + + /// + /// Provides a key to identify the service (service will be registered as keyed service if not null). + /// + public object? Key { get; set; } } diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs index f0b44f9b539e..27cd270e5aa7 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs @@ -30,7 +30,7 @@ public static IServiceCollection AddFromAttribute(this IServiceCollection svc) foreach (var service in services) { - svc.Add(new ServiceDescriptor(service!.Contract, service.Implementation, service.LifeTime)); + svc.Add(new ServiceDescriptor(service!.Contract, service.Key, service.Implementation, service.LifeTime)); } svc.AddHostedService(s => new AutoInitService(s, services!)); diff --git a/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs b/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs index fcee10f8e710..dbb9d80fb160 100644 --- a/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs +++ b/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs @@ -9,6 +9,7 @@ using System.Threading; using System.Threading.Tasks; using Microsoft.Extensions.Configuration; +using Microsoft.Extensions.DependencyInjection; using Microsoft.Extensions.Logging; using Newtonsoft.Json; using Uno.Extensions; @@ -355,7 +356,7 @@ private async Task ProcessDiscoveryFrame(Frame frame) try { - if (asm.assembly.CreateInstance(processor.ProcessorType.FullName!, ignoreCase: false, bindingAttr: BindingFlags.Instance | BindingFlags.Public, binder: null, args: new[] { this }, culture: null, activationAttributes: null) is IServerProcessor serverProcessor) + if (ActivatorUtilities.CreateInstance(_serviceProvider, processor.ProcessorType, parameters: new[] { this }) is IServerProcessor serverProcessor) { discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: true)); RegisterProcessor(serverProcessor); From 7a646d6e4c439c336cad46e19086ceed9ee1b42a Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Fri, 11 Oct 2024 14:17:59 +0200 Subject: [PATCH 052/664] chore: Emulate button press on touch --- .../X11PointerInputSource.XInput.cs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs index a8c719a0e6b3..74a8d19c141c 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs @@ -212,10 +212,14 @@ public unsafe PointerEventArgs CreatePointerEventArgsFromDeviceEvent(XIDeviceEve { mask &= ~(1 << data.detail); // the newly released button is not removed from the mask yet. } + else if (data.evtype is XiEventType.XI_TouchBegin or XiEventType.XI_TouchUpdate) + { + mask = 1 << data.detail; // touch events only have one button. + } var properties = new PointerPointProperties { - IsLeftButtonPressed = (mask & (1 << LEFT)) != 0, + IsLeftButtonPressed = (mask & (1 << LEFT)) != 0 || (data.evtype is XiEventType.XI_TouchBegin or XiEventType.XI_TouchUpdate), IsMiddleButtonPressed = (mask & (1 << MIDDLE)) != 0, IsRightButtonPressed = (mask & (1 << RIGHT)) != 0, IsXButton1Pressed = (mask & (1 << XButton1)) != 0, @@ -237,6 +241,8 @@ public unsafe PointerEventArgs CreatePointerEventArgsFromDeviceEvent(XIDeviceEve XButton1 when data.evtype == XiEventType.XI_ButtonRelease => PointerUpdateKind.XButton1Released, XButton2 when data.evtype == XiEventType.XI_ButtonPress => PointerUpdateKind.XButton2Pressed, XButton2 when data.evtype == XiEventType.XI_ButtonRelease => PointerUpdateKind.XButton2Released, + _ when data.evtype == XiEventType.XI_TouchBegin => PointerUpdateKind.LeftButtonPressed, + _ when data.evtype == XiEventType.XI_TouchEnd => PointerUpdateKind.LeftButtonReleased, _ => PointerUpdateKind.Other } }; From ba42b35e7ec4c73dc5a5f214be8fcbf4be789e19 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Fri, 11 Oct 2024 14:23:16 +0200 Subject: [PATCH 053/664] chore: Ignore emulated --- src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs index 74a8d19c141c..0bfc4d575b1e 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs @@ -384,6 +384,8 @@ public void HandleXI2Event(XEvent ev) { this.Log().Trace($"Ignoring emulated {evtype} event."); } + + return; } var args = CreatePointerEventArgsFromDeviceEvent(data); From d20e41422d21e9e0188b0220884901b60d8d7739 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Tue, 8 Oct 2024 20:07:33 -0300 Subject: [PATCH 054/664] chore: add notification bar (cherry picked from commit d6494a0621f529ece2c8239a690382c671560b64) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 90 ++++++++++++++++++- .../IDEChannel/IDEChannelClient.cs | 11 +++ .../Notifications/InfoBar.cs | 2 + 3 files changed, 101 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 104bf01b1c7a..858c507fd5be 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -10,18 +10,21 @@ using System.Reflection; using System.Threading; using System.Threading.Tasks; -using System.Windows.Forms; using EnvDTE; using EnvDTE80; using Microsoft.Build.Evaluation; using Microsoft.Internal.VisualStudio.Shell; +using Microsoft.VisualStudio; +using Microsoft.VisualStudio.Imaging; using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Threading; using Microsoft.VisualStudio.Shell.Interop; +using Microsoft.VisualStudio.Threading; using Uno.UI.RemoteControl.Messaging.IdeChannel; +using Uno.UI.RemoteControl.Messaging.IDEChannel; using Uno.UI.RemoteControl.VS.DebuggerHelper; using Uno.UI.RemoteControl.VS.Helpers; using Uno.UI.RemoteControl.VS.IdeChannel; +using Uno.UI.RemoteControl.VS.Notifications; using ILogger = Uno.UI.RemoteControl.VS.Helpers.ILogger; using Task = System.Threading.Tasks.Task; @@ -344,6 +347,7 @@ private async Task EnsureServerAsync() _ideChannelClient = new IdeChannelClient(pipeGuid, new Logger(this)); _ideChannelClient.ForceHotReloadRequested += OnForceHotReloadRequestedAsync; + _ideChannelClient.InfoBarNotificationRequested += OnInfoBarNotificationRequestedAsync; _ideChannelClient.ConnectToHost(); // Set the port to the projects @@ -419,6 +423,67 @@ async Task Restart() } } + private async Task OnInfoBarNotificationRequestedAsync(object? sender, NotificationIdeMessage message) + { + try + { + await _asyncPackage.JoinableTaskFactory.SwitchToMainThreadAsync(); + + if (await _asyncPackage.GetServiceAsync(typeof(SVsShell)) is IVsShell shell && + await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUIFactory infoBarFactory) + { + await CreateInfoBarFactoryAsync(message, shell, infoBarFactory); + } + } + catch (Exception e) when (_ideChannelClient is not null) + { + _debugAction?.Invoke($"Failed to handle InfoBar Notification Requested with message {e.Message}"); + throw; + } + } + + private async Task CreateInfoBarFactoryAsync(NotificationIdeMessage e, IVsShell shell, IVsInfoBarUIFactory infoBarFactory) + { + if (_ideChannelClient is null) + { + return; + } + var factory = new InfoBarFactory(infoBarFactory, shell); + + var infoBar = await factory.CreateAsync( + new InfoBarModel( + e.Message, + e.Commands.Select(Commands => new ActionBarItem + { + Text = Commands.Text, + Name = Commands.Name, + ActionContext = Commands.Parameter, + IsButton = true, + }).ToArray(), + e.Kind == NotificationKind.Information ? KnownMonikers.StatusInformation : KnownMonikers.StatusError, + isCloseButtonVisible: true)); + + if (infoBar is not null) + { + infoBar.ActionItemClicked += (s, e) => + { + _asyncPackage.JoinableTaskFactory.Run(async () => + { + if (e.ActionItem is ActionBarItem action && + action.Name is { } command && + await GetActiveWindowHandleAsync() is { } windowID && + windowID != IntPtr.Zero + ) + { + ; + await _ideChannelClient.SendToDevServerAsync(new CommandRequestIdeMessage(windowID.ToInt64(), command, action.ActionContext?.ToString()), _ct.Token); + } + }); + }; + await infoBar.TryShowInfoBarUIAsync(); + } + } + private async Task OnForceHotReloadRequestedAsync(object? sender, ForceHotReloadIdeMessage request) { try @@ -582,4 +647,25 @@ private class Logger(EntryPoint entryPoint) : ILogger public void Warn(string message) => entryPoint._warningAction?.Invoke(message); public void Verbose(string message) => entryPoint._verboseAction?.Invoke(message); } + + public async Task GetActiveWindowHandleAsync() + { + await _asyncPackage.JoinableTaskFactory.SwitchToMainThreadAsync(); + + var vsMonitorSelection = await _asyncPackage.GetServiceAsync(typeof(SVsShellMonitorSelection)) as IVsMonitorSelection; + if (vsMonitorSelection == null) + { + throw new InvalidOperationException("Cannot retrieve IVsMonitorSelection."); + } + + vsMonitorSelection.GetCurrentElementValue((uint)VSConstants.VSSELELEMID.SEID_WindowFrame, out object windowFrameObj); + + if (windowFrameObj is IVsWindowFrame windowFrame) + { + windowFrame.GetProperty((int)__VSFPROPID2.VSFPROPID_ParentHwnd, out object windowHandle); + return (IntPtr)windowHandle; + } + + return IntPtr.Zero; // Retorna 0 se nenhuma janela ativa foi encontrada + } } diff --git a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs index 2c1125bb3bd0..86c08f51433d 100644 --- a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs +++ b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs @@ -3,11 +3,17 @@ using System.Linq; using System.Threading; using System.Threading.Tasks; +using EnvDTE; +using Microsoft.VisualStudio.Imaging; +using Microsoft.VisualStudio.Shell; +using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Threading; using StreamJsonRpc; using Uno.UI.RemoteControl.Host.IdeChannel; using Uno.UI.RemoteControl.Messaging.IdeChannel; +using Uno.UI.RemoteControl.Messaging.IDEChannel; using Uno.UI.RemoteControl.VS.Helpers; +using Uno.UI.RemoteControl.VS.Notifications; namespace Uno.UI.RemoteControl.VS.IdeChannel; @@ -21,6 +27,7 @@ internal class IdeChannelClient private readonly ILogger _logger; public event AsyncEventHandler? ForceHotReloadRequested; + public event AsyncEventHandler? InfoBarNotificationRequested; public IdeChannelClient(Guid pipeGuid, ILogger logger) { @@ -98,6 +105,10 @@ private void ProcessDevServerMessage(object sender, IdeMessageEnvelope devServer case KeepAliveIdeMessage: _logger.Verbose($"Keep alive from Dev Server"); break; + case NotificationIdeMessage e when e is { } message: + _logger.Verbose($"Dev Server will open the Notification Message with message {e.Message}"); + process = InfoBarNotificationRequested.InvokeAsync(this, message); + break; default: _logger.Verbose($"Unknown message type {devServerMessage?.GetType()} from DevServer"); break; diff --git a/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs b/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs index 0e4cc9aaef95..81d794905a0f 100644 --- a/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs +++ b/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs @@ -120,6 +120,8 @@ class ActionBarItem : IVsInfoBarActionItem { public string? Text { get; set; } + public string? Name { get; set; } + public bool Bold { get; set; } public bool Italic { get; set; } From a92dc5085a5b5f240524a750a5bf556b70f84c04 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 14:32:56 -0300 Subject: [PATCH 055/664] chore: get windows Handle ID (cherry picked from commit d77d8f829c189981c109ce3ac74a25ab45a7700f) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 26 ++++++------------- .../IDEChannel/IDEChannelClient.cs | 5 ++-- 2 files changed, 10 insertions(+), 21 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 858c507fd5be..96376098e0ff 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -20,7 +20,6 @@ using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Threading; using Uno.UI.RemoteControl.Messaging.IdeChannel; -using Uno.UI.RemoteControl.Messaging.IDEChannel; using Uno.UI.RemoteControl.VS.DebuggerHelper; using Uno.UI.RemoteControl.VS.Helpers; using Uno.UI.RemoteControl.VS.IdeChannel; @@ -423,7 +422,7 @@ async Task Restart() } } - private async Task OnInfoBarNotificationRequestedAsync(object? sender, NotificationIdeMessage message) + private async Task OnInfoBarNotificationRequestedAsync(object? sender, NotificationRequestIdeMessage message) { try { @@ -442,7 +441,7 @@ await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUI } } - private async Task CreateInfoBarFactoryAsync(NotificationIdeMessage e, IVsShell shell, IVsInfoBarUIFactory infoBarFactory) + private async Task CreateInfoBarFactoryAsync(NotificationRequestIdeMessage e, IVsShell shell, IVsInfoBarUIFactory infoBarFactory) { if (_ideChannelClient is null) { @@ -475,7 +474,6 @@ await GetActiveWindowHandleAsync() is { } windowID && windowID != IntPtr.Zero ) { - ; await _ideChannelClient.SendToDevServerAsync(new CommandRequestIdeMessage(windowID.ToInt64(), command, action.ActionContext?.ToString()), _ct.Token); } }); @@ -650,22 +648,14 @@ private class Logger(EntryPoint entryPoint) : ILogger public async Task GetActiveWindowHandleAsync() { - await _asyncPackage.JoinableTaskFactory.SwitchToMainThreadAsync(); + //System.Diagnostics.Process.GetCurrentProcess().Id + IntPtr hWnd = IntPtr.Zero; + IVsUIShell? uiShell = await _asyncPackage.GetServiceAsync(typeof(SVsUIShell)) as IVsUIShell; - var vsMonitorSelection = await _asyncPackage.GetServiceAsync(typeof(SVsShellMonitorSelection)) as IVsMonitorSelection; - if (vsMonitorSelection == null) + if (uiShell != null) { - throw new InvalidOperationException("Cannot retrieve IVsMonitorSelection."); + uiShell.GetDialogOwnerHwnd(out hWnd); } - - vsMonitorSelection.GetCurrentElementValue((uint)VSConstants.VSSELELEMID.SEID_WindowFrame, out object windowFrameObj); - - if (windowFrameObj is IVsWindowFrame windowFrame) - { - windowFrame.GetProperty((int)__VSFPROPID2.VSFPROPID_ParentHwnd, out object windowHandle); - return (IntPtr)windowHandle; - } - - return IntPtr.Zero; // Retorna 0 se nenhuma janela ativa foi encontrada + return hWnd; } } diff --git a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs index 86c08f51433d..71edf86ea14d 100644 --- a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs +++ b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs @@ -11,7 +11,6 @@ using StreamJsonRpc; using Uno.UI.RemoteControl.Host.IdeChannel; using Uno.UI.RemoteControl.Messaging.IdeChannel; -using Uno.UI.RemoteControl.Messaging.IDEChannel; using Uno.UI.RemoteControl.VS.Helpers; using Uno.UI.RemoteControl.VS.Notifications; @@ -27,7 +26,7 @@ internal class IdeChannelClient private readonly ILogger _logger; public event AsyncEventHandler? ForceHotReloadRequested; - public event AsyncEventHandler? InfoBarNotificationRequested; + public event AsyncEventHandler? InfoBarNotificationRequested; public IdeChannelClient(Guid pipeGuid, ILogger logger) { @@ -105,7 +104,7 @@ private void ProcessDevServerMessage(object sender, IdeMessageEnvelope devServer case KeepAliveIdeMessage: _logger.Verbose($"Keep alive from Dev Server"); break; - case NotificationIdeMessage e when e is { } message: + case NotificationRequestIdeMessage e when e is { } message: _logger.Verbose($"Dev Server will open the Notification Message with message {e.Message}"); process = InfoBarNotificationRequested.InvokeAsync(this, message); break; From 6148443be93791067c5c90a0d6111415f3f5210d Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 14:50:32 -0300 Subject: [PATCH 056/664] chore: use process id (cherry picked from commit 56da17557cc98f5ea4ca17f94f0444e03df99019) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 25 +++++++---------------- 1 file changed, 7 insertions(+), 18 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 96376098e0ff..7d11c45cf377 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -469,12 +469,14 @@ private async Task CreateInfoBarFactoryAsync(NotificationRequestIdeMessage e, IV _asyncPackage.JoinableTaskFactory.Run(async () => { if (e.ActionItem is ActionBarItem action && - action.Name is { } command && - await GetActiveWindowHandleAsync() is { } windowID && - windowID != IntPtr.Zero - ) + action.Name is { } command) { - await _ideChannelClient.SendToDevServerAsync(new CommandRequestIdeMessage(windowID.ToInt64(), command, action.ActionContext?.ToString()), _ct.Token); + var cmd = + new CommandRequestIdeMessage( + System.Diagnostics.Process.GetCurrentProcess().Id, + command, + action.ActionContext?.ToString()); + await _ideChannelClient.SendToDevServerAsync(cmd, _ct.Token); } }); }; @@ -645,17 +647,4 @@ private class Logger(EntryPoint entryPoint) : ILogger public void Warn(string message) => entryPoint._warningAction?.Invoke(message); public void Verbose(string message) => entryPoint._verboseAction?.Invoke(message); } - - public async Task GetActiveWindowHandleAsync() - { - //System.Diagnostics.Process.GetCurrentProcess().Id - IntPtr hWnd = IntPtr.Zero; - IVsUIShell? uiShell = await _asyncPackage.GetServiceAsync(typeof(SVsUIShell)) as IVsUIShell; - - if (uiShell != null) - { - uiShell.GetDialogOwnerHwnd(out hWnd); - } - return hWnd; - } } From 95c44060d99423246a102915e875adac8eb4b128 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 15:14:17 -0300 Subject: [PATCH 057/664] chore: remove extra reference (cherry picked from commit 095d85d7d1a6876cc8beb2151b46c4619c74e5e5) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 7d11c45cf377..a2238a9ee7c7 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -14,7 +14,6 @@ using EnvDTE80; using Microsoft.Build.Evaluation; using Microsoft.Internal.VisualStudio.Shell; -using Microsoft.VisualStudio; using Microsoft.VisualStudio.Imaging; using Microsoft.VisualStudio.Shell; using Microsoft.VisualStudio.Shell.Interop; From e84a2c894cf01631ca2749f01040774dc7c3c68d Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 15:33:43 -0300 Subject: [PATCH 058/664] chore: update event name (cherry picked from commit fa522e3b62af77d4c097808634ac8a9fbe085efa) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 8 ++++---- .../IDEChannel/IDEChannelClient.cs | 4 ++-- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index a2238a9ee7c7..6dcb387a85f6 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -345,7 +345,7 @@ private async Task EnsureServerAsync() _ideChannelClient = new IdeChannelClient(pipeGuid, new Logger(this)); _ideChannelClient.ForceHotReloadRequested += OnForceHotReloadRequestedAsync; - _ideChannelClient.InfoBarNotificationRequested += OnInfoBarNotificationRequestedAsync; + _ideChannelClient.OnMessageReceived += OnMessageReceivedAsync; _ideChannelClient.ConnectToHost(); // Set the port to the projects @@ -421,7 +421,7 @@ async Task Restart() } } - private async Task OnInfoBarNotificationRequestedAsync(object? sender, NotificationRequestIdeMessage message) + private async Task OnMessageReceivedAsync(object? sender, NotificationRequestIdeMessage message) { try { @@ -430,7 +430,7 @@ private async Task OnInfoBarNotificationRequestedAsync(object? sender, Notificat if (await _asyncPackage.GetServiceAsync(typeof(SVsShell)) is IVsShell shell && await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUIFactory infoBarFactory) { - await CreateInfoBarFactoryAsync(message, shell, infoBarFactory); + await CreateInfoBarAsync(message, shell, infoBarFactory); } } catch (Exception e) when (_ideChannelClient is not null) @@ -440,7 +440,7 @@ await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUI } } - private async Task CreateInfoBarFactoryAsync(NotificationRequestIdeMessage e, IVsShell shell, IVsInfoBarUIFactory infoBarFactory) + private async Task CreateInfoBarAsync(NotificationRequestIdeMessage e, IVsShell shell, IVsInfoBarUIFactory infoBarFactory) { if (_ideChannelClient is null) { diff --git a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs index 71edf86ea14d..9e689a836dc1 100644 --- a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs +++ b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs @@ -26,7 +26,7 @@ internal class IdeChannelClient private readonly ILogger _logger; public event AsyncEventHandler? ForceHotReloadRequested; - public event AsyncEventHandler? InfoBarNotificationRequested; + public event AsyncEventHandler? OnMessageReceived; public IdeChannelClient(Guid pipeGuid, ILogger logger) { @@ -106,7 +106,7 @@ private void ProcessDevServerMessage(object sender, IdeMessageEnvelope devServer break; case NotificationRequestIdeMessage e when e is { } message: _logger.Verbose($"Dev Server will open the Notification Message with message {e.Message}"); - process = InfoBarNotificationRequested.InvokeAsync(this, message); + process = OnMessageReceived.InvokeAsync(this, message); break; default: _logger.Verbose($"Unknown message type {devServerMessage?.GetType()} from DevServer"); From 7d94f96f54ec174287dbe8148871210a793fea36 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 15:39:05 -0300 Subject: [PATCH 059/664] chore: remove unnecessary namespaces (cherry picked from commit da8d2feb4472187808112622109a6ec1819a1004) --- src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs index 9e689a836dc1..bc68df51227c 100644 --- a/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs +++ b/src/Uno.UI.RemoteControl.VS/IDEChannel/IDEChannelClient.cs @@ -1,18 +1,13 @@ using System; using System.IO.Pipes; -using System.Linq; using System.Threading; using System.Threading.Tasks; -using EnvDTE; -using Microsoft.VisualStudio.Imaging; using Microsoft.VisualStudio.Shell; -using Microsoft.VisualStudio.Shell.Interop; using Microsoft.VisualStudio.Threading; using StreamJsonRpc; using Uno.UI.RemoteControl.Host.IdeChannel; using Uno.UI.RemoteControl.Messaging.IdeChannel; using Uno.UI.RemoteControl.VS.Helpers; -using Uno.UI.RemoteControl.VS.Notifications; namespace Uno.UI.RemoteControl.VS.IdeChannel; From 52a50e19d3267c228d6fe46b6c53e1db8454a0d2 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 10 Oct 2024 15:53:34 -0300 Subject: [PATCH 060/664] chore: change to get the windowid from process (cherry picked from commit c7dc816ce18e62248f826abca97a7a9307696abd) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 6dcb387a85f6..643f077ed430 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -472,7 +472,7 @@ private async Task CreateInfoBarAsync(NotificationRequestIdeMessage e, IVsShell { var cmd = new CommandRequestIdeMessage( - System.Diagnostics.Process.GetCurrentProcess().Id, + System.Diagnostics.Process.GetCurrentProcess().MainWindowHandle.ToInt64(), command, action.ActionContext?.ToString()); await _ideChannelClient.SendToDevServerAsync(cmd, _ct.Token); From 97cfa0d60005f3ebb19df5edac13156b2d07ca0b Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Mon, 7 Oct 2024 12:09:00 -0400 Subject: [PATCH 061/664] docs: Update desktop publishing article --- build/cSpell.json | 1 + doc/articles/uno-publishing-desktop.md | 128 +++++++++++++++++++------ 2 files changed, 101 insertions(+), 28 deletions(-) diff --git a/build/cSpell.json b/build/cSpell.json index b93032229ee6..550040fd683d 100644 --- a/build/cSpell.json +++ b/build/cSpell.json @@ -87,6 +87,7 @@ "signalr", "Skia", "skiasharp", + "Snapcraft", "Storyboarded", "struct", "Syncfusion", diff --git a/doc/articles/uno-publishing-desktop.md b/doc/articles/uno-publishing-desktop.md index 592b331cb71f..117f84723c21 100644 --- a/doc/articles/uno-publishing-desktop.md +++ b/doc/articles/uno-publishing-desktop.md @@ -2,50 +2,122 @@ uid: uno.publishing.desktop --- -# Publishing Your App for Desktop +# Publishing Your App For Desktop ## Preparing For Publish -- [Profile your app with VS 2022](https://learn.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2022) +- [Profile your app with Visual Studio](https://learn.microsoft.com/en-us/visualstudio/profiling) - [Profile using dotnet-trace and SpeedScope](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-trace) -## Publish your app - -### Using Visual Studio 2022 - -To publish your app with Visual Studio 2022: +## Publish Using Visual Studio 2022 - In the debugger toolbar drop-down, select the `net8.0-desktop` target framework - Once the project has reloaded, right-click on the project and select **Publish** -- Select the appropriate target for your publication, this example will use the **Folder**, then click **Next** -- Choose an output folder for the published output, then click **Close**. -- In the opened editor, click the **Configuration** "pen" to edit the configuration -- In the opened popup, ensure that **Target Framework** is set to `net8.0-desktop`, then click **Save** -- On the top right, click the **Publish** button -- Once the build is done, the output is located in the publish folder +- Select the **Folder** target for your publication then click **Next** +- Select the **Folder** target again then **Next** +- Choose an output folder then click **Finish** +- The profile is created, you can now **Close** the dialog +- In the opened editor, click `Show all settings` +- Set **Configuration** to `Release` +- Set **Target framework** to `net8.0-desktop` +- You can set **Deployment mode** to either `Framework-dependent` or `Self-contained` + - If `Self-contained` is chosen and you're targeting Windows, **Target runtime** must match the installed .NET SDK runtime identifier + as cross-publishing self-contained WPF apps (e.g. win-x64 to win-arm64) is not supported for now. +- You can set **Target runtime**, make sure it honors the above limitation, if it applies. +- Click **Save** +- Click **Publish** + +## Publish Using The CLI + +On Windows/macOS/Linux, open a terminal in your `csproj` folder and run: + +```shell +dotnet publish -f net8.0-desktop +``` + +If you wish to do a self-contained publish, run the following instead: + +```shell +dotnet publish -f net8.0-desktop -r {{RID}} -p:SelfContained=true +``` + +Where `{{RID}}` specifies the chosen OS and Architecture (e.g. win-x64). Again when targeting Windows, cross-publishing is not supported. -Once done, you can head over to the [publishing section](xref:uno.publishing.webassembly#publishing). +### macOS App Bundles + +We now support generating .app bundles on macOS machines. From the CLI run: + +```shell +dotnet publish -f net8.0-desktop -p:PackageFormat=app +``` + +You can also do a self-contained publish with: + +```shell +dotnet publish -f net8.0-desktop -r {{RID}} -p:SelfContained=true -p:PackageFormat=app +``` + +Where `{{RID}}` is either `osx-x64` or `osx-arm64`. + +> [!NOTE] +> Code signing is planned but not supported yet. -### Using the Command Line +### Snap Packages -To build your app from the CLI, on Windows, Linux, or macOS: +We support creating .snap packages on **Ubuntu 20.04** or later. -- Open a terminal, command line, or powershell -- Navigate to your `csproj` folder -- Publish the app using: +#### Requirements - ```shell - dotnet publish -f net8.0-desktop -c Release -o ./publish - ``` +The following must be installed and configured: + +- snapd +- snaps (with `snap install`): + - core20 on Ubuntu 20.04 + - core22 on Ubuntu 22.04 + - core24 on Ubuntu 24.04 + - multipass + - lxd + - current user must be part of the `lxd` group + - `lxd init --minimal` or similar should be run + - snapcraft + +> [!NOTE] +> Docker may interfere with Lxd causing network connectivity issues, for solutions see: https://documentation.ubuntu.com/lxd/en/stable-5.0/howto/network_bridge_firewalld/#prevent-connectivity-issues-with-lxd-and-docker + +#### Publishing A Snap + +To publish a snap, run: + +```shell +dotnet publish -f net8.0-desktop -r {{RID}} -p:SelfContained=true -p:PackageFormat=snap +``` + +Where `{{RID}}` is either `linux-x64` or `linux-arm64`. + +We generate snap manifests in classic confinement mode and a .desktop file by default. + +If you wish to customize your snap manifest, you will need to pass the following MSBuild properties: + +- SnapManifest +- DesktopFile + +The `.desktop` filename MUST conform to the Desktop File spec. + +If you wish, you can generate a default snap manifest and desktop file by running the command above, then tweak them. + +> [!NOTE] +> .NET 9 publishing and cross-publishing are not supported as of Uno 5.5, we will support .NET 9 publishing soon. -- Once the build is done, the output is located in the `./publish` folder +## Limitations -## Publishing +- NativeAOT is not supported +- R2R is not supported +- Single file publish is not supported > [!NOTE] -> Work still in progress for publishing to some targets. +> Publishing is a work in progress -Publishing your app can be done through different means: +## Links -- [ClickOnce](https://learn.microsoft.com/visualstudio/deployment/quickstart-deploy-using-clickonce-folder?view=vs-2022) on Windows -- Using a Zip file, then running the app using `dotnet [yourapp].dll` +- [Snapcraft.yaml schema](https://snapcraft.io/docs/snapcraft-yaml-schema) +- [Desktop Entry Specification](https://specifications.freedesktop.org/desktop-entry-spec/latest) From 9b70b992af73416119154cd39411036221a5c996 Mon Sep 17 00:00:00 2001 From: xiaoy312 Date: Thu, 10 Oct 2024 16:14:25 -0400 Subject: [PATCH 062/664] chore: add tests against tp regressions --- .../Given_VisualStateManager.cs | 49 +++++++++++++++++++ .../Windows_UI_Xaml_Controls/Given_Pivot.cs | 19 +++++++ 2 files changed, 68 insertions(+) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs index 3a51ccce3318..4c6567b05172 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs @@ -1,7 +1,15 @@ +using System; +using System.Linq; using System.Threading.Tasks; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Controls.Primitives; using Microsoft.UI.Xaml.Media; +using Microsoft.UI.Xaml.Shapes; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MUXControlsTestApp.Utilities; +using Uno.Extensions; +using Uno.UI.Extensions; using Uno.UI.RuntimeTests.Helpers; namespace Uno.UI.RuntimeTests.Tests.Windows_UI_Xaml; @@ -30,4 +38,45 @@ public async Task When_Transition_Modifies_SubProperty_Of_Property_Set_By_Previo await Task.Delay(1000); Assert.AreEqual(Microsoft.UI.Colors.Red, ((SolidColorBrush)border.Background).Color); } + + [TestMethod] + public async Task SelectorItem_SelectedState() + { + var items = Enumerable.Range(0, 3).ToArray(); + var setup = new GridView + { + ItemsSource = items, + SelectedItem = items.Last(), + }; + await UITestHelper.Load(setup); + + var container2 = setup.ContainerFromIndex(2) as GridViewItem ?? throw new Exception("Failed to retrieve container at index 2"); + + // check if the visual-state is set + var states = VisualStateHelper.GetCurrentVisualStateName(container2).ToArray(); + Assert.IsTrue(states.Contains("Selected"), $"container2 is not in 'Selected' state: states={states.JoinBy(",")}"); + } + + [TestMethod] + public Task SelectorItem_MultiSelectState_GV() => SelectorItem_MultiSelectState_Impl(); + + [TestMethod] + public Task SelectorItem_MultiSelectState_LV() => SelectorItem_MultiSelectState_Impl(); + + public async Task SelectorItem_MultiSelectState_Impl() where T : ListViewBase, new() + { + var items = Enumerable.Range(0, 3).ToArray(); + var setup = new T + { + ItemsSource = items, + SelectionMode = ListViewSelectionMode.Multiple, + }; + await UITestHelper.Load(setup); + + var container2 = setup.ContainerFromIndex(2) as SelectorItem ?? throw new Exception("Failed to retrieve container at index 2"); + + // check if the visual-state is set + var states = VisualStateHelper.GetCurrentVisualStateName(container2).ToArray(); + Assert.IsTrue(states.Contains("MultiSelectEnabled"), $"container2 is not in 'MultiSelectEnabled' state: states={states.JoinBy(",")}"); + } } diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs index aad9f8473787..32fc7b0a5aed 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs @@ -12,6 +12,7 @@ using static Private.Infrastructure.TestServices; using Uno.UI.Extensions; using Microsoft.UI.Xaml.Controls.Primitives; +using Uno.UI.RuntimeTests.Helpers; namespace Uno.UI.RuntimeTests.Tests.Windows_UI_Xaml_Controls { @@ -126,6 +127,24 @@ public async Task Check_Changing_SelectedItem_Affects_SelectedIndex() SUT.SelectedItem.Should().Be(pivotItem2); } + [TestMethod] + [RunsOnUIThread] + public async Task Pivot_Single_ItemContent_Visible() + { + var items = Enumerable.Range(0, 3).ToArray(); + var setup = new Pivot + { + ItemsSource = items, + SelectedItem = items.Last(), + }; + await UITestHelper.Load(setup); + + var containers = items.Select((x, i) => setup.ContainerFromIndex(i)).OfType().ToArray(); + + Assert.AreEqual(3, containers.Length, "Should have 3 containers"); + Assert.AreEqual(1, containers.Count(x => x.Visibility == Visibility.Visible), "Only one PivotItem should be visible"); + } + private class MyContext { public MyContext() From 147c87997d9904667401aba20954e9a3f621ccdb Mon Sep 17 00:00:00 2001 From: xiaoy312 Date: Fri, 11 Oct 2024 18:46:15 -0400 Subject: [PATCH 063/664] chore: ITemplatedParentProvider removal --- .../Given_DependencyObjectGenerator.cs | 24 +--- .../DependencyObjectGenerator.cs | 38 +------ .../TemplatedParent/Setup/BehaviorSetup.xaml | 19 ---- .../Setup/BehaviorSetup.xaml.cs | 106 ------------------ .../TemplatedParent/TemplatedParentTests.cs | 21 ---- .../Controls/NativeFramePresenter.iOS.cs | 15 +-- src/Uno.UI/DataBinding/BindingExpression.cs | 16 +-- .../DataBinding/ITemplatedParentProvider.cs | 28 ----- src/Uno.UI/NativeFramePresenter.Android.cs | 6 +- .../NativeScrollContentPresenter.iOS.cs | 2 +- .../UI/Xaml/DependencyObjectExtensions.cs | 10 ++ src/Uno.UI/UI/Xaml/FrameworkElement.cs | 9 ++ src/Uno.UI/UI/Xaml/TemplatedParentScope.cs | 15 ++- src/Uno.UI/UI/Xaml/VisualState.cs | 2 +- src/Uno.UI/UI/Xaml/VisualTransition.cs | 2 +- 15 files changed, 45 insertions(+), 268 deletions(-) delete mode 100644 src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml delete mode 100644 src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs delete mode 100644 src/Uno.UI/DataBinding/ITemplatedParentProvider.cs diff --git a/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs b/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs index 731110a9ed7e..d0b5ac652ef3 100644 --- a/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs +++ b/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs @@ -159,7 +159,7 @@ internal partial class Inner : DependencyObject partial class OuterClass { [global::Microsoft.UI.Xaml.Data.Bindable] - partial class Inner : IDependencyObjectStoreProvider, ITemplatedParentProvider, IWeakReferenceProvider + partial class Inner : IDependencyObjectStoreProvider, IWeakReferenceProvider { private DependencyObjectStore __storeBackingField; public global::Windows.UI.Core.CoreDispatcher Dispatcher => global::Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher; @@ -185,28 +185,6 @@ private DependencyObjectStore __Store public object GetAnimationBaseValue(DependencyProperty dp) => __Store.GetAnimationBaseValue(dp); public long RegisterPropertyChangedCallback(DependencyProperty dp, DependencyPropertyChangedCallback callback) => __Store.RegisterPropertyChangedCallback(dp, callback); public void UnregisterPropertyChangedCallback(DependencyProperty dp, long token) => __Store.UnregisterPropertyChangedCallback(dp, token); - - [EditorBrowsable(EditorBrowsableState.Never)]private ManagedWeakReference _templatedParentWeakRef; - [EditorBrowsable(EditorBrowsableState.Never)]public ManagedWeakReference GetTemplatedParentWeakRef() => _templatedParentWeakRef; - - [EditorBrowsable(EditorBrowsableState.Never)]public DependencyObject GetTemplatedParent() => _templatedParentWeakRef?.Target as DependencyObject; - [EditorBrowsable(EditorBrowsableState.Never)]public void SetTemplatedParent(DependencyObject parent) - { - //if (parent != null) - //{ - // global::System.Diagnostics.Debug.Assert(parent - // is global::Windows.UI.Xaml.Controls.Control - // or global::Windows.UI.Xaml.Controls.ContentPresenter - // or global::Windows.UI.Xaml.Controls.ItemsPresenter); - // global::System.Diagnostics.Debug.Assert(GetTemplatedParent() == null); - //} - - SetTemplatedParentImpl(parent); - } - [EditorBrowsable(EditorBrowsableState.Never)]private protected virtual void SetTemplatedParentImpl(DependencyObject parent) - { - _templatedParentWeakRef = (parent as IWeakReferenceProvider)?.WeakReference; - } private readonly static IEventProvider _binderTrace = Tracing.Get(DependencyObjectStore.TraceProvider.Id); private BinderReferenceHolder _refHolder; diff --git a/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs b/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs index 059614e4d766..9769dfb9e452 100644 --- a/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs +++ b/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs @@ -175,18 +175,15 @@ private void ProcessType(INamedTypeSymbol typeSymbol) } }; - var canBeTpProvider = !typeSymbol.Interfaces.Any(x => x.Name == "INotTemplatedParentProvider"); - var implementations = new string?[] { "IDependencyObjectStoreProvider", _isUnoSolution && !typeSymbol.IsSealed ? "IDependencyObjectInternal" : null, - canBeTpProvider ? "ITemplatedParentProvider" : null, "IWeakReferenceProvider", }.Where(x => x is not null); using (typeSymbol.AddToIndentedStringBuilder(builder, beforeClassHeaderAction, afterClassHeader: " : " + string.Join(", ", implementations))) { - GenerateDependencyObjectImplementation(typeSymbol, builder, hasDispatcherQueue: _dependencyObjectSymbol!.GetMembers("DispatcherQueue").Any(), canBeTpProvider); + GenerateDependencyObjectImplementation(typeSymbol, builder, hasDispatcherQueue: _dependencyObjectSymbol!.GetMembers("DispatcherQueue").Any()); GenerateIBinderImplementation(typeSymbol, builder); } @@ -768,7 +765,7 @@ public override bool Equals(object other) } } - private void GenerateDependencyObjectImplementation(INamedTypeSymbol typeSymbol, IndentedStringBuilder builder, bool hasDispatcherQueue, bool implTpProvider) + private void GenerateDependencyObjectImplementation(INamedTypeSymbol typeSymbol, IndentedStringBuilder builder, bool hasDispatcherQueue) { builder.AppendLineIndented(@"private DependencyObjectStore __storeBackingField;"); builder.AppendLineIndented(@"public global::Windows.UI.Core.CoreDispatcher Dispatcher => global::Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher;"); @@ -818,37 +815,6 @@ private void GenerateDependencyObjectImplementation(INamedTypeSymbol typeSymbol, builder.AppendLineIndented("internal virtual void OnPropertyChanged2(global::Microsoft.UI.Xaml.DependencyPropertyChangedEventArgs args) { }"); } } - - if (implTpProvider) - { - var unoBrowsableOnly = _isUnoSolution ? null : "[EditorBrowsable(EditorBrowsableState.Never)]"; - - builder.AppendLine(); - builder.AppendMultiLineIndented($$""" - {{unoBrowsableOnly}}private ManagedWeakReference _templatedParentWeakRef; - {{unoBrowsableOnly}}public ManagedWeakReference GetTemplatedParentWeakRef() => _templatedParentWeakRef; - - {{unoBrowsableOnly}}public DependencyObject GetTemplatedParent() => _templatedParentWeakRef?.Target as DependencyObject; - {{unoBrowsableOnly}}public void SetTemplatedParent(DependencyObject parent) - { - //if (parent != null) - //{ - // global::System.Diagnostics.Debug.Assert(parent - // is global::Windows.UI.Xaml.Controls.Control - // or global::Windows.UI.Xaml.Controls.ContentPresenter - // or global::Windows.UI.Xaml.Controls.ItemsPresenter); - // global::System.Diagnostics.Debug.Assert(GetTemplatedParent() == null); - //} - - SetTemplatedParentImpl(parent); - } - {{unoBrowsableOnly}}{{(typeSymbol.IsSealed ? "private" : "private protected virtual")}} void SetTemplatedParentImpl(DependencyObject parent) - { - _templatedParentWeakRef = (parent as IWeakReferenceProvider)?.WeakReference; - } - """ - ); - } } } } diff --git a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml deleted file mode 100644 index bfe83efffdbf..000000000000 --- a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs deleted file mode 100644 index 4c515ab34c65..000000000000 --- a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; -using System.Diagnostics.CodeAnalysis; -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -#if HAS_UNO -using Uno.UI.DataBinding; -#endif - -namespace Uno.UI.RuntimeTests.Tests.TemplatedParent.Setup; - -public sealed partial class BehaviorSetup : Page -{ - public BehaviorSetup() - { - this.InitializeComponent(); - } -} - -public sealed class Interaction -{ - #region DependencyProperty: Behaviors - - public static DependencyProperty BehaviorsProperty { get; } = DependencyProperty.RegisterAttached( - "Behaviors", - typeof(BehaviorCollection), - typeof(Interaction), - new PropertyMetadata(null, OnBehaviorsChanged)); - - public static BehaviorCollection GetBehaviors(DependencyObject obj) => GetBehaviorsOverride(obj); - public static void SetBehaviors(DependencyObject obj, BehaviorCollection value) => obj.SetValue(BehaviorsProperty, value); - - #endregion - - private static BehaviorCollection GetBehaviorsOverride(DependencyObject obj) - { - var value = (BehaviorCollection)obj.GetValue(BehaviorsProperty); - if (value is null) - { - obj.SetValue(BehaviorsProperty, value = new BehaviorCollection()); - } - - return value; - } - - private static void OnBehaviorsChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) - { - if (e.NewValue is BehaviorCollection collection) - { - collection.AssociatedObject = sender; - } - } -} -public sealed class BehaviorCollection : DependencyObjectCollection -{ - public DependencyObject AssociatedObject { get; set; } -} - -public interface IBehavior { } - -public partial class LegacyDOBehavior : DependencyObject, IBehavior -#if HAS_UNO - , INotTemplatedParentProvider -#endif -{ - #region DependencyProperty: TestValue - - public static DependencyProperty TestValueProperty { get; } = DependencyProperty.Register( - nameof(TestValue), - typeof(object), - typeof(LegacyDOBehavior), - new PropertyMetadata(default(object), OnTestValueChanged)); - - public object TestValue - { - get => (object)GetValue(TestValueProperty); - set => SetValue(TestValueProperty, value); - } - - #endregion - - private static void OnTestValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) - { - } -} -public partial class NonLegacyDOBehavior : DependencyObject, IBehavior -{ - #region DependencyProperty: TestValue - - public static DependencyProperty TestValueProperty { get; } = DependencyProperty.Register( - nameof(TestValue), - typeof(object), - typeof(NonLegacyDOBehavior), - new PropertyMetadata(default(object), OnTestValueChanged)); - - public object TestValue - { - get => (object)GetValue(TestValueProperty); - set => SetValue(TestValueProperty, value); - } - - #endregion - - private static void OnTestValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) - { - } -} diff --git a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs index 2d2b4b02aeaa..a82b2487509d 100644 --- a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs +++ b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs @@ -289,27 +289,6 @@ public async Task VisualStateGroup_TP_Inheritance() """; VerifyTree(expectations, setup, checkVSG: true); } - -#if HAS_UNO - [TestMethod] - public async Task LegacyDO_StillSupports_TP_Injection() - { - var setup = new BehaviorSetup(); - await UITestHelper.Load(setup, x => x.IsLoaded); - - var button = setup.Content as Button ?? throw new Exception("button not found"); - var grid = button.GetTemplateRoot() ?? throw new Exception("template root not found"); - var collection = Interaction.GetBehaviors(grid) ?? throw new Exception("behavior collection not found"); - - var sut0 = collection.ElementAtOrDefault(0) as LegacyDOBehavior; - - // Verify that "legacy DepObj"(DO from library built before templated-parent rework) - // 1. is simulated correctly via the "INotTemplatedParentProvider" blocker - Assert.IsNotInstanceOfType(sut0, "sut0 shouldnt impl ITemplatedParentProvider"); - // 2. still supports tp-injection. - Assert.AreEqual(button.Tag, sut0.TestValue, "sut0.TestValue template-binding failed"); - } -#endif } public partial class TemplatedParentTests // helper methods { diff --git a/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs b/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs index acf1b430333d..77ef99731c6f 100644 --- a/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs +++ b/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs @@ -16,6 +16,7 @@ using System.Collections.Specialized; using System.Threading.Tasks; using ObjCRuntime; +using Uno.UI.Extensions; namespace Uno.UI.Controls { @@ -88,19 +89,19 @@ public NativeFramePresenter() NavigationController.NavigationBarHidden = true; } + private protected override void OnLoaded() + { + base.OnLoaded(); + + InitializeController(this.GetTemplatedParent() as Frame); + } + protected override Size MeasureOverride(Size availableSize) => MeasureFirstChild(availableSize); protected override Size ArrangeOverride(Size finalSize) => ArrangeFirstChild(finalSize); - private protected override void SetTemplatedParentImpl(DependencyObject parent) - { - base.SetTemplatedParentImpl(parent); - - InitializeController(parent as Frame); - } - /// /// Exposes the underlying instance used to display this frame presenter. /// diff --git a/src/Uno.UI/DataBinding/BindingExpression.cs b/src/Uno.UI/DataBinding/BindingExpression.cs index ec18e118ad06..6a57eb0b2eb7 100644 --- a/src/Uno.UI/DataBinding/BindingExpression.cs +++ b/src/Uno.UI/DataBinding/BindingExpression.cs @@ -54,13 +54,7 @@ public object DataContext { if (ParentBinding.IsTemplateBinding) { - return _view?.Target switch - { - ITemplatedParentProvider tpProvider => tpProvider.GetTemplatedParent(), - IDependencyObjectStoreProvider dosProvider => dosProvider.Store.GetTemplatedParent2(), - - _ => null, - }; + return (_view?.Target as IDependencyObjectStoreProvider)?.Store.GetTemplatedParent2(); } if (_isElementNameSource || ExplicitSource != null) { @@ -157,13 +151,7 @@ Binding binding private ManagedWeakReference GetWeakTemplatedParent() { - return _view?.Target switch - { - ITemplatedParentProvider tpProvider => tpProvider.GetTemplatedParentWeakRef(), - IDependencyObjectStoreProvider dosProvider => dosProvider.Store.GetTemplatedParentWeakRef(), - - _ => null, - }; + return (_view?.Target as IDependencyObjectStoreProvider)?.Store.GetTemplatedParentWeakRef(); } private ManagedWeakReference GetWeakDataContext() diff --git a/src/Uno.UI/DataBinding/ITemplatedParentProvider.cs b/src/Uno.UI/DataBinding/ITemplatedParentProvider.cs deleted file mode 100644 index c307f4f02ff3..000000000000 --- a/src/Uno.UI/DataBinding/ITemplatedParentProvider.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.UI.Xaml; - -namespace Uno.UI.DataBinding; - -[EditorBrowsable(EditorBrowsableState.Never)] -public interface ITemplatedParentProvider -{ - ManagedWeakReference GetTemplatedParentWeakRef(); - - DependencyObject GetTemplatedParent(); - - void SetTemplatedParent(DependencyObject parent); -} - -[EditorBrowsable(EditorBrowsableState.Never)] -/// -/// Marker interface used to block DependencyObjectGenerator -/// from injecting and its implementations. -/// -public interface INotTemplatedParentProvider -{ -} diff --git a/src/Uno.UI/NativeFramePresenter.Android.cs b/src/Uno.UI/NativeFramePresenter.Android.cs index 0729cfbfda17..c031e4abb882 100644 --- a/src/Uno.UI/NativeFramePresenter.Android.cs +++ b/src/Uno.UI/NativeFramePresenter.Android.cs @@ -38,11 +38,11 @@ public NativeFramePresenter() _pageStack = this; } - private protected override void SetTemplatedParentImpl(DependencyObject parent) + private protected override void OnLoaded() { - base.SetTemplatedParentImpl(parent); + base.OnLoaded(); - Initialize(parent as Frame); + Initialize(this.GetTemplatedParent() as Frame); } private void Initialize(Frame frame) diff --git a/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs b/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs index 8b42f95b8eaf..89a8be2e9f67 100644 --- a/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs +++ b/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs @@ -107,7 +107,7 @@ private void InvokeOnScroll() scroller.Presenter.OnNativeScroll(clampedOffset.X, clampedOffset.Y, isIntermediate: _isInAnimatedScroll); } - private ScrollViewer GetParentScrollViewer() => _scrollViewer.TryGetTarget(out var s) ? s : GetTemplatedParent() as ScrollViewer; + private ScrollViewer GetParentScrollViewer() => _scrollViewer.TryGetTarget(out var s) ? s : this.GetTemplatedParent() as ScrollViewer; // Called when user starts dragging private void OnDraggingStarted(object sender, EventArgs e) diff --git a/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs b/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs index 0036e8a9d464..c3d0de4a08be 100644 --- a/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs +++ b/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs @@ -448,5 +448,15 @@ internal static void RegisterPropertyChangedCallbackStrong(this IDependencyObjec // allows for some customization - e.g. glyphs should not respect this. internal static bool IsRightToLeft(this DependencyObject dependencyObject) => dependencyObject is FrameworkElement fw && fw.FlowDirection == FlowDirection.RightToLeft; + + internal static DependencyObject GetTemplatedParent(this DependencyObject @do) + { + return (@do as IDependencyObjectStoreProvider)?.Store.GetTemplatedParent2(); + } + + internal static void SetTemplatedParent(this DependencyObject @do, DependencyObject tp) + { + (@do as IDependencyObjectStoreProvider)?.Store.SetTemplatedParent2(tp); + } } } diff --git a/src/Uno.UI/UI/Xaml/FrameworkElement.cs b/src/Uno.UI/UI/Xaml/FrameworkElement.cs index 1cceaf162fe0..cd0f17591dde 100644 --- a/src/Uno.UI/UI/Xaml/FrameworkElement.cs +++ b/src/Uno.UI/UI/Xaml/FrameworkElement.cs @@ -1085,5 +1085,14 @@ private protected virtual bool HasTemplateChild() return null; } + + internal DependencyObject GetTemplatedParent() + { + return (this as IDependencyObjectStoreProvider)?.Store.GetTemplatedParent2(); + } + internal void SetTemplatedParent(DependencyObject tp) + { + (this as IDependencyObjectStoreProvider)?.Store.SetTemplatedParent2(tp); + } } } diff --git a/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs b/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs index 2d85062f360c..abfc2351690d 100644 --- a/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs +++ b/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs @@ -15,8 +15,11 @@ internal static class TemplatedParentScope /// Set the templated-parent for the dependency-object based on the currently materializing template. /// /// Should be true, if not called from ctor. + /// internal static void UpdateTemplatedParentIfNeeded(DependencyObject? @do, bool reapplyTemplateBindings = false, DependencyObjectStore? store = null) { + // note: `store` instance is used within DOStore.ctor to avoid stack overflow. + if (@do is null) return; if (GetCurrentTemplate() is { IsLegacyTemplate: true, TemplatedParent: { } tp }) { @@ -26,22 +29,18 @@ internal static void UpdateTemplatedParentIfNeeded(DependencyObject? @do, bool r internal static void UpdateTemplatedParent(DependencyObject? @do, DependencyObject tp, bool reapplyTemplateBindings = true, DependencyObjectStore? store = null) { - if (@do is ITemplatedParentProvider tpProvider) + if (@do is IDependencyObjectStoreProvider provider) { - tpProvider.SetTemplatedParent(tp); + (store ?? provider.Store).SetTemplatedParent2(tp); // note: This can be safely removed, once moving away from legacy impl. // In the new impl, the templated-parent would be immediately available // before any binding is applied, so there is no need to force update. - if (reapplyTemplateBindings && @do is IDependencyObjectStoreProvider dosProvider) + if (reapplyTemplateBindings) { - (store ?? dosProvider.Store).ApplyTemplateBindings(); + (store ?? provider.Store).ApplyTemplateBindings(); } } - else if (@do is IDependencyObjectStoreProvider dosProvider) - { - (store ?? dosProvider.Store).SetTemplatedParent2(tp); - } } internal static MaterializingTemplateInfo? GetCurrentTemplate() diff --git a/src/Uno.UI/UI/Xaml/VisualState.cs b/src/Uno.UI/UI/Xaml/VisualState.cs index 6f41073e312a..5dafa8649b72 100644 --- a/src/Uno.UI/UI/Xaml/VisualState.cs +++ b/src/Uno.UI/UI/Xaml/VisualState.cs @@ -165,7 +165,7 @@ private void EnsureMaterialized() LazyBuilder = null; try { - TemplatedParentScope.PushScope(GetTemplatedParent(), FromLegacyTemplate == true); + TemplatedParentScope.PushScope(this.GetTemplatedParent(), FromLegacyTemplate == true); builder.Invoke(); } finally diff --git a/src/Uno.UI/UI/Xaml/VisualTransition.cs b/src/Uno.UI/UI/Xaml/VisualTransition.cs index 2b4c5788ddb3..8d66b875799c 100644 --- a/src/Uno.UI/UI/Xaml/VisualTransition.cs +++ b/src/Uno.UI/UI/Xaml/VisualTransition.cs @@ -51,7 +51,7 @@ private void EnsureMaterialized() LazyBuilder = null; try { - TemplatedParentScope.PushScope(GetTemplatedParent(), FromLegacyTemplate == true); + TemplatedParentScope.PushScope(this.GetTemplatedParent(), FromLegacyTemplate == true); builder.Invoke(); } finally From a998147d3d83ef04a35e8a8844c5cd82a60748f7 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 10 Oct 2024 13:01:36 -0400 Subject: [PATCH 064/664] fix: Removed the waiting for TypeMappings to be resumed during hot reload: when paused, simply return a _ignored_ status instead. (cherry picked from commit 8a586f7677fcc19db57204db02d16cd5aefe80b9) --- ...ClientHotReloadProcessor.MetadataUpdate.cs | 24 +++--------- .../HotReload/HotReloadStatusView.cs | 38 +++++++++++-------- .../Frame/HRApp/Tests/Given_Frame.cs | 6 +-- .../Frame/HRApp/Tests/Given_TextBlock.cs | 36 +++++++++++++++++- src/Uno.UI/Helpers/TypeMappings.cs | 37 +++++------------- 5 files changed, 76 insertions(+), 65 deletions(-) diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs index 91c99dda90d9..5069bd7935a2 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs @@ -31,7 +31,6 @@ namespace Uno.UI.RemoteControl.HotReload; partial class ClientHotReloadProcessor { - private static int _isWaitingForTypeMapping; private static readonly AsyncLock _uiUpdateGate = new(); // We can use the simple AsyncLock here as we don't need reentrancy. private static ElementUpdateAgent? _elementAgent; @@ -53,23 +52,12 @@ private static ElementUpdateAgent ElementAgent } } - private static async Task<(bool value, string reason)> ShouldReload() + private static (bool value, string reason) ShouldReload() { - if (Interlocked.CompareExchange(ref _isWaitingForTypeMapping, 1, 0) == 1) - { - return (false, "another reload is already waiting for type mapping to resume"); - } - try - { - var shouldReload = await TypeMappings.WaitForResume(); - return shouldReload - ? (true, string.Empty) - : (false, "type mapping prevent reload"); - } - finally - { - Interlocked.Exchange(ref _isWaitingForTypeMapping, 0); - } + var isPaused = TypeMappings.IsPaused; + return isPaused + ? (false, "type mapping prevent reload") + : (true, string.Empty); } internal static void SetWindow(Window window, bool disableIndicator) @@ -116,7 +104,7 @@ private static async Task ReloadWithUpdatedTypes(HotReloadClientOperation? hrOp, { hrOp?.SetCurrent(); - if (await ShouldReload() is { value: false } prevent) + if (ShouldReload() is { value: false } prevent) { uiUpdating = false; hrOp?.ReportIgnored(prevent.reason); diff --git a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs index 08e45595a75e..92bfb5f3fc84 100644 --- a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs +++ b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs @@ -206,29 +206,35 @@ private void UpdateLog(RemoteControlStatus? oldStatus, RemoteControlStatus newSt private void UpdateLog(Status? oldStatus, Status status) { // Add or update the entries for the **operations** (server and the application). - foreach (var srvOp in status.Server.Operations) + if (status.Server.Operations is { }) // can be null during loading, creating a NRE { - ref var entry = ref CollectionsMarshal.GetValueRefOrAddDefault(_serverHrEntries, srvOp.Id, out var exists); - if (exists) + foreach (var srvOp in status.Server.Operations) { - entry!.Update(srvOp); - } - else - { - entry = new ServerEntry(srvOp); + ref var entry = ref CollectionsMarshal.GetValueRefOrAddDefault(_serverHrEntries, srvOp.Id, out var exists); + if (exists) + { + entry!.Update(srvOp); + } + else + { + entry = new ServerEntry(srvOp); + } } } - foreach (var localOp in status.Local.Operations) + if (status.Local.Operations is { }) // can be null during loading, creating a NRE { - ref var entry = ref CollectionsMarshal.GetValueRefOrAddDefault(_appHrEntries, localOp.Id, out var exists); - if (exists) + foreach (var localOp in status.Local.Operations) { - entry!.Update(localOp); - } - else - { - entry = new ApplicationEntry(localOp); + ref var entry = ref CollectionsMarshal.GetValueRefOrAddDefault(_appHrEntries, localOp.Id, out var exists); + if (exists) + { + entry!.Update(localOp); + } + else + { + entry = new ApplicationEntry(localOp); + } } } diff --git a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_Frame.cs b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_Frame.cs index 69ac07239b56..2925c44c3c28 100644 --- a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_Frame.cs +++ b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_Frame.cs @@ -160,7 +160,7 @@ await HotReloadHelper.UpdateServerFileAndRevert( finally { // Resume HR - TypeMappings.Resume(false); + TypeMappings.Resume(); } // Although HR has been un-paused (resumed) the UI should not have updated at this point @@ -211,7 +211,7 @@ await HotReloadHelper.UpdateServerFileAndRevert( FirstPageTextBlockChangedText, async () => { - // Confirm that reload compeleted has fired + // Confirm that reload completed has fired var uiUpdated = await waitingTask.WaitAsync(ct); Assert.IsFalse(uiUpdated, "UI should not have updated whilst ui updates paused"); await frame.ValidateTextOnChildTextBlock(FirstPageTextBlockOriginalText); @@ -221,7 +221,7 @@ await HotReloadHelper.UpdateServerFileAndRevert( finally { // Resume HR - TypeMappings.Resume(false); + TypeMappings.Resume(); } // Although HR has been un-paused (resumed) the UI should not have updated at this point diff --git a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs index feab9f1d612b..41784dacaac8 100644 --- a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs +++ b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs @@ -13,6 +13,7 @@ using Uno.UI.RuntimeTests.Tests.HotReload; using Uno.UI.RuntimeTests.Tests.HotReload.Frame; using Microsoft.VisualStudio.TestTools.UnitTesting; +using Uno.UI.Helpers; using Uno.UI.RemoteControl.HotReload; namespace Uno.UI.RuntimeTests.Tests.HotReload.Frame.HRApp.Tests; @@ -69,6 +70,37 @@ public async Task When_Changing_TextBlock_UsingHRClient() { var ct = new CancellationTokenSource(TimeSpan.FromSeconds(60)).Token; + UnitTestsUIContentHelper.Content = new ContentControl + { + Content = new HR_Frame_Pages_Page2() + }; + + var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(new HR_Frame_Pages_Page2()); + var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( + ctx.FileName, + SecondPageTextBlockOriginalText, + SecondPageTextBlockChangedText, + true) + .WithExtendedTimeouts(); // Required for CI + try + { + await hr.UpdateFileAsync(req, ct); + + await UnitTestsUIContentHelper.Content.ValidateTextOnChildTextBlock(SecondPageTextBlockChangedText); + } + finally + { + await hr.UpdateFileAsync(req.Undo(waitForHotReload: false), CancellationToken.None); + } + } + + // Another version of the test above, but pausing the TypeMapping before calling the file update + [TestMethod] + public async Task When_Changing_TextBlock_UsingHRClient_PausingTypeMapping() + { + var ct = new CancellationTokenSource(TimeSpan.FromSeconds(25)).Token; + UnitTestsUIContentHelper.Content = new ContentControl { Content = new HR_Frame_Pages_Page1() @@ -84,12 +116,14 @@ public async Task When_Changing_TextBlock_UsingHRClient() .WithExtendedTimeouts(); // Required for CI try { + TypeMappings.Pause(); await hr.UpdateFileAsync(req, ct); - await UnitTestsUIContentHelper.Content.ValidateTextOnChildTextBlock(FirstPageTextBlockChangedText); + await UnitTestsUIContentHelper.Content.ValidateTextOnChildTextBlock(FirstPageTextBlockOriginalText); // should NOT be changed } finally { + TypeMappings.Resume(); await hr.UpdateFileAsync(req.Undo(waitForHotReload: false), CancellationToken.None); } } diff --git a/src/Uno.UI/Helpers/TypeMappings.cs b/src/Uno.UI/Helpers/TypeMappings.cs index 4357bb7b0157..2da4cce7f6b2 100644 --- a/src/Uno.UI/Helpers/TypeMappings.cs +++ b/src/Uno.UI/Helpers/TypeMappings.cs @@ -94,6 +94,7 @@ internal static void RegisterMapping(Type mappedType, Type originalType) { AllMappedTypeToOriginalTypeMappings[mappedType] = originalType; AllOriginalTypeToMappedType[originalType] = mappedType; + if (_mappingsPaused is null) { MappedTypeToOriginalTypeMappings[mappedType] = originalType; @@ -114,19 +115,7 @@ internal static void ClearMappings() AllOriginalTypeToMappedType.Clear(); } - private static TaskCompletionSource _mappingsPaused; - - /// - /// Gets a Task that can be awaited to ensure type mappings - /// are being applied. This is useful particularly for testing - /// HR the pause/resume function of type mappings - /// - /// A task that will complete when type mapping collection - /// has resumed. Returns a completed task if type mapping collection - /// is currently active. - [Obsolete("Use WaitForResume instead")] - public static Task WaitForMappingsToResume() - => WaitForResume(); + private static TaskCompletionSource _mappingsPaused; /// /// Gets a Task that can be awaited to ensure type mappings @@ -137,17 +126,21 @@ public static Task WaitForMappingsToResume() /// has resumed. Returns a completed task if type mapping collection /// is currently active /// The value (bool) returned from the task indicates whether the layout should be updated - public static Task WaitForResume() + public static Task WaitForResume() => _mappingsPaused is not null ? _mappingsPaused.Task : Task.FromResult(true); + /// + /// Gets whether type mappings are currently paused + /// + public static bool IsPaused => _mappingsPaused is not null; + /// /// Pause the collection of type mappings. /// Internally the type mappings are still collected but will only be /// applied to the mapping dictionaries after Resume is called /// - public static void Pause() - => _mappingsPaused ??= new TaskCompletionSource(); + public static void Pause() => Interlocked.CompareExchange(ref _mappingsPaused, new TaskCompletionSource(), null); /// /// Resumes the collection of type mappings @@ -156,22 +149,12 @@ public static void Pause() /// the WaitForResume task completes /// public static void Resume() - => Resume(true); - - /// - /// Resumes the collection of type mappings - /// If new types have been created whilst type mapping - /// was paused, those new mappings will be applied before - /// the WaitForResume task completes - /// - /// Indicates whether the layout should be updated after resuming updates - public static void Resume(bool updateLayout) { if (Interlocked.Exchange(ref _mappingsPaused, null) is { } completion) { MappedTypeToOriginalTypeMappings = new Dictionary(AllMappedTypeToOriginalTypeMappings); OriginalTypeToMappedType = new Dictionary(AllOriginalTypeToMappedType); - completion.TrySetResult(updateLayout); + completion.TrySetResult(); } } } From 444aee1eca987249fa9edb08697bafaa7a822a7b Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Fri, 11 Oct 2024 10:32:44 -0400 Subject: [PATCH 065/664] ci: Allow breaking changes in public API for TypeMappings (cherry picked from commit f50866f5cbc93b52466d83ed6f1e98ea3e358706) --- build/PackageDiffIgnore.xml | 39 +++++++++++++++++++++++++++++++++---- 1 file changed, 35 insertions(+), 4 deletions(-) diff --git a/build/PackageDiffIgnore.xml b/build/PackageDiffIgnore.xml index 0113851ecedc..b7f9060e84c0 100644 --- a/build/PackageDiffIgnore.xml +++ b/build/PackageDiffIgnore.xml @@ -1781,7 +1781,7 @@ - + @@ -1801,7 +1801,7 @@ - + @@ -1827,7 +1827,7 @@ - + @@ -1905,7 +1905,7 @@ - + @@ -1951,9 +1951,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + Date: Fri, 11 Oct 2024 14:04:25 -0400 Subject: [PATCH 066/664] ci: Fixed missing XML escaping (cherry picked from commit 392dad6963470bf87800a3529d54fd94db69c4b8) --- build/PackageDiffIgnore.xml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/build/PackageDiffIgnore.xml b/build/PackageDiffIgnore.xml index b7f9060e84c0..875317d81ea1 100644 --- a/build/PackageDiffIgnore.xml +++ b/build/PackageDiffIgnore.xml @@ -1954,7 +1954,7 @@ - + @@ -1972,14 +1972,14 @@ - + - + - + From e04f7eb9d216641a5024c46cc9660a29a6c8949a Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Mon, 7 Oct 2024 12:09:00 -0400 Subject: [PATCH 067/664] docs: Update desktop publishing article (cherry picked from commit 97cfa0d60005f3ebb19df5edac13156b2d07ca0b) --- build/cSpell.json | 1 + doc/articles/uno-publishing-desktop.md | 128 +++++++++++++++++++------ 2 files changed, 101 insertions(+), 28 deletions(-) diff --git a/build/cSpell.json b/build/cSpell.json index b93032229ee6..550040fd683d 100644 --- a/build/cSpell.json +++ b/build/cSpell.json @@ -87,6 +87,7 @@ "signalr", "Skia", "skiasharp", + "Snapcraft", "Storyboarded", "struct", "Syncfusion", diff --git a/doc/articles/uno-publishing-desktop.md b/doc/articles/uno-publishing-desktop.md index 592b331cb71f..117f84723c21 100644 --- a/doc/articles/uno-publishing-desktop.md +++ b/doc/articles/uno-publishing-desktop.md @@ -2,50 +2,122 @@ uid: uno.publishing.desktop --- -# Publishing Your App for Desktop +# Publishing Your App For Desktop ## Preparing For Publish -- [Profile your app with VS 2022](https://learn.microsoft.com/en-us/visualstudio/profiling/profiling-feature-tour?view=vs-2022) +- [Profile your app with Visual Studio](https://learn.microsoft.com/en-us/visualstudio/profiling) - [Profile using dotnet-trace and SpeedScope](https://learn.microsoft.com/en-us/dotnet/core/diagnostics/dotnet-trace) -## Publish your app - -### Using Visual Studio 2022 - -To publish your app with Visual Studio 2022: +## Publish Using Visual Studio 2022 - In the debugger toolbar drop-down, select the `net8.0-desktop` target framework - Once the project has reloaded, right-click on the project and select **Publish** -- Select the appropriate target for your publication, this example will use the **Folder**, then click **Next** -- Choose an output folder for the published output, then click **Close**. -- In the opened editor, click the **Configuration** "pen" to edit the configuration -- In the opened popup, ensure that **Target Framework** is set to `net8.0-desktop`, then click **Save** -- On the top right, click the **Publish** button -- Once the build is done, the output is located in the publish folder +- Select the **Folder** target for your publication then click **Next** +- Select the **Folder** target again then **Next** +- Choose an output folder then click **Finish** +- The profile is created, you can now **Close** the dialog +- In the opened editor, click `Show all settings` +- Set **Configuration** to `Release` +- Set **Target framework** to `net8.0-desktop` +- You can set **Deployment mode** to either `Framework-dependent` or `Self-contained` + - If `Self-contained` is chosen and you're targeting Windows, **Target runtime** must match the installed .NET SDK runtime identifier + as cross-publishing self-contained WPF apps (e.g. win-x64 to win-arm64) is not supported for now. +- You can set **Target runtime**, make sure it honors the above limitation, if it applies. +- Click **Save** +- Click **Publish** + +## Publish Using The CLI + +On Windows/macOS/Linux, open a terminal in your `csproj` folder and run: + +```shell +dotnet publish -f net8.0-desktop +``` + +If you wish to do a self-contained publish, run the following instead: + +```shell +dotnet publish -f net8.0-desktop -r {{RID}} -p:SelfContained=true +``` + +Where `{{RID}}` specifies the chosen OS and Architecture (e.g. win-x64). Again when targeting Windows, cross-publishing is not supported. -Once done, you can head over to the [publishing section](xref:uno.publishing.webassembly#publishing). +### macOS App Bundles + +We now support generating .app bundles on macOS machines. From the CLI run: + +```shell +dotnet publish -f net8.0-desktop -p:PackageFormat=app +``` + +You can also do a self-contained publish with: + +```shell +dotnet publish -f net8.0-desktop -r {{RID}} -p:SelfContained=true -p:PackageFormat=app +``` + +Where `{{RID}}` is either `osx-x64` or `osx-arm64`. + +> [!NOTE] +> Code signing is planned but not supported yet. -### Using the Command Line +### Snap Packages -To build your app from the CLI, on Windows, Linux, or macOS: +We support creating .snap packages on **Ubuntu 20.04** or later. -- Open a terminal, command line, or powershell -- Navigate to your `csproj` folder -- Publish the app using: +#### Requirements - ```shell - dotnet publish -f net8.0-desktop -c Release -o ./publish - ``` +The following must be installed and configured: + +- snapd +- snaps (with `snap install`): + - core20 on Ubuntu 20.04 + - core22 on Ubuntu 22.04 + - core24 on Ubuntu 24.04 + - multipass + - lxd + - current user must be part of the `lxd` group + - `lxd init --minimal` or similar should be run + - snapcraft + +> [!NOTE] +> Docker may interfere with Lxd causing network connectivity issues, for solutions see: https://documentation.ubuntu.com/lxd/en/stable-5.0/howto/network_bridge_firewalld/#prevent-connectivity-issues-with-lxd-and-docker + +#### Publishing A Snap + +To publish a snap, run: + +```shell +dotnet publish -f net8.0-desktop -r {{RID}} -p:SelfContained=true -p:PackageFormat=snap +``` + +Where `{{RID}}` is either `linux-x64` or `linux-arm64`. + +We generate snap manifests in classic confinement mode and a .desktop file by default. + +If you wish to customize your snap manifest, you will need to pass the following MSBuild properties: + +- SnapManifest +- DesktopFile + +The `.desktop` filename MUST conform to the Desktop File spec. + +If you wish, you can generate a default snap manifest and desktop file by running the command above, then tweak them. + +> [!NOTE] +> .NET 9 publishing and cross-publishing are not supported as of Uno 5.5, we will support .NET 9 publishing soon. -- Once the build is done, the output is located in the `./publish` folder +## Limitations -## Publishing +- NativeAOT is not supported +- R2R is not supported +- Single file publish is not supported > [!NOTE] -> Work still in progress for publishing to some targets. +> Publishing is a work in progress -Publishing your app can be done through different means: +## Links -- [ClickOnce](https://learn.microsoft.com/visualstudio/deployment/quickstart-deploy-using-clickonce-folder?view=vs-2022) on Windows -- Using a Zip file, then running the app using `dotnet [yourapp].dll` +- [Snapcraft.yaml schema](https://snapcraft.io/docs/snapcraft-yaml-schema) +- [Desktop Entry Specification](https://specifications.freedesktop.org/desktop-entry-spec/latest) From bb7e74bb60f863c525f1518666ac4e5b7323ed3e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 09:02:57 +0000 Subject: [PATCH 068/664] build(deps): bump serve-static and browser-sync in /doc Bumps [serve-static](https://github.com/expressjs/serve-static) to 1.16.2 and updates ancestor dependency [browser-sync](https://github.com/BrowserSync/browser-sync). These dependencies need to be updated together. Updates `serve-static` from 1.13.2 to 1.16.2 - [Release notes](https://github.com/expressjs/serve-static/releases) - [Changelog](https://github.com/expressjs/serve-static/blob/v1.16.2/HISTORY.md) - [Commits](https://github.com/expressjs/serve-static/compare/v1.13.2...v1.16.2) Updates `browser-sync` from 2.27.11 to 3.0.3 - [Release notes](https://github.com/BrowserSync/browser-sync/releases) - [Changelog](https://github.com/BrowserSync/browser-sync/blob/master/changelog.js) - [Commits](https://github.com/BrowserSync/browser-sync/compare/v2.27.11...v3.0.3) --- updated-dependencies: - dependency-name: serve-static dependency-type: indirect - dependency-name: browser-sync dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- doc/package-lock.json | 823 +++++++++++++++++++++++------------------- doc/package.json | 2 +- 2 files changed, 444 insertions(+), 381 deletions(-) diff --git a/doc/package-lock.json b/doc/package-lock.json index 1d27812c1ba6..ccb659d534d0 100644 --- a/doc/package-lock.json +++ b/doc/package-lock.json @@ -83,9 +83,9 @@ "optional": true }, "@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, "@types/cookie": { @@ -95,9 +95,9 @@ "dev": true }, "@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", "dev": true, "requires": { "@types/node": "*" @@ -459,15 +459,6 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dev": true, - "requires": { - "follow-redirects": "^1.14.0" - } - }, "bach": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", @@ -871,68 +862,195 @@ } }, "browser-sync": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.11.tgz", - "integrity": "sha512-U5f9u97OYJH66T0MGWWzG9rOQTW6ZmDMj97vsmtqwNS03JAwdLVES8eel2lD3rvAqQCNAFqaJ74NMacBI57vJg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-3.0.3.tgz", + "integrity": "sha512-91hoBHKk1C4pGeD+oE9Ld222k2GNQEAsI5AElqR8iLLWNrmZR2LPP8B0h8dpld9u7kro5IEUB3pUb0DJ3n1cRQ==", "dev": true, "requires": { - "browser-sync-client": "^2.27.11", - "browser-sync-ui": "^2.27.11", + "browser-sync-client": "^3.0.3", + "browser-sync-ui": "^3.0.3", "bs-recipes": "1.3.4", - "bs-snippet-injector": "^2.0.1", + "chalk": "4.1.2", "chokidar": "^3.5.1", "connect": "3.6.6", "connect-history-api-fallback": "^1", "dev-ip": "^1.0.1", "easy-extender": "^2.3.4", - "eazy-logger": "3.1.0", + "eazy-logger": "^4.0.1", "etag": "^1.8.1", "fresh": "^0.5.2", "fs-extra": "3.0.1", "http-proxy": "^1.18.1", "immutable": "^3", - "localtunnel": "^2.0.1", - "micromatch": "^4.0.2", + "micromatch": "^4.0.8", "opn": "5.3.0", "portscanner": "2.2.0", - "qs": "^6.11.0", "raw-body": "^2.3.2", "resp-modifier": "6.0.2", "rx": "4.1.0", - "send": "0.16.2", - "serve-index": "1.9.1", - "serve-static": "1.13.2", + "send": "^0.19.0", + "serve-index": "^1.9.1", + "serve-static": "^1.16.2", "server-destroy": "1.0.1", "socket.io": "^4.4.1", - "ua-parser-js": "1.0.2", + "ua-parser-js": "^1.0.33", "yargs": "^17.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "browser-sync-client": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.11.tgz", - "integrity": "sha512-okMNfD2NasL/XD1/BclP3onXjhahisk3e/kTQ5HPDT/lLqdBqNDd6QFcjI5I1ak7na2hxKQSLjryql+7fp5gKQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-3.0.3.tgz", + "integrity": "sha512-TOEXaMgYNjBYIcmX5zDlOdjEqCeCN/d7opf/fuyUD/hhGVCfP54iQIDhENCi012AqzYZm3BvuFl57vbwSTwkSQ==", "dev": true, "requires": { "etag": "1.8.1", "fresh": "0.5.2", - "mitt": "^1.1.3", - "rxjs": "^5.5.6", - "typescript": "^4.6.2" + "mitt": "^1.1.3" } }, "browser-sync-ui": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.11.tgz", - "integrity": "sha512-1T/Y8Pp1R68aUL7zVSFq0nxtr258xWd/nTasCAHX2M6EsGaswVOFtXsw3bKqsr35z+J+LfVfOdz1HFLYKxdgrA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-3.0.3.tgz", + "integrity": "sha512-FcGWo5lP5VodPY6O/f4pXQy5FFh4JK0f2/fTBsp0Lx1NtyBWs/IfPPJbW8m1ujTW/2r07oUXKTF2LYZlCZktjw==", "dev": true, "requires": { "async-each-series": "0.1.1", + "chalk": "4.1.2", "connect-history-api-fallback": "^1", "immutable": "^3", "server-destroy": "1.0.1", "socket.io-client": "^4.4.1", "stream-throttle": "^0.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "browserlist": { @@ -962,12 +1080,6 @@ "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", "dev": true }, - "bs-snippet-injector": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", - "integrity": "sha512-4u8IgB+L9L+S5hknOj3ddNSb42436gsnGm1AuM15B7CdbkpQTyVWgIM5/JUBiKiRwGOR86uo0Lu/OsX+SAlJmw==", - "dev": true - }, "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -1453,9 +1565,9 @@ "dev": true }, "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true }, "copy-descriptor": { @@ -1871,9 +1983,9 @@ "dev": true }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true }, "detect-file": { @@ -1903,12 +2015,6 @@ "path-type": "^4.0.0" } }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -2050,12 +2156,63 @@ } }, "eazy-logger": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", - "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", "dev": true, "requires": { - "tfunk": "^4.0.0" + "chalk": "4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "ee-first": { @@ -2091,6 +2248,77 @@ "once": "^1.4.0" } }, + "engine.io": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", + "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.7.2", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "dependencies": { + "debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "engine.io-client": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.1.tgz", + "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1", + "xmlhttprequest-ssl": "~2.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "dev": true + }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -2945,9 +3173,9 @@ } }, "follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "dev": true }, "for-each": { @@ -4747,6 +4975,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5769,84 +5998,6 @@ } } }, - "localtunnel": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", - "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", - "dev": true, - "requires": { - "axios": "0.21.4", - "debug": "4.3.2", - "openurl": "1.1.1", - "yargs": "17.1.1" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "yargs": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -6257,9 +6408,9 @@ } }, "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true }, "mime-db": { @@ -6824,12 +6975,6 @@ "wrappy": "1" } }, - "openurl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", - "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", - "dev": true - }, "opn": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", @@ -7277,15 +7422,6 @@ "dev": true, "optional": true }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, "query-string": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", @@ -7336,9 +7472,9 @@ "dev": true }, "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "requires": { "bytes": "3.1.2", @@ -7657,15 +7793,6 @@ "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", "dev": true }, - "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", - "dev": true, - "requires": { - "symbol-observable": "1.0.1" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -7767,60 +7894,51 @@ } }, "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.1.tgz", + "integrity": "sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==", "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" }, "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "ee-first": "1.1.1" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true } } @@ -7879,15 +7997,73 @@ } }, "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "requires": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "dependencies": { + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } } }, "server-destroy": { @@ -8135,63 +8311,33 @@ } }, "socket.io": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", - "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz", + "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", "dev": true, "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.5.2", + "engine.io": "~6.6.0", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.4" }, "dependencies": { "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "engine.io": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", - "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" + "ms": "^2.1.3" } }, - "engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", - "dev": true - }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } @@ -8207,78 +8353,47 @@ }, "dependencies": { "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } }, "socket.io-client": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", - "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.0.tgz", + "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io-client": "~6.5.2", + "engine.io-client": "~6.6.1", "socket.io-parser": "~4.2.4" }, "dependencies": { "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, - "engine.io-client": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz", - "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.0.0" - } - }, - "engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", - "dev": true - }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } @@ -8294,18 +8409,18 @@ }, "dependencies": { "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } @@ -8788,12 +8903,6 @@ "util.promisify": "~1.0.0" } }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==", - "dev": true - }, "tar-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", @@ -8828,52 +8937,6 @@ "uuid": "^3.0.1" } }, - "tfunk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", - "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "dlv": "^1.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - } - } - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -9056,16 +9119,10 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - }, "ua-parser-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", - "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz", + "integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==", "dev": true }, "uglify-js": { @@ -9567,10 +9624,16 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true + }, "xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz", + "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==", "dev": true }, "xtend": { @@ -9599,9 +9662,9 @@ "dev": true }, "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { "cliui": "^8.0.1", diff --git a/doc/package.json b/doc/package.json index c0e5194d9f46..01eddfe20922 100644 --- a/doc/package.json +++ b/doc/package.json @@ -7,7 +7,7 @@ "private": true, "devDependencies": { "autoprefixer": "^10.3.2", - "browser-sync": "^2.26.5", + "browser-sync": "^3.0.3", "browserlist": "^1.0.1", "del": "^6.0.0", "gulp": "^4.0.2", From a10dc59e7489d8eb5ed4aae234a09c827844c52e Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Sat, 12 Oct 2024 09:02:58 +0000 Subject: [PATCH 069/664] build(deps): bump send and browser-sync in /doc Bumps [send](https://github.com/pillarjs/send) to 0.19.1 and updates ancestor dependency [browser-sync](https://github.com/BrowserSync/browser-sync). These dependencies need to be updated together. Updates `send` from 0.16.2 to 0.19.1 - [Release notes](https://github.com/pillarjs/send/releases) - [Changelog](https://github.com/pillarjs/send/blob/master/HISTORY.md) - [Commits](https://github.com/pillarjs/send/commits) Updates `browser-sync` from 2.27.11 to 3.0.3 - [Release notes](https://github.com/BrowserSync/browser-sync/releases) - [Changelog](https://github.com/BrowserSync/browser-sync/blob/master/changelog.js) - [Commits](https://github.com/BrowserSync/browser-sync/compare/v2.27.11...v3.0.3) --- updated-dependencies: - dependency-name: send dependency-type: indirect - dependency-name: browser-sync dependency-type: direct:development ... Signed-off-by: dependabot[bot] --- doc/package-lock.json | 823 +++++++++++++++++++++++------------------- doc/package.json | 2 +- 2 files changed, 444 insertions(+), 381 deletions(-) diff --git a/doc/package-lock.json b/doc/package-lock.json index 1d27812c1ba6..ccb659d534d0 100644 --- a/doc/package-lock.json +++ b/doc/package-lock.json @@ -83,9 +83,9 @@ "optional": true }, "@socket.io/component-emitter": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz", - "integrity": "sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg==", + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/@socket.io/component-emitter/-/component-emitter-3.1.2.tgz", + "integrity": "sha512-9BCxFwvbGg/RsZK9tjXd8s4UcwR0MWeFQ1XEKIQVVvAGJyINdrqKMcTRyLoK8Rse1GjzLV9cwjWV1olXRWEXVA==", "dev": true }, "@types/cookie": { @@ -95,9 +95,9 @@ "dev": true }, "@types/cors": { - "version": "2.8.13", - "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.13.tgz", - "integrity": "sha512-RG8AStHlUiV5ysZQKq97copd2UmVYw3/pRMLefISZ3S1hK104Cwm7iLQ3fTKx+lsUH2CE8FlLaYeEA2LSeqYUA==", + "version": "2.8.17", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.17.tgz", + "integrity": "sha512-8CGDvrBj1zgo2qE+oS3pOCyYNqCPryMWY2bGfwA0dcfopWGgxs+78df0Rs3rc9THP4JkOhLsAa+15VdpAqkcUA==", "dev": true, "requires": { "@types/node": "*" @@ -459,15 +459,6 @@ "integrity": "sha512-DMD0KiN46eipeziST1LPP/STfDU0sufISXmjSgvVsoU2tqxctQeASejWcfNtxYKqETM1UxQ8sp2OrSBWpHY6sw==", "dev": true }, - "axios": { - "version": "0.21.4", - "resolved": "https://registry.npmjs.org/axios/-/axios-0.21.4.tgz", - "integrity": "sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg==", - "dev": true, - "requires": { - "follow-redirects": "^1.14.0" - } - }, "bach": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/bach/-/bach-1.2.0.tgz", @@ -871,68 +862,195 @@ } }, "browser-sync": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-2.27.11.tgz", - "integrity": "sha512-U5f9u97OYJH66T0MGWWzG9rOQTW6ZmDMj97vsmtqwNS03JAwdLVES8eel2lD3rvAqQCNAFqaJ74NMacBI57vJg==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/browser-sync/-/browser-sync-3.0.3.tgz", + "integrity": "sha512-91hoBHKk1C4pGeD+oE9Ld222k2GNQEAsI5AElqR8iLLWNrmZR2LPP8B0h8dpld9u7kro5IEUB3pUb0DJ3n1cRQ==", "dev": true, "requires": { - "browser-sync-client": "^2.27.11", - "browser-sync-ui": "^2.27.11", + "browser-sync-client": "^3.0.3", + "browser-sync-ui": "^3.0.3", "bs-recipes": "1.3.4", - "bs-snippet-injector": "^2.0.1", + "chalk": "4.1.2", "chokidar": "^3.5.1", "connect": "3.6.6", "connect-history-api-fallback": "^1", "dev-ip": "^1.0.1", "easy-extender": "^2.3.4", - "eazy-logger": "3.1.0", + "eazy-logger": "^4.0.1", "etag": "^1.8.1", "fresh": "^0.5.2", "fs-extra": "3.0.1", "http-proxy": "^1.18.1", "immutable": "^3", - "localtunnel": "^2.0.1", - "micromatch": "^4.0.2", + "micromatch": "^4.0.8", "opn": "5.3.0", "portscanner": "2.2.0", - "qs": "^6.11.0", "raw-body": "^2.3.2", "resp-modifier": "6.0.2", "rx": "4.1.0", - "send": "0.16.2", - "serve-index": "1.9.1", - "serve-static": "1.13.2", + "send": "^0.19.0", + "serve-index": "^1.9.1", + "serve-static": "^1.16.2", "server-destroy": "1.0.1", "socket.io": "^4.4.1", - "ua-parser-js": "1.0.2", + "ua-parser-js": "^1.0.33", "yargs": "^17.3.1" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "braces": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.3.tgz", + "integrity": "sha512-yQbXgO/OSZVD2IsiLlro+7Hf6Q18EJrKSEsdoMzKePKXct3gvD8oLcOQdIzGupr5Fj+EDe8gO/lxc1BzfMpxvA==", + "dev": true, + "requires": { + "fill-range": "^7.1.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "fill-range": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.1.1.tgz", + "integrity": "sha512-YsGpe3WHLK8ZYi4tWDg2Jy3ebRz2rXowDxnld4bkQB00cc/1Zw9AWnC0i9ztDJitivtQvaI9KaLyKrc+hBW0yg==", + "dev": true, + "requires": { + "to-regex-range": "^5.0.1" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "micromatch": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.8.tgz", + "integrity": "sha512-PXwfBhYu0hBCPw8Dn0E+WDYb7af3dSLVWKi3HGv84IdF4TyFoC0ysxFd0Goxw7nSv4T/PzEJQxsYsEiFCKo2BA==", + "dev": true, + "requires": { + "braces": "^3.0.3", + "picomatch": "^2.3.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "browser-sync-client": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-2.27.11.tgz", - "integrity": "sha512-okMNfD2NasL/XD1/BclP3onXjhahisk3e/kTQ5HPDT/lLqdBqNDd6QFcjI5I1ak7na2hxKQSLjryql+7fp5gKQ==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/browser-sync-client/-/browser-sync-client-3.0.3.tgz", + "integrity": "sha512-TOEXaMgYNjBYIcmX5zDlOdjEqCeCN/d7opf/fuyUD/hhGVCfP54iQIDhENCi012AqzYZm3BvuFl57vbwSTwkSQ==", "dev": true, "requires": { "etag": "1.8.1", "fresh": "0.5.2", - "mitt": "^1.1.3", - "rxjs": "^5.5.6", - "typescript": "^4.6.2" + "mitt": "^1.1.3" } }, "browser-sync-ui": { - "version": "2.27.11", - "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-2.27.11.tgz", - "integrity": "sha512-1T/Y8Pp1R68aUL7zVSFq0nxtr258xWd/nTasCAHX2M6EsGaswVOFtXsw3bKqsr35z+J+LfVfOdz1HFLYKxdgrA==", + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/browser-sync-ui/-/browser-sync-ui-3.0.3.tgz", + "integrity": "sha512-FcGWo5lP5VodPY6O/f4pXQy5FFh4JK0f2/fTBsp0Lx1NtyBWs/IfPPJbW8m1ujTW/2r07oUXKTF2LYZlCZktjw==", "dev": true, "requires": { "async-each-series": "0.1.1", + "chalk": "4.1.2", "connect-history-api-fallback": "^1", "immutable": "^3", "server-destroy": "1.0.1", "socket.io-client": "^4.4.1", "stream-throttle": "^0.1.3" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "browserlist": { @@ -962,12 +1080,6 @@ "integrity": "sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw==", "dev": true }, - "bs-snippet-injector": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/bs-snippet-injector/-/bs-snippet-injector-2.0.1.tgz", - "integrity": "sha512-4u8IgB+L9L+S5hknOj3ddNSb42436gsnGm1AuM15B7CdbkpQTyVWgIM5/JUBiKiRwGOR86uo0Lu/OsX+SAlJmw==", - "dev": true - }, "buffer": { "version": "5.7.1", "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", @@ -1453,9 +1565,9 @@ "dev": true }, "cookie": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", - "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "version": "0.7.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.7.2.tgz", + "integrity": "sha512-yki5XnKuf750l50uGTllt6kKILY4nQ1eNIQatoXEByZ5dWgnKqbnqmTrBE5B4N7lrMJKQ2ytWMiTO2o0v6Ew/w==", "dev": true }, "copy-descriptor": { @@ -1871,9 +1983,9 @@ "dev": true }, "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg==", + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", "dev": true }, "detect-file": { @@ -1903,12 +2015,6 @@ "path-type": "^4.0.0" } }, - "dlv": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/dlv/-/dlv-1.1.3.tgz", - "integrity": "sha512-+HlytyjlPKnIG8XuRG8WvmBP8xs8P71y+SKKS6ZXWoEgLuePxtDoUEiH7WkdePWrQ5JBpE6aoVqfZfJUQkjXwA==", - "dev": true - }, "dom-serializer": { "version": "0.2.2", "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", @@ -2050,12 +2156,63 @@ } }, "eazy-logger": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-3.1.0.tgz", - "integrity": "sha512-/snsn2JqBtUSSstEl4R0RKjkisGHAhvYj89i7r3ytNUKW12y178KDZwXLXIgwDqLW6E/VRMT9qfld7wvFae8bQ==", + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/eazy-logger/-/eazy-logger-4.0.1.tgz", + "integrity": "sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw==", "dev": true, "requires": { - "tfunk": "^4.0.0" + "chalk": "4.1.2" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "ee-first": { @@ -2091,6 +2248,77 @@ "once": "^1.4.0" } }, + "engine.io": { + "version": "6.6.2", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.6.2.tgz", + "integrity": "sha512-gmNvsYi9C8iErnZdVcJnvCpSKbWTt1E8+JZo8b+daLninywUWi5NQ5STSHZ9rFjFO7imNcvb8Pc5pe/wMR5xEw==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.7.2", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1" + }, + "dependencies": { + "debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "engine.io-client": { + "version": "6.6.1", + "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.6.1.tgz", + "integrity": "sha512-aYuoak7I+R83M/BBPIOs2to51BmFIpC1wZe6zZzMrT2llVsHy5cvcmdsJgP2Qz6smHu+sD9oexiSUAVd8OfBPw==", + "dev": true, + "requires": { + "@socket.io/component-emitter": "~3.1.0", + "debug": "~4.3.1", + "engine.io-parser": "~5.2.1", + "ws": "~8.17.1", + "xmlhttprequest-ssl": "~2.1.1" + }, + "dependencies": { + "debug": { + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", + "dev": true, + "requires": { + "ms": "^2.1.3" + } + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } + } + }, + "engine.io-parser": { + "version": "5.2.3", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.3.tgz", + "integrity": "sha512-HqD3yTBfnBxIrbnM1DoD6Pcq8NECnh8d4As1Qgh0z5Gg3jRRIqijury0CL3ghu/edArpUYiYqQiDUQBIs4np3Q==", + "dev": true + }, "entities": { "version": "2.2.0", "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", @@ -2945,9 +3173,9 @@ } }, "follow-redirects": { - "version": "1.15.6", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.6.tgz", - "integrity": "sha512-wWN62YITEaOpSK584EZXJafH1AGpO8RVgElfkuXbTOrPX4fIfOyEpW/CsiNd8JdYrAoOvafRTOEnvsO++qCqFA==", + "version": "1.15.9", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.9.tgz", + "integrity": "sha512-gew4GsXizNgdoRyqmyfMHyAmXsZDk6mHkSxZFCzW9gwlbtOW44CDtYavM+y+72qD/Vq2l550kMF52DT8fOLJqQ==", "dev": true }, "for-each": { @@ -4747,6 +4975,7 @@ "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", "integrity": "sha512-C8vBJ8DwUCx19vhm7urhTuUsr4/IyP6l4VzNQDv+ryHQObW3TTTp9yB68WpYgRe2bbaGuZ/se74IqFeVnMnLZg==", "dev": true, + "optional": true, "requires": { "ansi-regex": "^2.0.0" } @@ -5769,84 +5998,6 @@ } } }, - "localtunnel": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/localtunnel/-/localtunnel-2.0.2.tgz", - "integrity": "sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug==", - "dev": true, - "requires": { - "axios": "0.21.4", - "debug": "4.3.2", - "openurl": "1.1.1", - "yargs": "17.1.1" - }, - "dependencies": { - "cliui": { - "version": "7.0.4", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", - "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", - "dev": true, - "requires": { - "string-width": "^4.2.0", - "strip-ansi": "^6.0.0", - "wrap-ansi": "^7.0.0" - } - }, - "debug": { - "version": "4.3.2", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.2.tgz", - "integrity": "sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "string-width": { - "version": "4.2.3", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", - "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.1" - } - }, - "yargs": { - "version": "17.1.1", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.1.1.tgz", - "integrity": "sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ==", - "dev": true, - "requires": { - "cliui": "^7.0.2", - "escalade": "^3.1.1", - "get-caller-file": "^2.0.5", - "require-directory": "^2.1.1", - "string-width": "^4.2.0", - "y18n": "^5.0.5", - "yargs-parser": "^20.2.2" - } - }, - "yargs-parser": { - "version": "20.2.9", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", - "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", - "dev": true - } - } - }, "lodash": { "version": "4.17.21", "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", @@ -6257,9 +6408,9 @@ } }, "mime": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.4.1.tgz", - "integrity": "sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ==", + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", "dev": true }, "mime-db": { @@ -6824,12 +6975,6 @@ "wrappy": "1" } }, - "openurl": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/openurl/-/openurl-1.1.1.tgz", - "integrity": "sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA==", - "dev": true - }, "opn": { "version": "5.3.0", "resolved": "https://registry.npmjs.org/opn/-/opn-5.3.0.tgz", @@ -7277,15 +7422,6 @@ "dev": true, "optional": true }, - "qs": { - "version": "6.11.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.11.0.tgz", - "integrity": "sha512-MvjoMCJwEarSbUYk5O+nmoSzSutSsTwF85zcHPQ9OrlFoZOYIjaqBAJIqIXjptyD5vThxGq52Xu/MaJzRkIk4Q==", - "dev": true, - "requires": { - "side-channel": "^1.0.4" - } - }, "query-string": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/query-string/-/query-string-5.1.1.tgz", @@ -7336,9 +7472,9 @@ "dev": true }, "raw-body": { - "version": "2.5.1", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", - "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.2.tgz", + "integrity": "sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA==", "dev": true, "requires": { "bytes": "3.1.2", @@ -7657,15 +7793,6 @@ "integrity": "sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug==", "dev": true }, - "rxjs": { - "version": "5.5.12", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-5.5.12.tgz", - "integrity": "sha512-xx2itnL5sBbqeeiVgNPVuQQ1nC8Jp2WfNJhXWHmElW9YmrpS9UVnNzhP3EH3HFqexO5Tlp8GhYY+WEcqcVMvGw==", - "dev": true, - "requires": { - "symbol-observable": "1.0.1" - } - }, "safe-buffer": { "version": "5.2.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", @@ -7767,60 +7894,51 @@ } }, "send": { - "version": "0.16.2", - "resolved": "https://registry.npmjs.org/send/-/send-0.16.2.tgz", - "integrity": "sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw==", + "version": "0.19.1", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.1.tgz", + "integrity": "sha512-p4rRk4f23ynFEfcD9LA0xRYngj+IyGiEYyqqOak8kaN0TvNmuxC2dcVeBn62GpCeR2CpWqyHCNScTP91QbAVFg==", "dev": true, "requires": { "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", "etag": "~1.8.1", "fresh": "0.5.2", - "http-errors": "~1.6.2", - "mime": "1.4.1", - "ms": "2.0.0", - "on-finished": "~2.3.0", - "range-parser": "~1.2.0", - "statuses": "~1.4.0" + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" }, "dependencies": { - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha512-7emPTl6Dpo6JRXOXjLRxck+FlLRX5847cLKEn00PLAgc3g2hTZZgr+e4c2v6QpSmLeFP3n5yUo7ft6avBK/5jQ==", + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", "dev": true }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "ee-first": "1.1.1" } }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, "statuses": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.4.0.tgz", - "integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", "dev": true } } @@ -7879,15 +7997,73 @@ } }, "serve-static": { - "version": "1.13.2", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.13.2.tgz", - "integrity": "sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw==", + "version": "1.16.2", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.16.2.tgz", + "integrity": "sha512-VqpjJZKadQB/PEbEwvFdO43Ax5dFBZ2UECszz8bQ7pi7wt//PWe1P6MN7eCnjsatYtBT6EuiClbjSWP2WrIoTw==", "dev": true, "requires": { - "encodeurl": "~1.0.2", + "encodeurl": "~2.0.0", "escape-html": "~1.0.3", - "parseurl": "~1.3.2", - "send": "0.16.2" + "parseurl": "~1.3.3", + "send": "0.19.0" + }, + "dependencies": { + "encodeurl": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-2.0.0.tgz", + "integrity": "sha512-Q0n9HRi4m6JuGIV1eFlmvJB7ZEVxu93IrMyiMsGC0lrMJMWzRgx6WGquyfQgZVb31vhGgXnfmPNNXmxnOkRBrg==", + "dev": true + }, + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } + }, + "send": { + "version": "0.19.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.19.0.tgz", + "integrity": "sha512-dW41u5VfLXu8SJh5bwRmyYUbAoSB3c9uQh6L8h/KtsFREPWpbX1lrljJo186Jc4nmci/sGUZ9a0a0J2zgfq2hw==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w==", + "dev": true + } + } + }, + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + } } }, "server-destroy": { @@ -8135,63 +8311,33 @@ } }, "socket.io": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.7.5.tgz", - "integrity": "sha512-DmeAkF6cwM9jSfmp6Dr/5/mfMwb5Z5qRrSXLpo3Fq5SqyU8CMF15jIN4ZhfSwu35ksM1qmHZDQ/DK5XTccSTvA==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.8.0.tgz", + "integrity": "sha512-8U6BEgGjQOfGz3HHTYaC/L1GaxDCJ/KM0XTkJly0EhZ5U/du9uNEZy4ZgYzEzIqlx2CMm25CrCqr1ck899eLNA==", "dev": true, "requires": { "accepts": "~1.3.4", "base64id": "~2.0.0", "cors": "~2.8.5", "debug": "~4.3.2", - "engine.io": "~6.5.2", + "engine.io": "~6.6.0", "socket.io-adapter": "~2.5.2", "socket.io-parser": "~4.2.4" }, "dependencies": { "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", - "dev": true, - "requires": { - "ms": "2.1.2" - } - }, - "engine.io": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.5.5.tgz", - "integrity": "sha512-C5Pn8Wk+1vKBoHghJODM63yk8MvrO9EWZUfkAt5HAqIgPE4/8FF0PEGHXtEd40l223+cE5ABWuPzm38PHFXfMA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "@types/cookie": "^0.4.1", - "@types/cors": "^2.8.12", - "@types/node": ">=10.0.0", - "accepts": "~1.3.4", - "base64id": "2.0.0", - "cookie": "~0.4.1", - "cors": "~2.8.5", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1" + "ms": "^2.1.3" } }, - "engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", - "dev": true - }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } @@ -8207,78 +8353,47 @@ }, "dependencies": { "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } }, "socket.io-client": { - "version": "4.7.5", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.7.5.tgz", - "integrity": "sha512-sJ/tqHOCe7Z50JCBCXrsY3I2k03iOiUe+tj1OmKeD2lXPiGH/RUCdTZFoqVyN7l1MnpIzPrGtLcijffmeouNlQ==", + "version": "4.8.0", + "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-4.8.0.tgz", + "integrity": "sha512-C0jdhD5yQahMws9alf/yvtsMGTaIDBnZ8Rb5HU56svyq0l5LIrGzIDZZD5pHQlmzxLuU91Gz+VpQMKgCTNYtkw==", "dev": true, "requires": { "@socket.io/component-emitter": "~3.1.0", "debug": "~4.3.2", - "engine.io-client": "~6.5.2", + "engine.io-client": "~6.6.1", "socket.io-parser": "~4.2.4" }, "dependencies": { "debug": { - "version": "4.3.5", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.5.tgz", - "integrity": "sha512-pt0bNEmneDIvdL1Xsd9oDQ/wrQRkXDT4AUWlNZNPKvW5x/jyO9VFXkJUP07vQ2upmw5PlaITaPKc31jK13V+jg==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, - "engine.io-client": { - "version": "6.5.4", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-6.5.4.tgz", - "integrity": "sha512-GeZeeRjpD2qf49cZQ0Wvh/8NJNfeXkXXcoGh+F77oEAgo9gUHwT1fCRxSNU+YEEaysOJTnsFHmM5oAcPy4ntvQ==", - "dev": true, - "requires": { - "@socket.io/component-emitter": "~3.1.0", - "debug": "~4.3.1", - "engine.io-parser": "~5.2.1", - "ws": "~8.17.1", - "xmlhttprequest-ssl": "~2.0.0" - } - }, - "engine.io-parser": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.2.2.tgz", - "integrity": "sha512-RcyUFKA93/CXH20l4SoVvzZfrSDMOTUS3bWVpTt2FuFP+XYrL8i8oonHP7WInRyVHXh0n/ORtoeiE1os+8qkSw==", - "dev": true - }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", - "dev": true - }, - "ws": { - "version": "8.17.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", - "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } @@ -8294,18 +8409,18 @@ }, "dependencies": { "debug": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", - "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.7.tgz", + "integrity": "sha512-Er2nc/H7RrMXZBFCEim6TCmMk02Z8vLC2Rbi1KEBggpo0fS6l0S1nnapwmIi3yW/+GOJap1Krg4w0Hg80oCqgQ==", "dev": true, "requires": { - "ms": "2.1.2" + "ms": "^2.1.3" } }, "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", "dev": true } } @@ -8788,12 +8903,6 @@ "util.promisify": "~1.0.0" } }, - "symbol-observable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.0.1.tgz", - "integrity": "sha512-Kb3PrPYz4HanVF1LVGuAdW6LoVgIwjUYJGzFe7NDrBLCN4lsV/5J0MFurV+ygS4bRVwrCEt2c7MQ1R2a72oJDw==", - "dev": true - }, "tar-stream": { "version": "1.6.2", "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-1.6.2.tgz", @@ -8828,52 +8937,6 @@ "uuid": "^3.0.1" } }, - "tfunk": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/tfunk/-/tfunk-4.0.0.tgz", - "integrity": "sha512-eJQ0dGfDIzWNiFNYFVjJ+Ezl/GmwHaFTBTjrtqNPW0S7cuVDBrZrmzUz6VkMeCR4DZFqhd4YtLwsw3i2wYHswQ==", - "dev": true, - "requires": { - "chalk": "^1.1.3", - "dlv": "^1.1.3" - }, - "dependencies": { - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", - "dev": true - }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", - "dev": true, - "requires": { - "ansi-styles": "^2.2.1", - "escape-string-regexp": "^1.0.2", - "has-ansi": "^2.0.0", - "strip-ansi": "^3.0.0", - "supports-color": "^2.0.0" - } - }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha512-VhumSSbBqDTP8p2ZLKj40UjBCV4+v8bUSEpUb4KjRgWk9pbqGF4REFj6KEagidb2f/M6AzC0EmFyDNGaw9OCzg==", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", - "dev": true - } - } - }, "through": { "version": "2.3.8", "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", @@ -9056,16 +9119,10 @@ "integrity": "sha512-/aCDEGatGvZ2BIk+HmLf4ifCJFwvKFNb9/JeZPMulfgFracn9QFcAf5GO8B/mweUjSoblS5In0cWhqpfs/5PQA==", "dev": true }, - "typescript": { - "version": "4.9.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.9.5.tgz", - "integrity": "sha512-1FXk9E2Hm+QzZQ7z+McJiHL4NW1F2EzMu9Nq9i3zAaGqibafqYwCVU6WyWAuyQRRzOlxou8xZSyXLEN8oKj24g==", - "dev": true - }, "ua-parser-js": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.2.tgz", - "integrity": "sha512-00y/AXhx0/SsnI51fTc0rLRmafiGOM4/O+ny10Ps7f+j/b8p/ZY11ytMgznXkOVo4GQ+KwQG5UQLkLGirsACRg==", + "version": "1.0.39", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-1.0.39.tgz", + "integrity": "sha512-k24RCVWlEcjkdOxYmVJgeD/0a1TiSpqLg+ZalVGV9lsnr4yqu0w7tX/x2xX6G4zpkgQnRf89lxuZ1wsbjXM8lw==", "dev": true }, "uglify-js": { @@ -9567,10 +9624,16 @@ "integrity": "sha512-l4Sp/DRseor9wL6EvV2+TuQn63dMkPjZ/sp9XkghTEbV9KlPS1xUsZ3u7/IQO4wxtcFB4bgpQPRcR3QCvezPcQ==", "dev": true }, + "ws": { + "version": "8.17.1", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.17.1.tgz", + "integrity": "sha512-6XQFvXTkbfUOZOKKILFG1PDK2NDQs4azKQl26T0YS5CxqWLgXajbPZ+h4gZekJyRqFU8pvnbAbbs/3TgRPy+GQ==", + "dev": true + }, "xmlhttprequest-ssl": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz", - "integrity": "sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A==", + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.1.1.tgz", + "integrity": "sha512-ptjR8YSJIXoA3Mbv5po7RtSYHO6mZr8s7i5VGmEk7QY2pQWyT1o0N+W1gKbOyJPUCGXGnuw0wqe8f0L6Y0ny7g==", "dev": true }, "xtend": { @@ -9599,9 +9662,9 @@ "dev": true }, "yargs": { - "version": "17.6.2", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.6.2.tgz", - "integrity": "sha512-1/9UrdHjDZc0eOU0HxOHoS78C69UD3JRMvzlJ7S79S2nTaWRA/whGCTV8o9e/N/1Va9YIV7Q4sOxD8VV4pCWOw==", + "version": "17.7.2", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.7.2.tgz", + "integrity": "sha512-7dSzzRQ++CKnNI/krKnYRV7JKKPUXMEh61soaHKg9mrWEhzFWhFnxPxGl+69cD1Ou63C13NUPCnmIcrvqCuM6w==", "dev": true, "requires": { "cliui": "^8.0.1", diff --git a/doc/package.json b/doc/package.json index c0e5194d9f46..01eddfe20922 100644 --- a/doc/package.json +++ b/doc/package.json @@ -7,7 +7,7 @@ "private": true, "devDependencies": { "autoprefixer": "^10.3.2", - "browser-sync": "^2.26.5", + "browser-sync": "^3.0.3", "browserlist": "^1.0.1", "del": "^6.0.0", "gulp": "^4.0.2", From 08691ec485c8008bfc60d11e038f9e930bf63018 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sat, 12 Oct 2024 11:46:10 -0400 Subject: [PATCH 070/664] chore: Adjust for GetTP new location --- src/Uno.UI.Maps/MapPresenter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.Maps/MapPresenter.cs b/src/Uno.UI.Maps/MapPresenter.cs index 9834068782a9..b3bd76863c74 100644 --- a/src/Uno.UI.Maps/MapPresenter.cs +++ b/src/Uno.UI.Maps/MapPresenter.cs @@ -25,7 +25,7 @@ private void UpdateOwnerSubscriptions() { _ownerSubscription.Disposable = null; - _owner = GetTemplatedParent() as MapControl; + _owner = this.GetTemplatedParent() as MapControl; if (_owner != null) { From 9271c1eec617ac0092614f1c540c86544e914629 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Sat, 12 Oct 2024 21:59:00 +0200 Subject: [PATCH 071/664] chore: Add details --- doc/articles/interop/apple-login.md | 44 +++++++++++++++++++++++++++++ 1 file changed, 44 insertions(+) diff --git a/doc/articles/interop/apple-login.md b/doc/articles/interop/apple-login.md index 0e709f836bcb..15843401e8d2 100644 --- a/doc/articles/interop/apple-login.md +++ b/doc/articles/interop/apple-login.md @@ -26,8 +26,13 @@ Below is a simple example of how you can add the Apple Sign-In Button to your pr var appleSignInButton = new ASAuthorizationAppleIdButton(ASAuthorizationAppleIdButtonType.Default, ASAuthorizationAppleIdButtonStyle.WhiteOutline); appleSignInButton.TouchUpInside += HandleAuthorizationAppleIDButtonPress; appleSignInButton.CornerRadius = 50; + + // Retain the delegate to prevent garbage collection + _appleSignInDelegate = new AuthorizationControllerDelegate(this); ``` + **Note**: It's important to retain a reference to the delegate (`_appleSignInDelegate`) to avoid garbage collection issues. This ensures that the authorization process completes without interruption. + 3. Inject the Apple Sign-In button into the visual tree using `VisualTreeHelper.AdaptNative`: ```csharp @@ -92,6 +97,45 @@ public class AuthorizationControllerDelegate : ASAuthorizationControllerDelegate } ``` +### Managing Delegate in MVVM + +If you're using an MVVM architecture, the delegate should handle sign-in logic indirectly by passing the necessary data to the ViewModel. This keeps the code clean and follows MVVM principles. For example: + +- Instead of passing the user control (`MyUserControl`) to the `AuthorizationControllerDelegate`, pass a reference to the ViewModel or a dedicated service. +- In the delegate, you can call methods on the ViewModel to handle the authorization flow, such as storing user information or navigating to another page. + +Example: + +```csharp +public class AuthorizationControllerDelegate : ASAuthorizationControllerDelegate +{ + private readonly MyViewModel _viewModel; + + public AuthorizationControllerDelegate(MyViewModel viewModel) + { + _viewModel = viewModel; + } + + public override void DidComplete(ASAuthorizationController controller, ASAuthorization authorization) + { + System.Diagnostics.Debug.WriteLine("Authorization successful."); + + try + { + var appleIdCredential = authorization.GetCredential(); + var userIdentifier = appleIdCredential?.User; + + // Pass the user info to the ViewModel for further processing + _viewModel.HandleSuccessfulAuthorization(userIdentifier); + } + catch (Exception ex) + { + System.Diagnostics.Debug.WriteLine($"Authorization failed: {ex.Message}"); + } + } +} +``` + ### Presentation Context Provider For proper handling of the presentation context on iOS, implement a `PresentationContextProvider`: From f3c3de2c144551647f20cc19c2e0fcd827ace54c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sat, 12 Oct 2024 21:42:37 -0400 Subject: [PATCH 072/664] chore: Adjust maps dependency --- src/Uno.UI/AssemblyInfo.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Uno.UI/AssemblyInfo.cs b/src/Uno.UI/AssemblyInfo.cs index 0c1a21251bd8..0197304d873a 100644 --- a/src/Uno.UI/AssemblyInfo.cs +++ b/src/Uno.UI/AssemblyInfo.cs @@ -16,6 +16,7 @@ [assembly: InternalsVisibleTo("Uno.UI.Svg")] [assembly: InternalsVisibleTo("Uno.UI.Svg.Skia")] [assembly: InternalsVisibleTo("Uno.UI.XamlHost")] +[assembly: InternalsVisibleTo("Uno.UI.Maps")] [assembly: InternalsVisibleTo("SamplesApp")] [assembly: InternalsVisibleTo("SamplesApp.Droid")] [assembly: InternalsVisibleTo("SamplesApp.macOS")] From 8e696610eed7e578668e44590a9719673f658eae Mon Sep 17 00:00:00 2001 From: xiaoy312 Date: Thu, 10 Oct 2024 16:14:25 -0400 Subject: [PATCH 073/664] chore: add tests against tp regressions (cherry picked from commit 9b70b992af73416119154cd39411036221a5c996) --- .../Given_VisualStateManager.cs | 49 +++++++++++++++++++ .../Windows_UI_Xaml_Controls/Given_Pivot.cs | 19 +++++++ 2 files changed, 68 insertions(+) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs index 3a51ccce3318..4c6567b05172 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml/Given_VisualStateManager.cs @@ -1,7 +1,15 @@ +using System; +using System.Linq; using System.Threading.Tasks; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; +using Microsoft.UI.Xaml.Controls.Primitives; using Microsoft.UI.Xaml.Media; +using Microsoft.UI.Xaml.Shapes; +using Microsoft.VisualStudio.TestTools.UnitTesting; +using MUXControlsTestApp.Utilities; +using Uno.Extensions; +using Uno.UI.Extensions; using Uno.UI.RuntimeTests.Helpers; namespace Uno.UI.RuntimeTests.Tests.Windows_UI_Xaml; @@ -30,4 +38,45 @@ public async Task When_Transition_Modifies_SubProperty_Of_Property_Set_By_Previo await Task.Delay(1000); Assert.AreEqual(Microsoft.UI.Colors.Red, ((SolidColorBrush)border.Background).Color); } + + [TestMethod] + public async Task SelectorItem_SelectedState() + { + var items = Enumerable.Range(0, 3).ToArray(); + var setup = new GridView + { + ItemsSource = items, + SelectedItem = items.Last(), + }; + await UITestHelper.Load(setup); + + var container2 = setup.ContainerFromIndex(2) as GridViewItem ?? throw new Exception("Failed to retrieve container at index 2"); + + // check if the visual-state is set + var states = VisualStateHelper.GetCurrentVisualStateName(container2).ToArray(); + Assert.IsTrue(states.Contains("Selected"), $"container2 is not in 'Selected' state: states={states.JoinBy(",")}"); + } + + [TestMethod] + public Task SelectorItem_MultiSelectState_GV() => SelectorItem_MultiSelectState_Impl(); + + [TestMethod] + public Task SelectorItem_MultiSelectState_LV() => SelectorItem_MultiSelectState_Impl(); + + public async Task SelectorItem_MultiSelectState_Impl() where T : ListViewBase, new() + { + var items = Enumerable.Range(0, 3).ToArray(); + var setup = new T + { + ItemsSource = items, + SelectionMode = ListViewSelectionMode.Multiple, + }; + await UITestHelper.Load(setup); + + var container2 = setup.ContainerFromIndex(2) as SelectorItem ?? throw new Exception("Failed to retrieve container at index 2"); + + // check if the visual-state is set + var states = VisualStateHelper.GetCurrentVisualStateName(container2).ToArray(); + Assert.IsTrue(states.Contains("MultiSelectEnabled"), $"container2 is not in 'MultiSelectEnabled' state: states={states.JoinBy(",")}"); + } } diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs index aad9f8473787..32fc7b0a5aed 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_Pivot.cs @@ -12,6 +12,7 @@ using static Private.Infrastructure.TestServices; using Uno.UI.Extensions; using Microsoft.UI.Xaml.Controls.Primitives; +using Uno.UI.RuntimeTests.Helpers; namespace Uno.UI.RuntimeTests.Tests.Windows_UI_Xaml_Controls { @@ -126,6 +127,24 @@ public async Task Check_Changing_SelectedItem_Affects_SelectedIndex() SUT.SelectedItem.Should().Be(pivotItem2); } + [TestMethod] + [RunsOnUIThread] + public async Task Pivot_Single_ItemContent_Visible() + { + var items = Enumerable.Range(0, 3).ToArray(); + var setup = new Pivot + { + ItemsSource = items, + SelectedItem = items.Last(), + }; + await UITestHelper.Load(setup); + + var containers = items.Select((x, i) => setup.ContainerFromIndex(i)).OfType().ToArray(); + + Assert.AreEqual(3, containers.Length, "Should have 3 containers"); + Assert.AreEqual(1, containers.Count(x => x.Visibility == Visibility.Visible), "Only one PivotItem should be visible"); + } + private class MyContext { public MyContext() From 222bf9e1afe949b5cd547f76011f4540f92af34c Mon Sep 17 00:00:00 2001 From: xiaoy312 Date: Fri, 11 Oct 2024 18:46:15 -0400 Subject: [PATCH 074/664] chore: ITemplatedParentProvider removal (cherry picked from commit 147c87997d9904667401aba20954e9a3f621ccdb) --- .../Given_DependencyObjectGenerator.cs | 24 +--- .../DependencyObjectGenerator.cs | 38 +------ .../TemplatedParent/Setup/BehaviorSetup.xaml | 19 ---- .../Setup/BehaviorSetup.xaml.cs | 106 ------------------ .../TemplatedParent/TemplatedParentTests.cs | 21 ---- .../Controls/NativeFramePresenter.iOS.cs | 15 +-- src/Uno.UI/DataBinding/BindingExpression.cs | 16 +-- .../DataBinding/ITemplatedParentProvider.cs | 28 ----- src/Uno.UI/NativeFramePresenter.Android.cs | 6 +- .../NativeScrollContentPresenter.iOS.cs | 2 +- .../UI/Xaml/DependencyObjectExtensions.cs | 10 ++ src/Uno.UI/UI/Xaml/FrameworkElement.cs | 9 ++ src/Uno.UI/UI/Xaml/TemplatedParentScope.cs | 15 ++- src/Uno.UI/UI/Xaml/VisualState.cs | 2 +- src/Uno.UI/UI/Xaml/VisualTransition.cs | 2 +- 15 files changed, 45 insertions(+), 268 deletions(-) delete mode 100644 src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml delete mode 100644 src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs delete mode 100644 src/Uno.UI/DataBinding/ITemplatedParentProvider.cs diff --git a/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs b/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs index 731110a9ed7e..d0b5ac652ef3 100644 --- a/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs +++ b/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/DependencyObjectGeneratorTests/Given_DependencyObjectGenerator.cs @@ -159,7 +159,7 @@ internal partial class Inner : DependencyObject partial class OuterClass { [global::Microsoft.UI.Xaml.Data.Bindable] - partial class Inner : IDependencyObjectStoreProvider, ITemplatedParentProvider, IWeakReferenceProvider + partial class Inner : IDependencyObjectStoreProvider, IWeakReferenceProvider { private DependencyObjectStore __storeBackingField; public global::Windows.UI.Core.CoreDispatcher Dispatcher => global::Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher; @@ -185,28 +185,6 @@ private DependencyObjectStore __Store public object GetAnimationBaseValue(DependencyProperty dp) => __Store.GetAnimationBaseValue(dp); public long RegisterPropertyChangedCallback(DependencyProperty dp, DependencyPropertyChangedCallback callback) => __Store.RegisterPropertyChangedCallback(dp, callback); public void UnregisterPropertyChangedCallback(DependencyProperty dp, long token) => __Store.UnregisterPropertyChangedCallback(dp, token); - - [EditorBrowsable(EditorBrowsableState.Never)]private ManagedWeakReference _templatedParentWeakRef; - [EditorBrowsable(EditorBrowsableState.Never)]public ManagedWeakReference GetTemplatedParentWeakRef() => _templatedParentWeakRef; - - [EditorBrowsable(EditorBrowsableState.Never)]public DependencyObject GetTemplatedParent() => _templatedParentWeakRef?.Target as DependencyObject; - [EditorBrowsable(EditorBrowsableState.Never)]public void SetTemplatedParent(DependencyObject parent) - { - //if (parent != null) - //{ - // global::System.Diagnostics.Debug.Assert(parent - // is global::Windows.UI.Xaml.Controls.Control - // or global::Windows.UI.Xaml.Controls.ContentPresenter - // or global::Windows.UI.Xaml.Controls.ItemsPresenter); - // global::System.Diagnostics.Debug.Assert(GetTemplatedParent() == null); - //} - - SetTemplatedParentImpl(parent); - } - [EditorBrowsable(EditorBrowsableState.Never)]private protected virtual void SetTemplatedParentImpl(DependencyObject parent) - { - _templatedParentWeakRef = (parent as IWeakReferenceProvider)?.WeakReference; - } private readonly static IEventProvider _binderTrace = Tracing.Get(DependencyObjectStore.TraceProvider.Id); private BinderReferenceHolder _refHolder; diff --git a/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs b/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs index 059614e4d766..9769dfb9e452 100644 --- a/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs +++ b/src/SourceGenerators/Uno.UI.SourceGenerators/DependencyObject/DependencyObjectGenerator.cs @@ -175,18 +175,15 @@ private void ProcessType(INamedTypeSymbol typeSymbol) } }; - var canBeTpProvider = !typeSymbol.Interfaces.Any(x => x.Name == "INotTemplatedParentProvider"); - var implementations = new string?[] { "IDependencyObjectStoreProvider", _isUnoSolution && !typeSymbol.IsSealed ? "IDependencyObjectInternal" : null, - canBeTpProvider ? "ITemplatedParentProvider" : null, "IWeakReferenceProvider", }.Where(x => x is not null); using (typeSymbol.AddToIndentedStringBuilder(builder, beforeClassHeaderAction, afterClassHeader: " : " + string.Join(", ", implementations))) { - GenerateDependencyObjectImplementation(typeSymbol, builder, hasDispatcherQueue: _dependencyObjectSymbol!.GetMembers("DispatcherQueue").Any(), canBeTpProvider); + GenerateDependencyObjectImplementation(typeSymbol, builder, hasDispatcherQueue: _dependencyObjectSymbol!.GetMembers("DispatcherQueue").Any()); GenerateIBinderImplementation(typeSymbol, builder); } @@ -768,7 +765,7 @@ public override bool Equals(object other) } } - private void GenerateDependencyObjectImplementation(INamedTypeSymbol typeSymbol, IndentedStringBuilder builder, bool hasDispatcherQueue, bool implTpProvider) + private void GenerateDependencyObjectImplementation(INamedTypeSymbol typeSymbol, IndentedStringBuilder builder, bool hasDispatcherQueue) { builder.AppendLineIndented(@"private DependencyObjectStore __storeBackingField;"); builder.AppendLineIndented(@"public global::Windows.UI.Core.CoreDispatcher Dispatcher => global::Windows.ApplicationModel.Core.CoreApplication.MainView.Dispatcher;"); @@ -818,37 +815,6 @@ private void GenerateDependencyObjectImplementation(INamedTypeSymbol typeSymbol, builder.AppendLineIndented("internal virtual void OnPropertyChanged2(global::Microsoft.UI.Xaml.DependencyPropertyChangedEventArgs args) { }"); } } - - if (implTpProvider) - { - var unoBrowsableOnly = _isUnoSolution ? null : "[EditorBrowsable(EditorBrowsableState.Never)]"; - - builder.AppendLine(); - builder.AppendMultiLineIndented($$""" - {{unoBrowsableOnly}}private ManagedWeakReference _templatedParentWeakRef; - {{unoBrowsableOnly}}public ManagedWeakReference GetTemplatedParentWeakRef() => _templatedParentWeakRef; - - {{unoBrowsableOnly}}public DependencyObject GetTemplatedParent() => _templatedParentWeakRef?.Target as DependencyObject; - {{unoBrowsableOnly}}public void SetTemplatedParent(DependencyObject parent) - { - //if (parent != null) - //{ - // global::System.Diagnostics.Debug.Assert(parent - // is global::Windows.UI.Xaml.Controls.Control - // or global::Windows.UI.Xaml.Controls.ContentPresenter - // or global::Windows.UI.Xaml.Controls.ItemsPresenter); - // global::System.Diagnostics.Debug.Assert(GetTemplatedParent() == null); - //} - - SetTemplatedParentImpl(parent); - } - {{unoBrowsableOnly}}{{(typeSymbol.IsSealed ? "private" : "private protected virtual")}} void SetTemplatedParentImpl(DependencyObject parent) - { - _templatedParentWeakRef = (parent as IWeakReferenceProvider)?.WeakReference; - } - """ - ); - } } } } diff --git a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml deleted file mode 100644 index bfe83efffdbf..000000000000 --- a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml +++ /dev/null @@ -1,19 +0,0 @@ - - - - - diff --git a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs deleted file mode 100644 index 4c515ab34c65..000000000000 --- a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/Setup/BehaviorSetup.xaml.cs +++ /dev/null @@ -1,106 +0,0 @@ -using System; -using System.Diagnostics.CodeAnalysis; -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -#if HAS_UNO -using Uno.UI.DataBinding; -#endif - -namespace Uno.UI.RuntimeTests.Tests.TemplatedParent.Setup; - -public sealed partial class BehaviorSetup : Page -{ - public BehaviorSetup() - { - this.InitializeComponent(); - } -} - -public sealed class Interaction -{ - #region DependencyProperty: Behaviors - - public static DependencyProperty BehaviorsProperty { get; } = DependencyProperty.RegisterAttached( - "Behaviors", - typeof(BehaviorCollection), - typeof(Interaction), - new PropertyMetadata(null, OnBehaviorsChanged)); - - public static BehaviorCollection GetBehaviors(DependencyObject obj) => GetBehaviorsOverride(obj); - public static void SetBehaviors(DependencyObject obj, BehaviorCollection value) => obj.SetValue(BehaviorsProperty, value); - - #endregion - - private static BehaviorCollection GetBehaviorsOverride(DependencyObject obj) - { - var value = (BehaviorCollection)obj.GetValue(BehaviorsProperty); - if (value is null) - { - obj.SetValue(BehaviorsProperty, value = new BehaviorCollection()); - } - - return value; - } - - private static void OnBehaviorsChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) - { - if (e.NewValue is BehaviorCollection collection) - { - collection.AssociatedObject = sender; - } - } -} -public sealed class BehaviorCollection : DependencyObjectCollection -{ - public DependencyObject AssociatedObject { get; set; } -} - -public interface IBehavior { } - -public partial class LegacyDOBehavior : DependencyObject, IBehavior -#if HAS_UNO - , INotTemplatedParentProvider -#endif -{ - #region DependencyProperty: TestValue - - public static DependencyProperty TestValueProperty { get; } = DependencyProperty.Register( - nameof(TestValue), - typeof(object), - typeof(LegacyDOBehavior), - new PropertyMetadata(default(object), OnTestValueChanged)); - - public object TestValue - { - get => (object)GetValue(TestValueProperty); - set => SetValue(TestValueProperty, value); - } - - #endregion - - private static void OnTestValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) - { - } -} -public partial class NonLegacyDOBehavior : DependencyObject, IBehavior -{ - #region DependencyProperty: TestValue - - public static DependencyProperty TestValueProperty { get; } = DependencyProperty.Register( - nameof(TestValue), - typeof(object), - typeof(NonLegacyDOBehavior), - new PropertyMetadata(default(object), OnTestValueChanged)); - - public object TestValue - { - get => (object)GetValue(TestValueProperty); - set => SetValue(TestValueProperty, value); - } - - #endregion - - private static void OnTestValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs e) - { - } -} diff --git a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs index 2d2b4b02aeaa..a82b2487509d 100644 --- a/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs +++ b/src/Uno.UI.RuntimeTests/Tests/TemplatedParent/TemplatedParentTests.cs @@ -289,27 +289,6 @@ public async Task VisualStateGroup_TP_Inheritance() """; VerifyTree(expectations, setup, checkVSG: true); } - -#if HAS_UNO - [TestMethod] - public async Task LegacyDO_StillSupports_TP_Injection() - { - var setup = new BehaviorSetup(); - await UITestHelper.Load(setup, x => x.IsLoaded); - - var button = setup.Content as Button ?? throw new Exception("button not found"); - var grid = button.GetTemplateRoot() ?? throw new Exception("template root not found"); - var collection = Interaction.GetBehaviors(grid) ?? throw new Exception("behavior collection not found"); - - var sut0 = collection.ElementAtOrDefault(0) as LegacyDOBehavior; - - // Verify that "legacy DepObj"(DO from library built before templated-parent rework) - // 1. is simulated correctly via the "INotTemplatedParentProvider" blocker - Assert.IsNotInstanceOfType(sut0, "sut0 shouldnt impl ITemplatedParentProvider"); - // 2. still supports tp-injection. - Assert.AreEqual(button.Tag, sut0.TestValue, "sut0.TestValue template-binding failed"); - } -#endif } public partial class TemplatedParentTests // helper methods { diff --git a/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs b/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs index acf1b430333d..77ef99731c6f 100644 --- a/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs +++ b/src/Uno.UI/Controls/NativeFramePresenter.iOS.cs @@ -16,6 +16,7 @@ using System.Collections.Specialized; using System.Threading.Tasks; using ObjCRuntime; +using Uno.UI.Extensions; namespace Uno.UI.Controls { @@ -88,19 +89,19 @@ public NativeFramePresenter() NavigationController.NavigationBarHidden = true; } + private protected override void OnLoaded() + { + base.OnLoaded(); + + InitializeController(this.GetTemplatedParent() as Frame); + } + protected override Size MeasureOverride(Size availableSize) => MeasureFirstChild(availableSize); protected override Size ArrangeOverride(Size finalSize) => ArrangeFirstChild(finalSize); - private protected override void SetTemplatedParentImpl(DependencyObject parent) - { - base.SetTemplatedParentImpl(parent); - - InitializeController(parent as Frame); - } - /// /// Exposes the underlying instance used to display this frame presenter. /// diff --git a/src/Uno.UI/DataBinding/BindingExpression.cs b/src/Uno.UI/DataBinding/BindingExpression.cs index ec18e118ad06..6a57eb0b2eb7 100644 --- a/src/Uno.UI/DataBinding/BindingExpression.cs +++ b/src/Uno.UI/DataBinding/BindingExpression.cs @@ -54,13 +54,7 @@ public object DataContext { if (ParentBinding.IsTemplateBinding) { - return _view?.Target switch - { - ITemplatedParentProvider tpProvider => tpProvider.GetTemplatedParent(), - IDependencyObjectStoreProvider dosProvider => dosProvider.Store.GetTemplatedParent2(), - - _ => null, - }; + return (_view?.Target as IDependencyObjectStoreProvider)?.Store.GetTemplatedParent2(); } if (_isElementNameSource || ExplicitSource != null) { @@ -157,13 +151,7 @@ Binding binding private ManagedWeakReference GetWeakTemplatedParent() { - return _view?.Target switch - { - ITemplatedParentProvider tpProvider => tpProvider.GetTemplatedParentWeakRef(), - IDependencyObjectStoreProvider dosProvider => dosProvider.Store.GetTemplatedParentWeakRef(), - - _ => null, - }; + return (_view?.Target as IDependencyObjectStoreProvider)?.Store.GetTemplatedParentWeakRef(); } private ManagedWeakReference GetWeakDataContext() diff --git a/src/Uno.UI/DataBinding/ITemplatedParentProvider.cs b/src/Uno.UI/DataBinding/ITemplatedParentProvider.cs deleted file mode 100644 index c307f4f02ff3..000000000000 --- a/src/Uno.UI/DataBinding/ITemplatedParentProvider.cs +++ /dev/null @@ -1,28 +0,0 @@ -using System; -using System.Collections.Generic; -using System.ComponentModel; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using Microsoft.UI.Xaml; - -namespace Uno.UI.DataBinding; - -[EditorBrowsable(EditorBrowsableState.Never)] -public interface ITemplatedParentProvider -{ - ManagedWeakReference GetTemplatedParentWeakRef(); - - DependencyObject GetTemplatedParent(); - - void SetTemplatedParent(DependencyObject parent); -} - -[EditorBrowsable(EditorBrowsableState.Never)] -/// -/// Marker interface used to block DependencyObjectGenerator -/// from injecting and its implementations. -/// -public interface INotTemplatedParentProvider -{ -} diff --git a/src/Uno.UI/NativeFramePresenter.Android.cs b/src/Uno.UI/NativeFramePresenter.Android.cs index 0729cfbfda17..c031e4abb882 100644 --- a/src/Uno.UI/NativeFramePresenter.Android.cs +++ b/src/Uno.UI/NativeFramePresenter.Android.cs @@ -38,11 +38,11 @@ public NativeFramePresenter() _pageStack = this; } - private protected override void SetTemplatedParentImpl(DependencyObject parent) + private protected override void OnLoaded() { - base.SetTemplatedParentImpl(parent); + base.OnLoaded(); - Initialize(parent as Frame); + Initialize(this.GetTemplatedParent() as Frame); } private void Initialize(Frame frame) diff --git a/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs b/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs index 8b42f95b8eaf..89a8be2e9f67 100644 --- a/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs +++ b/src/Uno.UI/UI/Xaml/Controls/ScrollContentPresenter/NativeScrollContentPresenter.iOS.cs @@ -107,7 +107,7 @@ private void InvokeOnScroll() scroller.Presenter.OnNativeScroll(clampedOffset.X, clampedOffset.Y, isIntermediate: _isInAnimatedScroll); } - private ScrollViewer GetParentScrollViewer() => _scrollViewer.TryGetTarget(out var s) ? s : GetTemplatedParent() as ScrollViewer; + private ScrollViewer GetParentScrollViewer() => _scrollViewer.TryGetTarget(out var s) ? s : this.GetTemplatedParent() as ScrollViewer; // Called when user starts dragging private void OnDraggingStarted(object sender, EventArgs e) diff --git a/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs b/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs index 0036e8a9d464..c3d0de4a08be 100644 --- a/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs +++ b/src/Uno.UI/UI/Xaml/DependencyObjectExtensions.cs @@ -448,5 +448,15 @@ internal static void RegisterPropertyChangedCallbackStrong(this IDependencyObjec // allows for some customization - e.g. glyphs should not respect this. internal static bool IsRightToLeft(this DependencyObject dependencyObject) => dependencyObject is FrameworkElement fw && fw.FlowDirection == FlowDirection.RightToLeft; + + internal static DependencyObject GetTemplatedParent(this DependencyObject @do) + { + return (@do as IDependencyObjectStoreProvider)?.Store.GetTemplatedParent2(); + } + + internal static void SetTemplatedParent(this DependencyObject @do, DependencyObject tp) + { + (@do as IDependencyObjectStoreProvider)?.Store.SetTemplatedParent2(tp); + } } } diff --git a/src/Uno.UI/UI/Xaml/FrameworkElement.cs b/src/Uno.UI/UI/Xaml/FrameworkElement.cs index 1cceaf162fe0..cd0f17591dde 100644 --- a/src/Uno.UI/UI/Xaml/FrameworkElement.cs +++ b/src/Uno.UI/UI/Xaml/FrameworkElement.cs @@ -1085,5 +1085,14 @@ private protected virtual bool HasTemplateChild() return null; } + + internal DependencyObject GetTemplatedParent() + { + return (this as IDependencyObjectStoreProvider)?.Store.GetTemplatedParent2(); + } + internal void SetTemplatedParent(DependencyObject tp) + { + (this as IDependencyObjectStoreProvider)?.Store.SetTemplatedParent2(tp); + } } } diff --git a/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs b/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs index 2d85062f360c..abfc2351690d 100644 --- a/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs +++ b/src/Uno.UI/UI/Xaml/TemplatedParentScope.cs @@ -15,8 +15,11 @@ internal static class TemplatedParentScope /// Set the templated-parent for the dependency-object based on the currently materializing template. /// /// Should be true, if not called from ctor. + /// internal static void UpdateTemplatedParentIfNeeded(DependencyObject? @do, bool reapplyTemplateBindings = false, DependencyObjectStore? store = null) { + // note: `store` instance is used within DOStore.ctor to avoid stack overflow. + if (@do is null) return; if (GetCurrentTemplate() is { IsLegacyTemplate: true, TemplatedParent: { } tp }) { @@ -26,22 +29,18 @@ internal static void UpdateTemplatedParentIfNeeded(DependencyObject? @do, bool r internal static void UpdateTemplatedParent(DependencyObject? @do, DependencyObject tp, bool reapplyTemplateBindings = true, DependencyObjectStore? store = null) { - if (@do is ITemplatedParentProvider tpProvider) + if (@do is IDependencyObjectStoreProvider provider) { - tpProvider.SetTemplatedParent(tp); + (store ?? provider.Store).SetTemplatedParent2(tp); // note: This can be safely removed, once moving away from legacy impl. // In the new impl, the templated-parent would be immediately available // before any binding is applied, so there is no need to force update. - if (reapplyTemplateBindings && @do is IDependencyObjectStoreProvider dosProvider) + if (reapplyTemplateBindings) { - (store ?? dosProvider.Store).ApplyTemplateBindings(); + (store ?? provider.Store).ApplyTemplateBindings(); } } - else if (@do is IDependencyObjectStoreProvider dosProvider) - { - (store ?? dosProvider.Store).SetTemplatedParent2(tp); - } } internal static MaterializingTemplateInfo? GetCurrentTemplate() diff --git a/src/Uno.UI/UI/Xaml/VisualState.cs b/src/Uno.UI/UI/Xaml/VisualState.cs index 6f41073e312a..5dafa8649b72 100644 --- a/src/Uno.UI/UI/Xaml/VisualState.cs +++ b/src/Uno.UI/UI/Xaml/VisualState.cs @@ -165,7 +165,7 @@ private void EnsureMaterialized() LazyBuilder = null; try { - TemplatedParentScope.PushScope(GetTemplatedParent(), FromLegacyTemplate == true); + TemplatedParentScope.PushScope(this.GetTemplatedParent(), FromLegacyTemplate == true); builder.Invoke(); } finally diff --git a/src/Uno.UI/UI/Xaml/VisualTransition.cs b/src/Uno.UI/UI/Xaml/VisualTransition.cs index 2b4c5788ddb3..8d66b875799c 100644 --- a/src/Uno.UI/UI/Xaml/VisualTransition.cs +++ b/src/Uno.UI/UI/Xaml/VisualTransition.cs @@ -51,7 +51,7 @@ private void EnsureMaterialized() LazyBuilder = null; try { - TemplatedParentScope.PushScope(GetTemplatedParent(), FromLegacyTemplate == true); + TemplatedParentScope.PushScope(this.GetTemplatedParent(), FromLegacyTemplate == true); builder.Invoke(); } finally From a3b61465271fd2aeb0f8722f3fac204192587e6c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sat, 12 Oct 2024 11:46:10 -0400 Subject: [PATCH 075/664] chore: Adjust for GetTP new location (cherry picked from commit 08691ec485c8008bfc60d11e038f9e930bf63018) --- src/Uno.UI.Maps/MapPresenter.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.Maps/MapPresenter.cs b/src/Uno.UI.Maps/MapPresenter.cs index 9834068782a9..b3bd76863c74 100644 --- a/src/Uno.UI.Maps/MapPresenter.cs +++ b/src/Uno.UI.Maps/MapPresenter.cs @@ -25,7 +25,7 @@ private void UpdateOwnerSubscriptions() { _ownerSubscription.Disposable = null; - _owner = GetTemplatedParent() as MapControl; + _owner = this.GetTemplatedParent() as MapControl; if (_owner != null) { From 98b86ef18590648e592ccec2c2c522925189f0d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sat, 12 Oct 2024 21:42:37 -0400 Subject: [PATCH 076/664] chore: Adjust maps dependency (cherry picked from commit f3c3de2c144551647f20cc19c2e0fcd827ace54c) --- src/Uno.UI/AssemblyInfo.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Uno.UI/AssemblyInfo.cs b/src/Uno.UI/AssemblyInfo.cs index 0c1a21251bd8..0197304d873a 100644 --- a/src/Uno.UI/AssemblyInfo.cs +++ b/src/Uno.UI/AssemblyInfo.cs @@ -16,6 +16,7 @@ [assembly: InternalsVisibleTo("Uno.UI.Svg")] [assembly: InternalsVisibleTo("Uno.UI.Svg.Skia")] [assembly: InternalsVisibleTo("Uno.UI.XamlHost")] +[assembly: InternalsVisibleTo("Uno.UI.Maps")] [assembly: InternalsVisibleTo("SamplesApp")] [assembly: InternalsVisibleTo("SamplesApp.Droid")] [assembly: InternalsVisibleTo("SamplesApp.macOS")] From 1c86455c387ae6872f66c76bbd680f279c5946ae Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Mon, 14 Oct 2024 16:31:05 +0200 Subject: [PATCH 077/664] fix: Do not warn about target platform order for libraries --- src/Uno.Sdk/targets/Uno.Sdk.After.targets | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Uno.Sdk/targets/Uno.Sdk.After.targets b/src/Uno.Sdk/targets/Uno.Sdk.After.targets index 643b98a3e6b9..e5c4ab145bb9 100644 --- a/src/Uno.Sdk/targets/Uno.Sdk.After.targets +++ b/src/Uno.Sdk/targets/Uno.Sdk.After.targets @@ -93,6 +93,7 @@ Condition=" '$(UnoDisableVSWarnDesktopIsFirst)' != 'true' AND '$(BuildingInsideVisualStudio)' == 'true' + AND '$(OutputType)'!='Library' AND '$(_UnoTargetFrameworkCount)' != '' AND $(_UnoTargetFrameworkCount) > 1 AND $([MSBuild]::GetTargetPlatformIdentifier($(_UnoFirstOriginalTargetFramework))) == 'desktop'"> @@ -106,6 +107,7 @@ Condition=" '$(UnoDisableVSWarnWindowsIsFirst)' != 'true' AND '$(BuildingInsideVisualStudio)' == 'true' + AND '$(OutputType)'!='Library' AND '$(_UnoTargetFrameworkCount)' != '' AND $(_UnoTargetFrameworkCount) > 1 AND $([MSBuild]::GetTargetPlatformIdentifier($(_UnoFirstOriginalTargetFramework))) == 'windows'"> @@ -119,6 +121,7 @@ Condition=" '$(UnoDisableVSWarnNetIsFirst)' != 'true' AND '$(BuildingInsideVisualStudio)' == 'true' + AND '$(OutputType)'!='Library' AND '$(_UnoTargetFrameworkCount)' != '' AND $(_UnoTargetFrameworkCount) > 1 AND $([MSBuild]::GetTargetPlatformIdentifier($(_UnoFirstOriginalTargetFramework))) == '' From 7f325054ac1711a0857275f6fc6f09b095015db3 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Mon, 14 Oct 2024 16:41:31 +0200 Subject: [PATCH 078/664] fix: Reset last input type before test execution --- .../Controls/UnitTest/UnitTestsControl.cs | 20 +++++++++++++++---- 1 file changed, 16 insertions(+), 4 deletions(-) diff --git a/src/SamplesApp/SamplesApp.UnitTests.Shared/Controls/UnitTest/UnitTestsControl.cs b/src/SamplesApp/SamplesApp.UnitTests.Shared/Controls/UnitTest/UnitTestsControl.cs index 07b6f451fbf4..e45322907703 100644 --- a/src/SamplesApp/SamplesApp.UnitTests.Shared/Controls/UnitTest/UnitTestsControl.cs +++ b/src/SamplesApp/SamplesApp.UnitTests.Shared/Controls/UnitTest/UnitTestsControl.cs @@ -769,7 +769,7 @@ async Task InvokeTestMethod(TestCase testCase) canRetry = false; var cleanupActions = new List> { - GenericCleanupAsync + GeneralCleanupAsync }; try @@ -800,6 +800,8 @@ await TestServices.WindowHelper.RootElementDispatcher.RunAsync(() => }); } + await GeneralInitAsync(); + object returnValue = null; var methodArguments = testCase.Parameters; if (test.PassFiltersAsFirstParameter) @@ -976,14 +978,24 @@ await TestServices.WindowHelper.RootElementDispatcher.RunAsync(() => } } - async Task GenericCleanupAsync() + async Task GeneralInitAsync() { +#if HAS_UNO await TestServices.WindowHelper.RootElementDispatcher.RunAsync(() => { - CloseRemainingPopups(); -#if HAS_UNO ResetLastInputDeviceType(); + }); +#else + await Task.CompletedTask; #endif + } + + async Task GeneralCleanupAsync() + { + await TestServices.WindowHelper.RootElementDispatcher.RunAsync(() => + { + CloseRemainingPopups(); + }); } From 35696842a7ffd51494562048307f5189a546df3e Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Mon, 14 Oct 2024 16:47:12 +0200 Subject: [PATCH 079/664] chore: Add missing dot --- .../Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj b/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj index 0e8df36a680f..90ac5705ca18 100644 --- a/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj +++ b/src/AddIns/Uno.UI.GooglePlay/Uno.UI.GooglePlay.netcoremobile.csproj @@ -48,6 +48,6 @@ - + From ac8082fad33fa4f185659cdcaf41103734cfa7e7 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Mon, 14 Oct 2024 18:29:30 +0300 Subject: [PATCH 080/664] chore: XI2 adjustments and comments --- .../X11PointerInputSource.XInput.cs | 290 +++++++++++++----- 1 file changed, 212 insertions(+), 78 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs index 0bfc4d575b1e..0f6bda1737e3 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs @@ -88,11 +88,57 @@ namespace Uno.WinUI.Runtime.Skia.X11; internal partial class X11PointerInputSource { - private readonly Dictionary _lastHorizontalTouchpadWheelPosition = new(); - private readonly Dictionary _lastVerticalTouchpadWheelPosition = new(); - private readonly Dictionary _deviceInfoCache = new(); + private const int BitsPerByte = 8; + + // These are only written and read inside HandleXI2(), so no synchronization needed. + private readonly Dictionary> _valuatorValues = new(); // device id -> valuator number -> value + private readonly Dictionary _deviceInfoCache = new(); // device id -> device info // Excerpt from https://www.x.org/releases/X11R7.7/doc/inputproto/XI2proto.txt + // [[multitouch-device-modes]] + // Touch device modes + // ~~~~~~~~~~~~~~~~~~ + // + // Touch devices come in many different forms with varying capabilities. The + // following device modes are defined for this protocol: + // + // 'DirectTouch': + // These devices map their input region to a subset of the screen region. Touch + // events are delivered to window at the location of the touch. "direct" + // here refers to the user manipulating objects at their screen location. + // An example of a DirectTouch device is a touchscreen. + // + // 'DependentTouch': + // These devices do not have a direct correlation between a touch location and + // a position on the screen. Touch events are delivered according to the + // location of the device's cursor and often need to be interpreted + // relative to the current position of that cursor. Such interactions are + // usually the result of a gesture performed on the device, rather than + // direct manipulation. An example of a DependentTouch device is a + // trackpad. + // + // A device is identified as only one of the device modes above at any time, and + // the touch mode may change at any time. If a device's touch mode changes, an + // XIDeviceChangedEvent is generated. + // + // [[multitouch-processing]] + // Touch event delivery + // ~~~~~~~~~~~~~~~~~~~~ + // + // For direct touch devices, the window set for event propagation is the set of + // windows from the root window to the topmost window lying at the co-ordinates + // of the touch. + // + // For dependent devices, the window set for event propagation is the set of + // windows from the root window to the window that contains the device's + // pointer. A dependent device may only have one window set at a time, for all + // touches. Any future touch sequence will use the same window set. The window set + // is cleared when all touch sequences on the device end. + // + // A window set is calculated on TouchBegin and remains constant until the end + // of the sequence. Modifications to the window hierarchy, new grabs or changed + // event selection do not affect the window set. + // // Pointer control of dependent devices // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ // On a dependent device, the device may differ between a pointer-controlling @@ -107,13 +153,13 @@ internal partial class X11PointerInputSource // non-pointer-controlling, or vice versa. // // - If a touch changes from pointer-controlling to non-pointer-controlling, - // a new touch ID is assigned and a TouchBegin is sent for the last known - // position of the touch. Further events are sent as TouchUpdate events, or as - // TouchEnd event if the touch terminates. + // a new touch ID is assigned and a TouchBegin is sent for the last known + // position of the touch. Further events are sent as TouchUpdate events, or as + // TouchEnd event if the touch terminates. // // - If a touch changes from non-pointer-controlling to pointer-controlling, a - // TouchEnd is sent for that touch at the last known position of the touch. - // Further events are sent as pointer events. + // TouchEnd is sent for that touch at the last known position of the touch. + // Further events are sent as pointer events. // // The conditions to switch from pointer-controlling to non-pointer-controlling // touch is implementation-dependent. A device may support touches that are @@ -169,65 +215,73 @@ public unsafe PointerEventArgs CreatePointerEventArgsFromDeviceEvent(XIDeviceEve // with the new position. This also means that the first "tick" will not result in a WheelChanged event, // but will only be used to set the initial wheel position. // Also, we can get a "diagonal scroll" where both the horizontal and the vertical positions change. - // Our PointerEventArgs don't support this, so we arbitrarily choose to make diagonal scrolling - // result in a vertical scroll. + // Our PointerEventArgs don't support this, so in that case, we arbitrarily choose the direction to + // be the direction of the last scroller class to be present in data.valuators. // IMPORTANT: DO NOT FORGET TO RESET POSITIONS ON LEAVE. if (data.evtype is XiEventType.XI_Motion && info is { } info_) { - var valuators = data.valuators; - var values = valuators.Values; - for (var i = 0; i < valuators.MaskLen * 8; i++) + var maskLen = data.valuators.MaskLen * BitsPerByte; + var valuatorMask = data.valuators.Mask; + var values = data.valuators.Values; + for (var i = 0; i < maskLen; i++) { - if (XLib.XIMaskIsSet(valuators.Mask, i)) + if (XLib.XIMaskIsSet(valuatorMask, i)) { - var (valuator, value) = (i, *values++); - if (valuator == info_.HorizontalValuator || valuator == info_.VerticalValuator) + var value = *(values++); + // Update valuator + if (!_valuatorValues.TryGetValue(data.sourceid, out var valuatorsDict)) { - isHorizontalMouseWheel = valuator == info_.HorizontalValuator; - var (dict, increment) = isHorizontalMouseWheel ? - (_lastHorizontalTouchpadWheelPosition, info_.HorizontalIncrement!.Value) : - (_lastVerticalTouchpadWheelPosition, info_.VerticalIncrement!.Value); - if (dict.TryGetValue(data.sourceid, out var oldValue)) - { - wheelDelta = (oldValue - value) * ScrollContentPresenter.ScrollViewerDefaultMouseWheelDelta / increment; - } - dict[data.sourceid] = value; + valuatorsDict = _valuatorValues[data.sourceid] = new Dictionary(); + } + var oldValueExisted = valuatorsDict.TryGetValue(i, out var oldValue); + valuatorsDict[i] = value; + + // Act on new value + if (oldValueExisted && info_.Scrollers.TryGetValue(i, out var scrollInfo)) + { + isHorizontalMouseWheel = scrollInfo.ScrollType == XiScrollType.Horizontal; + wheelDelta = (oldValue - value) * ScrollContentPresenter.ScrollViewerDefaultMouseWheelDelta / scrollInfo.Increment; } - // DO NOT BREAK OUT OF THE FOR LOOP. We still need to update the other valuator positions. + // We currently don't support Linux's MT protocol valuators. + // More at https://www.kernel.org/doc/html/v4.14/input/multi-touch-protocol.html + // else if (info_.Valuators.TryGetValue(i, out var valuatorInfo) && valuatorInfo.Label == X11Helper.GetAtom(display, "Abs MT Pressure")) + // { + // pressureValuator = valuatorInfo.Value; + // } } } } - var mask = 0; + var buttonMask = 0; for (var i = 0; i < data.buttons.MaskLen; i++) // masklen <= 4 { - mask |= data.buttons.Mask[i] << (8 * i); + buttonMask |= data.buttons.Mask[i] << (BitsPerByte * i); } if (data.evtype is XiEventType.XI_ButtonPress) { - mask |= (1 << data.detail); // the newly pressed button is not added to the mask yet. + buttonMask |= (1 << data.detail); // the newly pressed button is not added to the mask yet. } else if (data.evtype is XiEventType.XI_ButtonRelease) { - mask &= ~(1 << data.detail); // the newly released button is not removed from the mask yet. + buttonMask &= ~(1 << data.detail); // the newly released button is not removed from the mask yet. } else if (data.evtype is XiEventType.XI_TouchBegin or XiEventType.XI_TouchUpdate) { - mask = 1 << data.detail; // touch events only have one button. + buttonMask = 1 << data.detail; // touch events only have one button. } var properties = new PointerPointProperties { - IsLeftButtonPressed = (mask & (1 << LEFT)) != 0 || (data.evtype is XiEventType.XI_TouchBegin or XiEventType.XI_TouchUpdate), - IsMiddleButtonPressed = (mask & (1 << MIDDLE)) != 0, - IsRightButtonPressed = (mask & (1 << RIGHT)) != 0, - IsXButton1Pressed = (mask & (1 << XButton1)) != 0, - IsXButton2Pressed = (mask & (1 << XButton2)) != 0, + IsLeftButtonPressed = (buttonMask & (1 << LEFT)) != 0 || (data.evtype is XiEventType.XI_TouchBegin or XiEventType.XI_TouchUpdate), + IsMiddleButtonPressed = (buttonMask & (1 << MIDDLE)) != 0, + IsRightButtonPressed = (buttonMask & (1 << RIGHT)) != 0, + IsXButton1Pressed = (buttonMask & (1 << XButton1)) != 0, + IsXButton2Pressed = (buttonMask & (1 << XButton2)) != 0, IsHorizontalMouseWheel = isHorizontalMouseWheel, IsInRange = true, IsPrimary = true, - IsTouchPad = info is { } && IsTouchpad(info.Value.Properties), + IsTouchPad = info?.IsTouchpad ?? false, MouseWheelDelta = (int)Math.Round(wheelDelta), PointerUpdateKind = data.detail switch { @@ -276,7 +330,7 @@ public unsafe PointerEventArgs CreatePointerEventArgsFromEnterLeaveEvent(XIEnter var mask = 0; for (var i = 0; i < data.buttons.MaskLen; i++) // masklen <= 4 { - mask |= data.buttons.Mask[i] << (8 * i); + mask |= data.buttons.Mask[i] << (BitsPerByte * i); } var properties = new PointerPointProperties @@ -287,7 +341,7 @@ public unsafe PointerEventArgs CreatePointerEventArgsFromEnterLeaveEvent(XIEnter IsXButton1Pressed = (mask & (1 << XButton1)) != 0, IsXButton2Pressed = (mask & (1 << XButton2)) != 0, IsInRange = true, - IsTouchPad = GetDevicePropertiesFromId(data.sourceid) is { } info && IsTouchpad(info.Properties), + IsTouchPad = GetDevicePropertiesFromId(data.sourceid)?.IsTouchpad ?? false, IsHorizontalMouseWheel = false, }; @@ -318,15 +372,17 @@ public void HandleXI2Event(XEvent ev) { this.Log().Trace($"XI2 EVENT: {evtype}"); } + switch (evtype) { case XiEventType.XI_Enter: case XiEventType.XI_Leave: { - _lastHorizontalTouchpadWheelPosition.Clear(); - _lastVerticalTouchpadWheelPosition.Clear(); + var enterLeaveEvent = ev.GenericEventCookie.GetEvent(); + _valuatorValues.Remove(enterLeaveEvent.sourceid); + var args = CreatePointerEventArgsFromEnterLeaveEvent( - ev.GenericEventCookie.GetEvent(), + enterLeaveEvent, PointerDeviceType.Mouse); // https://www.x.org/releases/X11R7.7/doc/inputproto/XI2proto.txt: Touch events do not generate enter/leave events. if (evtype is XiEventType.XI_Enter) { @@ -378,6 +434,105 @@ public void HandleXI2Event(XEvent ev) break; } + // The spec mandates that X servers and devices supporting XI2 touch events and/or smooth scrolling + // must keep backward compatibility by emulating corresponding core-protocol events for these XI2-specific + // features. This means emulated ButtonPress/ButtonRelease/Motion events for touch and emulated + // ButtonPress/ButtonRelease on button 4,5,6 and 7. We make sure to ignore such emulated events. + // Excerpts from the spec: + // Smooth scrolling + // ~~~~~~~~~~~~~~~~ + // + // Historically, X implemented scrolling events by using button press events: + // button 4 was one “click” of the scroll wheel upwards, button 5 was downwards, + // button 6 was one unit of scrolling left, and button 7 was one unit of scrolling + // right. This is insufficient for e.g. touchpads which are able to provide + // scrolling events through multi-finger drag gestures, or simply dragging your + // finger along a designated strip along the side of the touchpad. + // + // Newer X servers may provide scrolling information through valuators to + // provide clients with more precision than the legacy button events. This + // scrolling information is part of the valuator data in device events. + // Scrolling events do not have a specific event type. + // + // Valuators for axes sending scrolling information must have one + // ScrollClass for each scrolling axis. If scrolling valuators are present on a + // device, the server must provide two-way emulation between these valuators + // and the legacy button events for each delta unit of scrolling. + // + // One unit of scrolling in either direction is considered to be equivalent to + // one button event, e.g. for a unit size of 1.0, -2.0 on an valuator type + // Vertical sends two button press/release events for button 4. Likewise, a + // button press event for button 7 generates an event on the Horizontal + // valuator with a value of +1.0. The server may accumulate deltas of less than + // one unit of scrolling. + // + // Any server providing this behaviour marks emulated button or valuator events + // with the XIPointerEmulated flag for DeviceEvents, and the XIRawEmulated flag + // for raw events, to hint at applications which event is a hardware event. + // + // If more than one scroll valuator of the same type is present on a device, + // the valuator marked with Preferred for the same scroll direction is used to + // convert legacy button events into scroll valuator events. If no valuator is + // marked Preferred or more than one valuator is marked with Preferred for this + // scroll direction, this should be considered a driver bug and the behaviour + // is implementation-dependent. + // ------------------------------------------------------------------ + // [[multitouch-emulation]] + // Pointer emulation from multitouch events + // ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ + // + // Touch sequences from direct touch devices may emulate pointer events. Only one + // touch sequence from a device may emulate pointer events at a time; which touch + // sequence emulates pointer events is implementation-dependent. + // + // Pointer events are emulated as follows: + // + // - A TouchBegin event generates a pointer motion event to the location of the + // touch with the same axis values of the touch event, followed by a button press + // event for button 1. + // - A TouchUpdate event generates a pointer motion event to the location of the + // touch and/or to update axis values of the pointer device. The button state + // as seen from the protocol includes button 1 set. + // - A TouchEnd event generates a pointer motion event to the location of the touch + // and/or to update the axis values if either have changed, followed by a button + // release event for button 1. The button state as seen from the protocol + // includes button 1 set. + // + // If a touch sequence emulates pointer events and an emulated pointer event + // triggers the activation of a passive grab, the grabbing client becomes the + // owner of the touch sequence. + // + // The touch sequence is considered to have been accepted if + // + // - the grab mode is asynchronous, or + // - the grab mode is synchronous and the device is thawed as a result of + // AllowEvents with AsyncPointer or AsyncDevice + // + // Otherwise, if the button press is replayed by the client, the touch sequence + // is considered to be rejected. + // + // Touch event delivery precedes pointer event delivery. A touch event emulating + // pointer events is delivered: + // + // - as a touch event to the top-most window of the current window set if a + // client has a touch grab on this window, + // - otherwise, as a pointer event to the top-most window of the current window + // set if a client has a pointer grab on this window, + // - otherwise, to the next child window in the window set until a grab has been + // found. + // + // If no touch or pointer grab on any window is active and the last window in the + // window set has been reached, the event is delivered: + // + // - as a touch event to the window if a client has selected for touch events + // on this window + // - otherwise, as a pointer event to the window if a client has selected for + // pointer events. + // - otherwise, to the next parent window in the window set until a selection has + // been found. + // + // Emulated pointer events will have the PointerEmulated flag set. A touch + // event that emulates pointer events has the TouchEmulatingPointer flag set. if ((data.flags & XiDeviceEventFlags.XIPointerEmulated) != 0) { if (this.Log().IsEnabled(LogLevel.Trace)) @@ -437,11 +592,7 @@ public void HandleXI2Event(XEvent ev) } } - // for some stupid reason, the device id can be reused for other devices if - // the original device is unplugged. For example, if device D1 is assigned device id 1 - // but is then unplugged, another device D2 can be assigned id 1. This means that we - // can't cache the lookups, and instead are forced to make this call every single time :( - private bool IsTouchpad(IEnumerable props) + private static bool IsTouchpad(IEnumerable props) { // X Input cannot distinguish between trackpads and mice. We do this // by testing for properties that should be available on trackpads. @@ -572,41 +723,24 @@ private bool IsTouchpad(IEnumerable props) } } - int? pressureValuator = null; - int? horizontalValuator = null; - double? horizontalIncrement = null; - int? verticalValuator = null; - double? verticalIncrement = null; - for (var index = 0; index < info.NumClasses; index++) - { - var xiAnyClassInfo = info.Classes[index]; - if (xiAnyClassInfo->Type == XiDeviceClass.XIScrollClass) - { - var classInfo = (XIScrollClassInfo*)xiAnyClassInfo; - if (classInfo->ScrollType == XiScrollType.Horizontal) - { - (horizontalValuator, horizontalIncrement) = (classInfo->Number, classInfo->Increment); - } - else - { - (verticalValuator, verticalIncrement) = (classInfo->Number, classInfo->Increment); - } - } - else if (xiAnyClassInfo->Type == XiDeviceClass.XIValuatorClass && - ((XIValuatorClassInfo*)xiAnyClassInfo)->Label == X11Helper.GetAtom(display, "Abs MT Pressure")) - { - pressureValuator = ((XIValuatorClassInfo*)xiAnyClassInfo)->Number; - } - } - - var @out = new DeviceInfo(new ImmutableList(propsResult), pressureValuator, horizontalValuator, horizontalIncrement, verticalValuator, verticalIncrement); - _deviceInfoCache[id] = @out; - return @out; + var classes = new Span(info.Classes, info.NumClasses).ToArray(); + var scollers = classes + .Where(classPointer => ((XIAnyClassInfo*)classPointer)->Type == XiDeviceClass.XIScrollClass) + .Select(classPointer => *(XIScrollClassInfo*)classPointer) + .Select(scrollClassInfo => (scrollClassInfo.Number, scrollClassInfo)) + .ToDictionary(); + var valuators = classes + .Where(classPointer => ((XIAnyClassInfo*)classPointer)->Type == XiDeviceClass.XIValuatorClass) + .Select(classPointer => *(XIValuatorClassInfo*)classPointer) + .Select(valuatorClassInfo => (valuatorClassInfo.Number, scrollClassInfo: valuatorClassInfo)) + .ToDictionary(); + var @out = new DeviceInfo(new ImmutableList(propsResult), IsTouchpad(propsResult), scollers, valuators); + return _deviceInfoCache[id] = @out; } } return null; } - private record struct DeviceInfo(ImmutableList Properties, int? PressureValuator, int? HorizontalValuator, double? HorizontalIncrement, int? VerticalValuator, double? VerticalIncrement); + private record struct DeviceInfo(ImmutableList Properties, bool IsTouchpad, Dictionary Scrollers, Dictionary Valuators); } From 879028bbb1752915f0f058dc7860c097cded0560 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Mon, 14 Oct 2024 19:21:58 +0300 Subject: [PATCH 081/664] chore: final touches --- .../X11PointerInputSource.XInput.cs | 7 ++++++- src/Uno.UWP/UI/Input/PointerPointProperties.cs | 1 + 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs index 0f6bda1737e3..a8f20948e6cb 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11PointerInputSource.XInput.cs @@ -89,7 +89,7 @@ namespace Uno.WinUI.Runtime.Skia.X11; internal partial class X11PointerInputSource { private const int BitsPerByte = 8; - + // These are only written and read inside HandleXI2(), so no synchronization needed. private readonly Dictionary> _valuatorValues = new(); // device id -> valuator number -> value private readonly Dictionary _deviceInfoCache = new(); // device id -> device info @@ -544,6 +544,10 @@ public void HandleXI2Event(XEvent ev) } var args = CreatePointerEventArgsFromDeviceEvent(data); + if (this.Log().IsEnabled(LogLevel.Trace)) + { + this.Log().Trace($"Created event args: {args}"); + } switch (evtype) { case XiEventType.XI_Motion when args.CurrentPoint.Properties.MouseWheelDelta != 0: @@ -581,6 +585,7 @@ public void HandleXI2Event(XEvent ev) { var data = ev.GenericEventCookie.GetEvent(); _deviceInfoCache.Remove(data.sourceid); + _valuatorValues.Remove(data.sourceid); break; } default: diff --git a/src/Uno.UWP/UI/Input/PointerPointProperties.cs b/src/Uno.UWP/UI/Input/PointerPointProperties.cs index 61ac081b11ce..dbfa81514bfa 100644 --- a/src/Uno.UWP/UI/Input/PointerPointProperties.cs +++ b/src/Uno.UWP/UI/Input/PointerPointProperties.cs @@ -155,6 +155,7 @@ public override string ToString() // Pen if (IsBarrelButtonPressed) builder.Append("barrel "); if (IsEraser) builder.Append("eraser "); + if (IsTouchPad) builder.Append("touchpad "); // Misc builder.Append('('); From 9a13603e2b7a9e355a3009e749961a72a22e4268 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Mon, 14 Oct 2024 20:58:57 +0300 Subject: [PATCH 082/664] chore: reduce Update() calls due to LayoutUpdated --- .../UI/Xaml/Controls/Border/BorderLayerRenderer.cs | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.cs b/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.cs index 4c3fd72c8064..c532ff604ace 100644 --- a/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.cs +++ b/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.cs @@ -1,5 +1,6 @@ #if !UNO_HAS_BORDER_VISUAL using System; +using Windows.Foundation; using Microsoft.UI.Xaml; using Uno.Disposables; @@ -15,6 +16,7 @@ internal partial class BorderLayerRenderer #pragma warning disable CS0414 // _currentState is not used on reference build private BorderLayerState _currentState; + private Size _sizeOnLastUpdate; #pragma warning restore CS0414 public BorderLayerRenderer(FrameworkElement owner) @@ -35,7 +37,13 @@ public BorderLayerRenderer(FrameworkElement owner) // Using SizeChanged on other platforms SHOULD work. But it didn't work on Android // for unknown reason. For now, we are using SizeChanged only on enhanced lifecycle // platforms where we are sure it works correctly. - _owner.LayoutUpdated += (_, _) => Update(); + _owner.LayoutUpdated += (_, _) => + { + if (_owner.RenderSize != _sizeOnLastUpdate) + { + Update(); + } + }; #endif } @@ -46,6 +54,7 @@ internal void Update() { if (_owner.IsLoaded) { + _sizeOnLastUpdate = _owner.RenderSize; UpdatePlatform(); } } From 78fa7d78945c46490653c262fe234f3e67d7e95d Mon Sep 17 00:00:00 2001 From: David Date: Mon, 14 Oct 2024 15:02:02 -0400 Subject: [PATCH 083/664] fix: Allow properties to be multi-lines --- src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs index 9d170b757ef2..5f72349877e1 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs @@ -20,6 +20,7 @@ public static IImmutableList Discover(string solutionFile) var targetFrameworks = GetConfigurationValue(result.output ?? "", "TargetFrameworks") .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) .Select(tfm => tfm.Trim()) + .Where(tfm => tfm is { Length: > 0 }) .Distinct(StringComparer.OrdinalIgnoreCase) .ToImmutableList(); @@ -50,6 +51,7 @@ public static IImmutableList Discover(string solutionFile) var addIns = GetConfigurationValue(result.output, "RemoteControlAddIns") .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) .Select(tfm => tfm.Trim()) + .Where(tfm => tfm is { Length: > 0 }) .Distinct(StringComparer.OrdinalIgnoreCase) .ToImmutableList(); @@ -69,7 +71,7 @@ public static IImmutableList Discover(string solutionFile) private static IEnumerable GetConfigurationValue(string msbuildResult, string nodeName) => Regex - .Matches(msbuildResult, $"<{nodeName}>(?.*)") + .Matches(msbuildResult, $"<{nodeName}>(?[^\\<\\>]*)", RegexOptions.Singleline) .Where(match => match.Success) .Select(match => match.Groups["value"].Value); } From 5541236688d2fce0297c3b1769f98962db67dc77 Mon Sep 17 00:00:00 2001 From: Youssef Victor Date: Mon, 14 Oct 2024 22:07:09 +0300 Subject: [PATCH 084/664] fix: Fix potential crash in PropertyValue.AreEqualImpl --- src/Uno.Foundation/PropertyValue.Internal.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Uno.Foundation/PropertyValue.Internal.cs b/src/Uno.Foundation/PropertyValue.Internal.cs index b67743b412cf..b7b4c02e5347 100644 --- a/src/Uno.Foundation/PropertyValue.Internal.cs +++ b/src/Uno.Foundation/PropertyValue.Internal.cs @@ -90,7 +90,8 @@ bool CompareOtherType() //} if (oldValueType.IsEnum) { - return oldValue switch + var oldValueUnwrapped = Convert.ChangeType(oldValue, oldValueType.GetEnumUnderlyingType()); + return oldValueUnwrapped switch { byte oldValueAsByte => oldValueAsByte == (byte)newValue, sbyte oldValueAsSByte => oldValueAsSByte == (sbyte)newValue, From 5813d5b9abef3fae4424081ad38f32c195f17e41 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 14 Oct 2024 15:02:02 -0400 Subject: [PATCH 085/664] fix: Allow properties to be multi-lines (cherry picked from commit 78fa7d78945c46490653c262fe234f3e67d7e95d) --- src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs index 9d170b757ef2..5f72349877e1 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs @@ -20,6 +20,7 @@ public static IImmutableList Discover(string solutionFile) var targetFrameworks = GetConfigurationValue(result.output ?? "", "TargetFrameworks") .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) .Select(tfm => tfm.Trim()) + .Where(tfm => tfm is { Length: > 0 }) .Distinct(StringComparer.OrdinalIgnoreCase) .ToImmutableList(); @@ -50,6 +51,7 @@ public static IImmutableList Discover(string solutionFile) var addIns = GetConfigurationValue(result.output, "RemoteControlAddIns") .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) .Select(tfm => tfm.Trim()) + .Where(tfm => tfm is { Length: > 0 }) .Distinct(StringComparer.OrdinalIgnoreCase) .ToImmutableList(); @@ -69,7 +71,7 @@ public static IImmutableList Discover(string solutionFile) private static IEnumerable GetConfigurationValue(string msbuildResult, string nodeName) => Regex - .Matches(msbuildResult, $"<{nodeName}>(?.*)") + .Matches(msbuildResult, $"<{nodeName}>(?[^\\<\\>]*)", RegexOptions.Singleline) .Where(match => match.Success) .Select(match => match.Groups["value"].Value); } From 42e14559e3dccbf13d019ce750a494a2289f64da Mon Sep 17 00:00:00 2001 From: Youssef Victor Date: Tue, 15 Oct 2024 09:58:33 +0300 Subject: [PATCH 086/664] chore: Fix build --- src/Uno.Foundation/PropertyValue.Internal.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Uno.Foundation/PropertyValue.Internal.cs b/src/Uno.Foundation/PropertyValue.Internal.cs index b7b4c02e5347..0e99f4ddff5d 100644 --- a/src/Uno.Foundation/PropertyValue.Internal.cs +++ b/src/Uno.Foundation/PropertyValue.Internal.cs @@ -1,4 +1,5 @@ using System; +using System.Globalization; namespace Windows.Foundation; @@ -90,7 +91,7 @@ bool CompareOtherType() //} if (oldValueType.IsEnum) { - var oldValueUnwrapped = Convert.ChangeType(oldValue, oldValueType.GetEnumUnderlyingType()); + var oldValueUnwrapped = Convert.ChangeType(oldValue, oldValueType.GetEnumUnderlyingType(), CultureInfo.InvariantCulture); return oldValueUnwrapped switch { byte oldValueAsByte => oldValueAsByte == (byte)newValue, From b77a2ef43accc28d839e62d2ff5bb822d2c2469b Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Tue, 15 Oct 2024 13:11:38 +0300 Subject: [PATCH 087/664] fix: X11's render timer interval was set to 1 frame per 16 ticks, not 16 ms --- src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.cs b/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.cs index 194927936de8..de8fde197c63 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11XamlRootHost.cs @@ -100,7 +100,7 @@ public X11XamlRootHost(X11WindowWrapper wrapper, Window winUIWindow, XamlRoot xa _configureCallback = configureCallback; _renderTimer = new DispatcherTimer(); - _renderTimer.Interval = new TimeSpan(1000 / 16); + _renderTimer.Interval = TimeSpan.FromMilliseconds(16.66); // 60 hz _renderTimer.Tick += (sender, o) => { if (Interlocked.Exchange(ref _needsConfigureCallback, 0) == 1) @@ -110,8 +110,8 @@ public X11XamlRootHost(X11WindowWrapper wrapper, Window winUIWindow, XamlRoot xa if (_renderDirty) { - _renderer?.Render(); _renderDirty = false; + _renderer?.Render(); } }; _renderTimer.Start(); From f91d6f1eae4cd519d2da1869efb2169f3fc20ce7 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 15 Oct 2024 15:00:23 +0200 Subject: [PATCH 088/664] test: ComboBox with Enum values --- .../Given_ComboBox.cs | 29 +++++++++++++++++++ 1 file changed, 29 insertions(+) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs index 4d49f9f6644d..b635b7da38e1 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs @@ -5,6 +5,7 @@ using System.Linq; using System.Reflection; using System.Threading.Tasks; +using FluentAssertions; using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls.Primitives; @@ -15,13 +16,16 @@ using MUXControlsTestApp.Utilities; using Private.Infrastructure; using SamplesApp.UITests; +using SkiaSharp; using Uno.Extensions; using Uno.UI.RuntimeTests.Helpers; using Uno.UI.RuntimeTests.Tests.ComboBoxTests; using Windows.Foundation; using Windows.Foundation.Metadata; +using Windows.Storage.Pickers; using Windows.UI.Input.Preview.Injection; using static Private.Infrastructure.TestServices; +using ComboBoxHelper = Microsoft.UI.Xaml.Tests.Common.ComboBoxHelper; #if WINAPPSDK using Uno.UI.Extensions; @@ -1293,6 +1297,31 @@ public async Task When_Customized_Popup_Placement(PopupPlacementMode mode, doubl } } + [TestMethod] + [RunsOnUIThread] + public async Task When_Items_Are_Enum_Values() + { + var comboBox = new ComboBox(); + comboBox.ItemsSource = Enum.GetValues(typeof(PickerLocationId)).Cast(); + comboBox.SelectedIndex = 0; + TestServices.WindowHelper.WindowContent = comboBox; + await TestServices.WindowHelper.WaitForLoaded(comboBox); + + await ComboBoxHelper.OpenComboBox(comboBox, ComboBoxHelper.OpenMethod.Programmatic); + await TestServices.WindowHelper.WaitForIdle(); + + Assert.IsTrue(comboBox.IsDropDownOpen); + + await TestServices.WindowHelper.WaitForIdle(); + + var popup = VisualTreeHelper.GetOpenPopupsForXamlRoot(comboBox.XamlRoot).FirstOrDefault(); + Assert.IsNotNull(popup); + + var child = (FrameworkElement)popup.Child; + var comboBoxItems = child.FindChildren().ToArray(); + Assert.AreEqual(Enum.GetValues(typeof(PickerLocationId)).Length, comboBoxItems.Length); + } + #if HAS_UNO [TestMethod] [RunsOnUIThread] From 974baa7d241eaf1d480dc09f3ba726b838aef290 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 15 Oct 2024 15:07:30 +0200 Subject: [PATCH 089/664] chore: Adjust test to run on WinUI --- .../Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs index b635b7da38e1..79bd6b00454c 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs @@ -16,7 +16,6 @@ using MUXControlsTestApp.Utilities; using Private.Infrastructure; using SamplesApp.UITests; -using SkiaSharp; using Uno.Extensions; using Uno.UI.RuntimeTests.Helpers; using Uno.UI.RuntimeTests.Tests.ComboBoxTests; @@ -1318,7 +1317,7 @@ public async Task When_Items_Are_Enum_Values() Assert.IsNotNull(popup); var child = (FrameworkElement)popup.Child; - var comboBoxItems = child.FindChildren().ToArray(); + var comboBoxItems = child.GetAllChildren().OfType().ToArray(); Assert.AreEqual(Enum.GetValues(typeof(PickerLocationId)).Length, comboBoxItems.Length); } From a4b128cc92aec9477e57df44928a5e8ab071dcb4 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 15 Oct 2024 15:35:57 +0200 Subject: [PATCH 090/664] chore: Adjust usings --- .../Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs index 79bd6b00454c..942b239a782f 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ComboBox.cs @@ -25,10 +25,9 @@ using Windows.UI.Input.Preview.Injection; using static Private.Infrastructure.TestServices; using ComboBoxHelper = Microsoft.UI.Xaml.Tests.Common.ComboBoxHelper; - -#if WINAPPSDK using Uno.UI.Extensions; -#elif __IOS__ + +#if __IOS__ using UIKit; using _UIViewController = UIKit.UIViewController; using Uno.UI.Controls; From bc73f5884adcba188b55a95486f2e19b36dbb352 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 15 Oct 2024 17:19:11 +0200 Subject: [PATCH 091/664] fix: Workaround non-UIElement UIViews in Grid layout --- src/Uno.UI/UI/Xaml/Controls/Grid/Grid.cs | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/Uno.UI/UI/Xaml/Controls/Grid/Grid.cs b/src/Uno.UI/UI/Xaml/Controls/Grid/Grid.cs index a170e018fd64..bb40c2c87e88 100644 --- a/src/Uno.UI/UI/Xaml/Controls/Grid/Grid.cs +++ b/src/Uno.UI/UI/Xaml/Controls/Grid/Grid.cs @@ -1374,6 +1374,12 @@ private XSIZEF InnerArrangeOverride(XSIZEF finalSize) while (childrenEnumerator.MoveNext()) { var currentChild = childrenEnumerator.Current; +#if __IOS__ // Uno specific: On iOS an additional non-UIElement is added the the parent of a focused TextBox control, we need to skip it. + if (currentChild is null) + { + continue; + } +#endif ASSERT(currentChild is { }); currentChild.EnsureLayoutStorage(); @@ -1414,6 +1420,12 @@ private XSIZEF InnerArrangeOverride(XSIZEF finalSize) for (Xuint childIndex = 0; childIndex < count; childIndex++) { UIElement currentChild = children[childIndex]; +#if __IOS__ // Uno specific: On iOS an additional non-UIElement is added the the parent of a focused TextBox control, we need to skip it. + if (currentChild is null) + { + continue; + } +#endif ASSERT(currentChild is { }); DefinitionBase row = GetRowNoRef(currentChild); From afc3bf5cde97aaf4f2cb974cf622b038545fb7fb Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 15 Oct 2024 14:23:37 +0200 Subject: [PATCH 092/664] fix: Dismiss the photo picker view controller to return to the app earlier --- src/Uno.UWP/Storage/Pickers/FileOpenPicker.iOS.cs | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/Uno.UWP/Storage/Pickers/FileOpenPicker.iOS.cs b/src/Uno.UWP/Storage/Pickers/FileOpenPicker.iOS.cs index 848d2daa354c..a099da4a6b29 100644 --- a/src/Uno.UWP/Storage/Pickers/FileOpenPicker.iOS.cs +++ b/src/Uno.UWP/Storage/Pickers/FileOpenPicker.iOS.cs @@ -128,7 +128,8 @@ private async Task PickFilesAsync(bool multiple, C var files = await completionSource.Task; - rootController.DismissViewController(true, null); + // Dismiss if still shown + viewController.DismissViewController(true, null); if (files is null || files.Length == 0) { @@ -150,6 +151,7 @@ public override void Canceled(UIImagePickerController picker) => public override void FinishedPickingMedia(UIImagePickerController picker, NSDictionary info) { + if (info.ValueForKey(new NSString("UIImagePickerControllerImageURL")) is NSUrl nSUrl) { var file = StorageFile.GetFromSecurityScopedUrl(nSUrl, null); @@ -171,12 +173,16 @@ public PhotoPickerDelegate(TaskCompletionSource taskCompletionSo public override async void DidFinishPicking(PHPickerViewController picker, PHPickerResult[] results) { + // Dismiss the picker early to get the user back to the app as soon as possible. + picker.DismissViewController(true, null); + var storageFiles = await ConvertPickerResults(results); // This callback can be called multiple times, user tapping multiple times over the "add" button, // we need to ensure that we only set the result once. _taskCompletionSource.TrySetResult(storageFiles.ToArray()); } + private async Task> ConvertPickerResults(PHPickerResult[] results) { List storageFiles = new List(); @@ -198,8 +204,8 @@ private async Task> ConvertPickerResults(PHPickerResult var extension = GetExtension(identifier); var destinationUrl = NSFileManager.DefaultManager - .GetTemporaryDirectory() - .Append($"{NSProcessInfo.ProcessInfo.GloballyUniqueString}.{extension}", false); + .GetTemporaryDirectory() + .Append($"{NSProcessInfo.ProcessInfo.GloballyUniqueString}.{extension}", false); data.Save(destinationUrl, false); storageFiles.Add(StorageFile.GetFromSecurityScopedUrl(destinationUrl, null)); From a57c3923f18fb8a56cdc5f9b3e54d6b4b608b0a2 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Tue, 15 Oct 2024 19:53:26 +0300 Subject: [PATCH 093/664] fix: shapes ignoring clipping sometimes on Linux --- .../CompositionSpriteShape.skia.cs | 63 +++++++++++++++---- 1 file changed, 51 insertions(+), 12 deletions(-) diff --git a/src/Uno.UI.Composition/Composition/CompositionSpriteShape.skia.cs b/src/Uno.UI.Composition/Composition/CompositionSpriteShape.skia.cs index 81cdb203a298..e5b7fe123f14 100644 --- a/src/Uno.UI.Composition/Composition/CompositionSpriteShape.skia.cs +++ b/src/Uno.UI.Composition/Composition/CompositionSpriteShape.skia.cs @@ -94,27 +94,37 @@ private SKPaint TryCreateAndClearStrokePaint(SKColorFilter? colorFilter) private SKPaint TryCreateAndClearFillPaint(SKColorFilter? colorFilter) => TryCreateAndClearPaint(ref _fillPaint, false, colorFilter, CompositionConfiguration.UseBrushAntialiasing); + // TODO: profile the impact of this optimization and consider removing it + // It's hacky and can break if SkiaSharp exposes new properties that + // are then used and modified in CompositionBrush.UpdatePaint(). private static SKPaint TryCreateAndClearPaint(ref SKPaint? paint, bool isStroke, SKColorFilter? colorFilter, bool isHighQuality = false) { if (paint == null) { - // Initialization paint = new SKPaint(); - paint.IsStroke = isStroke; - paint.IsAntialias = true; - paint.IsAutohinted = true; - - if (isHighQuality) - { - paint.FilterQuality = SKFilterQuality.High; - } } else { + // defaults + paint.IsAntialias = false; + paint.BlendMode = SKBlendMode.SrcOver; + paint.FakeBoldText = false; + paint.HintingLevel = SKPaintHinting.Normal; + paint.IsDither = false; + paint.IsEmbeddedBitmapText = false; + paint.IsLinearText = false; + paint.LcdRenderText = false; + paint.StrokeCap = SKStrokeCap.Butt; + paint.StrokeJoin = SKStrokeJoin.Miter; + paint.StrokeMiter = 4; + paint.StrokeWidth = 0; + paint.SubpixelText = false; + paint.TextAlign = SKTextAlign.Left; + paint.TextEncoding = SKTextEncoding.Utf8; + paint.TextScaleX = 1; + paint.TextSize = 12; + // Cleanup - // - Brushes can change, we cant leave color and shader garbage - // from last rendering around for the next pass. - paint.Color = SKColors.White; // Transparent color wouldn't draw anything if (paint.Shader is { } shader) { shader.Dispose(); @@ -126,9 +136,38 @@ private static SKPaint TryCreateAndClearPaint(ref SKPaint? paint, bool isStroke, pathEffect.Dispose(); paint.PathEffect = null; } + + if (paint.ImageFilter is { } imageFilter) + { + imageFilter.Dispose(); + paint.ImageFilter = null; + } + + if (paint.MaskFilter is { } maskFilter) + { + maskFilter.Dispose(); + paint.MaskFilter = null; + } + + if (paint.Typeface is { } typeface) + { + typeface.Dispose(); + paint.Typeface = null; + } } + paint.IsStroke = isStroke; + + // uno-specific defaults + paint.Color = SKColors.White; // Transparent color wouldn't draw anything + paint.IsAutohinted = true; + // paint.IsAntialias = true; // IMPORTANT: don't set this to true by default. It breaks canvas clipping on Linux for some reason. + paint.ColorFilter = colorFilter; + if (isHighQuality) + { + paint.FilterQuality = SKFilterQuality.High; + } return paint; } From 39528bef30e41a96485e80aa639adc4fcb324c70 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Tue, 15 Oct 2024 20:27:27 +0300 Subject: [PATCH 094/664] test: add a documenting test --- .../Windows_UI_Xaml_Shapes/Given_Path.cs | 34 +++++++++++++++++-- 1 file changed, 31 insertions(+), 3 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Shapes/Given_Path.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Shapes/Given_Path.cs index 9156a38d2004..50ce6a20b81f 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Shapes/Given_Path.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Shapes/Given_Path.cs @@ -1,17 +1,22 @@ using System; -using Windows.Foundation; +using System.Threading.Tasks; +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Markup; using Microsoft.UI.Xaml.Media; using Microsoft.UI.Xaml.Shapes; +using MUXControlsTestApp.Utilities; using SamplesApp.UITests; +using Uno.UI.RuntimeTests.Helpers; +using Size = Windows.Foundation.Size; namespace Uno.UI.RuntimeTests.Tests.Windows_UI_Xaml_Shapes { [TestClass] + [RunsOnUIThread] public class Given_Path { [TestMethod] - [RunsOnUIThread] [UnoWorkItem("https://github.com/unoplatform/uno/issues/6846")] public void Should_not_throw_if_Path_Data_is_set_to_null() { @@ -23,7 +28,6 @@ public void Should_not_throw_if_Path_Data_is_set_to_null() } [TestMethod] - [RunsOnUIThread] public void Should_Not_Include_Control_Points_Bounds() { #if WINAPPSDK @@ -41,5 +45,29 @@ public void Should_Not_Include_Control_Points_Bounds() Assert.IsTrue(Math.Abs(50 - SUT.DesiredSize.Height) <= 1, $"Actual size: {SUT.DesiredSize}"); #endif } + + // This tests a workaround for a Linux-specific skia bug. + // This doesn't actually repro for some reason, so it's here for documentation purposes. + [TestMethod] + [UnoWorkItem("https://github.com/unoplatform/uno/issues/18473")] + public async Task When_Path_Clipped_Inside_ScrollViewer() + { + var root = (FrameworkElement)XamlReader.Load( + """ + + + + + + + """); + await UITestHelper.Load(root); + + root.FindVisualChildByType().ScrollToVerticalOffset(9999); + await UITestHelper.WaitForIdle(); + + var screenshot = await UITestHelper.ScreenShot(root); + ImageAssert.DoesNotHaveColorInRectangle(screenshot, new System.Drawing.Rectangle(0, 0, screenshot.Width, screenshot.Height * 60 / 100), Microsoft.UI.Colors.Red); + } } } From 0c4bb6c2dffc9438d10ffeaf68a853e89d7a7509 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Agn=C3=A8s=20ZITTE?= <16295702+agneszitte@users.noreply.github.com> Date: Tue, 15 Oct 2024 14:22:05 -0400 Subject: [PATCH 095/664] docs: Update extensions docs with latest changes --- doc/import_external_docs.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/import_external_docs.ps1 b/doc/import_external_docs.ps1 index 2f64dbcc98ba..7494f694eb2e 100644 --- a/doc/import_external_docs.ps1 +++ b/doc/import_external_docs.ps1 @@ -15,7 +15,7 @@ $external_docs = @{ "figma-docs" = "842a2792282b88586a337381b2b3786e779973b4" #latest main commit "uno.resizetizer" = "b17e1d54f4375f79da24ae5eaaf3f738851786eb" #latest main commit "uno.uitest" = "9669fd2783187d06c36dd6a717c1b9f08d1fa29c" #latest master commit - "uno.extensions" = "f2871cf4aa93bce96d8a19ede2b1417776589093" #latest release/stable/5.0 branch commit + "uno.extensions" = "ee22dd1ac722e4f7ce2a8ab508e63dfc444616b1" #latest release/stable/5.0 branch commit "workshops" = "e3c2a11a588b184d8cd3a6f88813e5615cca891d" #latest master commit "uno.samples" = "cf96230ed902e18335411683cb07321eae125df2" #latest master commit } From e9e8699fd47c51fe1ebb7db158ac180a57ce67a8 Mon Sep 17 00:00:00 2001 From: Matthew Rajala Date: Tue, 15 Oct 2024 11:04:16 -0400 Subject: [PATCH 096/664] fix: removed negative margin for hr connection --- .../HotReload/HotReloadStatusView.xaml | 77 +++++++++---------- 1 file changed, 38 insertions(+), 39 deletions(-) diff --git a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml index 832582ecc9ff..5b8e1e6af2a3 100644 --- a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml +++ b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml @@ -28,84 +28,84 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -131,7 +131,7 @@ Grid.Column="0" HorizontalAlignment="Left" VerticalAlignment="Center" - Margin="0,0,8,4" /> + Margin="5,0,0,0" /> + Margin="5,0,0,0" /> + Margin="5,0,0,0" /> + Margin="5,0,0,0" /> - - + @@ -299,7 +296,8 @@ - - - - - - - diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs index 33ffe9cb172c..f7a9dd9543bd 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs @@ -13,9 +13,9 @@ namespace Uno.UI.RemoteControl; public partial class RemoteControlClient { - internal event EventHandler? StatusChanged; + public event EventHandler? StatusChanged; - internal RemoteControlStatus Status => _status.BuildStatus(); + public RemoteControlStatus Status => _status.BuildStatus(); private class StatusSink : DevServerDiagnostics.ISink { diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs index 1aa2846f45ba..87de6eb8d095 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs @@ -5,7 +5,7 @@ namespace Uno.UI.RemoteControl; -internal record RemoteControlStatus( +public record RemoteControlStatus( RemoteControlStatus.ConnectionState State, bool? IsVersionValid, (RemoteControlStatus.KeepAliveState State, long RoundTrip) KeepAlive, @@ -82,9 +82,9 @@ internal string GetDescription() return details.ToString(); } - internal record struct MissingProcessor(string TypeFullName, string Version, string Details, string? Error = null); + public readonly record struct MissingProcessor(string TypeFullName, string Version, string Details, string? Error = null); - internal enum KeepAliveState + public enum KeepAliveState { Idle, Ok, // Got ping/pong in expected delays @@ -93,7 +93,7 @@ internal enum KeepAliveState Aborted // KeepAlive was aborted } - internal enum ConnectionState + public enum ConnectionState { /// /// Client as not been started yet @@ -140,7 +140,7 @@ internal enum ConnectionState Disconnected } - internal enum Classification + public enum Classification { Ok, Info, diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs b/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs index d8b79d89a947..35e46939435f 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs @@ -11,7 +11,7 @@ namespace Uno.UI.RemoteControl; -internal sealed partial class RemoteControlStatusView : Ellipse +public sealed partial class RemoteControlStatusView : Ellipse { #if __ANDROID__ public new const string Id = nameof(RemoteControlStatusView); diff --git a/src/Uno.UI.RemoteControl/Themes/Generic.xaml b/src/Uno.UI.RemoteControl/Themes/Generic.xaml index f56651e9b43a..585844b453c4 100644 --- a/src/Uno.UI.RemoteControl/Themes/Generic.xaml +++ b/src/Uno.UI.RemoteControl/Themes/Generic.xaml @@ -1,10 +1,7 @@ - + - - - - + + + diff --git a/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj b/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj index 700f5c7d46bb..f2b9a0b0c4d0 100644 --- a/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj +++ b/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj @@ -68,10 +68,6 @@ - - - - $(MSBuildThisFileDirectory)**\*.xaml diff --git a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs index 41784dacaac8..c87b9915f418 100644 --- a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs +++ b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs @@ -70,13 +70,15 @@ public async Task When_Changing_TextBlock_UsingHRClient() { var ct = new CancellationTokenSource(TimeSpan.FromSeconds(60)).Token; + var content = new HR_Frame_Pages_Page2(); + UnitTestsUIContentHelper.Content = new ContentControl { - Content = new HR_Frame_Pages_Page2() + Content = content }; var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); - var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(new HR_Frame_Pages_Page2()); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(content); var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( ctx.FileName, SecondPageTextBlockOriginalText, @@ -94,20 +96,49 @@ public async Task When_Changing_TextBlock_UsingHRClient() await hr.UpdateFileAsync(req.Undo(waitForHotReload: false), CancellationToken.None); } } - + + /// + /// Ensure that UpdateFileAsync() completes when no changes are made to the file. + /// + [TestMethod] + public async Task When_Changing_TextBlock_UsingHRClient_NoChanges() + { + var ct = new CancellationTokenSource(TimeSpan.FromSeconds(60)).Token; + + var content = new HR_Frame_Pages_Page2(); + + UnitTestsUIContentHelper.Content = new ContentControl + { + Content = content + }; + + var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(content); + var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( + ctx.FileName, + SecondPageTextBlockOriginalText, + SecondPageTextBlockOriginalText + Environment.NewLine, + true) + .WithExtendedTimeouts(); // Required for CI + + await hr.UpdateFileAsync(req, ct); + } + // Another version of the test above, but pausing the TypeMapping before calling the file update [TestMethod] public async Task When_Changing_TextBlock_UsingHRClient_PausingTypeMapping() { var ct = new CancellationTokenSource(TimeSpan.FromSeconds(25)).Token; + var content = new HR_Frame_Pages_Page1(); + UnitTestsUIContentHelper.Content = new ContentControl { - Content = new HR_Frame_Pages_Page1() + Content = content }; var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); - var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(new HR_Frame_Pages_Page1()); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(content); var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( ctx.FileName, FirstPageTextBlockOriginalText, diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs index 7e14c271fb0e..d67177d8ce0f 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs @@ -7,7 +7,7 @@ namespace Uno.Diagnostics.UI; -internal partial class DiagnosticView +partial class DiagnosticView { /// /// Registers a dedicated diagnostic view to be displayed by the diagnostic overlay. diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs b/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs index 3a87abcd3071..a2bcbf6b0851 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs @@ -10,7 +10,7 @@ namespace Uno.Diagnostics.UI; /// /// A generic diagnostic view that can be updated with a state. /// -internal class DiagnosticView( +public class DiagnosticView( string id, string name, Func factory, diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs b/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs index 5f833c7b6a4c..3f0cf8997cb1 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs @@ -10,7 +10,7 @@ namespace Uno.Diagnostics.UI; /// /// A generic diagnostic view. /// -internal class DiagnosticView( +public class DiagnosticView( string id, string name, Func factory, diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.cs b/src/Uno.UI/Diagnostics/DiagnosticView.cs index fd1711cb6234..9849ba1e2294 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.cs @@ -10,7 +10,7 @@ namespace Uno.Diagnostics.UI; /// /// A generic diagnostic view. /// -internal partial class DiagnosticView( +public partial class DiagnosticView( string id, string name, Func factory, From a1fa37716918363e0b2ba5b636f063afeda926d2 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Thu, 31 Oct 2024 16:21:45 -0400 Subject: [PATCH 351/664] chore: enable Given_AppWindow on macOS/skia --- .../Tests/Microsoft_UI_Windowing/Given_AppWindow.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Windowing/Given_AppWindow.cs b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Windowing/Given_AppWindow.cs index 6b1f0d4bdc91..29d93636f3d3 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Windowing/Given_AppWindow.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Windowing/Given_AppWindow.cs @@ -151,7 +151,8 @@ void OnChanged(AppWindow s, AppWindowChangedEventArgs e) private void AssertPositioningAndSizingSupport() { if (!OperatingSystem.IsLinux() && - !OperatingSystem.IsWindows() || + !OperatingSystem.IsWindows() && + !OperatingSystem.IsMacOS() || TestServices.WindowHelper.IsXamlIsland || IsGtk()) { From 70df9b020511061fb2e049838975c425128272a7 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 16:48:11 -0400 Subject: [PATCH 352/664] chore: clean-up dead code --- .../HotReload/ClientHotReloadProcessor.Common.Status.cs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs index c30dd6017b6b..16791f6d6d1b 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs @@ -70,10 +70,6 @@ public record Status( private class StatusSink(ClientHotReloadProcessor owner) { -// #if HAS_UNO_WINUI -// private readonly DiagnosticView _view = DiagnosticView.Register("Hot reload", ctx => new HotReloadStatusView(ctx), static (view, status) => view.OnHotReloadStatusChanged(status)); -// #endif - private HotReloadState? _serverState; private bool _isFinalServerState; private ImmutableDictionary _serverOperations = ImmutableDictionary.Empty; @@ -142,9 +138,6 @@ private void NotifyStatusChanged() var status = BuildStatus(); Current = status; -// #if HAS_UNO_WINUI -// _view.Update(status); -// #endif owner.StatusChanged?.Invoke(this, status); } From 6ad14ecf4f800f5f0914ac279bfa5df5c98ec3a3 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 16:32:47 -0400 Subject: [PATCH 353/664] feat: Added the ability to specify a positionning to DiagnosticsView registrations --- .../Diagnostics/DiagnosticViewRegistry.cs | 45 ++++++++++++++++--- .../Diagnostics/DiagnosticsOverlay.cs | 7 +-- .../Diagnostics/DiagnosticView.Factories.cs | 34 ++++++++++---- 3 files changed, 70 insertions(+), 16 deletions(-) diff --git a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs index 41a3a91a7b64..f0e22250f3a0 100644 --- a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs +++ b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs @@ -12,7 +12,7 @@ internal static class DiagnosticViewRegistry { internal static EventHandler>? Added; - private static ImmutableArray _registrations = ImmutableArray.Empty; + private static ImmutableArray _registrations = []; /// /// Gets the list of registered diagnostic providers. @@ -24,18 +24,38 @@ internal static class DiagnosticViewRegistry /// /// A diagnostic view to display. /// Defines when the registered diagnostic view should be displayed. - public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode mode = default) + public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode mode = default, DiagnosticViewRegistrationPosition position = default) { ImmutableInterlocked.Update( ref _registrations, static (providers, provider) => providers.Add(provider), - new DiagnosticViewRegistration(mode, view)); + new DiagnosticViewRegistration(mode, position, view)); Added?.Invoke(null, _registrations); } } -internal record DiagnosticViewRegistration(DiagnosticViewRegistrationMode Mode, IDiagnosticView View); +internal sealed record DiagnosticViewRegistration( + DiagnosticViewRegistrationMode Mode, + DiagnosticViewRegistrationPosition Position, + IDiagnosticView View) : IComparable +{ + public int CompareTo(DiagnosticViewRegistration? other) + { + if (other is null) + { + return 1; + } + + if (Position == other.Position) + { + // If the position is the same, we compare the view id to ensure a stable order. + return string.Compare(View.Id, other.View.Id, StringComparison.Ordinal); + } + + return (int)Position - (int)other.Position; + } +} public enum DiagnosticViewRegistrationMode { @@ -43,7 +63,7 @@ public enum DiagnosticViewRegistrationMode /// Diagnostic is being display on at least one window. /// I.e. only the main/first opened but move to the next one if the current window is closed. /// - One, + One, // Default /// /// Diagnostic is being rendered as overlay on each window. @@ -55,3 +75,18 @@ public enum DiagnosticViewRegistrationMode /// OnDemand } + +public enum DiagnosticViewRegistrationPosition +{ + Normal = 0, // Default + + /// + /// Register as the first diagnostic view, ensuring it is displayed first. + /// + First = -1, + + /// + /// Register as the last diagnostic view, ensuring it is displayed last. + /// + Last = 1, +} diff --git a/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs b/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs index 20ad0d418211..f5aafa64ffaf 100644 --- a/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs +++ b/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs @@ -2,6 +2,7 @@ #if WINUI || HAS_UNO_WINUI using System; using System.Collections.Generic; +using System.Collections.Immutable; using System.Diagnostics; using System.Linq; using System.Runtime.CompilerServices; @@ -462,10 +463,10 @@ private void EnqueueUpdate(bool forceUpdate = false) var viewsThatShouldBeMaterialized = DiagnosticViewRegistry .Registrations .Where(ShouldMaterialize) + .Order() // See DiagnosticViewRegistration.CompareTo .Select(reg => reg.View) - .Concat(_localRegistrations) - .Distinct() - .ToList(); + .Concat(_localRegistrations) // They are at the end of the list. + .Distinct(); foreach (var view in viewsThatShouldBeMaterialized) { diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs index d67177d8ce0f..2ec8b905a3bb 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs @@ -21,11 +21,16 @@ partial class DiagnosticView /// /// Type of the control. /// The user-friendly name of the diagnostics view. - public static DiagnosticView Register(string friendlyName) + /// Defines when the registered diagnostic view should be displayed. + /// Defines where the item should be placed in the overlay. + public static DiagnosticView Register( + string friendlyName, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : UIElement, new() { var provider = new DiagnosticView(typeof(TView).Name, friendlyName, () => new TView()); - DiagnosticViewRegistry.Register(provider); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } @@ -43,11 +48,16 @@ public static DiagnosticView Register(string friendlyName) /// The user-friendly name of the diagnostics view. /// Factory to create an instance of the control. /// Defines when the registered diagnostic view should be displayed. - public static DiagnosticView Register(string friendlyName, Func factory, DiagnosticViewRegistrationMode mode = default) + /// Defines where the item should be placed in the overlay. + public static DiagnosticView Register( + string friendlyName, + Func factory, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : UIElement { var provider = new DiagnosticView(typeof(TView).Name, friendlyName, factory); - DiagnosticViewRegistry.Register(provider, mode); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } @@ -62,17 +72,21 @@ public static DiagnosticView Register(string friendlyName, FuncThe user-friendly name of the diagnostics view. /// Delegate to use to update the when the is being updated. /// Optional delegate used to show more details about the diagnostic info when user taps on the view. + /// Defines when the registered diagnostic view should be displayed. + /// Defines where the item should be placed in the overlay. /// A diagnostic view helper class which can be used to push updates of the state (cf. ). public static DiagnosticView Register( string friendlyName, Action update, - Func? details = null) + Func? details = null, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : FrameworkElement, new() { var provider = details is null ? new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update) : new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update, (ctx, state, ct) => new(details(state))); - DiagnosticViewRegistry.Register(provider); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } @@ -88,18 +102,22 @@ public static DiagnosticView Register( /// Factory to create an instance of the generic element. /// Delegate to use to update the when the is being updated. /// Optional delegate used to show more details about the diagnostic info when user taps on the view. + /// Defines when the registered diagnostic view should be displayed. + /// Defines where the item should be placed in the overlay. /// A diagnostic view helper class which can be used to push updates of the state (cf. ). public static DiagnosticView Register( string friendlyName, Func factory, Action update, - Func? details = null) + Func? details = null, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : FrameworkElement { var provider = details is null ? new DiagnosticView(typeof(TView).Name, friendlyName, factory, update) : new DiagnosticView(typeof(TView).Name, friendlyName, factory, update, (ctx, state, ct) => new(details(state))); - DiagnosticViewRegistry.Register(provider); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } } From 49243e3c889c68606559aa7daeddb12780d10cca Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 17:40:58 -0400 Subject: [PATCH 354/664] feat: Added the ability to wait for the RemoteControlClient to be available --- .../RemoteControlClient.cs | 59 ++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index c05abcabf61a..de8d05b302b3 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -33,7 +33,63 @@ public partial class RemoteControlClient : IRemoteControlClient public delegate void RemoteControlClientEventEventHandler(object sender, ClientEventEventArgs args); public delegate void SendMessageFailedEventHandler(object sender, SendMessageFailedEventArgs args); - public static RemoteControlClient? Instance { get; private set; } + public static RemoteControlClient? Instance + { + get => _instance; + private set + { + _instance = value; + + if (value is { }) + { + while (Interlocked.Exchange(ref _waitingList, null) is { } waitingList) + { + foreach (var action in waitingList) + { + action(value); + } + } + } + } + } + + private static IReadOnlyCollection>? _waitingList; + + /// + /// Add a callback to be called when the Instance is available. + /// + /// + /// Will be called synchronously if the instance is already available, no need to check for it before. + /// + public static void OnRemoteControlClientAvailable(Action action) + { + if(Instance is not null) + { + action(Instance); + } + else + { + // Thread-safe way to add the action to a waiting list for the client to be available + while (true) + { + var waitingList = _waitingList; + IReadOnlyCollection> newList = waitingList is null + ? [action] + : [.. waitingList, action]; + + if(Instance is { } i) // Last chance to avoid the waiting list + { + action(i); + break; + } + + if (ReferenceEquals(Interlocked.CompareExchange(ref _waitingList, newList, waitingList), waitingList)) + { + break; + } + } + } + } public static RemoteControlClient Initialize(Type appType) => Instance = new RemoteControlClient(appType); @@ -59,6 +115,7 @@ internal static RemoteControlClient Initialize(Type appType, ServerEndpointAttri private readonly StatusSink _status; private static readonly TimeSpan _keepAliveInterval = TimeSpan.FromSeconds(30); + private static RemoteControlClient? _instance; private readonly (string endpoint, int port)[]? _serverAddresses; private readonly Dictionary _processors = new(); private readonly List _preprocessors = new(); From a28628e58e245f60ff9c4c84aa326ad0771f4ea1 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Thu, 31 Oct 2024 15:21:59 -0400 Subject: [PATCH 355/664] feat(macOS): Add AppWindow positioning and sizing support (cherry picked from commit 993d2d08de3b26c222c04e3725196f2b55e77bac) --- .../MacOSWindowHost.cs | 17 ++++- .../MacOSWindowWrapper.cs | 39 +++++++++++ src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs | 13 +++- .../UnoNativeMac/UnoNativeMac/UNOWindow.h | 16 +++-- .../UnoNativeMac/UnoNativeMac/UNOWindow.m | 66 +++++++++++++++++-- 5 files changed, 141 insertions(+), 10 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs index abb7bc276d39..30560bb6d901 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs @@ -6,6 +6,7 @@ using Windows.Devices.Input; using Windows.Foundation; +using Windows.Graphics; using Windows.Graphics.Display; using Windows.System; using Windows.UI.Core; @@ -57,6 +58,8 @@ public MacOSWindowHost(MacOSWindowNative nativeWindow, Window winUIWindow, XamlR // Display + internal event EventHandler? PositionChanged; + internal event EventHandler? SizeChanged; internal event EventHandler? RasterizationScaleChanged; @@ -171,7 +174,7 @@ public static unsafe void Register() NativeUno.uno_set_drawing_callbacks(&MetalDraw, &SoftDraw, &Resize); - NativeUno.uno_set_window_events_callbacks(&OnRawKeyDown, &OnRawKeyUp, &OnMouseEvent); + NativeUno.uno_set_window_events_callbacks(&OnRawKeyDown, &OnRawKeyUp, &OnMouseEvent, &OnMoveEvent, &Resize); ApiExtensibility.Register(typeof(IUnoKeyboardInputSource), o => (o as IUnoKeyboardInputSource)!); ApiExtensibility.Register(typeof(IUnoCorePointerInputSource), o => (o as IUnoCorePointerInputSource)!); @@ -240,6 +243,18 @@ private static void Resize(nint handle, double width, double height) } } + [UnmanagedCallersOnly(CallConvs = new[] { typeof(CallConvCdecl) })] + private static void OnMoveEvent(nint handle, double x, double y) + { + var window = GetWindowHost(handle); + if (window is not null) + { + window.PositionChanged?.Invoke(window, new PointInt32((int)x, (int)y)); + } + // the first event occurs before the managed side is ready to handle it + // this special case is handled inside MacOSWindowWrapper constructor + } + // IUnoKeyboardInputSource public event TypedEventHandler? KeyDown; diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs index 59e3eb33f4a3..19021bde1756 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs @@ -4,6 +4,7 @@ using Uno.Disposables; using Uno.UI.Xaml.Controls; using Windows.Foundation; +using Windows.Graphics; using Windows.UI.Core.Preview; namespace Uno.UI.Runtime.Skia.MacOS; @@ -20,6 +21,10 @@ public MacOSWindowWrapper(MacOSWindowNative nativeWindow, Window window, XamlRoo nativeWindow.Host.RasterizationScaleChanged += Host_RasterizationScaleChanged; nativeWindow.Host.SizeChanged += (_, s) => OnHostSizeChanged(s); OnHostSizeChanged(initialSize); + nativeWindow.Host.PositionChanged += (_, s) => OnHostPositionChanged(s.X, s.Y); + // the initial event occurred before the managed side was ready to handle it + NativeUno.uno_window_get_position(nativeWindow.Handle, out var x, out var y); + OnHostPositionChanged(x, y); RasterizationScale = (float)_window.Host.RasterizationScale; } @@ -49,10 +54,44 @@ protected override void ShowCore() NativeUno.uno_window_activate(_window.Handle); } + public override void Close() + { + NativeUno.uno_window_close(_window.Handle); + } + + public override void Move(PointInt32 position) + { + // user input in physical pixels transformed into logical pixels + var x = position.X / RasterizationScale; + var y = position.Y / RasterizationScale; + NativeUno.uno_window_move(_window.Handle, x, y); + } + + public override void Resize(SizeInt32 size) + { + // user input in physical pixels transformed into logical pixels + var w = size.Width / RasterizationScale; + var h = size.Height / RasterizationScale; + NativeUno.uno_window_resize(_window.Handle, w, h); + } + + private void OnHostPositionChanged(double x, double y) + { + // in physical pixels + var sx = (int)(x * RasterizationScale); + var sy = (int)(y * RasterizationScale); + Position = new PointInt32(sx, sy); + } + private void OnHostSizeChanged(Size size) { + // in logical pixels Bounds = new Rect(default, size); VisibleBounds = Bounds; + // in physical pixels + int w = (int)(size.Width * RasterizationScale); + int h = (int)(size.Height * RasterizationScale); + Size = new SizeInt32(w, h); } private void OnWindowClosing(object? sender, CancelEventArgs e) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs b/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs index 27544b404875..7728808828b4 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/NativeUno.cs @@ -187,7 +187,9 @@ internal static unsafe partial void uno_set_window_screen_change_callbacks( internal static unsafe partial void uno_set_window_events_callbacks( delegate* unmanaged[Cdecl] keyDownCallback, delegate* unmanaged[Cdecl] keyUpCallback, - delegate* unmanaged[Cdecl] pointerCallback); + delegate* unmanaged[Cdecl] pointerCallback, + delegate* unmanaged[Cdecl] moveCallback, + delegate* unmanaged[Cdecl] resizeCallback); [LibraryImport("libUnoNativeMac.dylib")] internal static partial uint uno_get_system_theme(); @@ -207,6 +209,12 @@ internal static unsafe partial void uno_set_window_events_callbacks( [LibraryImport("libUnoNativeMac.dylib")] internal static partial void uno_window_invalidate(nint window); + [LibraryImport("libUnoNativeMac.dylib")] + internal static partial void uno_window_close(nint window); + + [LibraryImport("libUnoNativeMac.dylib")] + internal static partial void uno_window_get_position(nint window, out double x, out double y); + [LibraryImport("libUnoNativeMac.dylib", StringMarshalling = StringMarshalling.Utf8)] internal static partial string uno_window_get_title(nint window); @@ -259,6 +267,9 @@ internal static unsafe partial void uno_set_window_close_callbacks( [LibraryImport("libUnoNativeMac.dylib")] internal static partial nint uno_window_get_metal_context(nint window); + [LibraryImport("libUnoNativeMac.dylib")] + internal static partial void uno_window_move(nint window, double x, double y); + [LibraryImport("libUnoNativeMac.dylib")] [return: MarshalAs(UnmanagedType.I1)] internal static partial bool uno_window_resize(nint window, double width, double height); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h index 6db2db98c5a4..743cebd1daf4 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.h @@ -9,9 +9,13 @@ NS_ASSUME_NONNULL_BEGIN -typedef void (*resize_fn_ptr)(void* /* window */, double /* width */, double /* height */); -resize_fn_ptr uno_get_resize_callback(void); -void uno_set_resize_callback(resize_fn_ptr p); +typedef void (*uno_drawable_resize_fn_ptr)(void* /* window */, double /* width */, double /* height */); +uno_drawable_resize_fn_ptr uno_get_resize_callback(void); +void uno_set_resize_callback(uno_drawable_resize_fn_ptr p); + +typedef void (*window_move_or_resize_fn_ptr)(NSWindow* /* window */, double /* x or width */, double /* y or height */); +window_move_or_resize_fn_ptr uno_get_window_move_callback(void); +window_move_or_resize_fn_ptr uno_get_window_resize_callback(void); @interface windowDidChangeScreenNoteClass : NSObject @@ -32,6 +36,7 @@ void uno_set_resize_callback(resize_fn_ptr p); - (void)sendEvent:(NSEvent *)event; - (BOOL)windowShouldZoom:(NSWindow *)window toFrame:(NSRect)newFrame; +- (void)windowDidMove:(NSNotification *)notification; - (bool)windowShouldClose:(NSWindow *)sender; - (void)windowWillClose:(NSNotification *)notification; @@ -42,8 +47,11 @@ NSWindow* uno_app_get_main_window(void); NSWindow* uno_window_create(double width, double height); void uno_window_activate(NSWindow *window); void uno_window_invalidate(NSWindow *window); +void uno_window_close(NSWindow *window); +void uno_window_move(NSWindow *window, double x, double y); bool uno_window_resize(NSWindow *window, double width, double height); +void uno_window_get_position(NSWindow *window, double *x, double *y); char* uno_window_get_title(NSWindow *window); void uno_window_set_title(NSWindow *window, const char* title); @@ -296,7 +304,7 @@ struct MouseEventData { typedef int32_t (*window_key_callback_fn_ptr)(UNOWindow* window, VirtualKey key, VirtualKeyModifiers mods, uint32 scanCode, UniChar unicode); typedef int32_t (*window_mouse_callback_fn_ptr)(UNOWindow* window, struct MouseEventData *data); -void uno_set_window_events_callbacks(window_key_callback_fn_ptr keyDown, window_key_callback_fn_ptr keyUp, window_mouse_callback_fn_ptr pointer); +void uno_set_window_events_callbacks(window_key_callback_fn_ptr keyDown, window_key_callback_fn_ptr keyUp, window_mouse_callback_fn_ptr pointer, window_move_or_resize_fn_ptr move, window_move_or_resize_fn_ptr resize); typedef bool (*window_should_close_fn_ptr)(UNOWindow* window); window_should_close_fn_ptr uno_get_window_should_close_callback(void); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m index 77454c72a282..2e67cc692bc7 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m @@ -16,11 +16,11 @@ // libSkiaSharp extern void* gr_direct_context_make_metal(id device, id queue); -static resize_fn_ptr window_resize; +static uno_drawable_resize_fn_ptr window_resize; static metal_draw_fn_ptr metal_draw; static soft_draw_fn_ptr soft_draw; -inline resize_fn_ptr uno_get_resize_callback(void) +inline uno_drawable_resize_fn_ptr uno_get_resize_callback(void) { return window_resize; } @@ -35,7 +35,7 @@ inline soft_draw_fn_ptr uno_get_soft_draw_callback(void) return soft_draw; } -void uno_set_drawing_callbacks(metal_draw_fn_ptr metal, soft_draw_fn_ptr soft, resize_fn_ptr resize) +void uno_set_drawing_callbacks(metal_draw_fn_ptr metal, soft_draw_fn_ptr soft, uno_drawable_resize_fn_ptr resize) { metal_draw = metal; soft_draw = soft; @@ -150,6 +150,22 @@ void uno_window_invalidate(NSWindow *window) window.contentViewController.view.needsDisplay = true; } +void uno_window_close(NSWindow *window) +{ +#if DEBUG + NSLog(@"uno_window_close %@", window); +#endif + [window performClose:nil]; +} + +void uno_window_move(NSWindow *window, double x, double y) +{ +#if DEBUG + NSLog(@"uno_window_move %@ x: %g y: %g", window, x, y); +#endif + [window setFrameOrigin:NSMakePoint(x, y)]; +} + bool uno_window_resize(NSWindow *window, double width, double height) { #if DEBUG @@ -173,6 +189,16 @@ void uno_window_set_min_size(NSWindow *window, double width, double height) window.minSize = CGSizeMake(width, height); } +void uno_window_get_position(NSWindow *window, double *x, double *y) +{ + CGPoint origin = window.frame.origin; +#if DEBUG + NSLog (@"uno_window_get_position %@ %f %f", window, origin.x, origin.y); +#endif + *x = origin.x; + *y = origin.y; +} + char* uno_window_get_title(NSWindow *window) { return strdup(window.title.UTF8String); @@ -560,11 +586,27 @@ inline static window_mouse_callback_fn_ptr uno_get_window_mouse_event_callback(v return window_mouse_event; } -void uno_set_window_events_callbacks(window_key_callback_fn_ptr keyDown, window_key_callback_fn_ptr keyUp, window_mouse_callback_fn_ptr pointer) +static window_move_or_resize_fn_ptr window_move_event; + +inline static window_move_or_resize_fn_ptr uno_get_window_move_event_callback(void) +{ + return window_move_event; +} + +static window_move_or_resize_fn_ptr window_resize_event; + +inline static window_move_or_resize_fn_ptr uno_get_window_resize_event_callback(void) +{ + return window_resize_event; +} + +void uno_set_window_events_callbacks(window_key_callback_fn_ptr keyDown, window_key_callback_fn_ptr keyUp, window_mouse_callback_fn_ptr pointer, window_move_or_resize_fn_ptr move, window_move_or_resize_fn_ptr resize) { window_key_down = keyDown; window_key_up = keyUp; window_mouse_event = pointer; + window_move_event = move; + window_resize_event = resize; } static window_should_close_fn_ptr window_should_close; @@ -774,6 +816,22 @@ - (BOOL)windowShouldZoom:(NSWindow *)window toFrame:(NSRect)newFrame { return window.collectionBehavior != (NSWindowCollectionBehaviorFullScreenAuxiliary|NSWindowCollectionBehaviorFullScreenNone|NSWindowCollectionBehaviorFullScreenDisallowsTiling); } +- (void)windowDidMove:(NSNotification *)notification { + CGPoint position = self.frame.origin; +#if DEBUG + NSLog(@"UNOWindow %p windowDidMove %@ x: %g y: %g", self, notification, position.x, position.y); +#endif + uno_get_window_move_event_callback()(self, position.x, position.y); +} + +- (void)windowDidResize:(NSNotification *)notification { + CGSize size = self.frame.size; +#if DEBUG + NSLog(@"UNOWindow %p windowDidMove %@ x: %g y: %g", self, notification, size.width, size.height); +#endif + uno_get_window_resize_event_callback()(self, size.width, size.height); +} + - (bool)windowShouldClose:(NSWindow *)sender { // see `ISystemNavigationManagerPreviewExtension` From f977018371f0e7bb1bedc43e8c1e5459564b416c Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Thu, 31 Oct 2024 16:21:45 -0400 Subject: [PATCH 356/664] chore: enable Given_AppWindow on macOS/skia (cherry picked from commit a1fa37716918363e0b2ba5b636f063afeda926d2) --- .../Tests/Microsoft_UI_Windowing/Given_AppWindow.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Windowing/Given_AppWindow.cs b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Windowing/Given_AppWindow.cs index 6b1f0d4bdc91..29d93636f3d3 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Windowing/Given_AppWindow.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Windowing/Given_AppWindow.cs @@ -151,7 +151,8 @@ void OnChanged(AppWindow s, AppWindowChangedEventArgs e) private void AssertPositioningAndSizingSupport() { if (!OperatingSystem.IsLinux() && - !OperatingSystem.IsWindows() || + !OperatingSystem.IsWindows() && + !OperatingSystem.IsMacOS() || TestServices.WindowHelper.IsXamlIsland || IsGtk()) { From 9e74167589a1dc2064d59e3afd9f2d068815d559 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 22:04:29 -0400 Subject: [PATCH 357/664] ci: Fix build --- src/Uno.UI.RemoteControl/RemoteControlClient.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index de8d05b302b3..306aea9a7390 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -63,7 +63,7 @@ private set /// public static void OnRemoteControlClientAvailable(Action action) { - if(Instance is not null) + if (Instance is { }) { action(Instance); } @@ -77,7 +77,7 @@ public static void OnRemoteControlClientAvailable(Action ac ? [action] : [.. waitingList, action]; - if(Instance is { } i) // Last chance to avoid the waiting list + if (Instance is { } i) // Last chance to avoid the waiting list { action(i); break; From 9aeb0e4c2031f15d1ce3eda44a856899c41425cf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 31 Oct 2024 15:34:08 -0400 Subject: [PATCH 358/664] fix: Adjust IDBFS error message (cherry picked from commit 07053e188f3d54b19ee9c612ca480011e86e3f65) --- src/Uno.UI/ts/Windows/Storage/StorageFolder.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI/ts/Windows/Storage/StorageFolder.ts b/src/Uno.UI/ts/Windows/Storage/StorageFolder.ts index 0cffda479e58..cc30e6498ccf 100644 --- a/src/Uno.UI/ts/Windows/Storage/StorageFolder.ts +++ b/src/Uno.UI/ts/Windows/Storage/StorageFolder.ts @@ -52,7 +52,7 @@ namespace Windows.Storage { } if (typeof IDBFS === 'undefined') { - console.warn(`IDBFS is not enabled in mono's configuration, persistence is disabled`); + console.warn(`IDBFS is not enabled in the project configuration, persistence is disabled. See https://aka.platform.uno/wasm-idbfs for more details`); StorageFolder.onStorageInitialized(); return; From e98a6a9ec628a53420f050c2f362dd41f8c09a44 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Fri, 1 Nov 2024 08:22:09 -0400 Subject: [PATCH 359/664] fix: Don't include non-existing pwa manifest --- src/Uno.Sdk/targets/Uno.SingleProject.Wasm.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.Sdk/targets/Uno.SingleProject.Wasm.targets b/src/Uno.Sdk/targets/Uno.SingleProject.Wasm.targets index 89c7a2b54c06..702c31629711 100644 --- a/src/Uno.Sdk/targets/Uno.SingleProject.Wasm.targets +++ b/src/Uno.Sdk/targets/Uno.SingleProject.Wasm.targets @@ -1,7 +1,7 @@ true - $(WasmProjectFolder)manifest.webmanifest + $(WasmProjectFolder)manifest.webmanifest + + + + From f1883d17216713cb2449c333ec370b75faacbabc Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Sat, 2 Nov 2024 01:33:27 -0400 Subject: [PATCH 372/664] feat: Use SIMD to compage images in a test to accelerate builds. --- .../Comparer/TestFilesComparer.cs | 105 ++++++++++-------- 1 file changed, 59 insertions(+), 46 deletions(-) diff --git a/src/Uno.UI.TestComparer/Comparer/TestFilesComparer.cs b/src/Uno.UI.TestComparer/Comparer/TestFilesComparer.cs index 7c7f3585dc74..079152949fa1 100644 --- a/src/Uno.UI.TestComparer/Comparer/TestFilesComparer.cs +++ b/src/Uno.UI.TestComparer/Comparer/TestFilesComparer.cs @@ -3,6 +3,7 @@ using System.Globalization; using System.IO; using System.Linq; +using System.Numerics; using System.Security.Cryptography; using System.Text; using System.Threading.Tasks; @@ -24,10 +25,10 @@ internal CompareResult Compare(string[] artifacts) { var testResult = new CompareResult(_platform); - string path = _basePath; + var path = _basePath; var resultsId = $"{DateTime.Now:yyyyMMdd-hhmmss}"; - string diffPath = Path.Combine(_basePath, $"Results-{_platform}-{resultsId}"); - string resultsFilePath = Path.Combine(_basePath, $"Results-{_platform}-{resultsId}.html"); + var diffPath = Path.Combine(_basePath, $"Results-{_platform}-{resultsId}"); + var resultsFilePath = Path.Combine(_basePath, $"Results-{_platform}-{resultsId}.html"); Directory.CreateDirectory(path); Directory.CreateDirectory(diffPath); @@ -97,7 +98,7 @@ select testFileIncrements return a; } - var otherMatch = a.Reverse().Where(i => i.IdSha != null).FirstOrDefault(); + var otherMatch = a.Reverse().FirstOrDefault(i => i.IdSha != null); if (platformFiles.FileInfo?.Id.sha != otherMatch?.IdSha) { return a @@ -114,7 +115,7 @@ select testFileIncrements ) ).ToArray(); - var hasChanges = increments.Any(i => i.Where(v => v.IdSha != null).Count() - 1 > 1); + var hasChanges = increments.Any(i => i.Count(v => v.IdSha != null) - 1 > 1); var compareResultFile = new CompareResultFile(); compareResultFile.HasChanged = hasChanges; @@ -126,13 +127,13 @@ select testFileIncrements var firstFolder = changeResult.Where(i => i.FolderIndex != -1).Min(i => i.FolderIndex); - for (int folderIndex = 0; folderIndex < allFolders.Length; folderIndex++) + for (var folderIndex = 0; folderIndex < allFolders.Length; folderIndex++) { var folderInfo = changeResult.FirstOrDefault(inc => inc.FolderIndex == folderIndex); if (folderInfo != null) { - var hasChangedFromPrevious = folderIndex != firstFolder && folderInfo?.IdSha != null; + var hasChangedFromPrevious = folderIndex != firstFolder && folderInfo.IdSha != null; var compareResultFileRun = new CompareResultFileRun(); compareResultFile.ResultRun.Add(compareResultFileRun); @@ -144,37 +145,34 @@ select testFileIncrements compareResultFileRun.HasChanged = hasChangedFromPrevious; - if (folderInfo != null) + var previousFolderInfo = changeResult.FirstOrDefault(inc => inc.FolderIndex == folderIndex - 1); + if (hasChangedFromPrevious && previousFolderInfo != null) { - var previousFolderInfo = changeResult.FirstOrDefault(inc => inc.FolderIndex == folderIndex - 1); - if (hasChangedFromPrevious && previousFolderInfo != null) + try { - try - { - var currentImage = DecodeImage(folderInfo.Path); - var previousImage = DecodeImage(previousFolderInfo.Path); - - if (currentImage.pixels.Length == previousImage.pixels.Length) - { - var diff = DiffImages(currentImage.pixels, previousImage.pixels, currentImage.frame.Format.BitsPerPixel / 8); + var currentImage = DecodeImage(folderInfo.Path); + var previousImage = DecodeImage(previousFolderInfo.Path); - var diffFilePath = Path.Combine(diffPath, $"{folderInfo.Id}-{folderInfo.CompareeId}.png"); - WriteImage(diffFilePath, diff, currentImage.frame, currentImage.stride); + if (currentImage.pixels.Length == previousImage.pixels.Length) + { + var diff = DiffImages(currentImage.pixels, previousImage.pixels, currentImage.frame.Format.BitsPerPixel / 8); - compareResultFileRun.DiffResultImage = diffFilePath; - } + var diffFilePath = Path.Combine(diffPath, $"{folderInfo.Id}-{folderInfo.CompareeId}.png"); + WriteImage(diffFilePath, diff, currentImage.frame, currentImage.stride); - changedList.Add(testFile); + compareResultFileRun.DiffResultImage = diffFilePath; } - catch (Exception ex) - { - Helpers.WriteLineWithTime($"[ERROR] Failed to process [{folderInfo.Path}] and [{previousFolderInfo.Path}]\n({ex})"); - } - } - GC.Collect(2, GCCollectionMode.Forced); - GC.WaitForPendingFinalizers(); + changedList.Add(testFile); + } + catch (Exception ex) + { + Helpers.WriteLineWithTime($"[ERROR] Failed to process [{folderInfo.Path}] and [{previousFolderInfo.Path}]\n({ex})"); + } } + + GC.Collect(2, GCCollectionMode.Forced); + GC.WaitForPendingFinalizers(); } } } @@ -187,7 +185,7 @@ select testFileIncrements private bool CanBeUsedForCompare(string sample) { - if (ReadScreenshotMetadata(sample) is IDictionary options) + if (ReadScreenshotMetadata(sample) is { } options) { if (options.TryGetValue("IgnoreInSnapshotCompare", out var ignore) && ignore.Equals("true", StringComparison.OrdinalIgnoreCase)) { @@ -200,7 +198,8 @@ private bool CanBeUsedForCompare(string sample) private static IDictionary ReadScreenshotMetadata(string sample) { - var metadataFile = Path.Combine(Path.GetDirectoryName(sample), Path.GetFileNameWithoutExtension(sample) + ".metadata"); + var metadataFile = Path.Combine(Path.GetDirectoryName(sample), + $"{Path.GetFileNameWithoutExtension(sample)}.metadata"); if (File.Exists(metadataFile)) { @@ -222,7 +221,7 @@ private static IDictionary ReadScreenshotMetadata(string sample) { using (var sha1 = SHA1.Create()) { - using (var file = File.OpenRead(@"\\?\" + sample)) + using (var file = File.OpenRead($@"\\?\{sample}")) { var data = sha1.ComputeHash(file); @@ -232,7 +231,7 @@ private static IDictionary ReadScreenshotMetadata(string sample) // Loop through each byte of the hashed data // and format each one as a hexadecimal string. - for (int i = 0; i < data.Length; i++) + for (var i = 0; i < data.Length; i++) { sBuilder.Append(data[i].ToString("x2", CultureInfo.InvariantCulture)); } @@ -261,7 +260,7 @@ private IEnumerable EnumerateFiles(string path, string pattern) } else { - return new string[0]; + return []; } } @@ -289,30 +288,45 @@ private void WriteImage(string diffPath, byte[] diff, BitmapFrame frameInfo, int } } - private byte[] DiffImages(byte[] currentImage, byte[] previousImage, int pixelSize) + private byte[] DiffImages(ReadOnlySpan currentImage, ReadOnlySpan previousImage, int pixelSize) { - for (int i = 0; i < currentImage.Length; i++) + var length = currentImage.Length; + var resultImage = new byte[length]; + var vectorSize = Vector.Count; + var i = 0; + + // Apply XOR with SIMD on blocks of size 'vectorSize' + for (; i <= length - vectorSize; i += vectorSize) { - currentImage[i] = (byte)(currentImage[i] ^ previousImage[i]); + var currentVector = new Vector(currentImage.Slice(i, vectorSize)); + var previousVector = new Vector(previousImage.Slice(i, vectorSize)); + var resultVector = currentVector ^ previousVector; + resultVector.CopyTo(resultImage.AsSpan(i, vectorSize)); } + // Process remaining pixels without SIMD if necessary + for (; i < length; i++) + { + resultImage[i] = (byte)(currentImage[i] ^ previousImage[i]); + } + + // If pixelSize is 4, force opacity on every fourth byte if (pixelSize == 4) { - // Force result to be opaque - for (int i = 0; i < currentImage.Length; i += 4) + for (i = 3; i < length; i += 4) { - currentImage[i + 3] = 0xFF; + resultImage[i] = 0xFF; } } - return currentImage; + return resultImage; } private (BitmapFrame frame, byte[] pixels, int stride) DecodeImage(string path1) { try { - using (Stream imageStreamSource = new FileStream(@"\\?\" + path1, FileMode.Open, FileAccess.Read, FileShare.Read)) + using (Stream imageStreamSource = new FileStream($@"\\?\{path1}", FileMode.Open, FileAccess.Read, FileShare.Read)) { var decoder = new PngBitmapDecoder(imageStreamSource, BitmapCreateOptions.PreservePixelFormat, BitmapCacheOption.Default); @@ -322,9 +336,9 @@ private byte[] DiffImages(byte[] currentImage, byte[] previousImage, int pixelSi sourceStride += (4 - sourceStride % 4); var image = new byte[sourceStride * (f.PixelHeight * sourceBytesPerPixels)]; - decoder.Frames[0].CopyPixels(image, (int)sourceStride, 0); + f.CopyPixels(image, (int)sourceStride, 0); - return (decoder.Frames[0], image, sourceStride); + return (f, image, sourceStride); } } catch (Exception ex) @@ -341,6 +355,5 @@ private static IEnumerable LogForeach(IEnumerable q, Action action) yield return item; } } - } } From 2f75f52adf1368eb403a3427bfc4f135d945cdf7 Mon Sep 17 00:00:00 2001 From: DevTKSS Date: Sat, 2 Nov 2024 16:32:02 +0100 Subject: [PATCH 373/664] fix(documentation): Fixed unusable Link in dialogs.md Link below c#-Markup was broken, did not do anything added the Link to the official wiki to HowTo-ShowDialog on plattform.uno. TODO: Add actual c#-markup How To to that article since its actually only including xaml markup support for that --- doc/articles/features/dialogs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/features/dialogs.md b/doc/articles/features/dialogs.md index 09c43f89dfb4..b833149fb851 100644 --- a/doc/articles/features/dialogs.md +++ b/doc/articles/features/dialogs.md @@ -120,7 +120,7 @@ new Button() --- -If you are using Uno.Extensions Navigation, you can utilize its features to display a dialog. For more information, check out this documentation: [Dialogs with Uno.Extensions Navigation](xref:Uno.Extensions.Navigation.HowTo-ShowDialog). +If you are using Uno.Extensions Navigation, you can utilize its features to display a dialog. For more information, check out this documentation: [Dialogs with Uno.Extensions.Navigation](https://platform.uno/docs/articles/external/uno.extensions/doc/Learn/Navigation/HowTo-ShowDialog.html). Considering adding a dialog to your app? Check out our comprehensive video for detailed guidance on the implementation: From 298f4f64e4ab42efc8b3e1eeab2f6c3b8f41a6af Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Sat, 2 Nov 2024 23:43:43 +0100 Subject: [PATCH 374/664] chore: Update HowToShowDialog link --- doc/articles/features/dialogs.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/features/dialogs.md b/doc/articles/features/dialogs.md index b833149fb851..35cd128a3eff 100644 --- a/doc/articles/features/dialogs.md +++ b/doc/articles/features/dialogs.md @@ -120,7 +120,7 @@ new Button() --- -If you are using Uno.Extensions Navigation, you can utilize its features to display a dialog. For more information, check out this documentation: [Dialogs with Uno.Extensions.Navigation](https://platform.uno/docs/articles/external/uno.extensions/doc/Learn/Navigation/HowTo-ShowDialog.html). +If you are using Uno.Extensions Navigation, you can utilize its features to display a dialog. For more information, check out this documentation: [Dialogs with Uno.Extensions.Navigation](xref:Uno.Extensions.Navigation.HowToShowDialog). Considering adding a dialog to your app? Check out our comprehensive video for detailed guidance on the implementation: From 325f571d77dfc6d45bb7c6d9b9077d3af4603d3a Mon Sep 17 00:00:00 2001 From: generousllama541 <98273828+generousllama541@users.noreply.github.com> Date: Sun, 3 Nov 2024 11:03:57 -0500 Subject: [PATCH 375/664] docs: clarify xaml-mvvm tutorial --- .../counterapp/get-started-counter-xaml-mvvm.md | 4 ++-- .../counterapp/includes/include-mainpage-xaml.md | 2 +- .../getting-started/counterapp/includes/include-mvvm.md | 2 ++ 3 files changed, 5 insertions(+), 3 deletions(-) diff --git a/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvvm.md b/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvvm.md index 24efea231a18..fa12386d2597 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvvm.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvvm.md @@ -91,7 +91,7 @@ Also, for more information on all the template options, see [Using the Uno Platf Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. -- Add a **`DataContext`** element to the **`Page`** element in the **MainPage.xaml** file. +- Add a **`DataContext`** element to the **`Page`** element in the **MainPage.xaml** file, between the first `StackPanel` and the `Page` element. ```xml @@ -119,7 +119,7 @@ Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** TextAlignment="Center" /> ``` -- Update the **`Button`** to add a **`Command`** attribute that is bound to the **`IncrementCommand`** property of the **`MainViewModel`**. +- Add a new **`Button`** with a **`Command`** attribute that is bound to the **`IncrementCommand`** property of the **`MainViewModel`**. ```xml public partial class Given_TextBox { + // most macOS keyboard shortcuts uses Command (mapped as Window) and not Control (Ctrl) + private readonly VirtualKeyModifiers _platformCtrlKey = RuntimeInformation.IsOSPlatform(OSPlatform.OSX) ? VirtualKeyModifiers.Windows : VirtualKeyModifiers.Control; + [TestMethod] public async Task When_Basic_Input() { @@ -1580,6 +1583,12 @@ public async Task When_NonAscii_Characters() [DataRow(true)] public async Task When_Copy_Paste(bool useInsert) { + if (useInsert && OperatingSystem.IsMacOS()) + { + Assert.Inconclusive("There's no `Insert` key on Mac keyboards"); + // it's replaced by the `fn` key, which is a modifier + } + using var _ = new TextBoxFeatureConfigDisposable(); var SUT = new TextBox @@ -1611,7 +1620,7 @@ void Paste() } else { - SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.V, VirtualKeyModifiers.Control, unicodeKey: 'v')); + SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.V, _platformCtrlKey, unicodeKey: 'v')); } } @@ -1623,7 +1632,7 @@ void Copy() } else { - SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.C, VirtualKeyModifiers.Control, unicodeKey: 'c')); + SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.C, _platformCtrlKey, unicodeKey: 'c')); } } From 6f79a81fce90aba10772b930d738194edab688f2 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Sun, 3 Nov 2024 19:05:13 -0500 Subject: [PATCH 383/664] fix(tests): Check_FontFallback_Shaping on macOS/skia --- src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs | 9 ++++++--- .../Tests/Windows_UI_Xaml_Controls/Given_TextBlock.cs | 6 ++---- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs b/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs index 8456d31fc678..16dd18fffb72 100644 --- a/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs +++ b/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs @@ -258,16 +258,19 @@ private static async Task AreRenderTargetBitmapsEqualAsync(RenderTargetBit /// If the error is greater than or equal to 0.022, the differences are visible to human eyes. /// The image to compare with reference /// Reference image. - /// It is the threshold beyond which the compared images are not considered equal. Default value is 0.022.> + /// It is the threshold beyond which the compared images are not considered equal. Default value is 0.022. + /// Limits of resolution (in pixels) difference between the bitmaps /// - public static async Task AreSimilarAsync(RawBitmap actual, RawBitmap expected, double imperceptibilityThreshold = 0.022) + public static async Task AreSimilarAsync(RawBitmap actual, RawBitmap expected, double imperceptibilityThreshold = 0.022, int resolutionTolerance = 0) { await actual.Populate(); await expected.Populate(); using var assertionScope = new AssertionScope("ImageAssert"); - if (actual.Width != expected.Width || actual.Height != expected.Height) + var dx = Math.Abs(actual.Width - expected.Width); + var dy = Math.Abs(actual.Height - expected.Height); + if (dx > resolutionTolerance || dy > resolutionTolerance) { assertionScope.FailWith($"Images have different resolutions. {Environment.NewLine}expected:({expected.Width},{expected.Height}){Environment.NewLine}actual :({actual.Width},{actual.Height})"); } diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBlock.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBlock.cs index 3031dcb8f7bd..78dbed3c175c 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBlock.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBlock.cs @@ -182,10 +182,8 @@ public async Task Check_FontFallback_Shaping() await UITestHelper.Load(expected); var screenshot2 = await UITestHelper.ScreenShot(expected); - Assert.AreEqual(screenshot2.Width, screenshot1.Width); - Assert.AreEqual(screenshot2.Height, screenshot1.Height); - - await ImageAssert.AreSimilarAsync(screenshot1, screenshot2, imperceptibilityThreshold: 0.15); + // we tolerate a 1 pixel difference between the bitmaps due to font differences + await ImageAssert.AreSimilarAsync(screenshot1, screenshot2, imperceptibilityThreshold: 0.18, resolutionTolerance: 1); } #endif From 3d19d61b930b0e9d44cf296519212ae4a0dfeb32 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Sun, 3 Nov 2024 19:17:00 -0500 Subject: [PATCH 384/664] fix(tests): When_Ctrl_A on macOS/skia --- .../Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs index 2eda7c4b384c..fdab76d0933d 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs @@ -295,14 +295,14 @@ public async Task When_Ctrl_A() SUT.Focus(FocusState.Programmatic); await WindowHelper.WaitForIdle(); - SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.A, VirtualKeyModifiers.Control, unicodeKey: 'a')); + SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.A, _platformCtrlKey, unicodeKey: 'a')); await WindowHelper.WaitForIdle(); Assert.AreEqual(0, SUT.SelectionStart); Assert.AreEqual(0, keyDownCount); Assert.AreEqual(SUT.Text.Length, SUT.SelectionLength); - SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.A, VirtualKeyModifiers.Control, unicodeKey: 'a')); + SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.A, _platformCtrlKey, unicodeKey: 'a')); await WindowHelper.WaitForIdle(); Assert.AreEqual(0, SUT.SelectionStart); From 8fc014aae79aaf1af39e0d08b2d995aeb71b0c4e Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Sun, 3 Nov 2024 19:39:44 -0500 Subject: [PATCH 385/664] fix(tests): When_Ctrl_Backspace on macOS/skia --- .../Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs | 6 ++++-- src/Uno.UI/UI/Xaml/Controls/TextBox/TextBox.skia.cs | 6 ++++++ 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs index fdab76d0933d..72301e41d848 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs @@ -396,14 +396,16 @@ public async Task When_Ctrl_Backspace() SUT.Select(SUT.Text.Length, 0); await WindowHelper.WaitForIdle(); - SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.Back, VirtualKeyModifiers.Control)); + // on macOS it's option (menu/alt) and backspace to delete a word + var mod = OperatingSystem.IsMacOS() ? VirtualKeyModifiers.Menu : VirtualKeyModifiers.Control; + SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.Back, mod)); await WindowHelper.WaitForIdle(); Assert.AreEqual("lorem ipsum ", SUT.Text); Assert.AreEqual(SUT.Text.Length, SUT.SelectionStart); Assert.AreEqual(0, SUT.SelectionLength); - SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.Back, VirtualKeyModifiers.Control)); + SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.Back, mod)); await WindowHelper.WaitForIdle(); Assert.AreEqual("lorem ", SUT.Text); diff --git a/src/Uno.UI/UI/Xaml/Controls/TextBox/TextBox.skia.cs b/src/Uno.UI/UI/Xaml/Controls/TextBox/TextBox.skia.cs index 2a0aec65e9d9..d82ae614c8a4 100644 --- a/src/Uno.UI/UI/Xaml/Controls/TextBox/TextBox.skia.cs +++ b/src/Uno.UI/UI/Xaml/Controls/TextBox/TextBox.skia.cs @@ -538,6 +538,12 @@ args.Key is not (VirtualKey.Up or VirtualKey.Down or VirtualKey.Left or VirtualK private void KeyDownBack(KeyRoutedEventArgs args, ref string text, bool ctrl, bool shift, ref int selectionStart, ref int selectionLength) { + // on macOS it is `option` + `delete` (same location as backspace on PC keyboards) that removes the previous word + if (OperatingSystem.IsMacOS()) + { + ctrl = args.KeyboardModifiers.HasFlag(VirtualKeyModifiers.Menu); + } + if (HasPointerCapture) { return; From 8547cbd34dd38fe175436aee5be171e72076347d Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Sun, 3 Nov 2024 19:55:32 -0500 Subject: [PATCH 386/664] fix(tests): When_Ctrl_Delete on macOS/skia --- .../Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs index 72301e41d848..a6b9d4059e46 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs @@ -360,14 +360,16 @@ public async Task When_Ctrl_Delete() SUT.Focus(FocusState.Programmatic); await WindowHelper.WaitForIdle(); - SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.Delete, VirtualKeyModifiers.Control)); + // on macOS it's option (menu/alt) and backspace to delete a word + var mod = OperatingSystem.IsMacOS() ? VirtualKeyModifiers.Menu : VirtualKeyModifiers.Control; + SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.Delete, mod)); await WindowHelper.WaitForIdle(); Assert.AreEqual("ipsum dolor", SUT.Text); Assert.AreEqual(0, SUT.SelectionStart); Assert.AreEqual(0, SUT.SelectionLength); - SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.Delete, VirtualKeyModifiers.Control)); + SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.Delete, mod)); await WindowHelper.WaitForIdle(); Assert.AreEqual("dolor", SUT.Text); From 3e1c56c892c67bcdbf6787ef67fe4b9302e12719 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Sun, 3 Nov 2024 19:59:24 -0500 Subject: [PATCH 387/664] fix(tests): When_Ctrl_Delete_Undo_Redo on macOS/skia --- .../Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs index a6b9d4059e46..1c84daaedc1f 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs @@ -3498,7 +3498,9 @@ public async Task When_Ctrl_Delete_Undo_Redo() SUT.Focus(FocusState.Programmatic); await WindowHelper.WaitForIdle(); - SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.Delete, VirtualKeyModifiers.Control)); + // on macOS it's option (menu/alt) and backspace to delete a word + var mod = OperatingSystem.IsMacOS() ? VirtualKeyModifiers.Menu : VirtualKeyModifiers.Control; + SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.Delete, mod)); await WindowHelper.WaitForIdle(); SUT.Undo(); From 6acb0cd2b5a4f402d89454238ed65a00951ba63a Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Sun, 3 Nov 2024 20:25:13 -0500 Subject: [PATCH 388/664] fix(tests): When_Ctrl_End_ScrollViewer_Vertical_Offset on macOS/skia --- .../Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs index 1c84daaedc1f..cd91f54a07b4 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_TextBox.skia.cs @@ -268,7 +268,11 @@ public async Task When_Ctrl_End_ScrollViewer_Vertical_Offset() Assert.AreEqual(0, ((ScrollViewer)SUT.ContentElement).VerticalOffset); - SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, VirtualKey.End, VirtualKeyModifiers.Control)); + // on macOS moving to the end of the document is done with `Command` + `Down` + var macOS = OperatingSystem.IsMacOS(); + var key = macOS ? VirtualKey.Down : VirtualKey.End; + var mod = macOS ? VirtualKeyModifiers.Windows : VirtualKeyModifiers.Control; + SUT.SafeRaiseEvent(UIElement.KeyDownEvent, new KeyRoutedEventArgs(SUT, key, mod)); await WindowHelper.WaitForIdle(); ((ScrollViewer)SUT.ContentElement).VerticalOffset.Should().BeApproximately(((ScrollViewer)SUT.ContentElement).ScrollableHeight, 1.0); From df0796cc84224ce2103f05ebf6eb63402a183487 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Mon, 4 Nov 2024 12:26:16 +0200 Subject: [PATCH 389/664] chore: fix When__Before_Activate --- src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs b/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs index fb7a304d5771..e8d51e8536b3 100644 --- a/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs @@ -32,9 +32,12 @@ public WpfWindowWrapper(UnoWpfWindow wpfWindow, WinUIWindow window, XamlRoot xam _wpfWindow.DpiChanged += OnNativeDpiChanged; _wpfWindow.StateChanged += OnNativeStateChanged; _wpfWindow.Host.SizeChanged += (_, e) => OnHostSizeChanged(e.NewSize); - OnHostSizeChanged(new Size(_wpfWindow.Width, _wpfWindow.Height)); _wpfWindow.LocationChanged += OnNativeLocationChanged; _wpfWindow.SizeChanged += OnNativeSizeChanged; + + RasterizationScale = (float)VisualTreeHelper.GetDpi(_wpfWindow.Host).DpiScaleX; + + OnHostSizeChanged(new Size(_wpfWindow.Width, _wpfWindow.Height)); UpdateSizeFromNative(); UpdatePositionFromNative(); } @@ -72,7 +75,6 @@ public override string Title protected override void ShowCore() { - RasterizationScale = (float)VisualTreeHelper.GetDpi(_wpfWindow.Host).DpiScaleX; _wpfWindow.Show(); _wasShown = true; UpdatePositionFromNative(); From 21d4542f97d16584e3b6342b7fd5673d4cc530c3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Fri, 1 Nov 2024 08:22:09 -0400 Subject: [PATCH 390/664] fix: Don't include non-existing pwa manifest (cherry picked from commit e98a6a9ec628a53420f050c2f362dd41f8c09a44) --- src/Uno.Sdk/targets/Uno.SingleProject.Wasm.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.Sdk/targets/Uno.SingleProject.Wasm.targets b/src/Uno.Sdk/targets/Uno.SingleProject.Wasm.targets index 89c7a2b54c06..702c31629711 100644 --- a/src/Uno.Sdk/targets/Uno.SingleProject.Wasm.targets +++ b/src/Uno.Sdk/targets/Uno.SingleProject.Wasm.targets @@ -1,7 +1,7 @@ true - $(WasmProjectFolder)manifest.webmanifest + $(WasmProjectFolder)manifest.webmanifest From 97eedbc1d5c13eaf94ddca84c64c2891535faf66 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Fri, 1 Nov 2024 09:30:33 -0400 Subject: [PATCH 419/664] fix(VS): Adjust toast title (cherry picked from commit a0e853b93ea90d68b49ddffd2fe930cea8b194ea) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 13 ++++---- .../GlobalJsonObserver.cs | 8 ++--- .../Notifications/InfoBar.cs | 30 +++++++++---------- 3 files changed, 23 insertions(+), 28 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 3b911c23acf4..ef12b7ed679c 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -494,14 +494,11 @@ private async Task CreateInfoBarAsync(NotificationRequestIdeMessage e, IVsShell var infoBar = await _infoBarFactory.CreateAsync( new InfoBarModel( - e.Message, - e.Commands.Select(Commands => new ActionBarItem - { - Text = Commands.Text, - Name = Commands.Name, - ActionContext = Commands.Parameter, - IsButton = true, - }).ToArray(), + new ActionBarTextSpan[] { + new(e.Title, Bold: true), + new(e.Message) + }, + e.Commands.Select(Commands => new ActionBarItem(Commands.Text, Commands.Name, ActionContext: Commands.Parameter, IsButton: true)).ToArray(), e.Kind == NotificationKind.Information ? KnownMonikers.StatusInformation : KnownMonikers.StatusError, isCloseButtonVisible: true)); diff --git a/src/Uno.UI.RemoteControl.VS/GlobalJsonObserver.cs b/src/Uno.UI.RemoteControl.VS/GlobalJsonObserver.cs index e7d397e90fbe..1254ac2381b8 100644 --- a/src/Uno.UI.RemoteControl.VS/GlobalJsonObserver.cs +++ b/src/Uno.UI.RemoteControl.VS/GlobalJsonObserver.cs @@ -121,8 +121,8 @@ await _asyncPackage.GetServiceAsync(typeof(SVsShell)) is IVsShell shell && await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUIFactory infoBarFactory) { var factory = new InfoBarFactory(infoBarFactory, shell); - var restartVSItem = new ActionBarItem { Text = "Restart Visual Studio" }; - var moreInformationVSItem = new ActionBarItem { Text = "More information" }; + var restartVSItem = new ActionBarItem("Restart Visual Studio"); + var moreInformationVSItem = new ActionBarItem("More information"); var infoBar = await factory.CreateAsync( new InfoBarModel( @@ -141,7 +141,7 @@ await _asyncPackage.GetServiceAsync(typeof(SVsShell)) is IVsShell shell { _asyncPackage.JoinableTaskFactory.Run(async () => { - if (e.ActionItem == restartVSItem) + if (ReferenceEquals(e.ActionItem, restartVSItem)) { await _asyncPackage.JoinableTaskFactory.SwitchToMainThreadAsync(); @@ -152,7 +152,7 @@ await _asyncPackage.GetServiceAsync(typeof(SVsShell)) is IVsShell shell var hr = shell4.Restart((uint)type); } } - else if (e.ActionItem == moreInformationVSItem) + else if (ReferenceEquals(e.ActionItem, moreInformationVSItem)) { System.Diagnostics.Process.Start("https://aka.platform.uno/upgrade-uno-packages"); } diff --git a/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs b/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs index 524de5fa9b13..709954f22209 100644 --- a/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs +++ b/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs @@ -145,19 +145,17 @@ void IVsInfoBarUIEvents.OnActionItemClicked(IVsInfoBarUIElement infoBarUIElement } } -class ActionBarItem : IVsInfoBarActionItem -{ - public string? Text { get; set; } - - public string? Name { get; set; } - - public bool Bold { get; set; } - - public bool Italic { get; set; } - - public bool Underline { get; set; } - - public object? ActionContext { get; set; } - - public bool IsButton { get; set; } -} +record class ActionBarTextSpan( + string Text + , bool Bold = false + , bool Italic = false + , bool Underline = false) : IVsInfoBarTextSpan; + +record ActionBarItem( + string? Text + , string? Name = null + , bool Bold = false + , bool Italic = false + , bool Underline = false + , object? ActionContext = null + , bool IsButton = false) : IVsInfoBarActionItem; From 02a328acae07a866a4277c305d4e4f9b1dcd68e9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Mon, 4 Nov 2024 15:40:12 -0500 Subject: [PATCH 420/664] chore: Adjust spacing (cherry picked from commit d199e0d8920440d7fe5417fc88e52845d192e53b) --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index ef12b7ed679c..e66692432bfa 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -496,7 +496,7 @@ private async Task CreateInfoBarAsync(NotificationRequestIdeMessage e, IVsShell new InfoBarModel( new ActionBarTextSpan[] { new(e.Title, Bold: true), - new(e.Message) + new(" " + e.Message) }, e.Commands.Select(Commands => new ActionBarItem(Commands.Text, Commands.Name, ActionContext: Commands.Parameter, IsButton: true)).ToArray(), e.Kind == NotificationKind.Information ? KnownMonikers.StatusInformation : KnownMonikers.StatusError, From 19b86eb32bc6f31a0c182227d859dfa9631f60c7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Mon, 4 Nov 2024 15:44:33 -0500 Subject: [PATCH 421/664] chore: Adjust format (cherry picked from commit e9fb0bc88aeacdf9df306fb63cf8a71932d8f91b) --- .../Notifications/InfoBar.cs | 22 +++++++++---------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs b/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs index 709954f22209..fe0f14484f26 100644 --- a/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs +++ b/src/Uno.UI.RemoteControl.VS/Notifications/InfoBar.cs @@ -146,16 +146,16 @@ void IVsInfoBarUIEvents.OnActionItemClicked(IVsInfoBarUIElement infoBarUIElement } record class ActionBarTextSpan( - string Text - , bool Bold = false - , bool Italic = false - , bool Underline = false) : IVsInfoBarTextSpan; + string Text, + bool Bold = false, + bool Italic = false, + bool Underline = false) : IVsInfoBarTextSpan; record ActionBarItem( - string? Text - , string? Name = null - , bool Bold = false - , bool Italic = false - , bool Underline = false - , object? ActionContext = null - , bool IsButton = false) : IVsInfoBarActionItem; + string? Text, + string? Name = null, + bool Bold = false, + bool Italic = false, + bool Underline = false, + object? ActionContext = null, + bool IsButton = false) : IVsInfoBarActionItem; From bed82233cae5844e50bc665ceb08852604714ca6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Tue, 5 Nov 2024 08:53:56 -0500 Subject: [PATCH 422/664] docs: Adjust hot restart limitation for release builds --- doc/articles/create-an-app-vs2022.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/articles/create-an-app-vs2022.md b/doc/articles/create-an-app-vs2022.md index 96a265b868a6..106fdae6bb28 100644 --- a/doc/articles/create-an-app-vs2022.md +++ b/doc/articles/create-an-app-vs2022.md @@ -104,6 +104,8 @@ To debug for **iOS**: > [!NOTE] > If no iOS devices are available, a Visual Studio 17.7+ issue may require unloading/reloading the project. Right-click on the `MyApp` project and select **Unload Project** then **Load project**. + > [!IMPORTANT] + > When using a device connected to a Windows PC, the Release build configuration is not supported. An actual macOS machine is required. ### [**Android**](#tab/Android) From ff6214f46ddbc65e39b507df975b4fb8f1ec40fd Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Fri, 1 Nov 2024 13:50:44 +0100 Subject: [PATCH 423/664] fix: AppWindow should use physical units (cherry picked from commit 181a98faa95757cf59dda9385db2b5c8b348d7c6) --- src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.Android.cs | 2 +- src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.iOS.cs | 2 +- .../UI/Xaml/Window/Native/NativeWindowWrapper.unittests.cs | 2 +- src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.wasm.cs | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.Android.cs b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.Android.cs index 48e8236a2b7f..94be61b1230e 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.Android.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.Android.cs @@ -76,7 +76,7 @@ internal void RaiseNativeSizeChanged() Bounds = new Rect(default, windowSize); VisibleBounds = visibleBounds; - Size = windowSize.ToSizeInt32(); + Size = new((int)(windowSize.Width * RasterizationScale), (int)(windowSize.Height * RasterizationScale)); if (_previousTrueVisibleBounds != trueVisibleBounds) { diff --git a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.iOS.cs b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.iOS.cs index 87fdaf87dd0b..6a21e373fbe1 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.iOS.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.iOS.cs @@ -68,7 +68,7 @@ internal void RaiseNativeSizeChanged() var newWindowSize = GetWindowSize(); Bounds = new Rect(default, newWindowSize); - Size = newWindowSize.ToSizeInt32(); + Size = new((int)(newWindowSize.Width * RasterizationScale), (int)(newWindowSize.Height * RasterizationScale)); SetVisibleBounds(_nativeWindow, newWindowSize); } diff --git a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.unittests.cs b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.unittests.cs index 4d02f10e9004..ac2cc22645ee 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.unittests.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.unittests.cs @@ -30,6 +30,6 @@ internal void RaiseNativeSizeChanged(double width, double height) Bounds = bounds; VisibleBounds = bounds; - Size = bounds.Size.ToSizeInt32(); + Size = new((int)(bounds.Width * RasterizationScale), (int)(bounds.Height * RasterizationScale)); } } diff --git a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.wasm.cs b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.wasm.cs index c5b975ee682e..584de24263ca 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.wasm.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.wasm.cs @@ -47,7 +47,7 @@ internal void RaiseNativeSizeChanged(double width, double height) Bounds = bounds; VisibleBounds = bounds; - Size = bounds.Size.ToSizeInt32(); + Size = new((int)(bounds.Width * RasterizationScale), (int)(bounds.Height * RasterizationScale)); } protected override void ShowCore() From fc1e0405be82adc6ab693a490b89dfe028611d53 Mon Sep 17 00:00:00 2001 From: David Date: Tue, 5 Nov 2024 10:23:28 -0500 Subject: [PATCH 424/664] chore: Update logging level MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jérôme Laban --- src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs b/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs index 44f97a159ab2..d614fc56da3c 100644 --- a/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs +++ b/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs @@ -18,7 +18,7 @@ public static IImmutableList Load(IImmutableList dllFiles, boo { try { - _log.Log(LogLevel.Information, $"Loading add-in assembly '{dll}'."); + _log.Log(LogLevel.Debug, $"Loading add-in assembly '{dll}'."); assemblies.Add(Assembly.LoadFrom(dll)); } From 1e19156423c333033d4ebb681704765ab2ed0ece Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Tue, 5 Nov 2024 10:57:17 -0500 Subject: [PATCH 425/664] chore: restore extra > at the end of XML since it fails without it --- src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs b/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs index 16dd18fffb72..92b5f6006a0e 100644 --- a/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs +++ b/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs @@ -258,7 +258,7 @@ private static async Task AreRenderTargetBitmapsEqualAsync(RenderTargetBit /// If the error is greater than or equal to 0.022, the differences are visible to human eyes. /// The image to compare with reference /// Reference image. - /// It is the threshold beyond which the compared images are not considered equal. Default value is 0.022. + /// It is the threshold beyond which the compared images are not considered equal. Default value is 0.022.> /// Limits of resolution (in pixels) difference between the bitmaps /// public static async Task AreSimilarAsync(RawBitmap actual, RawBitmap expected, double imperceptibilityThreshold = 0.022, int resolutionTolerance = 0) From 4311ef025c5b664a8c56d5cddb6c9e4f1fe89ee3 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 11:02:54 -0400 Subject: [PATCH 426/664] chore: Changed visibility of some structure to public --- .../ClientHotReloadProcessor.Common.Status.cs | 14 +++++++------- .../HotReload/Messages/HotReloadServerResult.cs | 2 +- .../HotReload/Messages/HotReloadState.cs | 2 +- .../HotReload/Messages/HotReloadStatusMessage.cs | 2 +- 4 files changed, 10 insertions(+), 10 deletions(-) diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs index 8fad9fe3bb56..c36874286bee 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs @@ -23,7 +23,7 @@ public partial class ClientHotReloadProcessor /// /// Raised when the status of the hot-reload engine changes. /// - internal EventHandler? StatusChanged; + public EventHandler? StatusChanged; /// /// The current status of the hot-reload engine. @@ -32,7 +32,7 @@ public partial class ClientHotReloadProcessor private readonly StatusSink _status; - internal enum HotReloadSource + public enum HotReloadSource { Runtime, DevServer, @@ -63,7 +63,7 @@ internal enum HotReloadClientResult /// The global state of the hot-reload engine (combining server and client state). /// State and history of all hot-reload operations detected on the server. /// State and history of all hot-reload operation received by this client. - internal record Status( + public record Status( HotReloadState State, (HotReloadState State, IImmutableList Operations) Server, (HotReloadState State, IImmutableList Operations) Local); @@ -163,22 +163,22 @@ private Status BuildStatus() } } - internal class HotReloadClientOperation + public class HotReloadClientOperation { #region Current [ThreadStatic] private static HotReloadClientOperation? _opForCurrentUiThread; - public static HotReloadClientOperation? GetForCurrentThread() + internal static HotReloadClientOperation? GetForCurrentThread() => _opForCurrentUiThread; - public void SetCurrent() + internal void SetCurrent() { Debug.Assert(_opForCurrentUiThread == null, "Only one operation should be active at once for a given UI thread."); _opForCurrentUiThread = this; } - public void ResignCurrent() + internal void ResignCurrent() { Debug.Assert(_opForCurrentUiThread == this, "Another operation has been started for teh current UI thread."); _opForCurrentUiThread = null; diff --git a/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadServerResult.cs b/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadServerResult.cs index f7e0ad2e5f95..8a5f19d1905b 100644 --- a/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadServerResult.cs +++ b/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadServerResult.cs @@ -6,7 +6,7 @@ namespace Uno.UI.RemoteControl.HotReload.Messages; /// /// The result of a hot-reload operation on server. /// -internal enum HotReloadServerResult +public enum HotReloadServerResult { /// /// Hot-reload completed with no changes. diff --git a/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadState.cs b/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadState.cs index f814f093fff8..e0f28e817910 100644 --- a/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadState.cs +++ b/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadState.cs @@ -3,7 +3,7 @@ namespace Uno.UI.RemoteControl.HotReload; -internal enum HotReloadState +public enum HotReloadState { /// /// Hot reload is disabled. diff --git a/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadStatusMessage.cs b/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadStatusMessage.cs index 59af405fd427..3aaabd1454b4 100644 --- a/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadStatusMessage.cs +++ b/src/Uno.UI.RemoteControl/HotReload/Messages/HotReloadStatusMessage.cs @@ -30,7 +30,7 @@ internal record HotReloadStatusMessage( string IMessage.Name => Name; } - internal record HotReloadServerOperationData( + public record HotReloadServerOperationData( long Id, DateTimeOffset StartTime, ImmutableHashSet FilePaths, From b5f7086ef5985e4be11334a7e36af1c03be6caf8 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 15:34:52 -0400 Subject: [PATCH 427/664] chore: Moved the Hot Reload Indicator (`HotreloadStatusView`) to another project. --- .../Diagnostics/DiagnosticViewRegistry.cs | 2 +- .../ClientHotReloadProcessor.Common.Status.cs | 18 +- .../HotReload/HotReloadStatusView.Entries.cs | 215 ----------- .../HotReloadStatusView.Resources.cs | 59 --- .../HotReload/HotReloadStatusView.cs | 350 ------------------ .../HotReload/HotReloadStatusView.xaml | 346 ----------------- .../RemoteControlClient.Status.cs | 4 +- .../RemoteControlStatus.cs | 10 +- .../RemoteControlStatusView.cs | 2 +- src/Uno.UI.RemoteControl/Themes/Generic.xaml | 11 +- .../Uno.UI.RemoteControl.Skia.csproj | 4 - .../Frame/HRApp/Tests/Given_TextBlock.cs | 41 +- .../Diagnostics/DiagnosticView.Factories.cs | 2 +- .../DiagnosticView.TView.TState.cs | 2 +- .../Diagnostics/DiagnosticView.TView.cs | 2 +- src/Uno.UI/Diagnostics/DiagnosticView.cs | 2 +- 16 files changed, 62 insertions(+), 1008 deletions(-) delete mode 100644 src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.Entries.cs delete mode 100644 src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.Resources.cs delete mode 100644 src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs delete mode 100644 src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml diff --git a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs index ed14cec7ab3d..41a3a91a7b64 100644 --- a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs +++ b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs @@ -37,7 +37,7 @@ public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode internal record DiagnosticViewRegistration(DiagnosticViewRegistrationMode Mode, IDiagnosticView View); -internal enum DiagnosticViewRegistrationMode +public enum DiagnosticViewRegistrationMode { /// /// Diagnostic is being display on at least one window. diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs index c36874286bee..c30dd6017b6b 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs @@ -28,7 +28,7 @@ public partial class ClientHotReloadProcessor /// /// The current status of the hot-reload engine. /// - internal Status CurrentStatus => _status.Current; + public Status CurrentStatus => _status.Current; private readonly StatusSink _status; @@ -39,7 +39,7 @@ public enum HotReloadSource Manual } - internal enum HotReloadClientResult + public enum HotReloadClientResult { /// /// Successful hot-reload. @@ -70,9 +70,9 @@ public record Status( private class StatusSink(ClientHotReloadProcessor owner) { -#if HAS_UNO_WINUI - private readonly DiagnosticView _view = DiagnosticView.Register("Hot reload", ctx => new HotReloadStatusView(ctx), static (view, status) => view.OnHotReloadStatusChanged(status)); -#endif +// #if HAS_UNO_WINUI +// private readonly DiagnosticView _view = DiagnosticView.Register("Hot reload", ctx => new HotReloadStatusView(ctx), static (view, status) => view.OnHotReloadStatusChanged(status)); +// #endif private HotReloadState? _serverState; private bool _isFinalServerState; @@ -142,9 +142,9 @@ private void NotifyStatusChanged() var status = BuildStatus(); Current = status; -#if HAS_UNO_WINUI - _view.Update(status); -#endif +// #if HAS_UNO_WINUI +// _view.Update(status); +// #endif owner.StatusChanged?.Invoke(this, status); } @@ -208,7 +208,7 @@ internal HotReloadClientOperation(HotReloadSource source, Type[] types, Action o public Type[] Types { get; private set; } - internal string[] CuratedTypes => _curatedTypes ??= GetCuratedTypes(); + public string[] CuratedTypes => _curatedTypes ??= GetCuratedTypes(); private string[] GetCuratedTypes() { diff --git a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.Entries.cs b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.Entries.cs deleted file mode 100644 index 70ede1d818c5..000000000000 --- a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.Entries.cs +++ /dev/null @@ -1,215 +0,0 @@ -#nullable enable - -using System; -using System.ComponentModel; -using System.Globalization; -using System.IO; -using System.Linq; -using System.Text; -using Uno.UI.RemoteControl.HotReload.Messages; -using static Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor; -using static Uno.UI.RemoteControl.RemoteControlStatus; - -namespace Uno.UI.RemoteControl.HotReload; - -internal record DevServerEntry() : HotReloadLogEntry(EntrySource.DevServer, -1, DateTimeOffset.Now) -{ - public static DevServerEntry? TryCreateNew(RemoteControlStatus? oldStatus, RemoteControlStatus newStatus) - { - if (oldStatus is not null && oldStatus.State == newStatus.State) - { - return null; - } - - var (iconState, desc) = (oldStatus, newStatus) switch - { - (_, { State: ConnectionState.NoServer }) => (EntryIcon.Error, "No endpoint found"), - (not null, { State: ConnectionState.Connecting }) => (EntryIcon.Loading, "Connecting..."), - (null or { State: not ConnectionState.ConnectionTimeout }, { State: ConnectionState.ConnectionTimeout }) => (EntryIcon.Error, "Timeout"), - (null or { State: not ConnectionState.ConnectionFailed }, { State: ConnectionState.ConnectionFailed }) => (EntryIcon.Error, "Connection error"), - - (null or { IsVersionValid: not false }, { IsVersionValid: false }) => (EntryIcon.Warning, "Version mismatch"), - (null or { InvalidFrames.Count: 0 }, { InvalidFrames.Count: > 0 }) => (EntryIcon.Warning, "Unknown messages"), - (null or { MissingRequiredProcessors.IsEmpty: true }, { MissingRequiredProcessors.IsEmpty: false }) => (EntryIcon.Warning, "Processors missing"), - - ({ KeepAlive.State: KeepAliveState.Idle or KeepAliveState.Ok }, { KeepAlive.State: KeepAliveState.Late }) => (EntryIcon.Error, "Connection lost (>1000ms)"), - ({ KeepAlive.State: KeepAliveState.Idle or KeepAliveState.Ok }, { KeepAlive.State: KeepAliveState.Lost }) => (EntryIcon.Error, "Connection lost (>1s)"), - ({ KeepAlive.State: KeepAliveState.Idle or KeepAliveState.Ok }, { KeepAlive.State: KeepAliveState.Aborted }) => (EntryIcon.Error, "Connection lost (keep-alive)"), - ({ State: ConnectionState.Connected }, { State: ConnectionState.Disconnected }) => (EntryIcon.Error, "Connection lost"), - - ({ State: ConnectionState.Connected }, { State: ConnectionState.Reconnecting }) => (EntryIcon.Error, "Connection lost (reconnecting)"), - - _ => (default, default) - }; - - return desc is null - ? null - : new DevServerEntry { Title = desc, Icon = iconState | EntryIcon.Connection }; - } -} - -internal record EngineEntry() : HotReloadLogEntry(EntrySource.Engine, -1, DateTimeOffset.Now) -{ - public static EngineEntry? TryCreateNew(Status? oldStatus, Status status) - => (oldStatus?.State ?? HotReloadState.Initializing, status.State) switch - { - ( < HotReloadState.Ready, HotReloadState.Ready) => new EngineEntry { Title = "Connected", Icon = EntryIcon.Connection | EntryIcon.Success }, - (not HotReloadState.Disabled, HotReloadState.Disabled) => new EngineEntry { Title = "Cannot initialize with debugger attached", Icon = EntryIcon.Connection | EntryIcon.Error }, - _ => null - }; -} - -internal record ServerEntry : HotReloadLogEntry -{ - public ServerEntry(HotReloadServerOperationData srvOp) - : base(EntrySource.Server, srvOp.Id, srvOp.StartTime) - { - Update(srvOp); - } - - /// - /// Indicates if this notification is the final one for the operation, INCLUDING application wide. - /// - public bool IsFinal { get; private set; } - - public void Update(HotReloadServerOperationData srvOp) - { - IsFinal = srvOp.Result is not HotReloadServerResult.Success; - (IsSuccess, Icon) = srvOp.Result switch - { - null => (default, EntryIcon.HotReload | EntryIcon.Loading), - HotReloadServerResult.Success or HotReloadServerResult.NoChanges => (true, EntryIcon.HotReload | EntryIcon.Success), - _ => (false, EntryIcon.HotReload | EntryIcon.Error) - }; - Title = srvOp.Result switch - { - HotReloadServerResult.NoChanges => "No changes detected", - HotReloadServerResult.RudeEdit => "Rude edit detected, restart required", - HotReloadServerResult.Failed => "Compilation errors", - HotReloadServerResult.Aborted => "Operation cancelled", - HotReloadServerResult.InternalError => "An error occured", - _ => null - }; - Description = Join("file", srvOp.FilePaths.Select(Path.GetFileName).ToArray()!); - Duration = srvOp.EndTime is not null ? srvOp.EndTime - srvOp.StartTime : null; - - RaiseChanged(); - } -} - -internal record ApplicationEntry : HotReloadLogEntry -{ - public ApplicationEntry(HotReloadClientOperation localOp) - : base(EntrySource.Application, localOp.Id, localOp.StartTime) - { - Update(localOp); - } - - internal void Update(HotReloadClientOperation localOp) - { - (IsSuccess, Icon) = localOp.Result switch - { - null => (default(bool?), EntryIcon.HotReload | EntryIcon.Loading), - HotReloadClientResult.Success => (true, EntryIcon.HotReload | EntryIcon.Success), - _ => (false, EntryIcon.HotReload | EntryIcon.Error) - }; - Title = localOp.Result switch - { - null => "Processing...", - HotReloadClientResult.Success => "Update successful", - HotReloadClientResult.Failed => "An error occured", - _ => null - }; - Description = Join("type", localOp.CuratedTypes); - Duration = localOp.EndTime is not null ? localOp.EndTime - localOp.StartTime : null; - - RaiseChanged(); - } -} - -public enum EntrySource -{ - DevServer, - Engine, - Server, - Application -} - -[Flags] -public enum EntryIcon -{ - // Kind - Loading = 1 << 0, - Success = 1 << 1, - Warning = 1 << 2, - Error = 1 << 3, - - // Source - Connection = 1 << 8, - HotReload = 2 << 8, -} - - -[Microsoft.UI.Xaml.Data.Bindable] -public record HotReloadLogEntry(EntrySource Source, long Id, DateTimeOffset Timestamp) : INotifyPropertyChanged -{ - /// - public event PropertyChangedEventHandler? PropertyChanged; - - public bool? IsSuccess { get; set; } - public TimeSpan? Duration { get; set; } - public EntryIcon Icon { get; set; } - - public string? Title { get; set; } - public string? Description { get; set; } - public string? ToastDescription => Description ?? Title; - - public string TimeInfo => Duration switch - { - null => $"{Timestamp:T}", - { TotalMilliseconds: < 1000 } ms => $"{ms.TotalMilliseconds:F0} ms - {Timestamp:T}", - { } s => $"{s.TotalSeconds:N0} s - {Timestamp:T}", - }; - - protected void RaiseChanged() - => PropertyChanged?.Invoke(this, new PropertyChangedEventArgs("")); - - protected static string? Join(string kind, string[] items, int? total = null, int max = 5) - { - const int maxLength = 70; - - if (items is { Length: 0 } && total is null) - { - return null; - } - - var sb = new StringBuilder(maxLength + 12 /* and xx more*/); - int count; - for (count = 0; count < Math.Min(items.Length, max); count++) - { - var item = items[count]; - if (sb.Length + 2 /*, */ + item.Length < maxLength) - { - if (count is not 0) sb.Append(", "); - sb.Append(item); - } - else - { - break; - } - } - - var remaining = total - count; - if (remaining > 0) - { - sb.Append((count, remaining) switch - { - (0, 1) => $"1 {kind}", - (0, _) => $"{remaining} {kind}s", - _ => $" and {remaining} more" - }); - } - - return sb.ToString(); - } -} diff --git a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.Resources.cs b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.Resources.cs deleted file mode 100644 index 9e43ebd2302a..000000000000 --- a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.Resources.cs +++ /dev/null @@ -1,59 +0,0 @@ -#nullable enable - -using System; -using System.Linq; -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Data; -using Uno.Extensions; - -namespace Uno.UI.RemoteControl.HotReload; - -internal sealed class EntryIconToObjectConverter : IValueConverter -{ - public object? SuccessValue { get; set; } - public object? FailedValue { get; set; } - public object? ConnectionSuccessValue { get; set; } - public object? ConnectionFailedValue { get; set; } - public object? ConnectionWarningValue { get; set; } - - public object? Convert(object? value, Type targetType, object parameter, string language) - { - if (value is not null) - { - var ei = (EntryIcon)value; - - if (ei.HasFlag(EntryIcon.Connection)) - { - if (ei.HasFlag(EntryIcon.Success)) return ConnectionSuccessValue; - if (ei.HasFlag(EntryIcon.Error)) return ConnectionFailedValue; - if (ei.HasFlag(EntryIcon.Warning)) return ConnectionWarningValue; - } - else if (ei.HasFlag(EntryIcon.HotReload)) - { - if (ei.HasFlag(EntryIcon.Success)) return SuccessValue; - if (ei.HasFlag(EntryIcon.Error)) return FailedValue; - } - } - - return ConnectionWarningValue; - } - - public object ConvertBack(object value, Type targetType, object parameter, string language) - => throw new NotSupportedException("Only one-way conversion is supported."); -} - -internal sealed class NullStringToCollapsedConverter : IValueConverter -{ - public object? Convert(object? value, Type targetType, object parameter, string language) - { - if (value is string s && !string.IsNullOrEmpty(s)) - { - return Visibility.Visible; - } - - return Visibility.Collapsed; - } - - public object ConvertBack(object value, Type targetType, object parameter, string language) - => throw new NotSupportedException("Only one-way conversion is supported."); -} diff --git a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs deleted file mode 100644 index 92bfb5f3fc84..000000000000 --- a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.cs +++ /dev/null @@ -1,350 +0,0 @@ -#nullable enable - -using System; -using System.Collections.Generic; -using System.Collections.ObjectModel; -using System.Linq; -using System.Runtime.InteropServices; -using Microsoft.UI.Xaml; -using Microsoft.UI.Xaml.Controls; -using Uno.Diagnostics.UI; -using static Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor; - -namespace Uno.UI.RemoteControl.HotReload; - -[TemplateVisualState(GroupName = "Status", Name = StatusUnknownVisualStateName)] -[TemplateVisualState(GroupName = "Status", Name = StatusInitializingVisualStateName)] -[TemplateVisualState(GroupName = "Status", Name = StatusReadyVisualStateName)] -[TemplateVisualState(GroupName = "Status", Name = StatusWarningVisualStateName)] -[TemplateVisualState(GroupName = "Status", Name = StatusErrorVisualStateName)] -[TemplateVisualState(GroupName = "Result", Name = ResultNoneVisualStateName)] -[TemplateVisualState(GroupName = "Result", Name = ResultSuccessVisualStateName)] -[TemplateVisualState(GroupName = "Result", Name = ResultFailedVisualStateName)] -public sealed partial class HotReloadStatusView : Control -{ - private const string StatusUnknownVisualStateName = "Unknown"; - private const string StatusInitializingVisualStateName = "Initializing"; - private const string StatusReadyVisualStateName = "Ready"; - private const string StatusErrorVisualStateName = "Error"; - private const string StatusWarningVisualStateName = "Warning"; - - private const string ResultNoneVisualStateName = "None"; - private const string ResultSuccessVisualStateName = "Success"; - private const string ResultFailedVisualStateName = "Failed"; - - #region HeadLine (DP) - public static DependencyProperty HeadLineProperty { get; } = DependencyProperty.Register( - nameof(HeadLine), - typeof(string), - typeof(HotReloadStatusView), - new PropertyMetadata(default(string), (snd, args) => ToolTipService.SetToolTip(snd, args.NewValue?.ToString()))); - - public string? HeadLine - { - get => (string?)GetValue(HeadLineProperty); - private set => SetValue(HeadLineProperty, value); - } - #endregion - - #region History (DP) - public static DependencyProperty HistoryProperty { get; } = DependencyProperty.Register( - nameof(History), - typeof(ObservableCollection), - typeof(HotReloadStatusView), - new PropertyMetadata(default(ObservableCollection))); - - public ObservableCollection History - { - get => (ObservableCollection)GetValue(HistoryProperty); - private init => SetValue(HistoryProperty, value); - } - #endregion - - #region ProcessingNotification (DP) - public static readonly DependencyProperty ProcessingNotificationProperty = DependencyProperty.Register( - nameof(ProcessingNotification), - typeof(DiagnosticViewNotification), - typeof(HotReloadStatusView), - new PropertyMetadata(default(DiagnosticViewNotification?))); - - public DiagnosticViewNotification? ProcessingNotification - { - get => (DiagnosticViewNotification?)GetValue(ProcessingNotificationProperty); - set => SetValue(ProcessingNotificationProperty, value); - } - #endregion - - #region SuccessNotification (DP) - public static readonly DependencyProperty SuccessNotificationProperty = DependencyProperty.Register( - nameof(SuccessNotification), - typeof(DiagnosticViewNotification), - typeof(HotReloadStatusView), - new PropertyMetadata(default(DiagnosticViewNotification?))); - - public DiagnosticViewNotification? SuccessNotification - { - get => (DiagnosticViewNotification?)GetValue(SuccessNotificationProperty); - set => SetValue(SuccessNotificationProperty, value); - } - #endregion - - #region FailureNotification (DP) - public static readonly DependencyProperty FailureNotificationProperty = DependencyProperty.Register( - nameof(FailureNotification), - typeof(DiagnosticViewNotification), - typeof(HotReloadStatusView), - new PropertyMetadata(default(DiagnosticViewNotification?))); - - public DiagnosticViewNotification? FailureNotification - { - get => (DiagnosticViewNotification?)GetValue(FailureNotificationProperty); - set => SetValue(FailureNotificationProperty, value); - } - #endregion - - private readonly IDiagnosticViewContext _ctx; - private (string state, HotReloadLogEntry? entry) _result = (ResultNoneVisualStateName, null); - - private Status? _hotReloadStatus; - private RemoteControlStatus? _devServerStatus; - - private readonly Dictionary _serverHrEntries = new(); - private readonly Dictionary _appHrEntries = new(); - private readonly ClientHotReloadProcessor? _processor; // Only when used by external tool like HD. - - public static HotReloadStatusView Create(IDiagnosticViewContext ctx) - { - var processor = RemoteControlClient.Instance?.Processors?.OfType().FirstOrDefault(); - if (processor is null) - { - throw new InvalidOperationException("Cannot resolve the hot-reload client."); - } - - return new HotReloadStatusView(ctx, processor); - } - - internal HotReloadStatusView(IDiagnosticViewContext ctx, ClientHotReloadProcessor? processor = null) - { - _ctx = ctx; - _processor = processor; - - DefaultStyleKey = typeof(HotReloadStatusView); - History = []; - - UpdateVisualStates(false); - - Loaded += static (snd, _) => - { - // Make sure to hide the diagnostics overlay when the view is loaded (in case the template was applied while out of the visual tree). - if (snd is HotReloadStatusView { XamlRoot: { } root } that) - { - DiagnosticsOverlay.Get(root).Hide(RemoteControlStatusView.Id); - if (RemoteControlClient.Instance is { } devServer) - { - devServer.StatusChanged += that.OnDevServerStatusChanged; - that.OnDevServerStatusChanged(null, devServer.Status); - } - - if (that._processor is not null) - { - that._processor.StatusChanged += that.OnHotReloadStatusChanged; - that.OnHotReloadStatusChanged(that._processor.CurrentStatus); - } - } - }; - Unloaded += static (snd, _) => - { - if (snd is HotReloadStatusView that) - { - if (RemoteControlClient.Instance is { } devServer) - { - devServer.StatusChanged -= that.OnDevServerStatusChanged; - } - - if (that._processor is not null) - { - that._processor.StatusChanged -= that.OnHotReloadStatusChanged; - } - } - }; - } - - private void OnDevServerStatusChanged(object? sender, RemoteControlStatus devServerStatus) - { - var oldStatus = _devServerStatus; - _devServerStatus = devServerStatus; - - DispatcherQueue.TryEnqueue(() => - { - UpdateLog(oldStatus, devServerStatus); - - UpdateVisualStates(); - }); - } - - private void OnHotReloadStatusChanged(object? sender, Status status) - => OnHotReloadStatusChanged(status); - - internal void OnHotReloadStatusChanged(Status status) - { - var oldStatus = _hotReloadStatus; - _hotReloadStatus = status; - - UpdateLog(oldStatus, status); - - UpdateVisualStates(); - } - - private void UpdateLog(RemoteControlStatus? oldStatus, RemoteControlStatus newStatus) - { - if (DevServerEntry.TryCreateNew(oldStatus, newStatus) is { } entry) - { - Insert(History, entry); - } - } - - private void UpdateLog(Status? oldStatus, Status status) - { - // Add or update the entries for the **operations** (server and the application). - if (status.Server.Operations is { }) // can be null during loading, creating a NRE - { - foreach (var srvOp in status.Server.Operations) - { - ref var entry = ref CollectionsMarshal.GetValueRefOrAddDefault(_serverHrEntries, srvOp.Id, out var exists); - if (exists) - { - entry!.Update(srvOp); - } - else - { - entry = new ServerEntry(srvOp); - } - } - } - - if (status.Local.Operations is { }) // can be null during loading, creating a NRE - { - foreach (var localOp in status.Local.Operations) - { - ref var entry = ref CollectionsMarshal.GetValueRefOrAddDefault(_appHrEntries, localOp.Id, out var exists); - if (exists) - { - entry!.Update(localOp); - } - else - { - entry = new ApplicationEntry(localOp); - } - } - } - - var log = History; - SyncLog(log, _serverHrEntries.Values); - SyncLog(log, _appHrEntries.Values); - - // Add a log entry for the **status** change. - if (EngineEntry.TryCreateNew(oldStatus, status) is { } engineEntry) - { - Insert(log, engineEntry); - } - } - - public void UpdateVisualStates(bool useTransitions = true) - { - var log = History; - - var connectionEntry = log.FirstOrDefault(e => e.Source is EntrySource.Engine or EntrySource.DevServer); - var operationEntries = log.Where(entry => entry.Source is EntrySource.Server or EntrySource.Application).ToList(); - - // Update the "status"(a.k.a. "connection state") visual state. - if (connectionEntry is null) - { - HeadLine = null; - VisualStateManager.GoToState(this, StatusUnknownVisualStateName, useTransitions); - } - else - { - HeadLine = connectionEntry.Description; - var state = (connectionEntry.Icon & ~(EntryIcon.HotReload | EntryIcon.Connection)) switch - { - EntryIcon.Loading => StatusInitializingVisualStateName, - EntryIcon.Success => StatusReadyVisualStateName, - EntryIcon.Warning when operationEntries.Any(op => op.IsSuccess ?? false) => StatusReadyVisualStateName, - EntryIcon.Warning => StatusWarningVisualStateName, - EntryIcon.Error => StatusErrorVisualStateName, - _ => StatusUnknownVisualStateName - }; - VisualStateManager.GoToState(this, state, useTransitions); - } - - // Then the "result" visual state (en send notifications). - var result = operationEntries switch - { - { Count: 0 } => (ResultNoneVisualStateName, default), - _ when operationEntries.Any(op => op.IsSuccess is null) => (ResultNoneVisualStateName, default), - [ServerEntry { IsFinal: true, IsSuccess: true } e, ..] => (ResultSuccessVisualStateName, e), - [ServerEntry { IsFinal: true, IsSuccess: false } e, ..] => (ResultFailedVisualStateName, e), - [ApplicationEntry { IsSuccess: true } e, ..] => (ResultSuccessVisualStateName, e), - [ApplicationEntry { IsSuccess: false } e, ..] => (ResultFailedVisualStateName, e), - _ => (ResultNoneVisualStateName, default(HotReloadLogEntry)) - }; - if (result != _result) - { - _result = result; - VisualStateManager.GoToState(this, _result.state, useTransitions); - - var notif = _result.state switch - { - ResultNoneVisualStateName when operationEntries is { Count: > 0 } => ProcessingNotification, - ResultSuccessVisualStateName => SuccessNotification, - ResultFailedVisualStateName => FailureNotification, - _ => default - }; - if (notif is not null) - { - if (notif.Content is null or HotReloadLogEntry) - { - notif.Content = operationEntries[0]; - } - - _ctx.Notify(notif); - } - } - } - - #region Misc helpers - private static void SyncLog(ObservableCollection history, ICollection entries) - where TEntry : HotReloadLogEntry - { - foreach (var entry in entries) - { - if (entry.Title is null) - { - history.Remove(entry); - } - else if (!history.Contains(entry)) - { - Insert(history, entry); - } - } - } - - private static void Insert(ObservableCollection history, HotReloadLogEntry entry) - { - history.Insert(FindIndex(entry.Timestamp), entry); - - int FindIndex(DateTimeOffset date) - { - for (var i = 0; i < history.Count; i++) - { - if (history[i].Timestamp > date) - { - return i; - } - } - - return 0; - } - } - #endregion -} diff --git a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml b/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml deleted file mode 100644 index 5b8e1e6af2a3..000000000000 --- a/src/Uno.UI.RemoteControl/HotReload/HotReloadStatusView.xaml +++ /dev/null @@ -1,346 +0,0 @@ - - - - - #000000 - #F9F9F9 - #EBEBEB - - - #FFFFFF - #282828 - #1C1C1C - - - - #C42B1C - #09B509 - #FD9E0F - #8A8A8A - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs index 33ffe9cb172c..f7a9dd9543bd 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs @@ -13,9 +13,9 @@ namespace Uno.UI.RemoteControl; public partial class RemoteControlClient { - internal event EventHandler? StatusChanged; + public event EventHandler? StatusChanged; - internal RemoteControlStatus Status => _status.BuildStatus(); + public RemoteControlStatus Status => _status.BuildStatus(); private class StatusSink : DevServerDiagnostics.ISink { diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs index 1aa2846f45ba..87de6eb8d095 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs @@ -5,7 +5,7 @@ namespace Uno.UI.RemoteControl; -internal record RemoteControlStatus( +public record RemoteControlStatus( RemoteControlStatus.ConnectionState State, bool? IsVersionValid, (RemoteControlStatus.KeepAliveState State, long RoundTrip) KeepAlive, @@ -82,9 +82,9 @@ internal string GetDescription() return details.ToString(); } - internal record struct MissingProcessor(string TypeFullName, string Version, string Details, string? Error = null); + public readonly record struct MissingProcessor(string TypeFullName, string Version, string Details, string? Error = null); - internal enum KeepAliveState + public enum KeepAliveState { Idle, Ok, // Got ping/pong in expected delays @@ -93,7 +93,7 @@ internal enum KeepAliveState Aborted // KeepAlive was aborted } - internal enum ConnectionState + public enum ConnectionState { /// /// Client as not been started yet @@ -140,7 +140,7 @@ internal enum ConnectionState Disconnected } - internal enum Classification + public enum Classification { Ok, Info, diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs b/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs index d8b79d89a947..35e46939435f 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatusView.cs @@ -11,7 +11,7 @@ namespace Uno.UI.RemoteControl; -internal sealed partial class RemoteControlStatusView : Ellipse +public sealed partial class RemoteControlStatusView : Ellipse { #if __ANDROID__ public new const string Id = nameof(RemoteControlStatusView); diff --git a/src/Uno.UI.RemoteControl/Themes/Generic.xaml b/src/Uno.UI.RemoteControl/Themes/Generic.xaml index f56651e9b43a..585844b453c4 100644 --- a/src/Uno.UI.RemoteControl/Themes/Generic.xaml +++ b/src/Uno.UI.RemoteControl/Themes/Generic.xaml @@ -1,10 +1,7 @@ - + - - - - + + + diff --git a/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj b/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj index 700f5c7d46bb..f2b9a0b0c4d0 100644 --- a/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj +++ b/src/Uno.UI.RemoteControl/Uno.UI.RemoteControl.Skia.csproj @@ -68,10 +68,6 @@ - - - - $(MSBuildThisFileDirectory)**\*.xaml diff --git a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs index 41784dacaac8..c87b9915f418 100644 --- a/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs +++ b/src/Uno.UI.RuntimeTests/Tests/HotReload/Frame/HRApp/Tests/Given_TextBlock.cs @@ -70,13 +70,15 @@ public async Task When_Changing_TextBlock_UsingHRClient() { var ct = new CancellationTokenSource(TimeSpan.FromSeconds(60)).Token; + var content = new HR_Frame_Pages_Page2(); + UnitTestsUIContentHelper.Content = new ContentControl { - Content = new HR_Frame_Pages_Page2() + Content = content }; var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); - var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(new HR_Frame_Pages_Page2()); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(content); var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( ctx.FileName, SecondPageTextBlockOriginalText, @@ -94,20 +96,49 @@ public async Task When_Changing_TextBlock_UsingHRClient() await hr.UpdateFileAsync(req.Undo(waitForHotReload: false), CancellationToken.None); } } - + + /// + /// Ensure that UpdateFileAsync() completes when no changes are made to the file. + /// + [TestMethod] + public async Task When_Changing_TextBlock_UsingHRClient_NoChanges() + { + var ct = new CancellationTokenSource(TimeSpan.FromSeconds(60)).Token; + + var content = new HR_Frame_Pages_Page2(); + + UnitTestsUIContentHelper.Content = new ContentControl + { + Content = content + }; + + var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(content); + var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( + ctx.FileName, + SecondPageTextBlockOriginalText, + SecondPageTextBlockOriginalText + Environment.NewLine, + true) + .WithExtendedTimeouts(); // Required for CI + + await hr.UpdateFileAsync(req, ct); + } + // Another version of the test above, but pausing the TypeMapping before calling the file update [TestMethod] public async Task When_Changing_TextBlock_UsingHRClient_PausingTypeMapping() { var ct = new CancellationTokenSource(TimeSpan.FromSeconds(25)).Token; + var content = new HR_Frame_Pages_Page1(); + UnitTestsUIContentHelper.Content = new ContentControl { - Content = new HR_Frame_Pages_Page1() + Content = content }; var hr = Uno.UI.RemoteControl.RemoteControlClient.Instance?.Processors.OfType().Single(); - var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(new HR_Frame_Pages_Page1()); + var ctx = Uno.UI.RuntimeTests.Tests.HotReload.FrameworkElementExtensions.GetDebugParseContext(content); var req = new Uno.UI.RemoteControl.HotReload.ClientHotReloadProcessor.UpdateRequest( ctx.FileName, FirstPageTextBlockOriginalText, diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs index 7e14c271fb0e..d67177d8ce0f 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs @@ -7,7 +7,7 @@ namespace Uno.Diagnostics.UI; -internal partial class DiagnosticView +partial class DiagnosticView { /// /// Registers a dedicated diagnostic view to be displayed by the diagnostic overlay. diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs b/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs index 3a87abcd3071..a2bcbf6b0851 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs @@ -10,7 +10,7 @@ namespace Uno.Diagnostics.UI; /// /// A generic diagnostic view that can be updated with a state. /// -internal class DiagnosticView( +public class DiagnosticView( string id, string name, Func factory, diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs b/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs index 5f833c7b6a4c..3f0cf8997cb1 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs @@ -10,7 +10,7 @@ namespace Uno.Diagnostics.UI; /// /// A generic diagnostic view. /// -internal class DiagnosticView( +public class DiagnosticView( string id, string name, Func factory, diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.cs b/src/Uno.UI/Diagnostics/DiagnosticView.cs index fd1711cb6234..9849ba1e2294 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.cs @@ -10,7 +10,7 @@ namespace Uno.Diagnostics.UI; /// /// A generic diagnostic view. /// -internal partial class DiagnosticView( +public partial class DiagnosticView( string id, string name, Func factory, From b14f69e8abbb14c007d5ea05f8ff1b9194536f7b Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 16:48:11 -0400 Subject: [PATCH 428/664] chore: clean-up dead code --- .../HotReload/ClientHotReloadProcessor.Common.Status.cs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs index c30dd6017b6b..16791f6d6d1b 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.Common.Status.cs @@ -70,10 +70,6 @@ public record Status( private class StatusSink(ClientHotReloadProcessor owner) { -// #if HAS_UNO_WINUI -// private readonly DiagnosticView _view = DiagnosticView.Register("Hot reload", ctx => new HotReloadStatusView(ctx), static (view, status) => view.OnHotReloadStatusChanged(status)); -// #endif - private HotReloadState? _serverState; private bool _isFinalServerState; private ImmutableDictionary _serverOperations = ImmutableDictionary.Empty; @@ -142,9 +138,6 @@ private void NotifyStatusChanged() var status = BuildStatus(); Current = status; -// #if HAS_UNO_WINUI -// _view.Update(status); -// #endif owner.StatusChanged?.Invoke(this, status); } From fd8a299f9a1dc474223c3e51680d32ca3c75c2b0 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 16:32:47 -0400 Subject: [PATCH 429/664] feat: Added the ability to specify a positionning to DiagnosticsView registrations --- .../Diagnostics/DiagnosticViewRegistry.cs | 45 ++++++++++++++++--- .../Diagnostics/DiagnosticsOverlay.cs | 7 +-- .../Diagnostics/DiagnosticView.Factories.cs | 34 ++++++++++---- 3 files changed, 70 insertions(+), 16 deletions(-) diff --git a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs index 41a3a91a7b64..f0e22250f3a0 100644 --- a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs +++ b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs @@ -12,7 +12,7 @@ internal static class DiagnosticViewRegistry { internal static EventHandler>? Added; - private static ImmutableArray _registrations = ImmutableArray.Empty; + private static ImmutableArray _registrations = []; /// /// Gets the list of registered diagnostic providers. @@ -24,18 +24,38 @@ internal static class DiagnosticViewRegistry /// /// A diagnostic view to display. /// Defines when the registered diagnostic view should be displayed. - public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode mode = default) + public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode mode = default, DiagnosticViewRegistrationPosition position = default) { ImmutableInterlocked.Update( ref _registrations, static (providers, provider) => providers.Add(provider), - new DiagnosticViewRegistration(mode, view)); + new DiagnosticViewRegistration(mode, position, view)); Added?.Invoke(null, _registrations); } } -internal record DiagnosticViewRegistration(DiagnosticViewRegistrationMode Mode, IDiagnosticView View); +internal sealed record DiagnosticViewRegistration( + DiagnosticViewRegistrationMode Mode, + DiagnosticViewRegistrationPosition Position, + IDiagnosticView View) : IComparable +{ + public int CompareTo(DiagnosticViewRegistration? other) + { + if (other is null) + { + return 1; + } + + if (Position == other.Position) + { + // If the position is the same, we compare the view id to ensure a stable order. + return string.Compare(View.Id, other.View.Id, StringComparison.Ordinal); + } + + return (int)Position - (int)other.Position; + } +} public enum DiagnosticViewRegistrationMode { @@ -43,7 +63,7 @@ public enum DiagnosticViewRegistrationMode /// Diagnostic is being display on at least one window. /// I.e. only the main/first opened but move to the next one if the current window is closed. /// - One, + One, // Default /// /// Diagnostic is being rendered as overlay on each window. @@ -55,3 +75,18 @@ public enum DiagnosticViewRegistrationMode /// OnDemand } + +public enum DiagnosticViewRegistrationPosition +{ + Normal = 0, // Default + + /// + /// Register as the first diagnostic view, ensuring it is displayed first. + /// + First = -1, + + /// + /// Register as the last diagnostic view, ensuring it is displayed last. + /// + Last = 1, +} diff --git a/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs b/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs index 20ad0d418211..f5aafa64ffaf 100644 --- a/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs +++ b/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs @@ -2,6 +2,7 @@ #if WINUI || HAS_UNO_WINUI using System; using System.Collections.Generic; +using System.Collections.Immutable; using System.Diagnostics; using System.Linq; using System.Runtime.CompilerServices; @@ -462,10 +463,10 @@ private void EnqueueUpdate(bool forceUpdate = false) var viewsThatShouldBeMaterialized = DiagnosticViewRegistry .Registrations .Where(ShouldMaterialize) + .Order() // See DiagnosticViewRegistration.CompareTo .Select(reg => reg.View) - .Concat(_localRegistrations) - .Distinct() - .ToList(); + .Concat(_localRegistrations) // They are at the end of the list. + .Distinct(); foreach (var view in viewsThatShouldBeMaterialized) { diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs index d67177d8ce0f..2ec8b905a3bb 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs @@ -21,11 +21,16 @@ partial class DiagnosticView /// /// Type of the control. /// The user-friendly name of the diagnostics view. - public static DiagnosticView Register(string friendlyName) + /// Defines when the registered diagnostic view should be displayed. + /// Defines where the item should be placed in the overlay. + public static DiagnosticView Register( + string friendlyName, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : UIElement, new() { var provider = new DiagnosticView(typeof(TView).Name, friendlyName, () => new TView()); - DiagnosticViewRegistry.Register(provider); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } @@ -43,11 +48,16 @@ public static DiagnosticView Register(string friendlyName) /// The user-friendly name of the diagnostics view. /// Factory to create an instance of the control. /// Defines when the registered diagnostic view should be displayed. - public static DiagnosticView Register(string friendlyName, Func factory, DiagnosticViewRegistrationMode mode = default) + /// Defines where the item should be placed in the overlay. + public static DiagnosticView Register( + string friendlyName, + Func factory, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : UIElement { var provider = new DiagnosticView(typeof(TView).Name, friendlyName, factory); - DiagnosticViewRegistry.Register(provider, mode); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } @@ -62,17 +72,21 @@ public static DiagnosticView Register(string friendlyName, FuncThe user-friendly name of the diagnostics view. /// Delegate to use to update the when the is being updated. /// Optional delegate used to show more details about the diagnostic info when user taps on the view. + /// Defines when the registered diagnostic view should be displayed. + /// Defines where the item should be placed in the overlay. /// A diagnostic view helper class which can be used to push updates of the state (cf. ). public static DiagnosticView Register( string friendlyName, Action update, - Func? details = null) + Func? details = null, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : FrameworkElement, new() { var provider = details is null ? new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update) : new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update, (ctx, state, ct) => new(details(state))); - DiagnosticViewRegistry.Register(provider); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } @@ -88,18 +102,22 @@ public static DiagnosticView Register( /// Factory to create an instance of the generic element. /// Delegate to use to update the when the is being updated. /// Optional delegate used to show more details about the diagnostic info when user taps on the view. + /// Defines when the registered diagnostic view should be displayed. + /// Defines where the item should be placed in the overlay. /// A diagnostic view helper class which can be used to push updates of the state (cf. ). public static DiagnosticView Register( string friendlyName, Func factory, Action update, - Func? details = null) + Func? details = null, + DiagnosticViewRegistrationMode mode = default, + DiagnosticViewRegistrationPosition position = default) where TView : FrameworkElement { var provider = details is null ? new DiagnosticView(typeof(TView).Name, friendlyName, factory, update) : new DiagnosticView(typeof(TView).Name, friendlyName, factory, update, (ctx, state, ct) => new(details(state))); - DiagnosticViewRegistry.Register(provider); + DiagnosticViewRegistry.Register(provider, mode, position); return provider; } } From 75273ed6fc7065b703e83f305dc64addd62e7357 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 17:40:58 -0400 Subject: [PATCH 430/664] feat: Added the ability to wait for the RemoteControlClient to be available --- .../RemoteControlClient.cs | 59 ++++++++++++++++++- 1 file changed, 58 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index c05abcabf61a..de8d05b302b3 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -33,7 +33,63 @@ public partial class RemoteControlClient : IRemoteControlClient public delegate void RemoteControlClientEventEventHandler(object sender, ClientEventEventArgs args); public delegate void SendMessageFailedEventHandler(object sender, SendMessageFailedEventArgs args); - public static RemoteControlClient? Instance { get; private set; } + public static RemoteControlClient? Instance + { + get => _instance; + private set + { + _instance = value; + + if (value is { }) + { + while (Interlocked.Exchange(ref _waitingList, null) is { } waitingList) + { + foreach (var action in waitingList) + { + action(value); + } + } + } + } + } + + private static IReadOnlyCollection>? _waitingList; + + /// + /// Add a callback to be called when the Instance is available. + /// + /// + /// Will be called synchronously if the instance is already available, no need to check for it before. + /// + public static void OnRemoteControlClientAvailable(Action action) + { + if(Instance is not null) + { + action(Instance); + } + else + { + // Thread-safe way to add the action to a waiting list for the client to be available + while (true) + { + var waitingList = _waitingList; + IReadOnlyCollection> newList = waitingList is null + ? [action] + : [.. waitingList, action]; + + if(Instance is { } i) // Last chance to avoid the waiting list + { + action(i); + break; + } + + if (ReferenceEquals(Interlocked.CompareExchange(ref _waitingList, newList, waitingList), waitingList)) + { + break; + } + } + } + } public static RemoteControlClient Initialize(Type appType) => Instance = new RemoteControlClient(appType); @@ -59,6 +115,7 @@ internal static RemoteControlClient Initialize(Type appType, ServerEndpointAttri private readonly StatusSink _status; private static readonly TimeSpan _keepAliveInterval = TimeSpan.FromSeconds(30); + private static RemoteControlClient? _instance; private readonly (string endpoint, int port)[]? _serverAddresses; private readonly Dictionary _processors = new(); private readonly List _preprocessors = new(); From 9ea0de3c18b1c1f598501720fb933b0c901d0501 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Thu, 31 Oct 2024 22:04:29 -0400 Subject: [PATCH 431/664] ci: Fix build --- src/Uno.UI.RemoteControl/RemoteControlClient.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index de8d05b302b3..306aea9a7390 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -63,7 +63,7 @@ private set /// public static void OnRemoteControlClientAvailable(Action action) { - if(Instance is not null) + if (Instance is { }) { action(Instance); } @@ -77,7 +77,7 @@ public static void OnRemoteControlClientAvailable(Action ac ? [action] : [.. waitingList, action]; - if(Instance is { } i) // Last chance to avoid the waiting list + if (Instance is { } i) // Last chance to avoid the waiting list { action(i); break; From 6020ef93e5893776c13579b1a0a7eabcdabce33a Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Fri, 1 Nov 2024 13:12:11 -0400 Subject: [PATCH 432/664] feat: Improved the error logging to give more context on the connection failed reason --- .../RemoteControlClient.cs | 3 ++- .../RemoteControlStatus.cs | 21 ++++++++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index 306aea9a7390..9d35fad28c75 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -486,7 +486,8 @@ private async Task Connect(Uri serverUri, int delay, CancellationTok { if (this.Log().IsEnabled(LogLevel.Trace)) { - this.Log().Trace($"Connecting to [{serverUri}] failed: {e.Message}"); + var innerMessage = e.InnerException is { } ie ? $" ({ie.Message})" : ""; + this.Log().Trace($"Connecting to [{serverUri}] failed: {e.Message}{innerMessage}"); } return new(this, serverUri, watch, null); diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs index 87de6eb8d095..f1915e455f34 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs @@ -12,8 +12,27 @@ public record RemoteControlStatus( ImmutableHashSet MissingRequiredProcessors, (long Count, ImmutableHashSet Types) InvalidFrames) { - public bool IsAllGood => State == ConnectionState.Connected && IsVersionValid == true && MissingRequiredProcessors.IsEmpty && KeepAlive.State == KeepAliveState.Ok && InvalidFrames.Count == 0; + /// + /// A boolean indicating if everything is fine with the connection and the handshaking succeeded. + /// + public bool IsAllGood => + State == ConnectionState.Connected +#if !DEBUG + // For debug builds, it's annoying to have the version mismatch preventing the connection + // Only Uno devs should get this issue, let's not block them. + && IsVersionValid == true +#endif + && MissingRequiredProcessors.IsEmpty + && KeepAlive.State == KeepAliveState.Ok + && InvalidFrames.Count == 0; + + /// + /// If the connection is problematic, meaning that the connection is not in a good state. + /// + /// + /// It's just a negation of . + /// public bool IsProblematic => !IsAllGood; public (Classification kind, string message) GetSummary() From 9ffad577bc3a5aca8d532e7dd6400d2e4889b54a Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Fri, 1 Nov 2024 19:35:56 -0400 Subject: [PATCH 433/664] refactor: Make the _local registrations_ of the diagnostics overlay sortable like other registrations --- .../Diagnostics/DiagnosticViewRegistry.cs | 24 +++---------------- .../Diagnostics/IDiagnosticView.cs | 2 ++ .../RemoteControlClient.cs | 1 - .../Diagnostics/DiagnosticsOverlay.cs | 8 +++---- .../Diagnostics/DiagnosticView.Factories.cs | 20 ++++++++-------- .../DiagnosticView.TView.TState.cs | 5 +++- .../Diagnostics/DiagnosticView.TView.cs | 10 +++++--- src/Uno.UI/Diagnostics/DiagnosticView.cs | 10 ++++---- .../DiagnosticViewManager.TView.TState.cs | 4 +++- 9 files changed, 39 insertions(+), 45 deletions(-) diff --git a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs index f0e22250f3a0..d153d4bf4347 100644 --- a/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs +++ b/src/Uno.Foundation/Diagnostics/DiagnosticViewRegistry.cs @@ -24,12 +24,12 @@ internal static class DiagnosticViewRegistry /// /// A diagnostic view to display. /// Defines when the registered diagnostic view should be displayed. - public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode mode = default, DiagnosticViewRegistrationPosition position = default) + public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode mode = default) { ImmutableInterlocked.Update( ref _registrations, static (providers, provider) => providers.Add(provider), - new DiagnosticViewRegistration(mode, position, view)); + new DiagnosticViewRegistration(mode, view)); Added?.Invoke(null, _registrations); } @@ -37,25 +37,7 @@ public static void Register(IDiagnosticView view, DiagnosticViewRegistrationMode internal sealed record DiagnosticViewRegistration( DiagnosticViewRegistrationMode Mode, - DiagnosticViewRegistrationPosition Position, - IDiagnosticView View) : IComparable -{ - public int CompareTo(DiagnosticViewRegistration? other) - { - if (other is null) - { - return 1; - } - - if (Position == other.Position) - { - // If the position is the same, we compare the view id to ensure a stable order. - return string.Compare(View.Id, other.View.Id, StringComparison.Ordinal); - } - - return (int)Position - (int)other.Position; - } -} + IDiagnosticView View); public enum DiagnosticViewRegistrationMode { diff --git a/src/Uno.Foundation/Diagnostics/IDiagnosticView.cs b/src/Uno.Foundation/Diagnostics/IDiagnosticView.cs index 34847ce89737..2e35bbd3021b 100644 --- a/src/Uno.Foundation/Diagnostics/IDiagnosticView.cs +++ b/src/Uno.Foundation/Diagnostics/IDiagnosticView.cs @@ -21,6 +21,8 @@ public interface IDiagnosticView /// string Name { get; } + DiagnosticViewRegistrationPosition Position => DiagnosticViewRegistrationPosition.Normal; + /// /// Gets a visual element of the diagnostic, usually a value or an icon. /// diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index 9d35fad28c75..12f6223f5874 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -280,7 +280,6 @@ public void RegisterPreProcessor(IRemoteControlPreProcessor preprocessor) _status.Report(ConnectionState.Connecting); - const string lastEndpointKey = "__UNO__" + nameof(RemoteControlClient) + "__last_endpoint"; var preferred = ApplicationData.Current.LocalSettings.Values.TryGetValue(lastEndpointKey, out var lastValue) && lastValue is string lastEp ? _serverAddresses.FirstOrDefault(srv => srv.endpoint.Equals(lastEp, StringComparison.OrdinalIgnoreCase)).endpoint diff --git a/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs b/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs index f5aafa64ffaf..b26d78949ad9 100644 --- a/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs +++ b/src/Uno.UI.Toolkit/Diagnostics/DiagnosticsOverlay.cs @@ -317,8 +317,8 @@ public void Show(string viewId) /// Add a UI diagnostic element to this overlay. /// /// This will also make this overlay visible (cf. ). - public void Add(string id, string name, UIElement preview, Func? details = null) - => Add(new DiagnosticView(id, name, _ => preview, (_, ct) => new(details?.Invoke()))); + public void Add(string id, string name, UIElement preview, Func? details = null, DiagnosticViewRegistrationPosition position = default) + => Add(new DiagnosticView(id, name, _ => preview, (_, ct) => new(details?.Invoke()), position)); /// /// Add a UI diagnostic element to this overlay. @@ -463,9 +463,9 @@ private void EnqueueUpdate(bool forceUpdate = false) var viewsThatShouldBeMaterialized = DiagnosticViewRegistry .Registrations .Where(ShouldMaterialize) - .Order() // See DiagnosticViewRegistration.CompareTo .Select(reg => reg.View) - .Concat(_localRegistrations) // They are at the end of the list. + .Concat(_localRegistrations) + .OrderBy(r => (int)r.Position) .Distinct(); foreach (var view in viewsThatShouldBeMaterialized) diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs index 2ec8b905a3bb..393379f0fcc6 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.Factories.cs @@ -29,8 +29,8 @@ public static DiagnosticView Register( DiagnosticViewRegistrationPosition position = default) where TView : UIElement, new() { - var provider = new DiagnosticView(typeof(TView).Name, friendlyName, () => new TView()); - DiagnosticViewRegistry.Register(provider, mode, position); + var provider = new DiagnosticView(typeof(TView).Name, friendlyName, () => new TView(), position: position); + DiagnosticViewRegistry.Register(provider, mode); return provider; } @@ -56,8 +56,8 @@ public static DiagnosticView Register( DiagnosticViewRegistrationPosition position = default) where TView : UIElement { - var provider = new DiagnosticView(typeof(TView).Name, friendlyName, factory); - DiagnosticViewRegistry.Register(provider, mode, position); + var provider = new DiagnosticView(typeof(TView).Name, friendlyName, factory, position: position); + DiagnosticViewRegistry.Register(provider, mode); return provider; } @@ -84,9 +84,9 @@ public static DiagnosticView Register( where TView : FrameworkElement, new() { var provider = details is null - ? new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update) - : new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update, (ctx, state, ct) => new(details(state))); - DiagnosticViewRegistry.Register(provider, mode, position); + ? new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update, position: position) + : new DiagnosticView(typeof(TView).Name, friendlyName, _ => new TView(), update, (ctx, state, ct) => new(details(state)), position: position); + DiagnosticViewRegistry.Register(provider, mode); return provider; } @@ -115,9 +115,9 @@ public static DiagnosticView Register( where TView : FrameworkElement { var provider = details is null - ? new DiagnosticView(typeof(TView).Name, friendlyName, factory, update) - : new DiagnosticView(typeof(TView).Name, friendlyName, factory, update, (ctx, state, ct) => new(details(state))); - DiagnosticViewRegistry.Register(provider, mode, position); + ? new DiagnosticView(typeof(TView).Name, friendlyName, factory, update, position: position) + : new DiagnosticView(typeof(TView).Name, friendlyName, factory, update, (ctx, state, ct) => new(details(state)), position: position); + DiagnosticViewRegistry.Register(provider, mode); return provider; } } diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs b/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs index a2bcbf6b0851..2c8fbbabcf79 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.TView.TState.cs @@ -15,7 +15,8 @@ public class DiagnosticView( string name, Func factory, Action update, - Func>? details = null) + Func>? details = null, + DiagnosticViewRegistrationPosition position = default) : IDiagnosticView where TView : FrameworkElement { @@ -37,6 +38,8 @@ public void Update(TState status) /// string IDiagnosticView.Name => name; + DiagnosticViewRegistrationPosition IDiagnosticView.Position => position; + /// object IDiagnosticView.GetElement(IDiagnosticViewContext context) => _elementsManager.GetView(context); diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs b/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs index 3f0cf8997cb1..619d748bea12 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.TView.cs @@ -14,7 +14,8 @@ public class DiagnosticView( string id, string name, Func factory, - Func>? details = null) + Func>? details = null, + DiagnosticViewRegistrationPosition position = default) : IDiagnosticView where TView : UIElement { @@ -22,8 +23,9 @@ public DiagnosticView( string id, string name, Func preview, - Func>? details = null) - : this(id, name, _ => preview(), async (_, ct) => details is null ? null : await details(ct)) + Func>? details = null, + DiagnosticViewRegistrationPosition position = default) + : this(id, name, _ => preview(), async (_, ct) => details is null ? null : await details(ct), position) { } @@ -33,6 +35,8 @@ public DiagnosticView( /// string IDiagnosticView.Name => name; + DiagnosticViewRegistrationPosition IDiagnosticView.Position => position; + /// object IDiagnosticView.GetElement(IDiagnosticViewContext context) => factory(context); diff --git a/src/Uno.UI/Diagnostics/DiagnosticView.cs b/src/Uno.UI/Diagnostics/DiagnosticView.cs index 9849ba1e2294..4a7eebf30157 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticView.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticView.cs @@ -14,15 +14,17 @@ public partial class DiagnosticView( string id, string name, Func factory, - Func>? details = null) - : DiagnosticView(id, name, factory, details) + Func>? details = null, + DiagnosticViewRegistrationPosition position = default) + : DiagnosticView(id, name, factory, details, position) { public DiagnosticView( string id, string name, Func preview, - Func>? details = null) - : this(id, name, _ => preview(), async (_, ct) => details is null ? null : await details(ct)) + Func>? details = null, + DiagnosticViewRegistrationPosition position = default) + : this(id, name, _ => preview(), async (_, ct) => details is null ? null : await details(ct), position) { } } diff --git a/src/Uno.UI/Diagnostics/DiagnosticViewManager.TView.TState.cs b/src/Uno.UI/Diagnostics/DiagnosticViewManager.TView.TState.cs index 9598b2262813..ece3e7235dc3 100644 --- a/src/Uno.UI/Diagnostics/DiagnosticViewManager.TView.TState.cs +++ b/src/Uno.UI/Diagnostics/DiagnosticViewManager.TView.TState.cs @@ -12,7 +12,9 @@ namespace Uno.Diagnostics.UI; /// Type of the state used to update the . /// Factory to create an instance of the . /// Delegate to use to update the on . -internal class DiagnosticViewManager(Func factory, Action update) +internal class DiagnosticViewManager( + Func factory, + Action update) where TView : FrameworkElement { private event EventHandler? _changed; From 208c358d3bd4cd0ea0d56493039011080458d21f Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Fri, 1 Nov 2024 20:51:30 -0400 Subject: [PATCH 434/664] ci: Fix build by adjusting PackageDiff --- build/PackageDiffIgnore.xml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/build/PackageDiffIgnore.xml b/build/PackageDiffIgnore.xml index 875317d81ea1..6f0c700a3375 100644 --- a/build/PackageDiffIgnore.xml +++ b/build/PackageDiffIgnore.xml @@ -1982,6 +1982,10 @@ + + + + From 54b1d480039c4803c58a18084c28cac2196c44a6 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 4 Nov 2024 15:20:48 -0500 Subject: [PATCH 435/664] docs: Add details --- .../HotReload/ClientHotReloadProcessor.ClientApi.cs | 2 +- src/Uno.UI.RemoteControl/RemoteControlStatus.cs | 8 +++----- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.ClientApi.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.ClientApi.cs index fe911e17b0e5..df45c03eaea0 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.ClientApi.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.ClientApi.cs @@ -21,7 +21,7 @@ public partial class ClientHotReloadProcessor /// /// Result details of a file update /// - /// Indicates if is known to have been updated on server-side. + /// Indicates if file is known to have been updated on server-side. /// Indicates if the change had an impact on the compilation of the application (might be a success-full build or an error). /// Gets the error if any happened during the update. public record struct UpdateResult( diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs index f1915e455f34..94c8e397437c 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs @@ -14,7 +14,8 @@ public record RemoteControlStatus( { /// - /// A boolean indicating if everything is fine with the connection and the handshaking succeeded. + /// An ***aggregated*** state of the connection to determine if everything is fine. + /// This is for visual representation only, the actual state of the connection is in . /// public bool IsAllGood => State == ConnectionState.Connected @@ -28,11 +29,8 @@ public record RemoteControlStatus( && InvalidFrames.Count == 0; /// - /// If the connection is problematic, meaning that the connection is not in a good state. + /// Not (for binding purposes). /// - /// - /// It's just a negation of . - /// public bool IsProblematic => !IsAllGood; public (Classification kind, string message) GetSummary() From 1d2053468e2cfc7a14b28a507370375fa6489c43 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 4 Nov 2024 15:21:40 -0500 Subject: [PATCH 436/664] feat: Add ability for add-ins to have full access to teh ServiceCollection --- .../ServiceCollectionExtensionAttribute.cs | 23 ++++++++++ .../ServiceCollectionServiceExtensions.cs | 46 ++++++++++++++++++- 2 files changed, 68 insertions(+), 1 deletion(-) create mode 100644 src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs new file mode 100644 index 000000000000..d324a22c4e1a --- /dev/null +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs @@ -0,0 +1,23 @@ +using System; +using System.Linq; +using Microsoft.Extensions.DependencyInjection; + +namespace Uno.Utils.DependencyInjection; + +/// +/// Attribute to define a type able to registers some services in a service collection. +/// +/// Type of the extension that should be instantiated with a as parameter. +/// +/// The given type is expected to have a single constructor which takes a single parameter of type . +/// An instance of the given type will be created during the service collection registration process (with the service collection as parameter), +/// so the implementation will be able to add some custom services on it. +/// +[AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] +public class ServiceCollectionExtensionAttribute(Type type) : Attribute +{ + /// + /// Type of the extension that should be instantiated with a as parameter. + /// + public Type Type { get; } = type; +} diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs index 27cd270e5aa7..52d206340797 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionServiceExtensions.cs @@ -12,12 +12,22 @@ namespace Uno.Utils.DependencyInjection; public static class ServiceCollectionServiceExtensions { + /// + /// Register services configured with the and attributes from all loaded assemblies. + /// + /// The service collection on which services should be registered. + /// The service collection for fluent usage. + public static IServiceCollection AddFromAttributes(this IServiceCollection svc) + => svc + .AddFromServiceAttributes() + .AddFromServiceExtensionAttributes(); + /// /// Register services configured with the attribute from all loaded assemblies. /// /// The service collection on which services should be registered. /// The service collection for fluent usage. - public static IServiceCollection AddFromAttribute(this IServiceCollection svc) + public static IServiceCollection AddFromServiceAttributes(this IServiceCollection svc) { var attribute = typeof(ServiceAttribute); var services = AppDomain @@ -37,6 +47,40 @@ public static IServiceCollection AddFromAttribute(this IServiceCollection svc) return svc; } + /// + /// Register services configured with the attribute from all loaded assemblies. + /// + /// The service collection on which services should be registered. + /// The service collection for fluent usage. + public static IServiceCollection AddFromServiceExtensionAttributes(this IServiceCollection svc) + { + var attribute = typeof(ServiceCollectionExtensionAttribute); + var extensions = AppDomain + .CurrentDomain + .GetAssemblies() + .SelectMany(assembly => assembly.GetCustomAttributesData()) + .Select(attrData => attrData.TryCreate(attribute) as ServiceCollectionExtensionAttribute) + .Where(attr => attr is not null) + .ToImmutableList(); + + foreach (var extension in extensions) + { + try + { + Activator.CreateInstance(extension!.Type, args: [svc]); + } + catch (Exception error) + { + if (svc.Log().IsEnabled(LogLevel.Error)) + { + svc.Log().Log(LogLevel.Error, error, $"Failed to create an instance of extensions {extension?.Type} for dynamic service discovery.."); + } + } + } + + return svc; + } + private class AutoInitService(IServiceProvider services, IImmutableList types) : BackgroundService, IHostedService { /// From a169ec569bd500f8c29cceb4ca639fc11e9d5243 Mon Sep 17 00:00:00 2001 From: David Date: Mon, 4 Nov 2024 15:22:59 -0500 Subject: [PATCH 437/664] fix: Do not throw if an add-in load fail --- .../Extensibility/AddInsExtensions.cs | 4 ++-- src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs | 2 ++ 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddInsExtensions.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddInsExtensions.cs index 80491025e1b3..a9b7fec6dc9a 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddInsExtensions.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddInsExtensions.cs @@ -10,8 +10,8 @@ public static class AddInsExtensions { public static IWebHostBuilder ConfigureAddIns(this IWebHostBuilder builder, string solutionFile) { - AssemblyHelper.Load(AddIns.Discover(solutionFile), throwIfLoadFailed: true); + AssemblyHelper.Load(AddIns.Discover(solutionFile), throwIfLoadFailed: false); - return builder.ConfigureServices(svc => svc.AddFromAttribute()); + return builder.ConfigureServices(svc => svc.AddFromAttributes()); } } diff --git a/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs b/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs index be3d40bf1acd..44f97a159ab2 100644 --- a/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs +++ b/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs @@ -18,6 +18,8 @@ public static IImmutableList Load(IImmutableList dllFiles, boo { try { + _log.Log(LogLevel.Information, $"Loading add-in assembly '{dll}'."); + assemblies.Add(Assembly.LoadFrom(dll)); } catch (Exception err) From f872b05fe396a5fefaf545643a1a7482ef52572d Mon Sep 17 00:00:00 2001 From: David Date: Mon, 4 Nov 2024 15:28:22 -0500 Subject: [PATCH 438/664] chore: Fix (non enforced) code analysis rule --- .../Uno.Utils.DependencyInjection/ServiceAttribute.cs | 2 +- .../ServiceCollectionExtensionAttribute.cs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs index 136798d820de..ce2b81f08f01 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceAttribute.cs @@ -10,7 +10,7 @@ namespace Uno.Utils.DependencyInjection; /// Type of the contract (i.e. interface) implemented by the concrete type. /// Concrete type to register in the service collection. [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] -public class ServiceAttribute(Type contract, Type implementation) : Attribute +public sealed class ServiceAttribute(Type contract, Type implementation) : Attribute { /// /// Creates a new instance of the class with only a concrete type (used as contract and implementation). diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs index d324a22c4e1a..27bb145cd539 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/Uno.Utils.DependencyInjection/ServiceCollectionExtensionAttribute.cs @@ -14,7 +14,7 @@ namespace Uno.Utils.DependencyInjection; /// so the implementation will be able to add some custom services on it. /// [AttributeUsage(AttributeTargets.Assembly, AllowMultiple = true)] -public class ServiceCollectionExtensionAttribute(Type type) : Attribute +public sealed class ServiceCollectionExtensionAttribute(Type type) : Attribute { /// /// Type of the extension that should be instantiated with a as parameter. From 40b7d46c3cde62a6ab546a1cca159a09b0f2c92e Mon Sep 17 00:00:00 2001 From: David Date: Tue, 5 Nov 2024 10:23:28 -0500 Subject: [PATCH 439/664] chore: Update logging level MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jérôme Laban --- src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs b/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs index 44f97a159ab2..d614fc56da3c 100644 --- a/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs +++ b/src/Uno.UI.RemoteControl.Host/Helpers/AssemblyHelper.cs @@ -18,7 +18,7 @@ public static IImmutableList Load(IImmutableList dllFiles, boo { try { - _log.Log(LogLevel.Information, $"Loading add-in assembly '{dll}'."); + _log.Log(LogLevel.Debug, $"Loading add-in assembly '{dll}'."); assemblies.Add(Assembly.LoadFrom(dll)); } From ba3a2ce0a52c79e7813ee1ae7c9be25022a68f11 Mon Sep 17 00:00:00 2001 From: Carl de Billy Date: Mon, 4 Nov 2024 14:20:47 -0500 Subject: [PATCH 440/664] feat: Improved the way pings are done to the remote control server, reducing the delay before the first ping. --- src/Uno.UI.RemoteControl/RemoteControlClient.cs | 2 +- src/Uno.UI.RemoteControl/RemoteControlStatus.cs | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.cs index 12f6223f5874..5df9baac1e12 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.cs @@ -656,7 +656,7 @@ private void StartKeepAliveTimer() if (Interlocked.CompareExchange(ref _keepAliveTimer, timer, null) is null) { - timer.Change(_keepAliveInterval, _keepAliveInterval); + timer.Change(TimeSpan.Zero, _keepAliveInterval); } } diff --git a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs index 94c8e397437c..0d1c3e1ac1e5 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlStatus.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlStatus.cs @@ -19,11 +19,7 @@ public record RemoteControlStatus( /// public bool IsAllGood => State == ConnectionState.Connected -#if !DEBUG - // For debug builds, it's annoying to have the version mismatch preventing the connection - // Only Uno devs should get this issue, let's not block them. && IsVersionValid == true -#endif && MissingRequiredProcessors.IsEmpty && KeepAlive.State == KeepAliveState.Ok && InvalidFrames.Count == 0; From 542a226cff1c42e24fcd18fc8de9a8840bc58c03 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Tue, 5 Nov 2024 19:08:24 +0200 Subject: [PATCH 441/664] fix(wasm): key tracking when no one is subscribing to Key --- src/Uno.UI/ts/WindowManager.ts | 17 ++++++++++++++++ .../UI/Core/Internal/KeyboardStateTracker.cs | 20 ++++++++++++++++++- 2 files changed, 36 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI/ts/WindowManager.ts b/src/Uno.UI/ts/WindowManager.ts index 74d1303ff7d4..ebf2ed9409a1 100644 --- a/src/Uno.UI/ts/WindowManager.ts +++ b/src/Uno.UI/ts/WindowManager.ts @@ -133,6 +133,7 @@ namespace Uno.UI { private static dispatchSuspendingMethod: any; private static getDependencyPropertyValueMethod: any; private static setDependencyPropertyValueMethod: any; + private static keyTrackingMethod: any; private constructor(private containerElementId: string, private loadingElementId: string) { this.initDom(); @@ -1437,6 +1438,7 @@ namespace Uno.UI { WindowManager.dispatchEventMethod = exports.Microsoft.UI.Xaml.UIElement.DispatchEvent; WindowManager.focusInMethod = exports.Microsoft.UI.Xaml.Input.FocusManager.ReceiveFocusNative; WindowManager.dispatchSuspendingMethod = exports.Microsoft.UI.Xaml.Application.DispatchSuspending; + WindowManager.keyTrackingMethod = (globalThis).DotnetExports.Uno.Uno.UI.Core.KeyboardStateTracker.UpdateKeyStateNative; } else { throw `Unable to find dotnet exports`; } @@ -1451,6 +1453,13 @@ namespace Uno.UI { document.body.addEventListener("focusin", this.onfocusin); document.body.appendChild(this.containerElement); + // On WASM, if no one subscribes to key, not only will the event not fire on any UIElement, + // but the browser won't even notify us that a key was pressed/released, and this breaks KeyboardStateTracker + // key tracking, which depends on RaiseEvent being called even if no one is subscribing. Instead, we + // subscribe on the body and make sure to call KeyboardStateTracker ourselves here. + document.body.addEventListener("keydown", this.onBodyKeyDown); + document.body.addEventListener("keyup", this.onBodyKeyUp); + window.addEventListener("resize", x => WindowManager.resize()); window.addEventListener("contextmenu", x => { if (!(x.target instanceof HTMLInputElement) || @@ -1593,6 +1602,14 @@ namespace Uno.UI { public moveWindow(x: number, y: number) { window.moveTo(x, y); } + + private onBodyKeyDown(event: KeyboardEvent) { + WindowManager.keyTrackingMethod(event.key, true); + } + + private onBodyKeyUp(event: KeyboardEvent) { + WindowManager.keyTrackingMethod(event.key, false); + } } if (typeof define === "function") { diff --git a/src/Uno.UWP/UI/Core/Internal/KeyboardStateTracker.cs b/src/Uno.UWP/UI/Core/Internal/KeyboardStateTracker.cs index dcb72a3fc2f1..d6ed5e00d27f 100644 --- a/src/Uno.UWP/UI/Core/Internal/KeyboardStateTracker.cs +++ b/src/Uno.UWP/UI/Core/Internal/KeyboardStateTracker.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Runtime.InteropServices.JavaScript; using Windows.System; using Windows.UI.Core; @@ -13,7 +14,7 @@ namespace Uno.UI.Core; /// In UWP/WinUI, every key has a locked state (not only Caps Lock, etc.). The sequence of states is as follows: /// (None) -> (Down) -> (None) -> (Down + Locked) -> (None + Locked) -> (Down) -> (None) -> etc. /// -internal static class KeyboardStateTracker +internal static partial class KeyboardStateTracker { private static readonly Dictionary _keyStates = new Dictionary(); @@ -106,4 +107,21 @@ internal static void Reset() _keyStates.Clear(); } } + +#if __WASM__ +#pragma warning disable IDE0051 // Remove unused private members + [JSExport] + private static void UpdateKeyStateNative(string key, bool down) +#pragma warning restore IDE0051 // Remove unused private members + { + if (down) + { + OnKeyDown(VirtualKeyHelper.FromKey(key)); + } + else + { + OnKeyUp(VirtualKeyHelper.FromKey(key)); + } + } +#endif } From 20c2d6fb99c462772802e686d6738cc4b744587a Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Tue, 5 Nov 2024 21:36:28 +0200 Subject: [PATCH 442/664] fix: mofidying .ts files only should embed the newly generated .js files --- src/SourceGenerators/Uno.UI.Tasks/Content/Uno.UI.Tasks.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SourceGenerators/Uno.UI.Tasks/Content/Uno.UI.Tasks.targets b/src/SourceGenerators/Uno.UI.Tasks/Content/Uno.UI.Tasks.targets index dd161a5f035e..c69a350e0e5f 100644 --- a/src/SourceGenerators/Uno.UI.Tasks/Content/Uno.UI.Tasks.targets +++ b/src/SourceGenerators/Uno.UI.Tasks/Content/Uno.UI.Tasks.targets @@ -279,7 +279,7 @@ + AfterTargets="Compile;CompileTypeScriptWithTSConfig"> From c260496754f010120eda0e4563cf5122771bf9c4 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Tue, 5 Nov 2024 14:14:21 -0500 Subject: [PATCH 443/664] chore: cleanup without native element clipping --- .../MacOSMetalRenderer.cs | 2 +- .../MacOSNativeElementHostingExtension.cs | 34 ++++++++++++++----- .../MacOSWindowHost.cs | 12 ++----- .../UnoNativeMac/UnoNativeMac/UNONative.h | 6 ++++ .../UnoNativeMac/UnoNativeMac/UNONative.m | 20 +++++++---- .../UnoNativeMac/UnoNativeMac/UNOWindow.m | 14 ++------ 6 files changed, 51 insertions(+), 37 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSMetalRenderer.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSMetalRenderer.cs index 88ad6fd08cc8..32278f2a529e 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSMetalRenderer.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSMetalRenderer.cs @@ -15,7 +15,7 @@ internal static class MacOSMetalRenderer // FIXME: contribute some extra API (e.g. using `nint` or `IntPtr`) to SkiaSharp to avoid reflection // net8+ alternative -> https://steven-giesel.com/blogPost/05ecdd16-8dc4-490f-b1cf-780c994346a4 var get = typeof(GRContext).GetMethod("GetObject", BindingFlags.Static | BindingFlags.NonPublic); - var context = (GRContext?)get?.Invoke(null, new object[] { ctx, true }); + var context = (GRContext?)get?.Invoke(null, [ctx, true]); if (context is null) { // Macs since 2012 have Metal 2 support and macOS 10.14 Mojave (2018) requires Metal diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs index cf7e06aca489..08c2038fab74 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSNativeElementHostingExtension.cs @@ -11,12 +11,9 @@ namespace Uno.UI.Runtime.Skia.MacOS; internal class MacOSNativeElement : Microsoft.UI.Xaml.FrameworkElement { - internal MacOSNativeElement(nint handle) - { - NativeHandle = handle; - } + public nint NativeHandle { get; internal set; } - public nint NativeHandle { get; private set; } + internal bool Detached { get; set; } } internal class MacOSNativeElementHostingExtension : ContentPresenter.INativeElementHostingExtension @@ -36,7 +33,14 @@ public void ArrangeNativeElement(object content, Rect arrangeRect, Rect clipRect { if (content is MacOSNativeElement element) { - NativeUno.uno_native_arrange(element.NativeHandle, arrangeRect.Left, arrangeRect.Top, arrangeRect.Width, arrangeRect.Height, clipRect.Left, clipRect.Top, clipRect.Width, clipRect.Height); + if (element.Detached) + { + this.Log().Debug($"Cannot arrange element `{nameof(content)}` of type {content.GetType().FullName} since it was detached."); + } + else + { + NativeUno.uno_native_arrange(element.NativeHandle, arrangeRect.Left, arrangeRect.Top, arrangeRect.Width, arrangeRect.Height, clipRect.Left, clipRect.Top, clipRect.Width, clipRect.Height); + } } else if (this.Log().IsEnabled(LogLevel.Debug)) { @@ -89,20 +93,32 @@ public void ChangeNativeElementVisibility(object content, bool visible) { if (this.Log().IsEnabled(LogLevel.Debug)) { - this.Log().Debug($"CreateSampleComponent failed as no MacOSWindowNative could be found."); + this.Log().Debug($"CreateSampleComponent failed as no MacOSWindowNative instance could be found."); } return null; } var handle = NativeUno.uno_native_create_sample(_window.Handle, text); - return new MacOSNativeElement(handle); + return new MacOSNativeElement() + { + NativeHandle = handle, + AccessKey = text // FIXME: debug helper, to be removed + }; } public void DetachNativeElement(object content) { if (content is MacOSNativeElement element) { - NativeUno.uno_native_detach(element.NativeHandle); + if (element.Detached) + { + this.Log().Debug($"Object `{nameof(content)}` of type {content.GetType().FullName} was already detached."); + } + else + { + NativeUno.uno_native_detach(element.NativeHandle); + element.Detached = true; + } } else if (this.Log().IsEnabled(LogLevel.Debug)) { diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs index ddcd7147cdbe..49d17059b739 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs @@ -82,16 +82,8 @@ private void Draw(double nativeWidth, double nativeHeight, SKSurface surface) NativeUno.uno_window_clip_svg(_nativeWindow.Handle, null); int width = (int)nativeWidth; int height = (int)nativeHeight; - var path = SkiaRenderHelper.RenderRootVisualAndReturnPath(width, height, rootVisual, surface); - // we clip the "negative" of what was drawn - if (path is { }) - { - using var negativePath = new SKPath(); - negativePath.AddRect(new SKRect(0, 0, width, height)); - using var diffPath = negativePath.Op(path, SKPathOp.Difference); - // note: use an online svg viewer to visualize the clipping path - NativeUno.uno_window_clip_svg(_nativeWindow.Handle, diffPath.ToSvgPathData()); - } + SkiaRenderHelper.RenderRootVisualAndClearNativeAreas(width, height, rootVisual, surface); + // TODO clip the "negative" of what was drawn } } diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h index d2e229a539ea..e8db0f80429c 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h @@ -12,6 +12,12 @@ NS_ASSUME_NONNULL_BEGIN @end +@protocol UNONativeElement + +-(void) detach; + +@end + NSView* uno_native_create_sample(NSWindow *window, const char* _Nullable text); void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, double arrangeWidth, double arrangeHeight, double clipLeft, double clipTop, double clipWidth, double clipHeight); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m index 05e5bf635cf6..66eca41fdf8a 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m @@ -43,13 +43,17 @@ - (void)updateLayer void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, double arrangeWidth, double arrangeHeight, double clipLeft, double clipTop, double clipWidth, double clipHeight) { - NSRect clip = NSMakeRect(clipLeft, clipTop, clipWidth, clipHeight); - if (!element.hidden) { - element.hidden = NSIsEmptyRect(clip); + NSLog(@"uno_native_arrange %p", element); + if (!element || element.hidden) { + NSLog(@"uno_native_arrange0 hidden %p", element); + return; } + + NSRect clip = NSMakeRect(arrangeLeft + clipLeft, arrangeTop - clipTop, clipWidth, clipHeight); + element.hidden = NSIsEmptyRect(clip) || clipHeight <= 0 || clipWidth <= 0; // TODO handle partial case with element special layers - NSRect arrange = NSMakeRect(arrangeLeft, arrangeTop, arrangeWidth, arrangeWidth); + NSRect arrange = NSMakeRect(arrangeLeft, arrangeTop, arrangeWidth, arrangeHeight); element.frame = arrange; #if DEBUG NSLog(@"uno_native_arrange %p arrange(%g,%g,%g,%g) clip(%g,%g,%g,%g) %s", element, @@ -62,7 +66,7 @@ void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, void uno_native_attach(NSView* element) { #if DEBUG - NSLog(@"uno_native_attach %p -> %s attached", element, [elements containsObject:element] ? "already" : "not"); + NSLog(@"uno_native_attach %p -> %s attached", element, [elements containsObject:element] ? "already" : "not previously"); #endif if (!elements) { elements = [[NSMutableSet alloc] initWithCapacity:10]; @@ -76,6 +80,10 @@ void uno_native_detach(NSView *element) NSLog(@"uno_native_detach %p", element); #endif if (elements) { + if ([element conformsToProtocol:@protocol(UNONativeElement)]) { + id native = (id) element; + [native detach]; + } [elements removeObject:element]; } } @@ -108,7 +116,7 @@ void uno_native_set_opacity(NSView* element, double opacity) element.alphaValue = opacity; } -void uno_native_set_visibility(NSView* element, bool visible) +void uno_native_set_visibility(UNORedView* element, bool visible) { #if DEBUG NSLog(@"uno_native_set_visibility #%p : hidden %s -> visible %s", element, element.hidden ? "TRUE" : "FALSE", visible ? "TRUE" : "FALSE"); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m index a643eb859989..4e5a74618086 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m @@ -1,5 +1,5 @@ // -// UNOWindowDelegate.m +// UNOWindow.m // #import "UNOWindow.h" @@ -97,7 +97,7 @@ -(BOOL) isFlipped { -(instancetype) initWithFrame:(CGRect)frameRect device:(id)device { self = [super initWithFrame:frameRect device:device]; if (self) { - self.clipLayer = [CAShapeLayer layer]; + // TODO } return self; } @@ -642,7 +642,6 @@ CGFloat readNextCoord(const char *svg, int *position, long length) void uno_window_clip_svg(UNOWindow* window, const char* svg) { - UNOMetalFlippedView* v = window.contentView; if (svg) { #if DEBUG NSLog(@"uno_window_clip_svg %@ %@ %s", window, window.contentView.layer.description, svg); @@ -689,17 +688,10 @@ void uno_window_clip_svg(UNOWindow* window, const char* svg) #endif } } - - // note: we already have a CAMetalLayer present as the _main_ layer - if (!window.contentView.layer.sublayers) { - UNOMetalFlippedView* v = window.contentView; - [window.contentView.layer addSublayer:v.clipLayer]; - } } else { #if DEBUG NSLog(@"uno_window_clip_svg %@ reset", window); #endif - [v.clipLayer removeFromSuperlayer]; } } @@ -797,7 +789,7 @@ - (void)sendEvent:(NSEvent *)event { UniChar unicode = get_unicode(event); handled = uno_get_window_key_up_callback()(self, get_virtual_key(scanCode), get_modifiers(event.modifierFlags), scanCode, unicode); #if DEBUG - NSLog(@"NSEventTypeKeyUp: %@ window %p unocode %d handled? %s", event, self, unicode, handled ? "true" : "false"); + NSLog(@"NSEventTypeKeyUp: %@ window %p unicode %d handled? %s", event, self, unicode, handled ? "true" : "false"); #endif break; } From 5b7c0fc7931bf00fec6969f648281ef6cddeb46b Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Tue, 5 Nov 2024 16:29:58 -0500 Subject: [PATCH 444/664] fix: change how we handle the keyboard --- src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs index 49d17059b739..e798b89f4c63 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs @@ -11,6 +11,7 @@ using Windows.UI.Core; using Windows.UI.Input; using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Input; using Window = Microsoft.UI.Xaml.Window; @@ -278,8 +279,7 @@ private static int OnRawKeyDown(nint handle, VirtualKey key, VirtualKeyModifiers } var args = CreateArgs(key, mods, scanCode, unicode); keyDown.Invoke(window!, args); - // we tell macOS it's always handled as WinUI does not mark as handled some keys that would make it beep in common cases - return 1; + return FocusManager.GetFocusedElement() == null ? 0 : 1; } catch (Exception e) { @@ -306,7 +306,7 @@ private static int OnRawKeyUp(nint handle, VirtualKey key, VirtualKeyModifiers m } var args = CreateArgs(key, mods, scanCode, unicode); keyUp.Invoke(window!, args); - return args.Handled ? 1 : 0; + return 1; } catch (Exception e) { @@ -414,8 +414,8 @@ internal static unsafe int OnMouseEvent(nint handle, NativeMouseEventData* data) } mouseEvent(window, BuildPointerArgs(*data)); - // let the window be activated (becoming the keyWindow) when clicked - return data->EventType == NativeMouseEvents.Down ? 0 : 1; + // always let the native side know about the mouse events, e.g. setting keyWindow, embedded native controls + return 0; } catch (Exception e) { From 44383deb4a5812f5d5b68fbae784c118965bf278 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Tue, 5 Nov 2024 08:53:56 -0500 Subject: [PATCH 445/664] docs: Adjust hot restart limitation for release builds (cherry picked from commit bed82233cae5844e50bc665ceb08852604714ca6) --- doc/articles/create-an-app-vs2022.md | 2 ++ 1 file changed, 2 insertions(+) diff --git a/doc/articles/create-an-app-vs2022.md b/doc/articles/create-an-app-vs2022.md index 96a265b868a6..106fdae6bb28 100644 --- a/doc/articles/create-an-app-vs2022.md +++ b/doc/articles/create-an-app-vs2022.md @@ -104,6 +104,8 @@ To debug for **iOS**: > [!NOTE] > If no iOS devices are available, a Visual Studio 17.7+ issue may require unloading/reloading the project. Right-click on the `MyApp` project and select **Unload Project** then **Load project**. + > [!IMPORTANT] + > When using a device connected to a Windows PC, the Release build configuration is not supported. An actual macOS machine is required. ### [**Android**](#tab/Android) From 2a6a7f90e17959a39176e9185b168261be716a34 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Tue, 5 Nov 2024 17:20:28 -0500 Subject: [PATCH 446/664] chore: fix xml comment --- src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs b/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs index 92b5f6006a0e..92dc1453e474 100644 --- a/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs +++ b/src/Uno.UI.RuntimeTests/Helpers/ImageAssert.cs @@ -258,8 +258,8 @@ private static async Task AreRenderTargetBitmapsEqualAsync(RenderTargetBit /// If the error is greater than or equal to 0.022, the differences are visible to human eyes. /// The image to compare with reference /// Reference image. - /// It is the threshold beyond which the compared images are not considered equal. Default value is 0.022.> - /// Limits of resolution (in pixels) difference between the bitmaps + /// It is the threshold beyond which the compared images are not considered equal. Default value is 0.022. + /// Limits of resolution (in pixels) difference between the bitmaps /// public static async Task AreSimilarAsync(RawBitmap actual, RawBitmap expected, double imperceptibilityThreshold = 0.022, int resolutionTolerance = 0) { From 1dec27233c7829e9e98f0fef814f331fe62db1f4 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Tue, 5 Nov 2024 17:27:23 -0500 Subject: [PATCH 447/664] test: add tests for more coverage of WebView2 --- .../Given_WebView2.cs | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) diff --git a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs index ad1dd0413d0b..97f73c586d22 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs @@ -419,5 +419,74 @@ function sendWebMessage(){ Assert.AreEqual(@"{""some"":[""values"",""in"",""json"",1]}", message); } + + [TestMethod] + [Ignore("WebResourceResponseReceived is not yet implemented")] + public async Task When_Navigate_Error() + { + var border = new Border(); + var webView = new WebView2(); + webView.Width = 200; + webView.Height = 200; + border.Child = webView; + TestServices.WindowHelper.WindowContent = border; + await TestServices.WindowHelper.WaitForLoaded(border); + var uri = new Uri("https://httpbin.org/status/444"); + await webView.EnsureCoreWebView2Async(); + bool navigationStarting = false; + int statusCode = -1; + CoreWebView2WebErrorStatus navigationStatus = CoreWebView2WebErrorStatus.Unknown; + // TODO: WebResourceResponseReceived is not implemented + webView.CoreWebView2.WebResourceResponseReceived += (s, e) => + statusCode = e.Response.StatusCode; + webView.NavigationStarting += (s, e) => navigationStarting = true; + webView.NavigationCompleted += (s, e) => + navigationStatus = e.WebErrorStatus; + webView.CoreWebView2.Navigate(uri.ToString()); + Assert.IsNull(webView.Source); + await TestServices.WindowHelper.WaitFor(() => navigationStarting, 3000); + await TestServices.WindowHelper.WaitFor(() => navigationStatus != CoreWebView2WebErrorStatus.Unknown, 3000); + Assert.IsNotNull(webView.Source); + Assert.IsTrue(webView.Source.OriginalString.StartsWith("https://httpbin.org/status/444", StringComparison.OrdinalIgnoreCase)); + } + + [TestMethod] + [DataRow(true)] + [DataRow(false)] + public async Task When_Navigate_Unsupported_Scheme(bool handled) + { + var border = new Border(); + var webView = new WebView2(); + webView.Width = 200; + webView.Height = 200; + border.Child = webView; + TestServices.WindowHelper.WindowContent = border; + await TestServices.WindowHelper.WaitForLoaded(border); + var uri = new Uri("notsupported://httpbin.org/"); + await webView.EnsureCoreWebView2Async(); + bool navigationStarting = false; + bool navigationDone = false; + string scheme = null; + webView.NavigationStarting += (s, e) => navigationStarting = true; + webView.NavigationCompleted += (s, e) => navigationDone = true; + webView.CoreWebView2.UnsupportedUriSchemeIdentified += (s, e) => + { + scheme = e.Uri.Scheme; + e.Handled = handled; + }; + webView.CoreWebView2.Navigate(uri.ToString()); + Assert.IsNull(webView.Source); + await TestServices.WindowHelper.WaitFor(() => scheme == "notsupported", 3000); + if (handled) + { + Assert.IsFalse(navigationStarting); + Assert.IsFalse(navigationDone); + } + else + { + await TestServices.WindowHelper.WaitFor(() => navigationStarting, 3000); + await TestServices.WindowHelper.WaitFor(() => navigationDone, 3000); + } + } } #endif From dbbfe2c1a11c2b05f2210bd843805d36bb3d08d1 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Mon, 4 Nov 2024 16:54:39 -0500 Subject: [PATCH 448/664] chore: Update implicit references --- build/ci/.azure-devops-project-template-tests.yml | 8 ++++---- build/ci/templates/uno-dev-feed.yml | 7 +++++++ doc/articles/features/working-with-xaml-hot-reload.md | 4 ++-- doc/articles/migrating-from-previous-releases.md | 4 ++++ doc/articles/migrating-to-uno-5.md | 2 +- src/Directory.Build.props | 3 +++ src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs | 2 +- .../5.1/uno51recommended/uno51recommended/App.cs | 2 +- .../5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs | 2 +- .../5.2/uno52blank/uno52blank/App.xaml.cs | 2 +- .../5.3/uno53net9blank/uno53net9blank/App.xaml.cs | 2 +- src/Uno.Sdk/Sdk/Sdk.props.buildschema.json | 4 ++++ src/Uno.Sdk/Services/PackageManifest.cs | 1 + src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs | 3 +++ src/Uno.Sdk/packages.json | 7 +++++++ .../targets/Uno.Implicit.Packages.ProjectSystem.targets | 1 + src/Uno.Sdk/targets/Uno.Implicit.Packages.targets | 1 + .../HotReload/ClientHotReloadProcessor.MetadataUpdate.cs | 2 +- src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs | 7 +++++++ 19 files changed, 51 insertions(+), 13 deletions(-) create mode 100644 build/ci/templates/uno-dev-feed.yml diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index 6ea10c23a45d..d480011e2920 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -31,8 +31,8 @@ jobs: artifactName: 'Nuget_Packages' - template: templates/gitversion.yml - - template: templates/dotnet-mobile-install-windows.yml + - template: templates/uno-dev-feed.yml - script: copy $(System.ArtifactsDirectory)\Nuget_Packages\vslatest\*.nupkg $(Build.SourcesDirectory)\src\PackageCache displayName: Copy Artifacts to PackageCache @@ -88,6 +88,7 @@ jobs: xCodeRoot: ${{ parameters.xCodeRoot }} - template: templates/dotnet-mobile-install-mac.yml + - template: templates/uno-dev-feed.yml - powershell: cp $(System.ArtifactsDirectory)/Nuget_Packages/vslatest/*.nupkg $(Build.SourcesDirectory)/src/PackageCache displayName: Copy Artifacts to PackageCache @@ -126,11 +127,10 @@ jobs: artifactName: 'Nuget_Packages' - template: templates/gitversion.yml - - template: templates/dotnet-mobile-install-linux.yml - - template: templates/gitversion.yml - + - template: templates/uno-dev-feed.yml + - script: cp $(System.ArtifactsDirectory)/Nuget_Packages/vslatest/*.nupkg $(Build.SourcesDirectory)/src/PackageCache displayName: Copy Artifacts to PackageCache diff --git a/build/ci/templates/uno-dev-feed.yml b/build/ci/templates/uno-dev-feed.yml new file mode 100644 index 000000000000..bc6a002029cc --- /dev/null +++ b/build/ci/templates/uno-dev-feed.yml @@ -0,0 +1,7 @@ +parameters: + nugetPackages: '$(Pipeline.Workspace)/.nuget/packages' + +steps: + + - pwsh: dotnet nuget add source https://pkgs.dev.azure.com/uno-platform/1dd81cbd-cb35-41de-a570-b0df3571a196/_packaging/unoplatformdev/nuget/v3/index.json -n "uno-dev" + displayName: Add dev feed source diff --git a/doc/articles/features/working-with-xaml-hot-reload.md b/doc/articles/features/working-with-xaml-hot-reload.md index da8a2d3bcf96..c32f95322b95 100644 --- a/doc/articles/features/working-with-xaml-hot-reload.md +++ b/doc/articles/features/working-with-xaml-hot-reload.md @@ -293,7 +293,7 @@ Mobile targets are currently using a limited version of XAML Hot Reload and do n ## Hot Reload Indicator -Hot Reload displays a visual indicator to help you further monitor changes while developing. It displays new information every time Hot Reload is triggered. The indicator is enabled by default within the `EnableHotReload()` method which is located in the root `App.xaml.cs` file. This displays an overlay which hosts the visual indicator. If you wish to disable it, you simply have to provide the following boolean: `EnableHotReload(disableIndicator: true)`, removing the overlay from the view. +Hot Reload displays a visual indicator to help you further monitor changes while developing. It displays new information every time Hot Reload is triggered. The indicator is enabled by default within the `UseStudio()` method which is located in the root `App.xaml.cs` file. This displays an overlay which hosts the visual indicator. If you wish to disable it, you simply have to provide the following boolean: `EnableHotReload(disableIndicator: true)`, removing the overlay from the view.

A hot reload visual indicator @@ -370,7 +370,7 @@ Here's a summary of what icons and statuses you can expect: //... in the OnLaunched method #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif ``` diff --git a/doc/articles/migrating-from-previous-releases.md b/doc/articles/migrating-from-previous-releases.md index 6a4c5ff874f3..83be4df90077 100644 --- a/doc/articles/migrating-from-previous-releases.md +++ b/doc/articles/migrating-from-previous-releases.md @@ -17,6 +17,10 @@ A few considerations to take into account: - Moving to .NET 9 or upgrading .NET 9 projects now require the use of .NET 9 RC2 and Visual Studio 17.12 Preview 3. - To migrate a project to .NET 9, [read the directions](xref:Uno.Development.MigratingFromNet8ToNet9) from our documentation. +### The EnableHotReload method is deprecated + +When upgrading to Uno 5.5, in the `App.xaml.cs` file, the `EnableHotReload()` method is deprecated and must be replaced with `UseStudio()` instead. + ## Uno Platform 5.4 Uno Platform 5.4 contains breaking changes for Uno.Extensions. diff --git a/doc/articles/migrating-to-uno-5.md b/doc/articles/migrating-to-uno-5.md index 3c8b93add58b..d5466ef9f1e5 100644 --- a/doc/articles/migrating-to-uno-5.md +++ b/doc/articles/migrating-to-uno-5.md @@ -44,7 +44,7 @@ Hot Reload support has changed in Uno Platform 5.0 and a new API invocation is n //... in the OnLaunched method #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif ``` diff --git a/src/Directory.Build.props b/src/Directory.Build.props index 43c8b2315996..de865103a91d 100644 --- a/src/Directory.Build.props +++ b/src/Directory.Build.props @@ -223,6 +223,9 @@ $(NoWarn);CS0436 + + + $(NoWarn);UNO0008 diff --git a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs index 62e506b2f697..b52a5c4e507a 100644 --- a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs +++ b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs @@ -9,7 +9,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) MainWindow = new Window(); #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif diff --git a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs index 19b13588d50f..02b6c1e4e73d 100644 --- a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs +++ b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs @@ -75,7 +75,7 @@ protected async override void OnLaunched(LaunchActivatedEventArgs args) MainWindow = builder.Window; #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif Host = await builder.NavigateAsync(); diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs index fc6929ae914b..bf27f78b2815 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs @@ -21,7 +21,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif diff --git a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs index 3d3bb856f7be..1979f64729ea 100644 --- a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs +++ b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs @@ -21,7 +21,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif diff --git a/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs b/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs index 622781bbb6d5..302b0aab62db 100644 --- a/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs +++ b/src/SolutionTemplate/5.3/uno53net9blank/uno53net9blank/App.xaml.cs @@ -21,7 +21,7 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.EnableHotReload(); + MainWindow.UseStudio(); #endif diff --git a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json index bf5cf925b110..5e5918a36b3a 100644 --- a/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json +++ b/src/Uno.Sdk/Sdk/Sdk.props.buildschema.json @@ -234,6 +234,10 @@ "description": "Provides an explicit override for the version of Uno.Settings to use.", "type": "nuget-version" }, + "UnoHotDesignVersion": { + "description": "Provides an explicit override for the version of Uno.HotDesign to use.", + "type": "nuget-version" + }, "MicrosoftLoggingVersion": { "description": "Provides an explicit override for the version of Microsoft.Extensions.Logging to use.", "type": "nuget-version" diff --git a/src/Uno.Sdk/Services/PackageManifest.cs b/src/Uno.Sdk/Services/PackageManifest.cs index a212120e9308..208ec470be13 100644 --- a/src/Uno.Sdk/Services/PackageManifest.cs +++ b/src/Uno.Sdk/Services/PackageManifest.cs @@ -138,6 +138,7 @@ public class Group public const string Resizetizer = nameof(Resizetizer); public const string SdkExtras = nameof(SdkExtras); public const string Settings = nameof(Settings); + public const string HotDesign = nameof(HotDesign); public const string SkiaSharp = nameof(SkiaSharp); public const string SvgSkia = nameof(SvgSkia); public const string WinAppSdk = nameof(WinAppSdk); diff --git a/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs b/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs index ba60a5f67d5d..5a6e6a621e51 100644 --- a/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs +++ b/src/Uno.Sdk/Tasks/ImplicitPackagesResolver.cs @@ -85,6 +85,8 @@ public sealed class ImplicitPackagesResolver_v0 : Task public string? UnoSettingsVersion { get; set; } + public string? UnoHotDesignVersion { get; set; } + public string? MicrosoftLoggingVersion { get; set; } public string? WinAppSdkVersion { get; set; } @@ -246,6 +248,7 @@ private void SetupRuntimePackageManifestUpdates(PackageManifest manifest) .UpdateManifest(PackageManifest.Group.Resizetizer, UnoResizetizerVersion) .UpdateManifest(PackageManifest.Group.SdkExtras, UnoSdkExtrasVersion) .UpdateManifest(PackageManifest.Group.Settings, UnoSettingsVersion) + .UpdateManifest(PackageManifest.Group.HotDesign, UnoHotDesignVersion) .UpdateManifest(PackageManifest.Group.SkiaSharp, SkiaSharpVersion) .UpdateManifest(PackageManifest.Group.SvgSkia, SvgSkiaVersion) .UpdateManifest(PackageManifest.Group.WinAppSdk, WinAppSdkVersion) diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json index ce74950b283e..56348beaf653 100644 --- a/src/Uno.Sdk/packages.json +++ b/src/Uno.Sdk/packages.json @@ -85,6 +85,13 @@ "Uno.Settings.DevServer" ] }, + { + "group": "hotdesign", + "version": "1.0.0-dev.3", + "packages": [ + "Uno.UI.HotDesign" + ] + }, { "group": "SkiaSharp", "version": "2.88.8", diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index e0880a8dce18..ce5194b7d6b3 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -9,6 +9,7 @@ <_UnoProjectSystemPackageReference Include="Uno.Resizetizer" ProjectSystem="true" PrivateAssets="all" /> <_UnoProjectSystemPackageReference Include="Uno.Sdk.Extras" ProjectSystem="true" PrivateAssets="all" /> <_UnoProjectSystemPackageReference Include="Uno.Settings.DevServer" ProjectSystem="true" PrivateAssets="all" /> + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" PrivateAssets="all" /> diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets index ec578d78d73e..53ff56988041 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.targets @@ -63,6 +63,7 @@ UnoResizetizerVersion="$(UnoResizetizerVersion)" UnoSdkExtrasVersion="$(UnoSdkExtrasVersion)" UnoSettingsVersion="$(UnoSettingsVersion)" + UnoHotDesignVersion="$(UnoHotDesignVersion)" MicrosoftLoggingVersion="$(MicrosoftLoggingVersion)" WinAppSdkVersion="$(WinAppSdkVersion)" WinAppSdkBuildToolsVersion="$(WinAppSdkBuildToolsVersion)" diff --git a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs index 5069bd7935a2..0a38206683d8 100644 --- a/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs +++ b/src/Uno.UI.RemoteControl/HotReload/ClientHotReloadProcessor.MetadataUpdate.cs @@ -499,7 +499,7 @@ private static void UpdateApplicationCore(Type[] types) #endif else { - var errorMsg = $"Unable to access Dispatcher/DispatcherQueue in order to invoke {nameof(ReloadWithUpdatedTypes)}. Make sure you have enabled hot-reload (Window.EnableHotReload()) in app startup. See https://aka.platform.uno/hot-reload"; + var errorMsg = $"Unable to access Dispatcher/DispatcherQueue in order to invoke {nameof(ReloadWithUpdatedTypes)}. Make sure you have enabled hot-reload (Window.UseStudio()) in app startup. See https://aka.platform.uno/hot-reload"; hr?.ReportError(new InvalidOperationException(errorMsg)); if (_log.IsEnabled(LogLevel.Warning)) { diff --git a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs index 7f268ae0b9ce..4c3db93087f1 100644 --- a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs +++ b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs @@ -2,6 +2,7 @@ using Uno.UI.RemoteControl.HotReload; using Microsoft.UI.Xaml; using Uno.Diagnostics.UI; +using System.ComponentModel; namespace Uno.UI; @@ -14,6 +15,9 @@ public static class WindowExtensions /// Enables the UI Update cycle of HotReload to be handled by Uno ///

/// The window of the application where UI updates will be applied + [Obsolete("Use the UseStudio() method instead", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] public static void EnableHotReload(this Window window) => ClientHotReloadProcessor.SetWindow(window, false); @@ -22,6 +26,9 @@ public static void EnableHotReload(this Window window) ///
/// The window of the application where UI updates will be applied /// Request to not show the on-canvas indicator by default. + [Obsolete("Use the UseStudio() method instead", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] + [Browsable(false)] + [EditorBrowsable(EditorBrowsableState.Never)] public static void EnableHotReload(this Window window, bool disableIndicator) => ClientHotReloadProcessor.SetWindow(window, disableIndicator); From 2a1c6161dc7ede1786049fd3cfbbf84ed93f8eab Mon Sep 17 00:00:00 2001 From: xiaoy312 Date: Tue, 5 Nov 2024 18:04:26 -0500 Subject: [PATCH 449/664] fix(ios): negative margin clipped on device rotate --- .../Given_ListViewBase.Measure.cs | 45 ++++++++++++++++++- .../Border/BorderLayerRenderer.iOSmacOS.cs | 18 +++++--- src/Uno.UI/UI/Xaml/UIElement.cs | 15 +++++-- src/Uno.UI/UI/Xaml/UIElement.iOS.cs | 7 +-- 4 files changed, 68 insertions(+), 17 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs index fdcfd0f28918..f99ea4764776 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -7,9 +8,11 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls.Primitives; -using Uno.UI.RuntimeTests.Extensions; -using System.Collections.ObjectModel; using Windows.Foundation; +using Uno.UI.Helpers; +using Uno.UI.RuntimeTests.Extensions; +using Uno.UI.RuntimeTests.Helpers; + #if WINAPPSDK using Uno.UI.Extensions; #elif __IOS__ @@ -442,6 +445,44 @@ public async Task When_ItemsSource_INCC_StartTwo_RemoveOne() await WindowHelper.WaitFor(() => Math.Abs(SUT.ActualHeight - 29) <= Epsilon, message: $"ListView failed to shrink from removing item: (ActualHeight: {SUT.ActualHeight})"); } +#if __IOS__ || __ANDROID__ + [TestMethod] + [RunsOnUIThread] + public async Task When_Item_With_NegativeMargin_AsdAsd() // todo@xy: remove asdasd + { + const string PathData = "M 2 2 H 18 V 18 H 2 Z M 3 3 V 17 H 17 V 3 Z"; // 18x18 square with 1px border located at 2,2 + var setup = new ListView + { + ItemsSource = Enumerable.Range(0, 1).ToArray(), + ItemTemplate = XamlHelper.LoadXaml($$""" + + + + + + + + """), + }; + + await UITestHelper.Load(setup); + + // We can't really test rotating the device in the context of runtime tests. But still, this is a good repro. + // When loaded, we should see a red square, whose lower half is sitting in a pink background. + // When you rotate the device (portrait <-> landscape), the red square should still be fully visible. + + // Previously, there is a bug where rotating could cause the view with negative padding to be clipped. + // The visual hierarchy needs a special setup, it is just the easiest to replicate with a ListView... + + // It can be verified by checking `.Layer.Mask` remains consistent for the visual tree under ListView, + // before and after the device rotation. In this case, it was the SutBorder that magically had a `.Layer.Mask` assigned. + } +#endif + // Works around ScrollIntoView() not implemented for all platforms private static void ScrollTo(ListViewBase listViewBase, double vOffset) { diff --git a/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs b/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs index 572645fe47ec..117b7fd22928 100644 --- a/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs +++ b/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs @@ -427,13 +427,19 @@ GradientBrush gradientBorder when gradientBorder.CanApplyToBorder(cornerRadius) sublayers.Add(backgroundLayer); parent.InsertSublayer(backgroundLayer, insertionIndex); - parent.Mask = new CAShapeLayer() + // Normally, the parent.Mask (or owner.Layer.Mask) is usually cleared by ApplyNativeClip that follows. + // However, on device rotation (portrait <-> landscape), ApplyNativeClip happens before this method, causing the view to have an unwanted clipping. + // Here, we are reusing the logics of ApplyNativeClip to decide when to not apply the mask (as it would be cleared anyways). + if (owner.GetNativeClippedViewport().IsFinite) { - Path = outerPath, - Frame = area, - // We only use the fill color to create the mask area - FillColor = _Color.White.CGColor, - }; + parent.Mask = new CAShapeLayer() + { + Path = outerPath, + Frame = area, + // We only use the fill color to create the mask area + FillColor = _Color.White.CGColor, + }; + } updatedBoundsPath = outerPath; } diff --git a/src/Uno.UI/UI/Xaml/UIElement.cs b/src/Uno.UI/UI/Xaml/UIElement.cs index 324d88df7508..c2a0ba2d5e8d 100644 --- a/src/Uno.UI/UI/Xaml/UIElement.cs +++ b/src/Uno.UI/UI/Xaml/UIElement.cs @@ -931,6 +931,16 @@ internal void ApplyClip() #elif __WASM__ InvalidateArrange(); #else + var rect = GetNativeClippedViewport(); + + ApplyNativeClip(rect); + OnViewportUpdated(rect); +#endif + } + +#if !(__SKIA__ || __WASM__) + internal Rect GetNativeClippedViewport() + { Rect rect; if (Clip == null) @@ -957,10 +967,9 @@ internal void ApplyClip() } } - ApplyNativeClip(rect); - OnViewportUpdated(rect); -#endif + return rect; } +#endif partial void ApplyNativeClip(Rect rect #if __SKIA__ diff --git a/src/Uno.UI/UI/Xaml/UIElement.iOS.cs b/src/Uno.UI/UI/Xaml/UIElement.iOS.cs index 2377133ccfad..332e98710c6d 100644 --- a/src/Uno.UI/UI/Xaml/UIElement.iOS.cs +++ b/src/Uno.UI/UI/Xaml/UIElement.iOS.cs @@ -63,12 +63,7 @@ internal bool IsArrangeDirtyPath partial void ApplyNativeClip(Rect rect) { - if (rect.IsEmpty - || double.IsPositiveInfinity(rect.X) - || double.IsPositiveInfinity(rect.Y) - || double.IsPositiveInfinity(rect.Width) - || double.IsPositiveInfinity(rect.Height) - ) + if (!rect.IsFinite) { if (!ClippingIsSetByCornerRadius) { From 7fb93719975dc2529ad8d58d4906c7a2fdf0b96c Mon Sep 17 00:00:00 2001 From: generousllama541 <98273828+generousllama541@users.noreply.github.com> Date: Tue, 5 Nov 2024 18:18:15 -0500 Subject: [PATCH 450/664] docs: adjust MVUX doc for proper class name --- .../counterapp/get-started-counter-csharp-mvux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md index 5215c0a2e534..1cbbf8efc5e2 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md @@ -89,7 +89,7 @@ Also, for more information on all the template options, see [Using the Uno Platf ## Data Binding -Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. +Now that we have the **`MainModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. - Let's add the **`DataContext`** to our page. To do so, add `.DataContext(new MainViewModel(), (page, vm) => page` before `.Background(...)`. Remember to close the **`DataContext`** expression with a `)` at the end of the code. It should look similar to the code below: From d4394383662171a9115737764c9cbfb9e404a47c Mon Sep 17 00:00:00 2001 From: generousllama541 <98273828+generousllama541@users.noreply.github.com> Date: Tue, 5 Nov 2024 18:45:54 -0500 Subject: [PATCH 451/664] docs: remove invalid namespaces in code samples --- .../counterapp/get-started-counter-csharp-mvux.md | 2 -- .../counterapp/get-started-counter-csharp-mvvm.md | 2 -- .../counterapp/includes/include-mainpage-csharp.md | 1 - .../getting-started/counterapp/includes/include-mvux.md | 1 - .../getting-started/counterapp/includes/include-mvvm.md | 1 - 5 files changed, 7 deletions(-) diff --git a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md index 5215c0a2e534..87cfdae5b5cb 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md @@ -136,8 +136,6 @@ Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** - The final code for **MainPage.cs** should look like this: ```csharp - namespace Counter; - public sealed partial class MainPage : Page { public MainPage() diff --git a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md index dfef72d04fc2..8d38008250d4 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md @@ -136,8 +136,6 @@ Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** - The final code for **MainPage.cs** should look like this: ```csharp - namespace Counter; - public sealed partial class MainPage : Page { public MainPage() diff --git a/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md b/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md index bc53065314fe..a8985fae4cab 100644 --- a/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md +++ b/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md @@ -1,7 +1,6 @@ The layout for the `MainPage` is defined in the **MainPage.cs** file. This file contains the C# Markup that defines the layout of the application. ```csharp -namespace Uno; public sealed partial class MainPage : Page { diff --git a/doc/articles/getting-started/counterapp/includes/include-mvux.md b/doc/articles/getting-started/counterapp/includes/include-mvux.md index 7551cea24bd6..e8b765451064 100644 --- a/doc/articles/getting-started/counterapp/includes/include-mvux.md +++ b/doc/articles/getting-started/counterapp/includes/include-mvux.md @@ -54,7 +54,6 @@ As part of creating the application, we selected MVUX as the presentation framew The final code for the `MainModel` class should look like this: ```csharp -namespace Counter; internal partial record Countable(int Count, int Step) { diff --git a/doc/articles/getting-started/counterapp/includes/include-mvvm.md b/doc/articles/getting-started/counterapp/includes/include-mvvm.md index f7b0c44233f0..995d41e059cb 100644 --- a/doc/articles/getting-started/counterapp/includes/include-mvvm.md +++ b/doc/articles/getting-started/counterapp/includes/include-mvvm.md @@ -37,7 +37,6 @@ As part of creating the application, we selected MVVM as the presentation framew The final code for the `MainViewModel` class should look like this: ```csharp -namespace Counter; internal partial class MainViewModel : ObservableObject { From dcfe4d9af6dc1373eb177a62cbec33997e88b6b4 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Mon, 4 Nov 2024 14:49:35 -0500 Subject: [PATCH 452/664] fix(macOS): Prevent pointer over event originating from other window (cherry picked from commit c1b28008f47d92183d66ea3ac5bf05be507292b3) --- .../UnoNativeMac/UnoNativeMac/UNOWindow.m | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m index 2e67cc692bc7..7a72f4ebfdcc 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m @@ -669,6 +669,11 @@ - (BOOL) getPositionFrom:(NSEvent*)event x:(CGFloat*)px y:(CGFloat *)py } - (void)sendEvent:(NSEvent *)event { + if (![[NSApplication sharedApplication] isActive]) { + [super sendEvent:event]; + return; + } + bool handled = false; MouseEvents mouse = MouseEventsNone; PointerDeviceType pdt = PointerDeviceTypeMouse; From 33ebe65ddd8d164851caa01ffbcc83fe7359dc75 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 6 Nov 2024 13:28:55 +0100 Subject: [PATCH 453/664] fix: Always activate window on Activate() --- .../Xaml/Window/Implementations/BaseWindowImplementation.cs | 6 ++---- src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs | 1 + 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs b/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs index 54c2eb861407..45487ef48e2f 100644 --- a/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs +++ b/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs @@ -92,10 +92,8 @@ public virtual void Activate() SetVisibleBoundsFromNative(); NativeWindowWrapper?.Show(); } - else - { - NativeWindowWrapper?.Activate(); - } + + NativeWindowWrapper?.Activate(); OnActivationStateChanged(CoreWindowActivationState.CodeActivated); } diff --git a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs index 090475d9a39e..b272f4b9d82b 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs @@ -193,6 +193,7 @@ public virtual void ExtendContentIntoTitleBar(bool extend) { } public virtual void Show() { ShowCore(); + // On single-window targets, the window is already shown with splash screen // so we must ensure the property is initialized correctly. IsVisible = true; From d08f4347ded70e7cf2a913a423e308c3cdeb71a9 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 6 Nov 2024 13:30:56 +0100 Subject: [PATCH 454/664] chore: Don't activate twice on macOS --- src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs | 7 ------- 1 file changed, 7 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs index 19021bde1756..899bfa2241d3 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs @@ -47,13 +47,6 @@ public override void Activate() NativeUno.uno_window_activate(_window.Handle); } - protected override void ShowCore() - { - // the first call to `Window.Activate` does not reach the above `Activate` method - // https://github.com/unoplatform/uno/blob/fc8e58d77f8cf31d651135c22ea3105099c26fb7/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs#L81-L98 - NativeUno.uno_window_activate(_window.Handle); - } - public override void Close() { NativeUno.uno_window_close(_window.Handle); From 9d9abb3db212d3749a470c08777ba1d4086c5ffd Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 6 Nov 2024 13:31:14 +0100 Subject: [PATCH 455/664] chore: Don't process args for empty --- src/SamplesApp/SamplesApp.Shared/App.Tests.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/SamplesApp/SamplesApp.Shared/App.Tests.cs b/src/SamplesApp/SamplesApp.Shared/App.Tests.cs index ca6513e729e4..e01405e22f3f 100644 --- a/src/SamplesApp/SamplesApp.Shared/App.Tests.cs +++ b/src/SamplesApp/SamplesApp.Shared/App.Tests.cs @@ -153,6 +153,11 @@ public static string RunTest(string metadataName) private bool HandleAutoScreenshots(string args) { #if __SKIA__ || __MACOS__ + if (string.IsNullOrEmpty(args)) + { + return false; + } + var autoScreenshotsOption = new Option("--auto-screenshots"); var totalGroupsOption = new Option("--total-groups", getDefaultValue: () => 1); var currentGroupIndexOption = new Option("--current-group-index", getDefaultValue: () => 0); From c9305c4ec99eafe1db926003c3e467d5b52b137a Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 6 Nov 2024 14:04:34 +0100 Subject: [PATCH 456/664] feat: Add support for AppWindow.Show methods --- .../BaseWindowImplementation.cs | 11 +- .../Window/Native/INativeWindowWrapper.cs | 6 +- .../Window/Native/NativeWindowWrapperBase.cs | 36 +++--- .../Microsoft.UI.Windowing/AppWindow.cs | 4 +- .../Microsoft/UI/Windowing/AppWindow.cs | 112 ++++++++++++------ 5 files changed, 106 insertions(+), 63 deletions(-) diff --git a/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs b/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs index 45487ef48e2f..dd12fa5ace6e 100644 --- a/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs +++ b/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs @@ -29,7 +29,6 @@ namespace Uno.UI.Xaml.Controls; internal abstract class BaseWindowImplementation : IWindowImplementation { - private bool _wasShown; private CoreWindowActivationState _lastActivationState = CoreWindowActivationState.Deactivated; private Size _lastSize = new Size(-1, -1); @@ -85,15 +84,17 @@ public virtual void Activate() throw new InvalidOperationException("Cannot reactivate a closed window."); } - if (!_wasShown) + if (NativeWindowWrapper is null) { - _wasShown = true; + throw new InvalidOperationException("Native window is not initialized."); + } + if (!NativeWindowWrapper.WasShown) + { SetVisibleBoundsFromNative(); - NativeWindowWrapper?.Show(); } - NativeWindowWrapper?.Activate(); + NativeWindowWrapper?.Show(true); OnActivationStateChanged(CoreWindowActivationState.CodeActivated); } diff --git a/src/Uno.UI/UI/Xaml/Window/Native/INativeWindowWrapper.cs b/src/Uno.UI/UI/Xaml/Window/Native/INativeWindowWrapper.cs index a90e6cc1646c..75856c5f0574 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/INativeWindowWrapper.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/INativeWindowWrapper.cs @@ -24,6 +24,8 @@ internal interface INativeWindowWrapper : INativeAppWindow float RasterizationScale { get; } + bool WasShown { get; } + event EventHandler? SizeChanged; event EventHandler? VisibleBoundsChanged; @@ -36,10 +38,6 @@ internal interface INativeWindowWrapper : INativeAppWindow event EventHandler? Shown; - void Activate(); - - void Show(); - void Close(); void ExtendContentIntoTitleBar(bool extend); diff --git a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs index b272f4b9d82b..adc2ee7cea1d 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs @@ -51,6 +51,8 @@ protected NativeWindowWrapperBase() internal protected Window? Window => _window; + public bool WasShown { get; private set; } + internal void SetWindow(Window window, XamlRoot xamlRoot) { _window = window; @@ -181,7 +183,9 @@ public SizeInt32 Size public event EventHandler? Closing; public event EventHandler? Shown; - public virtual void Activate() { } + protected virtual void Activate() + { + } public virtual void Close() { @@ -190,14 +194,23 @@ public virtual void Close() public virtual void ExtendContentIntoTitleBar(bool extend) { } - public virtual void Show() + public virtual void Show(bool activateWindow) { - ShowCore(); + if (!WasShown) + { + WasShown = true; + ShowCore(); - // On single-window targets, the window is already shown with splash screen - // so we must ensure the property is initialized correctly. - IsVisible = true; - Shown?.Invoke(this, EventArgs.Empty); + // On single-window targets, the window is already shown with splash screen + // so we must ensure the property is initialized correctly. + IsVisible = true; + Shown?.Invoke(this, EventArgs.Empty); + } + + if (activateWindow) + { + Activate(); + } } protected virtual void ShowCore() { } @@ -248,13 +261,4 @@ public virtual void Resize(SizeInt32 size) public void Destroy() { } public void Hide() { } - - public void Show(bool activateWindow) - { - Show(); - if (activateWindow) - { - Activate(); - } - } } diff --git a/src/Uno.UWP/Generated/3.0.0.0/Microsoft.UI.Windowing/AppWindow.cs b/src/Uno.UWP/Generated/3.0.0.0/Microsoft.UI.Windowing/AppWindow.cs index 16b7e59a26a6..329fa4acc3bf 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Microsoft.UI.Windowing/AppWindow.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Microsoft.UI.Windowing/AppWindow.cs @@ -41,7 +41,7 @@ public bool IsShownInSwitchers // Skipping already declared property TitleBar // Skipping already declared property ClientSize // Skipping already declared property DispatcherQueue -#if __ANDROID__ || __IOS__ || IS_UNIT_TESTS || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ +#if false [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "IS_UNIT_TESTS", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public void Show(bool activateWindow) { @@ -98,7 +98,7 @@ public void SetIcon(global::Microsoft.UI.IconId iconId) #endif // Skipping already declared method Microsoft.UI.Windowing.AppWindow.SetPresenter(Microsoft.UI.Windowing.AppWindowPresenter) // Skipping already declared method Microsoft.UI.Windowing.AppWindow.SetPresenter(Microsoft.UI.Windowing.AppWindowPresenterKind) -#if __ANDROID__ || __IOS__ || IS_UNIT_TESTS || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ +#if false [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "IS_UNIT_TESTS", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public void Show() { diff --git a/src/Uno.UWP/Microsoft/UI/Windowing/AppWindow.cs b/src/Uno.UWP/Microsoft/UI/Windowing/AppWindow.cs index be01475bbfaa..e2bff75536f6 100644 --- a/src/Uno.UWP/Microsoft/UI/Windowing/AppWindow.cs +++ b/src/Uno.UWP/Microsoft/UI/Windowing/AppWindow.cs @@ -46,8 +46,18 @@ internal AppWindow() ApplicationView.GetOrCreateForWindowId(Id); } + /// + /// Occurs when a property of the window has changed, and the system is in a "steady state" for the time being. + /// public event TypedEventHandler Changed; + /// + /// Occurs when a window is being closed through a system affordance. + /// + public event TypedEventHandler Closing; + + internal static MUXWindowId MainWindowId { get; } = new(1); + /// /// Gets the title bar of the app window. /// @@ -105,59 +115,62 @@ public string Title } } - internal static void SkipMainWindowId() - { - // In case of Uno Islands we currently have no "main window", - // so we must avoid assigning the first created secondary window - // Id = 1, otherwise it would be considered as the main window. - if (!CoreApplication.IsFullFledgedApp && _windowIdIterator == 0) - { - _windowIdIterator++; - } - } - - internal void SetNativeWindow(INativeAppWindow nativeAppWindow) + /// + /// Returns the AppWindow with the specified WindowId, if available. Returns null if the WindowId cannot be matched to a valid window. + /// + /// The identifier for the AppWindow. + /// The AppWindow with the specified WindowId, if available; null if the WindowId cannot be matched to a valid window. + public static AppWindow GetFromWindowId(MUXWindowId windowId) { - if (nativeAppWindow is null) - { - throw new ArgumentNullException(nameof(nativeAppWindow)); - } - - _nativeAppWindow = nativeAppWindow; - - if (string.IsNullOrWhiteSpace(_nativeAppWindow.Title) && !string.IsNullOrWhiteSpace(_titleCache)) - { - _nativeAppWindow.Title = _titleCache; - } - else + if (!_windowIdMap.TryGetValue(windowId, out var appWindow)) { - _titleCache = _nativeAppWindow.Title; + return null; } - SetPresenter(AppWindowPresenterKind.Default); + return appWindow; } - public event TypedEventHandler Closing; - - internal static MUXWindowId MainWindowId { get; } = new(1); + internal static bool TryGetFromWindowId(MUXWindowId windowId, [NotNullWhen(true)] out AppWindow appWindow) + => _windowIdMap.TryGetValue(windowId, out appWindow); - public static AppWindow GetFromWindowId(MUXWindowId windowId) + internal static void SkipMainWindowId() { - if (!_windowIdMap.TryGetValue(windowId, out var appWindow)) + // In case of Uno Islands we currently have no "main window", + // so we must avoid assigning the first created secondary window + // Id = 1, otherwise it would be considered as the main window. + if (!CoreApplication.IsFullFledgedApp && _windowIdIterator == 0) { - throw new InvalidOperationException("Window not found"); + _windowIdIterator++; } - - return appWindow; } - internal static bool TryGetFromWindowId(MUXWindowId windowId, [NotNullWhen(true)] out AppWindow appWindow) - => _windowIdMap.TryGetValue(windowId, out appWindow); + /// + /// Shows the window and activates it. + /// + public void Show() => Show(true); + + /// + /// Shows the window with an option to activate it or not. + /// + /// Shows the window with an option to activate it or not. + public void Show(bool activateWindow) => _nativeAppWindow.Show(activateWindow); + /// + /// Moves the window to the specified point in screen coordinates. + /// + /// The point to move the window to in screen coordinates. public void Move(PointInt32 position) => _nativeAppWindow.Move(position); + /// + /// Resizes the window to the specified size. + /// + /// The height and width of the window in screen coordinates. public void Resize(SizeInt32 size) => _nativeAppWindow.Resize(size); + /// + /// Applies the specified presenter to the window. + /// + /// The presenter to apply to the window. public void SetPresenter(AppWindowPresenter appWindowPresenter) { if (_presenter == appWindowPresenter) @@ -176,6 +189,12 @@ public void SetPresenter(AppWindowPresenter appWindowPresenter) Changed?.Invoke(this, new AppWindowChangedEventArgs() { DidPresenterChange = true }); } + /// + /// Applies the specified presenter kind to the window. + /// + /// The presenter kind to apply to the window. + /// Thrown when an unsupported presenter is requested. + /// Thrown when invalid param value is provided. public void SetPresenter(AppWindowPresenterKind appWindowPresenterKind) { switch (appWindowPresenterKind) @@ -197,4 +216,25 @@ public void SetPresenter(AppWindowPresenterKind appWindowPresenterKind) internal void RaiseClosing(AppWindowClosingEventArgs args) => Closing?.Invoke(this, args); internal void OnAppWindowChanged(AppWindowChangedEventArgs args) => Changed?.Invoke(this, args); + + internal void SetNativeWindow(INativeAppWindow nativeAppWindow) + { + if (nativeAppWindow is null) + { + throw new ArgumentNullException(nameof(nativeAppWindow)); + } + + _nativeAppWindow = nativeAppWindow; + + if (string.IsNullOrWhiteSpace(_nativeAppWindow.Title) && !string.IsNullOrWhiteSpace(_titleCache)) + { + _nativeAppWindow.Title = _titleCache; + } + else + { + _titleCache = _nativeAppWindow.Title; + } + + SetPresenter(AppWindowPresenterKind.Default); + } } From c7bf530a78d2484a4fa14ee12f5eedf5cf3c1c3d Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 6 Nov 2024 14:29:12 +0100 Subject: [PATCH 457/664] chore: Adjust closing for single window targets --- .../UI/Controls/GtkWindowWrapper.cs | 5 ++--- .../MacOSWindowWrapper.cs | 4 ++-- .../UI/Controls/WpfWindowWrapper.cs | 8 ++------ src/Uno.UI.Runtime.Skia.X11/X11WindowWrapper.cs | 3 +-- .../Implementations/BaseWindowImplementation.cs | 9 ++------- .../Xaml/Window/Native/NativeWindowWrapperBase.cs | 14 +++++++++++++- 6 files changed, 22 insertions(+), 21 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.Gtk/UI/Controls/GtkWindowWrapper.cs b/src/Uno.UI.Runtime.Skia.Gtk/UI/Controls/GtkWindowWrapper.cs index 0bcd04f3d7e0..a24e92c1ba4d 100644 --- a/src/Uno.UI.Runtime.Skia.Gtk/UI/Controls/GtkWindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.Gtk/UI/Controls/GtkWindowWrapper.cs @@ -73,11 +73,10 @@ private void OnWindowShown(object? sender, EventArgs e) public override object NativeWindow => _gtkWindow; - public override void Activate() => _gtkWindow.Activate(); + protected override void Activate() => _gtkWindow.Activate(); - public override void Close() + protected override void CloseCore() { - base.Close(); if (_wasShown) { _gtkWindow.Close(); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs index 899bfa2241d3..cd02195d6111 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs @@ -42,12 +42,12 @@ public override string Title set => NativeUno.uno_window_set_title(_window.Handle, value); } - public override void Activate() + protected override void Activate() { NativeUno.uno_window_activate(_window.Handle); } - public override void Close() + protected override void CloseCore() { NativeUno.uno_window_close(_window.Handle); } diff --git a/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs b/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs index e8d51e8536b3..7cb642a66cea 100644 --- a/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs @@ -80,13 +80,9 @@ protected override void ShowCore() UpdatePositionFromNative(); } - public override void Activate() => _wpfWindow.Activate(); + protected override void Activate() => _wpfWindow.Activate(); - public override void Close() - { - base.Close(); - _wpfWindow.Close(); - } + protected override void CloseCore() => _wpfWindow.Close(); public override void ExtendContentIntoTitleBar(bool extend) { diff --git a/src/Uno.UI.Runtime.Skia.X11/X11WindowWrapper.cs b/src/Uno.UI.Runtime.Skia.X11/X11WindowWrapper.cs index 27e2b2707c42..7709f3443f64 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11WindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11WindowWrapper.cs @@ -85,9 +85,8 @@ public override void Activate() // _ = XLib.XFlush(x11Window.Display); } - public override void Close() + protected override void CloseCore() { - base.Close(); var x11Window = _host.RootX11Window; if (this.Log().IsEnabled(LogLevel.Information)) { diff --git a/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs b/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs index dd12fa5ace6e..24267821d676 100644 --- a/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs +++ b/src/Uno.UI/UI/Xaml/Window/Implementations/BaseWindowImplementation.cs @@ -220,7 +220,7 @@ protected virtual void OnSizeChanged(Size newSize) { } private void OnNativeVisibilityChanged(object? sender, bool isVisible) { - if (!_wasShown) + if (NativeWindowWrapper is not { WasShown: true }) { return; } @@ -236,7 +236,7 @@ private void OnNativeVisibilityChanged(object? sender, bool isVisible) private void OnNativeActivationChanged(object? sender, CoreWindowActivationState state) { - if (!_wasShown) + if (NativeWindowWrapper is not { WasShown: true }) { return; } @@ -324,11 +324,6 @@ public bool Close() Window.SetTitleBar(null); Window.Content = null; } - else - { - // Just reset the window to not shown state so it can be reactivated - _wasShown = false; - } // _windowChrome.SetDesktopWindow(null); diff --git a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs index adc2ee7cea1d..13bedc830b9a 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs @@ -187,9 +187,21 @@ protected virtual void Activate() { } - public virtual void Close() + protected virtual void CloseCore() { + } + + public void Close() + { + CloseCore(); + IsVisible = false; + + // Allow the window to be re-shown on single-window targets. + if (!NativeWindowFactory.SupportsMultipleWindows) + { + WasShown = false; + } } public virtual void ExtendContentIntoTitleBar(bool extend) { } From 19054846feb9242e1b767851ca45b8ccb18185ae Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 6 Nov 2024 14:35:35 +0100 Subject: [PATCH 458/664] chore: Adjust Activate visibility --- src/Uno.UI.Runtime.Skia.Gtk/UI/Controls/GtkWindowWrapper.cs | 6 +++--- src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs | 2 +- src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs | 2 +- src/Uno.UI.Runtime.Skia.X11/X11WindowWrapper.cs | 2 +- src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs | 2 +- 5 files changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.Gtk/UI/Controls/GtkWindowWrapper.cs b/src/Uno.UI.Runtime.Skia.Gtk/UI/Controls/GtkWindowWrapper.cs index a24e92c1ba4d..a83b64bbe930 100644 --- a/src/Uno.UI.Runtime.Skia.Gtk/UI/Controls/GtkWindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.Gtk/UI/Controls/GtkWindowWrapper.cs @@ -50,12 +50,12 @@ public override string Title /// /// GTK overrides show as the initialization is asynchronous. /// - public override async void Show() + public override async void Show(bool activateWindow) { try { await _gtkWindow.Host.InitializeAsync(); - base.Show(); + base.Show(activateWindow); } catch (Exception ex) { @@ -73,7 +73,7 @@ private void OnWindowShown(object? sender, EventArgs e) public override object NativeWindow => _gtkWindow; - protected override void Activate() => _gtkWindow.Activate(); + internal protected override void Activate() => _gtkWindow.Activate(); protected override void CloseCore() { diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs index cd02195d6111..c0c680ccdec2 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs @@ -42,7 +42,7 @@ public override string Title set => NativeUno.uno_window_set_title(_window.Handle, value); } - protected override void Activate() + internal protected override void Activate() { NativeUno.uno_window_activate(_window.Handle); } diff --git a/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs b/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs index 7cb642a66cea..98101afa34a9 100644 --- a/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.Wpf/UI/Controls/WpfWindowWrapper.cs @@ -80,7 +80,7 @@ protected override void ShowCore() UpdatePositionFromNative(); } - protected override void Activate() => _wpfWindow.Activate(); + internal protected override void Activate() => _wpfWindow.Activate(); protected override void CloseCore() => _wpfWindow.Close(); diff --git a/src/Uno.UI.Runtime.Skia.X11/X11WindowWrapper.cs b/src/Uno.UI.Runtime.Skia.X11/X11WindowWrapper.cs index 7709f3443f64..a6d92f4dc483 100644 --- a/src/Uno.UI.Runtime.Skia.X11/X11WindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.X11/X11WindowWrapper.cs @@ -62,7 +62,7 @@ private void RaiseNativeSizeChanged(Size newWindowSize) VisibleBounds = new Rect(default, newWindowSize); } - public override void Activate() + internal protected override void Activate() { var x11Window = _host.RootX11Window; using var lockDiposable = X11Helper.XLock(x11Window.Display); diff --git a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs index 13bedc830b9a..6c06d0e54a8c 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapperBase.cs @@ -183,7 +183,7 @@ public SizeInt32 Size public event EventHandler? Closing; public event EventHandler? Shown; - protected virtual void Activate() + internal protected virtual void Activate() { } From 9dcedb0e443c3d3711ffb9e15fd03bec650f0216 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 6 Nov 2024 15:26:58 +0100 Subject: [PATCH 459/664] chore: Adjust non-Skia targets --- .../UI/Xaml/Window/Native/NativeWindowWrapper.iOS.cs | 1 - .../UI/Xaml/Window/Native/NativeWindowWrapper.wasm.cs | 8 -------- 2 files changed, 9 deletions(-) diff --git a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.iOS.cs b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.iOS.cs index 6a21e373fbe1..aea26cb12bc0 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.iOS.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.iOS.cs @@ -52,7 +52,6 @@ protected override void ShowCore() { _nativeWindow.RootViewController = _mainController; _nativeWindow.MakeKeyAndVisible(); - IsVisible = true; } internal RootViewController MainController => _mainController; diff --git a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.wasm.cs b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.wasm.cs index 584de24263ca..d25564f28356 100644 --- a/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.wasm.cs +++ b/src/Uno.UI/UI/Xaml/Window/Native/NativeWindowWrapper.wasm.cs @@ -24,14 +24,6 @@ public NativeWindowWrapper() public override object NativeWindow => null; - public override void Activate() - { - } - - public override void Close() - { - } - private void DispatchDpiChanged() => RasterizationScale = (float)_displayInformation.RawPixelsPerViewPixel; From 8ce3ce88f6610772d6adde8dcda590a27b7ee7de Mon Sep 17 00:00:00 2001 From: generousllama541 <98273828+generousllama541@users.noreply.github.com> Date: Tue, 5 Nov 2024 18:18:15 -0500 Subject: [PATCH 460/664] docs: adjust MVUX doc for proper class name (cherry picked from commit 7fb93719975dc2529ad8d58d4906c7a2fdf0b96c) --- .../counterapp/get-started-counter-csharp-mvux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md index 5215c0a2e534..1cbbf8efc5e2 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md @@ -89,7 +89,7 @@ Also, for more information on all the template options, see [Using the Uno Platf ## Data Binding -Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. +Now that we have the **`MainModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. - Let's add the **`DataContext`** to our page. To do so, add `.DataContext(new MainViewModel(), (page, vm) => page` before `.Background(...)`. Remember to close the **`DataContext`** expression with a `)` at the end of the code. It should look similar to the code below: From ca0bf07e88b05197ae30abd0db51e0038f75cd10 Mon Sep 17 00:00:00 2001 From: generousllama541 <98273828+generousllama541@users.noreply.github.com> Date: Tue, 5 Nov 2024 18:45:54 -0500 Subject: [PATCH 461/664] docs: remove invalid namespaces in code samples (cherry picked from commit d4394383662171a9115737764c9cbfb9e404a47c) --- .../counterapp/get-started-counter-csharp-mvux.md | 2 -- .../counterapp/get-started-counter-csharp-mvvm.md | 2 -- .../counterapp/includes/include-mainpage-csharp.md | 1 - .../getting-started/counterapp/includes/include-mvux.md | 1 - .../getting-started/counterapp/includes/include-mvvm.md | 1 - 5 files changed, 7 deletions(-) diff --git a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md index 5215c0a2e534..87cfdae5b5cb 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvux.md @@ -136,8 +136,6 @@ Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** - The final code for **MainPage.cs** should look like this: ```csharp - namespace Counter; - public sealed partial class MainPage : Page { public MainPage() diff --git a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md index dfef72d04fc2..8d38008250d4 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-csharp-mvvm.md @@ -136,8 +136,6 @@ Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** - The final code for **MainPage.cs** should look like this: ```csharp - namespace Counter; - public sealed partial class MainPage : Page { public MainPage() diff --git a/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md b/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md index bc53065314fe..a8985fae4cab 100644 --- a/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md +++ b/doc/articles/getting-started/counterapp/includes/include-mainpage-csharp.md @@ -1,7 +1,6 @@ The layout for the `MainPage` is defined in the **MainPage.cs** file. This file contains the C# Markup that defines the layout of the application. ```csharp -namespace Uno; public sealed partial class MainPage : Page { diff --git a/doc/articles/getting-started/counterapp/includes/include-mvux.md b/doc/articles/getting-started/counterapp/includes/include-mvux.md index 7551cea24bd6..e8b765451064 100644 --- a/doc/articles/getting-started/counterapp/includes/include-mvux.md +++ b/doc/articles/getting-started/counterapp/includes/include-mvux.md @@ -54,7 +54,6 @@ As part of creating the application, we selected MVUX as the presentation framew The final code for the `MainModel` class should look like this: ```csharp -namespace Counter; internal partial record Countable(int Count, int Step) { diff --git a/doc/articles/getting-started/counterapp/includes/include-mvvm.md b/doc/articles/getting-started/counterapp/includes/include-mvvm.md index f7b0c44233f0..995d41e059cb 100644 --- a/doc/articles/getting-started/counterapp/includes/include-mvvm.md +++ b/doc/articles/getting-started/counterapp/includes/include-mvvm.md @@ -37,7 +37,6 @@ As part of creating the application, we selected MVVM as the presentation framew The final code for the `MainViewModel` class should look like this: ```csharp -namespace Counter; internal partial class MainViewModel : ObservableObject { From ca4a273eca2ead64de6ef559aa36debf58577e20 Mon Sep 17 00:00:00 2001 From: xiaoy312 Date: Tue, 5 Nov 2024 18:04:26 -0500 Subject: [PATCH 462/664] fix(ios): negative margin clipped on device rotate (cherry picked from commit 2a1c6161dc7ede1786049fd3cfbbf84ed93f8eab) --- .../Given_ListViewBase.Measure.cs | 45 ++++++++++++++++++- .../Border/BorderLayerRenderer.iOSmacOS.cs | 18 +++++--- src/Uno.UI/UI/Xaml/UIElement.cs | 15 +++++-- src/Uno.UI/UI/Xaml/UIElement.iOS.cs | 7 +-- 4 files changed, 68 insertions(+), 17 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs index fdcfd0f28918..f99ea4764776 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Xaml_Controls/Given_ListViewBase.Measure.cs @@ -1,5 +1,6 @@ using System; using System.Collections.Generic; +using System.Collections.ObjectModel; using System.Linq; using System.Text; using System.Threading.Tasks; @@ -7,9 +8,11 @@ using Microsoft.UI.Xaml; using Microsoft.UI.Xaml.Controls; using Microsoft.UI.Xaml.Controls.Primitives; -using Uno.UI.RuntimeTests.Extensions; -using System.Collections.ObjectModel; using Windows.Foundation; +using Uno.UI.Helpers; +using Uno.UI.RuntimeTests.Extensions; +using Uno.UI.RuntimeTests.Helpers; + #if WINAPPSDK using Uno.UI.Extensions; #elif __IOS__ @@ -442,6 +445,44 @@ public async Task When_ItemsSource_INCC_StartTwo_RemoveOne() await WindowHelper.WaitFor(() => Math.Abs(SUT.ActualHeight - 29) <= Epsilon, message: $"ListView failed to shrink from removing item: (ActualHeight: {SUT.ActualHeight})"); } +#if __IOS__ || __ANDROID__ + [TestMethod] + [RunsOnUIThread] + public async Task When_Item_With_NegativeMargin_AsdAsd() // todo@xy: remove asdasd + { + const string PathData = "M 2 2 H 18 V 18 H 2 Z M 3 3 V 17 H 17 V 3 Z"; // 18x18 square with 1px border located at 2,2 + var setup = new ListView + { + ItemsSource = Enumerable.Range(0, 1).ToArray(), + ItemTemplate = XamlHelper.LoadXaml($$""" + + + + + + + + """), + }; + + await UITestHelper.Load(setup); + + // We can't really test rotating the device in the context of runtime tests. But still, this is a good repro. + // When loaded, we should see a red square, whose lower half is sitting in a pink background. + // When you rotate the device (portrait <-> landscape), the red square should still be fully visible. + + // Previously, there is a bug where rotating could cause the view with negative padding to be clipped. + // The visual hierarchy needs a special setup, it is just the easiest to replicate with a ListView... + + // It can be verified by checking `.Layer.Mask` remains consistent for the visual tree under ListView, + // before and after the device rotation. In this case, it was the SutBorder that magically had a `.Layer.Mask` assigned. + } +#endif + // Works around ScrollIntoView() not implemented for all platforms private static void ScrollTo(ListViewBase listViewBase, double vOffset) { diff --git a/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs b/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs index 110301f0569d..5925cb5f2600 100644 --- a/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs +++ b/src/Uno.UI/UI/Xaml/Controls/Border/BorderLayerRenderer.iOSmacOS.cs @@ -427,13 +427,19 @@ GradientBrush gradientBorder when gradientBorder.CanApplyToBorder(cornerRadius) sublayers.Add(backgroundLayer); parent.InsertSublayer(backgroundLayer, insertionIndex); - parent.Mask = new CAShapeLayer() + // Normally, the parent.Mask (or owner.Layer.Mask) is usually cleared by ApplyNativeClip that follows. + // However, on device rotation (portrait <-> landscape), ApplyNativeClip happens before this method, causing the view to have an unwanted clipping. + // Here, we are reusing the logics of ApplyNativeClip to decide when to not apply the mask (as it would be cleared anyways). + if (owner.GetNativeClippedViewport().IsFinite) { - Path = outerPath, - Frame = area, - // We only use the fill color to create the mask area - FillColor = _Color.White.CGColor, - }; + parent.Mask = new CAShapeLayer() + { + Path = outerPath, + Frame = area, + // We only use the fill color to create the mask area + FillColor = _Color.White.CGColor, + }; + } updatedBoundsPath = outerPath; } diff --git a/src/Uno.UI/UI/Xaml/UIElement.cs b/src/Uno.UI/UI/Xaml/UIElement.cs index 324d88df7508..c2a0ba2d5e8d 100644 --- a/src/Uno.UI/UI/Xaml/UIElement.cs +++ b/src/Uno.UI/UI/Xaml/UIElement.cs @@ -931,6 +931,16 @@ internal void ApplyClip() #elif __WASM__ InvalidateArrange(); #else + var rect = GetNativeClippedViewport(); + + ApplyNativeClip(rect); + OnViewportUpdated(rect); +#endif + } + +#if !(__SKIA__ || __WASM__) + internal Rect GetNativeClippedViewport() + { Rect rect; if (Clip == null) @@ -957,10 +967,9 @@ internal void ApplyClip() } } - ApplyNativeClip(rect); - OnViewportUpdated(rect); -#endif + return rect; } +#endif partial void ApplyNativeClip(Rect rect #if __SKIA__ diff --git a/src/Uno.UI/UI/Xaml/UIElement.iOS.cs b/src/Uno.UI/UI/Xaml/UIElement.iOS.cs index 2377133ccfad..332e98710c6d 100644 --- a/src/Uno.UI/UI/Xaml/UIElement.iOS.cs +++ b/src/Uno.UI/UI/Xaml/UIElement.iOS.cs @@ -63,12 +63,7 @@ internal bool IsArrangeDirtyPath partial void ApplyNativeClip(Rect rect) { - if (rect.IsEmpty - || double.IsPositiveInfinity(rect.X) - || double.IsPositiveInfinity(rect.Y) - || double.IsPositiveInfinity(rect.Width) - || double.IsPositiveInfinity(rect.Height) - ) + if (!rect.IsFinite) { if (!ClippingIsSetByCornerRadius) { From c389ba93f24c5f30a0d1ea0f659bf84d484dd729 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Wed, 6 Nov 2024 18:48:02 -0500 Subject: [PATCH 463/664] chore: fix compilation of Given_WebView2.cs for WINAPPSDK --- .../Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs index 97f73c586d22..6510a7fe51df 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs @@ -450,6 +450,7 @@ public async Task When_Navigate_Error() Assert.IsTrue(webView.Source.OriginalString.StartsWith("https://httpbin.org/status/444", StringComparison.OrdinalIgnoreCase)); } +#if !WINAPPSDK [TestMethod] [DataRow(true)] [DataRow(false)] @@ -489,4 +490,6 @@ public async Task When_Navigate_Unsupported_Scheme(bool handled) } } } +#endif // !WINAPPSDK + #endif From f99538142f53ca18469b21dc89a6455fb620c0df Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Wed, 6 Nov 2024 19:39:24 -0500 Subject: [PATCH 464/664] chore: really fix compilation of Given_WebView2.cs for WINAPPSDK --- .../Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs index 6510a7fe51df..6b50416ca766 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs @@ -489,7 +489,7 @@ public async Task When_Navigate_Unsupported_Scheme(bool handled) await TestServices.WindowHelper.WaitFor(() => navigationDone, 3000); } } -} #endif // !WINAPPSDK +} #endif From 5529e7b51841733d14a7eae9b99cac99cab8073e Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 5 Nov 2024 13:51:49 +0100 Subject: [PATCH 465/664] fix: Apply x:Bind expressions in Resources --- .../XamlGenerator/XamlFileGenerator.cs | 20 +++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlFileGenerator.cs b/src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlFileGenerator.cs index 3ead4da769ea..454c9607d1de 100644 --- a/src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlFileGenerator.cs +++ b/src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlFileGenerator.cs @@ -1084,6 +1084,7 @@ private void BuildCompiledBindingsInitializerForTemplate(IIndentedStringBuilder using (writer.BlockInvariant($"__fe.Loading += delegate")) { BuildComponentResouceBindingUpdates(writer); + BuildXBindApply(writer); BuildxBindEventHandlerInitializers(writer, CurrentScope.xBindEventsHandlers); } writer.AppendLineIndented(";"); @@ -1117,6 +1118,19 @@ private void BuildComponentResouceBindingUpdates(IIndentedStringBuilder writer) } } + private void BuildXBindApply(IIndentedStringBuilder writer) + { + for (var i = 0; i < CurrentScope.Components.Count; i++) + { + var component = CurrentScope.Components[i]; + + if (HasXBindMarkupExtension(component.XamlObject) && IsDependencyObject(component.XamlObject)) + { + writer.AppendLineIndented($"{component.MemberName}.ApplyXBind();"); + } + } + } + private void BuildComponentFields(IIndentedStringBuilder writer) { for (var i = 0; i < CurrentScope.Components.Count; i++) @@ -4229,9 +4243,11 @@ private string BuildXBindEvalFunction(XamlMemberDefinition member, XamlObjectDef var modeMember = bindNode.Members.FirstOrDefault(m => m.Member.Name == "Mode")?.Value?.ToString() ?? GetDefaultBindMode(); var rawBindBack = bindNode.Members.FirstOrDefault(m => m.Member.Name == "BindBack")?.Value?.ToString(); + + var sourceInstance = CurrentResourceOwner is not null ? CurrentResourceOwnerName : "__that"; var applyBindingParameters = _isHotReloadEnabled - ? "__that, (___b, __that)" + ? $"{sourceInstance}, (___b, {sourceInstance})" : "___b"; if (isInsideDataTemplate) @@ -4396,7 +4412,7 @@ string buildBindBack() ? ", new [] {" + string.Join(", ", formattedPaths) + "}" : ""; - return $".BindingApply({applyBindingParameters} => /*defaultBindMode{GetDefaultBindMode()} {rawFunction}*/ global::Uno.UI.Xaml.BindingHelper.SetBindingXBindProvider(___b, __that, ___ctx => {bindFunction}, {buildBindBack()} {pathsArray}))"; + return $".BindingApply({applyBindingParameters} => /*defaultBindMode{GetDefaultBindMode()} {rawFunction}*/ global::Uno.UI.Xaml.BindingHelper.SetBindingXBindProvider(___b, {sourceInstance}, ___ctx => {bindFunction}, {buildBindBack()} {pathsArray}))"; } } From 49eebab5829b43ca2ca6038d83fddaf629020dcb Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 5 Nov 2024 13:52:16 +0100 Subject: [PATCH 466/664] test: XBind to const samples --- .../Tests/BindingTests/XBindConstControl.xaml | 48 +++++++++++++++++++ .../BindingTests/XBindConstControl.xaml.cs | 27 +++++++++++ .../Tests/BindingTests/XBindConstPage.xaml | 29 +++++++++++ .../Tests/BindingTests/XBindConstPage.xaml.cs | 16 +++++++ 4 files changed, 120 insertions(+) create mode 100644 src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml create mode 100644 src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml.cs create mode 100644 src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml create mode 100644 src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml.cs diff --git a/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml new file mode 100644 index 000000000000..676d88c1ab33 --- /dev/null +++ b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml @@ -0,0 +1,48 @@ + + + + + + + + + + + diff --git a/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml.cs b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml.cs new file mode 100644 index 000000000000..9e632f8d83a3 --- /dev/null +++ b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml.cs @@ -0,0 +1,27 @@ +using Microsoft.UI.Xaml.Controls; + +namespace Uno.UI.RuntimeTests.Tests; + +public sealed partial class XBindConstControl : Control +{ + public const double MyWidth = 200; + public const double MyHeight = 200; + + public XBindConstControl() + { + DefaultStyleKey = typeof(XBindConstControl); + + this.InitializeComponent(); + } + + public Border XBoundBorder { get; set; } + + protected override void OnApplyTemplate() + { + base.OnApplyTemplate(); + + XBoundBorder = GetTemplateChild("BoundBorder") as Border; + + + } +} diff --git a/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml new file mode 100644 index 000000000000..c87d58e9364c --- /dev/null +++ b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml @@ -0,0 +1,29 @@ + + + + + + + + + + + + diff --git a/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml.cs b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml.cs new file mode 100644 index 000000000000..29535df4653d --- /dev/null +++ b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml.cs @@ -0,0 +1,16 @@ +using Microsoft.UI.Xaml.Controls; + +namespace Uno.UI.RuntimeTests.Tests; + +public sealed partial class XBindConstPage : Page +{ + public const double MyWidth = 200; + public const double MyHeight = 200; + + public XBindConstPage() + { + this.InitializeComponent(); + } + + public Border XBoundBorder => BoundBorder; +} From d029c379c232b3a2661f5777fdf6b405f21d9eab Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Tue, 5 Nov 2024 13:55:41 +0100 Subject: [PATCH 467/664] test: Validate x:Bind is applied when used within a control template --- .../Tests/BindingTests/BindingTests.cs | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/src/Uno.UI.RuntimeTests/Tests/BindingTests/BindingTests.cs b/src/Uno.UI.RuntimeTests/Tests/BindingTests/BindingTests.cs index 77b1a3fc8ba0..766866959400 100644 --- a/src/Uno.UI.RuntimeTests/Tests/BindingTests/BindingTests.cs +++ b/src/Uno.UI.RuntimeTests/Tests/BindingTests/BindingTests.cs @@ -128,4 +128,24 @@ public async Task When_FallbackValueThemeResource_WithDataContext() Assert.AreEqual(Microsoft.UI.Colors.Red, ((SolidColorBrush)myBtn.Foreground).Color); } + + [TestMethod] + public async Task When_XBind_To_Const_Page() + { + var SUT = new XBindConstPage(); + await UITestHelper.Load(SUT); + + Assert.AreEqual(200, SUT.XBoundBorder.ActualWidth); + Assert.AreEqual(200, SUT.XBoundBorder.ActualHeight); + } + + [TestMethod] + public async Task When_XBind_To_Const_Control_Template() + { + var SUT = new XBindConstControl(); + await UITestHelper.Load(SUT); + + Assert.AreEqual(200, SUT.XBoundBorder.ActualWidth); + Assert.AreEqual(200, SUT.XBoundBorder.ActualHeight); + } } From 92adec90e6f0377a22a3ef1997d6ba0e55322b6e Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 6 Nov 2024 13:10:38 +0100 Subject: [PATCH 468/664] chore: Adjust formatting --- .../Uno.UI.SourceGenerators/XamlGenerator/XamlFileGenerator.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlFileGenerator.cs b/src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlFileGenerator.cs index 454c9607d1de..5f23b7778c7a 100644 --- a/src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlFileGenerator.cs +++ b/src/SourceGenerators/Uno.UI.SourceGenerators/XamlGenerator/XamlFileGenerator.cs @@ -4243,7 +4243,7 @@ private string BuildXBindEvalFunction(XamlMemberDefinition member, XamlObjectDef var modeMember = bindNode.Members.FirstOrDefault(m => m.Member.Name == "Mode")?.Value?.ToString() ?? GetDefaultBindMode(); var rawBindBack = bindNode.Members.FirstOrDefault(m => m.Member.Name == "BindBack")?.Value?.ToString(); - + var sourceInstance = CurrentResourceOwner is not null ? CurrentResourceOwnerName : "__that"; var applyBindingParameters = _isHotReloadEnabled From ece9fded974aa3a50219bba53004605b59954855 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Wed, 6 Nov 2024 17:19:37 +0100 Subject: [PATCH 469/664] chore: Adjust test --- ...or_MyResourceDictionary_92716e07ff456818f6d4125e055d4d57.cs | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/XamlCodeGeneratorTests/Out/TDBMIDTIRD/XamlCodeGenerator_MyResourceDictionary_92716e07ff456818f6d4125e055d4d57.cs b/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/XamlCodeGeneratorTests/Out/TDBMIDTIRD/XamlCodeGenerator_MyResourceDictionary_92716e07ff456818f6d4125e055d4d57.cs index a6e3e15cbe04..ee3191108d83 100644 --- a/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/XamlCodeGeneratorTests/Out/TDBMIDTIRD/XamlCodeGenerator_MyResourceDictionary_92716e07ff456818f6d4125e055d4d57.cs +++ b/src/SourceGenerators/Uno.UI.SourceGenerators.Tests/XamlCodeGeneratorTests/Out/TDBMIDTIRD/XamlCodeGenerator_MyResourceDictionary_92716e07ff456818f6d4125e055d4d57.cs @@ -95,6 +95,7 @@ public _View Build(object __ResourceOwner_1) __fe.Loading += delegate { _component_0.UpdateResourceBindings(); + _component_0.ApplyXBind(); } ; } @@ -261,6 +262,7 @@ public _View Build(object __ResourceOwner_1) __fe.Loading += delegate { _component_0.UpdateResourceBindings(); + _component_0.ApplyXBind(); } ; } @@ -350,6 +352,7 @@ public _View Build(object __ResourceOwner_1) __fe.Loading += delegate { _component_0.UpdateResourceBindings(); + _component_0.ApplyXBind(); } ; } From 24d3b0cd72e45e38c17bfc7175c0724756dca0b6 Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Thu, 7 Nov 2024 11:26:58 +0100 Subject: [PATCH 470/664] chore: Address comment --- .../Tests/BindingTests/XBindConstControl.xaml.cs | 4 ++-- .../Tests/BindingTests/XBindConstPage.xaml.cs | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml.cs b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml.cs index 9e632f8d83a3..0ab167c8306b 100644 --- a/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml.cs +++ b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstControl.xaml.cs @@ -4,8 +4,8 @@ namespace Uno.UI.RuntimeTests.Tests; public sealed partial class XBindConstControl : Control { - public const double MyWidth = 200; - public const double MyHeight = 200; + private const double MyWidth = 200; + private const double MyHeight = 200; public XBindConstControl() { diff --git a/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml.cs b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml.cs index 29535df4653d..107fca0a7e32 100644 --- a/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml.cs +++ b/src/Uno.UI.RuntimeTests/Tests/BindingTests/XBindConstPage.xaml.cs @@ -4,8 +4,8 @@ namespace Uno.UI.RuntimeTests.Tests; public sealed partial class XBindConstPage : Page { - public const double MyWidth = 200; - public const double MyHeight = 200; + private const double MyWidth = 200; + private const double MyHeight = 200; public XBindConstPage() { From 6bee80571157daa20346be247487cfa57cfd00ab Mon Sep 17 00:00:00 2001 From: Martin Zikmund Date: Thu, 7 Nov 2024 11:47:02 +0100 Subject: [PATCH 471/664] fix: NRE on favorite button --- .../Controls/UITests/Presentation/SampleChooserViewModel.cs | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/src/SamplesApp/SamplesApp.UnitTests.Shared/Controls/UITests/Presentation/SampleChooserViewModel.cs b/src/SamplesApp/SamplesApp.UnitTests.Shared/Controls/UITests/Presentation/SampleChooserViewModel.cs index 4921a8f1ff21..0ffb981240f4 100644 --- a/src/SamplesApp/SamplesApp.UnitTests.Shared/Controls/UITests/Presentation/SampleChooserViewModel.cs +++ b/src/SamplesApp/SamplesApp.UnitTests.Shared/Controls/UITests/Presentation/SampleChooserViewModel.cs @@ -826,6 +826,11 @@ private void UpdateFavorites(bool getAllSamples = false, List Date: Thu, 7 Nov 2024 14:28:45 +0100 Subject: [PATCH 472/664] chore: Adjust macOS LaunchUriPlatform --- src/Uno.UWP/System/Launcher.iOSmacOS.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Uno.UWP/System/Launcher.iOSmacOS.cs b/src/Uno.UWP/System/Launcher.iOSmacOS.cs index f482326e1300..e3f8e09bd0c0 100644 --- a/src/Uno.UWP/System/Launcher.iOSmacOS.cs +++ b/src/Uno.UWP/System/Launcher.iOSmacOS.cs @@ -12,11 +12,19 @@ namespace Windows.System { public static partial class Launcher { - public static async Task LaunchUriPlatformAsync(Uri uri) + public static +#if __IOS__ + async +#endif + Task LaunchUriPlatformAsync(Uri uri) { if (IsSpecialUri(uri) && CanHandleSpecialUri(uri)) { +#if __IOS__ return await HandleSpecialUri(uri); +#else + return Task.FromResult(HandleSpecialUri(uri)); +#endif } var appleUrl = new AppleUrl(uri.OriginalString); From 746f1d8af17f8f1f38eb1af6e1f9d64f1ee78ae3 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Thu, 7 Nov 2024 15:33:48 +0100 Subject: [PATCH 473/664] chore: Add details for iOS --- .../features/windows-ui-storecontext.md | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/doc/articles/features/windows-ui-storecontext.md b/doc/articles/features/windows-ui-storecontext.md index ce2349205de9..1fe2b3bae908 100644 --- a/doc/articles/features/windows-ui-storecontext.md +++ b/doc/articles/features/windows-ui-storecontext.md @@ -9,15 +9,29 @@ uid: Uno.Features.StoreContext ## In-App Review -The in-app review feature is currently supported only on Android through Google Play. +The in-app review feature is currently supported on iOS and Android through Google Play. ### Google Play Integration -For Google Play support, make sure to add the `Uno.WinUI.GooglePlay` package to your project. This package is available on [nuget.org](https://www.nuget.org/packages/Uno.WinUI.GooglePlay). +#### References in a Single Project + +In Uno Platform Single Project, you'll need to add the `GooglePlay` [Uno Feature](xref:Uno.Features.Uno.Sdk#uno-platform-features) as follows: + +```xml + + ... + GooglePlay; + ... + +``` + +#### References in a Legacy Project + +On all Uno Platform targets, you'll need the to add the `Uno.WinUI.GooglePlay` package to your project. This package is available on [nuget.org](https://www.nuget.org/packages/Uno.WinUI.GooglePlay). ### Usage -Once you added the above package to your project, you can prompt users to rate and review your appby using the following code snippet: +For iOS, no additional steps are needed—you can use the feature via the following snippet directly. On Android, ensure that you've added the above package to your project first. ```csharp await Windows.Services.Store.StoreContext.GetDefault().RequestRateAndReviewAppAsync(); From cd8986e3edde31844653cf215cb0a6323b4f5850 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Thu, 7 Nov 2024 16:02:29 +0100 Subject: [PATCH 474/664] chore: Adjust cSpell --- build/cSpell.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/cSpell.json b/build/cSpell.json index 550040fd683d..53432b651001 100644 --- a/build/cSpell.json +++ b/build/cSpell.json @@ -202,7 +202,8 @@ "jlaban", "sasakrsmanovic", "maccatalyst", - "settingscard" + "settingscard", + "storecontext" ], "patterns": [ { From ae1d7c5dc1074c074a721c60708ac505dc422347 Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Thu, 7 Nov 2024 17:59:44 +0200 Subject: [PATCH 475/664] test: add a manual test for wasm keyboard tracking --- .../UITests.Shared/UITests.Shared.projitems | 7 +++ .../Keyboard/Keyboard_Modifiers.xaml | 23 ++++++++ .../Keyboard/Keyboard_Modifiers.xaml.cs | 55 +++++++++++++++++++ 3 files changed, 85 insertions(+) create mode 100644 src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Input/Keyboard/Keyboard_Modifiers.xaml create mode 100644 src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Input/Keyboard/Keyboard_Modifiers.xaml.cs diff --git a/src/SamplesApp/UITests.Shared/UITests.Shared.projitems b/src/SamplesApp/UITests.Shared/UITests.Shared.projitems index df5919797d12..df8f9534e1de 100644 --- a/src/SamplesApp/UITests.Shared/UITests.Shared.projitems +++ b/src/SamplesApp/UITests.Shared/UITests.Shared.projitems @@ -4254,6 +4254,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -8185,6 +8189,9 @@ Keyboard_Events.xaml + + Keyboard_Modifiers.xaml + Keyboard_iOS_Theme.xaml diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Input/Keyboard/Keyboard_Modifiers.xaml b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Input/Keyboard/Keyboard_Modifiers.xaml new file mode 100644 index 000000000000..27e3eb28ed83 --- /dev/null +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Input/Keyboard/Keyboard_Modifiers.xaml @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Input/Keyboard/Keyboard_Modifiers.xaml.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Input/Keyboard/Keyboard_Modifiers.xaml.cs new file mode 100644 index 000000000000..18f101bc6b04 --- /dev/null +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Input/Keyboard/Keyboard_Modifiers.xaml.cs @@ -0,0 +1,55 @@ +using System; +using System.Linq; +using Windows.System; +using Windows.UI.Core; +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Controls; +using Uno.UI.Samples.Controls; + +namespace UITests.Windows_UI_Xaml_Input.Keyboard +{ + [Sample("Keyboard", IsManualTest = true)] + public sealed partial class Keyboard_Modifiers : Page + { + private DispatcherTimer _timer; + + public Keyboard_Modifiers() + { + this.InitializeComponent(); +#if HAS_UNO + _timer = new DispatcherTimer(); + _timer.Interval = TimeSpan.FromMilliseconds(100); + _timer.Tick += (_, _) => + { + var mods = PlatformHelpers.GetKeyboardModifiers(); + var modString = ""; + if (mods.HasFlag(VirtualKeyModifiers.Shift)) + { + modString += " Shift"; + } + if (mods.HasFlag(VirtualKeyModifiers.Control)) + { + modString += " Ctrl"; + } + if (mods.HasFlag(VirtualKeyModifiers.Windows)) + { + modString += " Win"; + } + if (mods.HasFlag(VirtualKeyModifiers.Menu)) + { + modString += " Menu"; + } + + if (string.IsNullOrEmpty(modString)) + { + modString = "None"; + } + statusTb.Text = $"Modifiers pressed: {modString}"; + }; + + Loaded += (_, _) => _timer.Start(); + Unloaded += (_, _) => _timer.Stop(); +#endif + } + } +} From 9fc4df912597f7d5a3091cc5ce573174c377460e Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Thu, 7 Nov 2024 11:44:48 -0500 Subject: [PATCH 476/664] chore: new test in Given_WebView2 does not work on Android --- .../Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs index 6b50416ca766..36f0f17a5ea9 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Microsoft_UI_Xaml_Controls/Given_WebView2.cs @@ -450,7 +450,7 @@ public async Task When_Navigate_Error() Assert.IsTrue(webView.Source.OriginalString.StartsWith("https://httpbin.org/status/444", StringComparison.OrdinalIgnoreCase)); } -#if !WINAPPSDK +#if !WINAPPSDK && !__ANDROID__ [TestMethod] [DataRow(true)] [DataRow(false)] @@ -489,7 +489,7 @@ public async Task When_Navigate_Unsupported_Scheme(bool handled) await TestServices.WindowHelper.WaitFor(() => navigationDone, 3000); } } -#endif // !WINAPPSDK +#endif // !WINAPPSDK && !__ANDROID__ } #endif From 122646d713dc53c035d28d39596f3a07f8b1cad9 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2024 13:21:18 -0500 Subject: [PATCH 477/664] fix: Use temp file for AddIn discovery instead of output parsing to avoid encoding issues --- src/Uno.Sdk/targets/Uno.Build.targets | 6 +++ .../Extensibility/AddIns.cs | 50 ++++++++++--------- .../Uno.WinUI.DevServer.targets | 6 +++ 3 files changed, 39 insertions(+), 23 deletions(-) diff --git a/src/Uno.Sdk/targets/Uno.Build.targets b/src/Uno.Sdk/targets/Uno.Build.targets index b91ffbc698e9..cea2c1957747 100644 --- a/src/Uno.Sdk/targets/Uno.Build.targets +++ b/src/Uno.Sdk/targets/Uno.Build.targets @@ -148,6 +148,12 @@ It is useful to determine all target frameworks used by all projects of a solution. --> + Discover(string solutionFile) { - // Note: With .net 9 we need to specify --verbosity detailed to get messages with High importance. - var result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpTargetFrameworks --verbosity detailed"); - var targetFrameworks = GetConfigurationValue(result.output ?? "", "TargetFrameworks") - .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(tfm => tfm.Trim()) - .Where(tfm => tfm is { Length: > 0 }) - .Distinct(StringComparer.OrdinalIgnoreCase) - .ToImmutableList(); + var tmp = Path.GetTempFileName(); + var result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpTargetFrameworks \"-p:UnoDumpTargetFrameworksTargetFile={tmp}\" --verbosity quiet"); + var targetFrameworks = Read(tmp); if (targetFrameworks.IsEmpty) { @@ -37,7 +33,8 @@ public static IImmutableList Discover(string solutionFile) foreach (var targetFramework in targetFrameworks) { - result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpRemoteControlAddIns --verbosity detailed --framework \"{targetFramework}\" -nowarn:MSB4057"); + tmp = Path.GetTempFileName(); + result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpRemoteControlAddIns \"-p:UnoDumpRemoteControlAddInsTargetFile={tmp}\" --verbosity quiet --framework \"{targetFramework}\" -nowarn:MSB4057"); if (!string.IsNullOrWhiteSpace(result.error)) { if (_log.IsEnabled(LogLevel.Warning)) @@ -48,13 +45,7 @@ public static IImmutableList Discover(string solutionFile) continue; } - var addIns = GetConfigurationValue(result.output, "RemoteControlAddIns") - .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(tfm => tfm.Trim()) - .Where(tfm => tfm is { Length: > 0 }) - .Distinct(StringComparer.OrdinalIgnoreCase) - .ToImmutableList(); - + var addIns = Read(tmp); if (!addIns.IsEmpty) { return addIns; @@ -69,9 +60,22 @@ public static IImmutableList Discover(string solutionFile) return ImmutableArray.Empty; } - private static IEnumerable GetConfigurationValue(string msbuildResult, string nodeName) - => Regex - .Matches(msbuildResult, $"<{nodeName}>(?[^\\<\\>]*)", RegexOptions.Singleline) - .Where(match => match.Success) - .Select(match => match.Groups["value"].Value); + private static ImmutableList Read(string file) + { + var values = File + .ReadAllLines(file, Encoding.Unicode) + .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) + .Select(liene => liene.Trim()) + .Where(line => line is { Length: > 0 }) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToImmutableList(); + + try + { + File.Delete(file); + } + catch { } + + return values; + } } diff --git a/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets b/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets index f5f251763e74..2a33b6875fa8 100644 --- a/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets +++ b/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets @@ -33,6 +33,12 @@ + From 60f770ce9c660875df343648cd966b31603f1bed Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2024 13:32:20 -0500 Subject: [PATCH 478/664] chore: Fix typo --- src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs index 92b63671e01e..7c3af7961702 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs @@ -65,8 +65,8 @@ private static ImmutableList Read(string file) var values = File .ReadAllLines(file, Encoding.Unicode) .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(liene => liene.Trim()) - .Where(line => line is { Length: > 0 }) + .Select(value => value.Trim()) + .Where(value => value is { Length: > 0 }) .Distinct(StringComparer.OrdinalIgnoreCase) .ToImmutableList(); From 4151902c67c2834114eca99c11878b2fe9b3657a Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2024 13:35:34 -0500 Subject: [PATCH 479/664] fix: Make the add-in disocvery safer --- .../Extensibility/AddIns.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs index 7c3af7961702..9a065098b8db 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs @@ -62,13 +62,18 @@ public static IImmutableList Discover(string solutionFile) private static ImmutableList Read(string file) { - var values = File - .ReadAllLines(file, Encoding.Unicode) - .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(value => value.Trim()) - .Where(value => value is { Length: > 0 }) - .Distinct(StringComparer.OrdinalIgnoreCase) - .ToImmutableList(); + var values = ImmutableList.Empty; + try + { + values = File + .ReadAllLines(file, Encoding.Unicode) + .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) + .Select(value => value.Trim()) + .Where(value => value is { Length: > 0 }) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToImmutableList(); + } + catch { } try { From aa41d5e32d6e1bf3df7f2b69a79a40dd826120f2 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Thu, 7 Nov 2024 14:04:57 -0500 Subject: [PATCH 480/664] fix(macOS): OnWindowClosing should not reset cancel --- src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs | 9 +-------- 1 file changed, 1 insertion(+), 8 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs index b5af923afc81..1a4c21044192 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowWrapper.cs @@ -50,7 +50,6 @@ internal protected override void Activate() protected override void CloseCore() { NativeUno.uno_window_close(_window.Handle); - base.Close(); } public override void Move(PointInt32 position) @@ -91,13 +90,7 @@ private void OnHostSizeChanged(Size size) private void OnWindowClosing(object? sender, CancelEventArgs e) { var closingArgs = RaiseClosing(); - if (closingArgs.Cancel) - { - e.Cancel = true; - } - - // All prerequisites passed, can safely close. - e.Cancel = false; + e.Cancel = closingArgs.Cancel; } protected override IDisposable ApplyFullScreenPresenter() From 1aa1bc4101d10590b6ab4d4434a404cf66101775 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Tue, 5 Nov 2024 21:42:00 -0500 Subject: [PATCH 481/664] chore: Adjust skiasharp defaults --- .../run-netcore-mobile-template-tests.ps1 | 14 +++++----- doc/articles/uno-build-error-codes.md | 12 ++++++++ .../5.1/uno51blank/Directory.Packages.props | 22 +++++++-------- .../5.1/uno51blank/uno51blank/App.cs | 4 ++- .../uno51recommended/Directory.Packages.props | 28 +++++++++---------- .../uno51recommended/uno51recommended/App.cs | 4 ++- .../uno52AppWithLib/App.xaml.cs | 4 ++- .../uno52AppWithLib/uno52AppWithLib.csproj | 4 +-- .../uno52emptylib/uno52emptylib.csproj | 4 +-- .../uno52AppWithLib/uno52lib/uno52lib.csproj | 4 +-- .../5.2/uno52Lib/uno52Lib.csproj | 2 +- .../5.2/uno52NuGetLib/uno52NuGetLib.csproj | 2 +- .../uno52SingleProjectLib.csproj | 2 +- .../5.2/uno52blank/uno52blank/App.xaml.cs | 4 ++- .../uno52blank/uno52blank/uno52blank.csproj | 4 +-- .../uno53net9blank/uno53net9blank.csproj | 4 +-- src/Uno.Sdk/packages.json | 4 +-- ...no.Implicit.Packages.ProjectSystem.targets | 5 +++- .../HotReload/WindowExtensions.cs | 4 +-- 19 files changed, 77 insertions(+), 54 deletions(-) diff --git a/build/test-scripts/run-netcore-mobile-template-tests.ps1 b/build/test-scripts/run-netcore-mobile-template-tests.ps1 index f5321ab109e4..376a9cb1da84 100644 --- a/build/test-scripts/run-netcore-mobile-template-tests.ps1 +++ b/build/test-scripts/run-netcore-mobile-template-tests.ps1 @@ -271,16 +271,16 @@ $projects = @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-f", "net8.0-desktop", $sdkFeatures), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=arm64" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:Platform=arm64" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), # Ensure that default without platform builds properly - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:TargetFramework=net8.0-windows10.0.19041"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:TargetFramework=net8.0-windows10.0.26100"), @()), # Validate building inside VS @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true"), @("NetCore")), @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-desktop"), @("NetCore")), - @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-windows10.0.19041"), @()), + @(2, "5.2/uno52blank/uno52blank/uno52blank.csproj", @("-p:BuildingInsideVisualStudio=true", "-p:_UnoSelectedTargetFramework=net8.0-windows10.0.26100"), @()), # # 5.2 Uno Lib @@ -301,7 +301,7 @@ $projects = @(2, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @("macOS")), + @(2, "5.2/uno52Lib/uno52Lib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @("macOS")), # # 5.2 Uno SingleProject Lib @@ -314,7 +314,7 @@ $projects = @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-f", "net8.0-desktop"), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), # 5.2 Uno App with Library reference @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-f", "net8.0"), @("macOS", "NetCore")), @@ -339,7 +339,7 @@ $projects = @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop", $sdkFeatures), @("macOS", "NetCore")), # Default mode for the template is WindowsAppSDKSelfContained=true, which requires specifying a target platform. - @(4, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.19041"), @()), + @(4, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @("-p:Platform=x86" , "-p:TargetFramework=net8.0-windows10.0.26100"), @()), # Publishing validation @(4, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @("-f", "net9.0-desktop", "-p:PackageFormat=app"), @("OnlyMacOS", "NetCore", "Publish")) diff --git a/doc/articles/uno-build-error-codes.md b/doc/articles/uno-build-error-codes.md index 938187ee28bd..4aa58ec23bb7 100644 --- a/doc/articles/uno-build-error-codes.md +++ b/doc/articles/uno-build-error-codes.md @@ -178,6 +178,18 @@ Some components like `ProgressRing` and `MediaPlayerElement` requires you to ref - For `ProgressRing`, it requires Lottie dependency. For more information about adding Lottie to your project, see [Lottie for Uno](xref:Uno.Features.Lottie). - For `MediaPlayerElement` on WebAssembly or Gtk, it requires `Uno.WinUI.MediaPlayer.WebAssembly` or `Uno.WinUI.MediaPlayer.Skia.Gtk` NuGet package. For more information, see [MediaPlayerElement](xref:Uno.Controls.MediaPlayerElement). +### UNO0008 + +In Uno Platform 5.5, the `EnableHotReload` method has been deprecated and replaced by `UseStudio()`. + +Note that this change only applies to projects using the Uno.Sdk. If you're not using the Uno.Sdk, you can disable this warning using the following code: + +```xml +#pragma warning disable UNO0008 // Replace with UseStudio() when migrating to the Uno.Sdk. +window.EnableHotReload(); +#pragma warning restore UNO0008 +``` + ## XAML Errors ### UNOX0001 diff --git a/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props b/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props index 296df9d6fe5a..ef290f97a282 100644 --- a/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props +++ b/src/SolutionTemplate/5.1/uno51blank/Directory.Packages.props @@ -10,17 +10,17 @@ - - - - - - - - - - - + + + + + + + + + + + diff --git a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs index b52a5c4e507a..a1f60a65781f 100644 --- a/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs +++ b/src/SolutionTemplate/5.1/uno51blank/uno51blank/App.cs @@ -9,7 +9,9 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) MainWindow = new Window(); #if DEBUG - MainWindow.UseStudio(); +#pragma warning disable UNO0008 + MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif diff --git a/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props b/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props index 1cb2d22cd667..bf4abe062445 100644 --- a/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props +++ b/src/SolutionTemplate/5.1/uno51recommended/Directory.Packages.props @@ -17,17 +17,17 @@ - - - - - - - - - - - + + + + + + + + + + + @@ -52,10 +52,10 @@ - + - - + + diff --git a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs index 02b6c1e4e73d..7f9bc9aacef4 100644 --- a/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs +++ b/src/SolutionTemplate/5.1/uno51recommended/uno51recommended/App.cs @@ -75,7 +75,9 @@ protected async override void OnLaunched(LaunchActivatedEventArgs args) MainWindow = builder.Window; #if DEBUG - MainWindow.UseStudio(); +#pragma warning disable UNO0008 + MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif Host = await builder.NavigateAsync(); diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs index bf27f78b2815..0f72526ed656 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/App.xaml.cs @@ -21,7 +21,9 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.UseStudio(); +#pragma warning disable UNO0008 + MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj index e7d30b60c49b..66c4752e55b7 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.19041 + $(TargetFrameworks);net8.0-windows10.0.26100 $(TargetFrameworks.Replace('net8.0-android','')) @@ -52,7 +52,7 @@ BeforeTargets="AfterBuild"> + Condition=" '$(TargetFramework)' == 'net8.0-windows10.0.26100' OR '$(TargetFramework)' == 'net8.0-desktop' "> <_AssetsToValidate Include="$(OutputPath)Assets\SharedAssets.md" /> <_AssetsToValidate Include="$(OutputPath)Assets\Icons\icon_foreground.png" /> diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj index 4c1a25d4673f..194ad396fa14 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52emptylib/uno52emptylib.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.19041 + $(TargetFrameworks);net8.0-windows10.0.26100 $(TargetFrameworks.Replace('net8.0-android','')) @@ -39,4 +39,4 @@ - \ No newline at end of file + diff --git a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj index 3b536a6df335..45540750ad7a 100644 --- a/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj +++ b/src/SolutionTemplate/5.2/uno52AppWithLib/uno52lib/uno52lib.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.19041 + $(TargetFrameworks);net8.0-windows10.0.26100 $(TargetFrameworks.Replace('net8.0-android','')) @@ -39,4 +39,4 @@ - \ No newline at end of file + diff --git a/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj b/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj index ef105687423f..fedfadc3f2d5 100644 --- a/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj +++ b/src/SolutionTemplate/5.2/uno52Lib/uno52Lib.csproj @@ -1,6 +1,6 @@ - net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041;net8.0-browserwasm;net8.0-desktop + net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.26100;net8.0-browserwasm;net8.0-desktop $(TargetFrameworks);net8.0-android diff --git a/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj b/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj index ceb179b8eb27..3f8e15879332 100644 --- a/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj +++ b/src/SolutionTemplate/5.2/uno52NuGetLib/uno52NuGetLib.csproj @@ -1,6 +1,6 @@ - net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041;net8.0-browserwasm;net8.0-desktop + net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.26100;net8.0-browserwasm;net8.0-desktop $(TargetFrameworks);net8.0-android diff --git a/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj b/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj index c2bd98afb43f..88cdd66cf72f 100644 --- a/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj +++ b/src/SolutionTemplate/5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj @@ -1,6 +1,6 @@ - net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.19041;net8.0-browserwasm;net8.0-desktop + net8.0;net8.0-ios;net8.0-maccatalyst;net8.0-windows10.0.26100;net8.0-browserwasm;net8.0-desktop $(TargetFrameworks);net8.0-android diff --git a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs index 1979f64729ea..0afcd05f0c42 100644 --- a/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs +++ b/src/SolutionTemplate/5.2/uno52blank/uno52blank/App.xaml.cs @@ -21,7 +21,9 @@ protected override void OnLaunched(LaunchActivatedEventArgs args) { MainWindow = new Window(); #if DEBUG - MainWindow.UseStudio(); +#pragma warning disable UNO0008 + MainWindow.EnableHotReload(); +#pragma warning restore UNO0008 #endif diff --git a/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj b/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj index 20a7d5370285..b2359027a9da 100644 --- a/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj +++ b/src/SolutionTemplate/5.2/uno52blank/uno52blank/uno52blank.csproj @@ -2,7 +2,7 @@ net8.0-browserwasm;net8.0-desktop;net8.0 $(TargetFrameworks);net8.0-android;net8.0-ios;net8.0-maccatalyst;net8.0-desktop - $(TargetFrameworks);net8.0-windows10.0.19041 + $(TargetFrameworks);net8.0-windows10.0.26100 $(TargetFrameworks.Replace('net8.0-android','')) @@ -46,7 +46,7 @@ + Condition="'$(TargetFramework)'=='net8.0-windows10.0.26100'"> net9.0-browserwasm;net9.0-desktop;net9.0 $(TargetFrameworks);net9.0-android;net9.0-ios;net9.0-maccatalyst;net9.0-desktop - $(TargetFrameworks);net9.0-windows10.0.19041 + $(TargetFrameworks);net9.0-windows10.0.26100 $(TargetFrameworks.Replace('net9.0-android','')) @@ -65,7 +65,7 @@ BeforeTargets="AfterBuild"> + Condition=" '$(TargetFramework)' == 'net9.0-windows10.0.26100' OR '$(TargetFramework)' == 'net9.0-desktop' "> <_AssetsToValidate Include="$(OutputPath)Assets\SharedAssets.md" /> <_AssetsToValidate Include="$(OutputPath)Assets\Icons\icon_foreground.png" /> diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json index 56348beaf653..bcfc9ee81c8e 100644 --- a/src/Uno.Sdk/packages.json +++ b/src/Uno.Sdk/packages.json @@ -87,14 +87,14 @@ }, { "group": "hotdesign", - "version": "1.0.0-dev.3", + "version": "1.0.0-dev.53", "packages": [ "Uno.UI.HotDesign" ] }, { "group": "SkiaSharp", - "version": "2.88.8", + "version": "2.88.9-preview.2.2", "packages": [ "SkiaSharp.Skottie", "SkiaSharp.Views.Uno.WinUI", diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index ce5194b7d6b3..7b02dded7571 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -9,7 +9,10 @@ <_UnoProjectSystemPackageReference Include="Uno.Resizetizer" ProjectSystem="true" PrivateAssets="all" /> <_UnoProjectSystemPackageReference Include="Uno.Sdk.Extras" ProjectSystem="true" PrivateAssets="all" /> <_UnoProjectSystemPackageReference Include="Uno.Settings.DevServer" ProjectSystem="true" PrivateAssets="all" /> - <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" PrivateAssets="all" /> + + + + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" PrivateAssets="all" Condition=" '$(Optimize)' != 'true' " /> diff --git a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs index 4c3db93087f1..45defc62fbb2 100644 --- a/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs +++ b/src/Uno.UI.RemoteControl/HotReload/WindowExtensions.cs @@ -15,7 +15,7 @@ public static class WindowExtensions /// Enables the UI Update cycle of HotReload to be handled by Uno ///
/// The window of the application where UI updates will be applied - [Obsolete("Use the UseStudio() method instead", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] + [Obsolete("Use the UseStudio() method instead if using the Uno.SDK, otherwise see https://aka.platform.uno/UNO0008 for more details.", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] public static void EnableHotReload(this Window window) @@ -26,7 +26,7 @@ public static void EnableHotReload(this Window window) ///
/// The window of the application where UI updates will be applied /// Request to not show the on-canvas indicator by default. - [Obsolete("Use the UseStudio() method instead", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] + [Obsolete("Use the UseStudio() method instead if using the Uno.SDK, otherwise see https://aka.platform.uno/UNO0008 for more details.", DiagnosticId = "UNO0008", UrlFormat = "https://aka.platform.uno/UNO0008")] [Browsable(false)] [EditorBrowsable(EditorBrowsableState.Never)] public static void EnableHotReload(this Window window, bool disableIndicator) From b62cc0f55c8293bac4253dcc8eeedf6473fec534 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 11:18:04 -0500 Subject: [PATCH 482/664] chore: Split linux tests into more groups --- .../.azure-devops-project-template-tests.yml | 2 ++ .../test-scripts/run-net7-template-linux.ps1 | 22 +++++++++---------- 2 files changed, 13 insertions(+), 11 deletions(-) diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index d480011e2920..7eb7ebb14542 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -120,6 +120,8 @@ jobs: TestGroup: '1' group_2: TestGroup: '2' + group_3: + TestGroup: '3' steps: - task: DownloadBuildArtifacts@0 diff --git a/build/test-scripts/run-net7-template-linux.ps1 b/build/test-scripts/run-net7-template-linux.ps1 index 4d92516b0629..7054ce2dc355 100644 --- a/build/test-scripts/run-net7-template-linux.ps1 +++ b/build/test-scripts/run-net7-template-linux.ps1 @@ -48,13 +48,13 @@ $projects = @(0, "5.1/uno51blank/uno51blank.Wasm/uno51blank.Wasm.csproj", @(), @()), # 5.1 Recommended - @(0, "5.1/uno51recommended/uno51recommended.Skia.Gtk/uno51recommended.Skia.Gtk.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Skia.Linux.FrameBuffer/uno51recommended.Skia.Linux.FrameBuffer.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Skia.WPF/uno51recommended.Skia.WPF.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Wasm/uno51recommended.Wasm.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Server/uno51recommended.Server.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.Tests/uno51recommended.Tests.csproj", @(), @()), - @(0, "5.1/uno51recommended/uno51recommended.UITests/uno51recommended.UITests.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Skia.Gtk/uno51recommended.Skia.Gtk.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Skia.Linux.FrameBuffer/uno51recommended.Skia.Linux.FrameBuffer.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Skia.WPF/uno51recommended.Skia.WPF.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Wasm/uno51recommended.Wasm.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Server/uno51recommended.Server.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.Tests/uno51recommended.Tests.csproj", @(), @()), + @(1, "5.1/uno51recommended/uno51recommended.UITests/uno51recommended.UITests.csproj", @(), @()), # 5.2 Blank @(1, "5.2/uno52blank/uno52blank/uno52blank.csproj", @(), @()), @@ -69,16 +69,16 @@ $projects = @(1, "5.2/uno52Lib/uno52Lib.csproj", @(), @()), # 5.2 Uno NuGet Lib - @(1, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @()), + @(2, "5.2/uno52NuGetLib/uno52NuGetLib.csproj", @(), @()), # 5.2 Uno SingleProject Lib - @(1, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @(), @()), + @(2, "5.2/uno52SingleProjectLib/uno52SingleProjectLib.csproj", @(), @()), # 5.2 Uno App with Library reference - @(1, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @(), @()), + @(2, "5.2/uno52AppWithLib/uno52AppWithLib/uno52AppWithLib.csproj", @(), @()), # 5.3 Blank with net9 - @(2, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @(), @()) + @(3, "5.3/uno53net9blank/uno53net9blank/uno53net9blank.csproj", @(), @()) # 5.3 blank publish testing # Disabled for LXD setup issues From 564438dcac810c58001e1630227beddfba41769b Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 15:37:40 -0500 Subject: [PATCH 483/664] chore: Adjust test build machine --- .vsts-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vsts-ci.yml b/.vsts-ci.yml index 63db333051fd..06d37df6a01c 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -56,10 +56,10 @@ variables: windowsScaledPool: 'Windows2022-20240421' linuxVMImage: 'ubuntu-latest' linuxScaledPool: 'Ubuntu2204-20230918' - macOSVMImage: 'macOS-14' + macOSVMImage: 'macOS-15' macOSVMImage_UITests: 'macOS-14' xCodeRoot: '/Applications/Xcode_16.app' - xCodeRoot_iOS_UITests: '/Applications/Xcode_16.app' + xCodeRoot_iOS_UITests: '/Applications/Xcode_15.3.app' # Offline validation to improve build performance NUGET_CERT_REVOCATION_MODE: offline From 519a05968a990c296d72ebb1335a604f9b35748a Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 15:56:59 -0500 Subject: [PATCH 484/664] fix: Adjust build for macOS 15/14 for the removal of Xcode 16. --- .vsts-ci.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.vsts-ci.yml b/.vsts-ci.yml index 63db333051fd..06d37df6a01c 100644 --- a/.vsts-ci.yml +++ b/.vsts-ci.yml @@ -56,10 +56,10 @@ variables: windowsScaledPool: 'Windows2022-20240421' linuxVMImage: 'ubuntu-latest' linuxScaledPool: 'Ubuntu2204-20230918' - macOSVMImage: 'macOS-14' + macOSVMImage: 'macOS-15' macOSVMImage_UITests: 'macOS-14' xCodeRoot: '/Applications/Xcode_16.app' - xCodeRoot_iOS_UITests: '/Applications/Xcode_16.app' + xCodeRoot_iOS_UITests: '/Applications/Xcode_15.3.app' # Offline validation to improve build performance NUGET_CERT_REVOCATION_MODE: offline From 12492515c49684cb7ddd603d9cda9511a24edb9e Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 17:01:50 -0500 Subject: [PATCH 485/664] chore: adjust for missing android 34 sdk on macOS tests --- build/ci/.azure-devops-project-template-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index 7eb7ebb14542..d44825c2442c 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -81,6 +81,11 @@ jobs: inputs: artifactName: 'Nuget_Packages' + # Install android 34 as we're running on macos-15 + - bash: | + echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME --install 'platforms;android-34' | tr '\r' '\n' | uniq + displayName: Install Android 34 + - template: templates/gitversion.yml - template: templates/ios-build-select-version.yml From 9fc11ba1fab497af07cca7b7d3a8e70fd4487f1a Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 17:01:50 -0500 Subject: [PATCH 486/664] chore: adjust for missing android 34 sdk on macOS tests --- build/ci/.azure-devops-project-template-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index 5bb5d0e1d496..ceed86143930 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -83,6 +83,11 @@ jobs: inputs: artifactName: 'Nuget_Packages' + # Install android 34 as we're running on macos-15 + - bash: | + echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME --install 'platforms;android-34' | tr '\r' '\n' | uniq + displayName: Install Android 34 + - template: templates/gitversion.yml - template: templates/ios-build-select-version.yml From c7f84f4e6002072fe794c9253683253856a5d461 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 17:20:28 -0500 Subject: [PATCH 487/664] chore: Adjust android build --- build/ci/.azure-devops-android-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build/ci/.azure-devops-android-tests.yml b/build/ci/.azure-devops-android-tests.yml index 3b4212fb851b..b8f4d3833e9c 100644 --- a/build/ci/.azure-devops-android-tests.yml +++ b/build/ci/.azure-devops-android-tests.yml @@ -36,6 +36,11 @@ jobs: - checkout: self clean: true + # Install android 34 as we're running on macos-15 + - bash: | + echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME --install 'platforms;android-34' | tr '\r' '\n' | uniq + displayName: Install Android 34 + - template: templates/dotnet-mobile-install-mac.yml - template: templates/nuget-cache.yml From a3f12c99014e1717413b25c1ff549a13a74d0621 Mon Sep 17 00:00:00 2001 From: Jerome Laban Date: Thu, 7 Nov 2024 17:20:28 -0500 Subject: [PATCH 488/664] chore: Adjust android build --- build/ci/.azure-devops-android-tests.yml | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/build/ci/.azure-devops-android-tests.yml b/build/ci/.azure-devops-android-tests.yml index bd53d98f5391..df4ed81e043b 100644 --- a/build/ci/.azure-devops-android-tests.yml +++ b/build/ci/.azure-devops-android-tests.yml @@ -36,6 +36,11 @@ jobs: - checkout: self clean: true + # Install android 34 as we're running on macos-15 + - bash: | + echo "y" | $ANDROID_HOME/cmdline-tools/latest/bin/sdkmanager --sdk_root=$ANDROID_HOME --install 'platforms;android-34' | tr '\r' '\n' | uniq + displayName: Install Android 34 + - template: templates/dotnet-mobile-install-mac.yml - template: templates/nuget-cache.yml From 9c0456d5eac4cbae0418b77472bcdac26ce948c3 Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 7 Nov 2024 20:18:15 -0300 Subject: [PATCH 489/664] chore: remove disabled Menu when dispose --- src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs b/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs index 7834d2a84f25..76b58839d274 100644 --- a/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs +++ b/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs @@ -152,8 +152,7 @@ public void Dispose() if (_unoMainMenuItem is not null) { - _unoMainMenuItem.Enabled = false; - _unoMainMenuItem.Visible = false; + CommandService.RemoveCommand(_unoMainMenuItem); } } } From 1566858d709ce7c15193ba926ca58ac73bf15e50 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Thu, 7 Nov 2024 20:04:45 -0500 Subject: [PATCH 490/664] fix(macOS): adjust scrollwheel speed for normal/PC mouses --- .../UnoNativeMac/UnoNativeMac/UNOWindow.m | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m index 7a72f4ebfdcc..3b1e6cb9ca7c 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m @@ -790,8 +790,15 @@ - (void)sendEvent:(NSEvent *)event { // scrollwheel if (mouse == MouseEventsScrollWheel) { // do not call if not in the scrollwheel event -> *** Assertion failure in -[NSEvent scrollingDeltaX], NSEvent.m:2202 - data.scrollingDeltaX = (int32_t)event.scrollingDeltaX; - data.scrollingDeltaY = (int32_t)event.scrollingDeltaY; + + // trackpad / magic mouse sends about 10x more events than a _normal_ (PC) mouse + // this is often refered as a line scroll versus a pixel scroll + double factor = event.hasPreciseScrollingDeltas ? 1.0 : 10.0; + data.scrollingDeltaX = (int32_t)(event.scrollingDeltaX * factor); + data.scrollingDeltaY = (int32_t)(event.scrollingDeltaY * factor); +#if DEBUG_MOUSE // very noisy + NSLog(@"NSEventTypeMouse*: %@ %g %g delta %g %g %s scrollingDelta %d %d", event, data.x, data.y, event.deltaX, event.deltaY, event.hasPreciseScrollingDeltas ? "precise" : "non-precise", data.scrollingDeltaX, data.scrollingDeltaY); +#endif } // other From 77af90e84e546e37771312c11d3d7ae49e8ecbd5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 7 Nov 2024 22:36:50 -0500 Subject: [PATCH 491/664] fix: Don't include OpenSans for libraries --- src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index 7b02dded7571..9c1fd2afed5b 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -81,7 +81,7 @@ <_UnoProjectSystemPackageReference Include="CommunityToolkit.Mvvm" ProjectSystem="true" /> - + <_UnoProjectSystemPackageReference Include="Uno.Fonts.OpenSans" ProjectSystem="true" /> From 685c1f0dfbbbd0d96d7d7d7d5beed397ecd947dc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Thu, 7 Nov 2024 22:37:14 -0500 Subject: [PATCH 492/664] chore: Bump settings to latest stable --- src/Uno.Sdk/packages.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.Sdk/packages.json b/src/Uno.Sdk/packages.json index bcfc9ee81c8e..f173a0417985 100644 --- a/src/Uno.Sdk/packages.json +++ b/src/Uno.Sdk/packages.json @@ -80,7 +80,7 @@ }, { "group": "settings", - "version": "0.1.0-dev.144", + "version": "1.0.25", "packages": [ "Uno.Settings.DevServer" ] From b58de0f09e78a5f8f9297fbb29de4cc47c09e0d2 Mon Sep 17 00:00:00 2001 From: Andres Pineda Date: Thu, 7 Nov 2024 23:18:16 -0500 Subject: [PATCH 493/664] test: Image inside scroll manual test --- .../UITests.Shared/UITests.Shared.projitems | 7 +++++ .../Image_ScrollView_ChangeView.xaml | 16 ++++++++++++ .../Image_ScrollView_ChangeView.xaml.cs | 26 +++++++++++++++++++ 3 files changed, 49 insertions(+) create mode 100644 src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/ImageTests/Image_ScrollView_ChangeView.xaml create mode 100644 src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/ImageTests/Image_ScrollView_ChangeView.xaml.cs diff --git a/src/SamplesApp/UITests.Shared/UITests.Shared.projitems b/src/SamplesApp/UITests.Shared/UITests.Shared.projitems index 0890fa6560f4..7d196700de48 100644 --- a/src/SamplesApp/UITests.Shared/UITests.Shared.projitems +++ b/src/SamplesApp/UITests.Shared/UITests.Shared.projitems @@ -3666,6 +3666,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile @@ -7660,6 +7664,9 @@ Grid_MinWidth_MaxWidth.xaml + + Image_ScrollView_ChangeView.xaml + Image_Stretch_Alignment_Bigger.xaml diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/ImageTests/Image_ScrollView_ChangeView.xaml b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/ImageTests/Image_ScrollView_ChangeView.xaml new file mode 100644 index 000000000000..c48bd68f7d38 --- /dev/null +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/ImageTests/Image_ScrollView_ChangeView.xaml @@ -0,0 +1,16 @@ + + + + + + + + diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/ImageTests/Image_ScrollView_ChangeView.xaml.cs b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/ImageTests/Image_ScrollView_ChangeView.xaml.cs new file mode 100644 index 000000000000..347c2d4a2eb1 --- /dev/null +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/ImageTests/Image_ScrollView_ChangeView.xaml.cs @@ -0,0 +1,26 @@ +using System.Collections.Generic; +using System.ComponentModel; +using System.Linq; +using System.Runtime.CompilerServices; +using Uno.UI.Samples.Controls; +using Microsoft.UI.Xaml; +using Microsoft.UI.Xaml.Controls; + +namespace Uno.UI.Samples.UITests.ImageTests +{ + [Sample("Image", + IsManualTest = true, + Description = "The sample showcases an image inside an scrollviewer. When the image is loaded, the scrollviewer changes its zoom factor.")] + public sealed partial class Image_ScrollView_ChangeView : Page + { + public Image_ScrollView_ChangeView() + { + this.InitializeComponent(); + } + + private void Image_OnImageOpened(object sender, RoutedEventArgs e) + { + scrollViewer.ChangeView(0, 0, 0.5f); + } + } +} From e6095e4fb036405de55a114190faed908919ede6 Mon Sep 17 00:00:00 2001 From: Nick Randolph Date: Fri, 8 Nov 2024 23:44:30 +1100 Subject: [PATCH 494/664] chore: Add detection of uno.sdk.private --- src/Uno.UI.RemoteControl.VS/GlobalJsonObserver.cs | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/GlobalJsonObserver.cs b/src/Uno.UI.RemoteControl.VS/GlobalJsonObserver.cs index 1254ac2381b8..9dd275f0fab3 100644 --- a/src/Uno.UI.RemoteControl.VS/GlobalJsonObserver.cs +++ b/src/Uno.UI.RemoteControl.VS/GlobalJsonObserver.cs @@ -1,17 +1,12 @@ using System; using System.IO; using System.Text.Json; -using System.Linq; +using System.Threading.Tasks; using EnvDTE; +using Microsoft.VisualStudio.Imaging; using Microsoft.VisualStudio.Shell; -using EnvDTE80; using Microsoft.VisualStudio.Shell.Interop; -using Uno.UI.RemoteControl.VS.Helpers; -using Microsoft.VisualStudio.PlatformUI; using Uno.UI.RemoteControl.VS.Notifications; -using Microsoft.VisualStudio.Imaging; -using Microsoft.VisualStudio; -using System.Threading.Tasks; namespace Uno.UI.RemoteControl.VS; @@ -176,6 +171,11 @@ await _asyncPackage.GetServiceAsync(typeof(SVsShell)) is IVsShell shell { return unoSdkElement.ToString(); } + // Can't find Uno.Sdk, so fallback to look for Uno.Sdk.Private + if (msbuildSdksElement.TryGetProperty("Uno.Sdk.Private", out var unoSdkPrivateElement)) + { + return unoSdkPrivateElement.ToString(); + } } return null; From 1eb2127bde24fffaa524dcc83600869bb4851a85 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Fri, 8 Nov 2024 15:28:05 +0100 Subject: [PATCH 495/664] docs: Add Sign in with Uno page --- doc/articles/Assets/uno-settings-main.png | Bin 0 -> 23220 bytes doc/articles/Assets/uno-settings-popup.png | Bin 0 -> 3535 bytes doc/articles/Assets/uno-settings-rider.png | Bin 0 -> 66360 bytes doc/articles/Assets/uno-settings-vs.png | Bin 0 -> 6342 bytes doc/articles/Assets/uno-settings-vsc.png | Bin 0 -> 26458 bytes doc/articles/Assets/uno-settings-welcome.png | Bin 0 -> 27159 bytes doc/articles/Assets/uno-vsc-csproj.gif | Bin 0 -> 440013 bytes doc/articles/get-started-licensing.md | 63 +++++++++++++++++++ 8 files changed, 63 insertions(+) create mode 100644 doc/articles/Assets/uno-settings-main.png create mode 100644 doc/articles/Assets/uno-settings-popup.png create mode 100644 doc/articles/Assets/uno-settings-rider.png create mode 100644 doc/articles/Assets/uno-settings-vs.png create mode 100644 doc/articles/Assets/uno-settings-vsc.png create mode 100644 doc/articles/Assets/uno-settings-welcome.png create mode 100644 doc/articles/Assets/uno-vsc-csproj.gif create mode 100644 doc/articles/get-started-licensing.md diff --git a/doc/articles/Assets/uno-settings-main.png b/doc/articles/Assets/uno-settings-main.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3d037adf46cc4f2088bd81ca29db4c9ce18340 GIT binary patch literal 23220 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 J$(|#b{{~&~_=^Al literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-popup.png b/doc/articles/Assets/uno-settings-popup.png new file mode 100644 index 0000000000000000000000000000000000000000..74a2b5d5a85b59821e4a8b0ecef982f0484e1b90 GIT binary patch literal 3535 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-rider.png b/doc/articles/Assets/uno-settings-rider.png new file mode 100644 index 0000000000000000000000000000000000000000..419216ab8ab7ee1d65d9a86615d0fa221cc244d4 GIT binary patch literal 66360 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-vsc.png b/doc/articles/Assets/uno-settings-vsc.png new file mode 100644 index 0000000000000000000000000000000000000000..5a81f957ac17050ed69c6c1d0c70ff1b1ca52e26 GIT binary patch literal 26458 zcmc$`WmFtnv@MK7a1X9Q5+Jy{YmfwYmtetNf__@&gUB|7i*ZWqu+n zA*$-Gf3)NmYhvX=et%MV_`XHN)u@h)m4i{H;lq&weJvH(-R8zh2QR$Kr11~^Xm9o5 zWW;Ql{1=(Q%<^g1l0vTiW#Uamn)(5K7n0iIadmp)vV9mF^A`Jotf^>FV>OY(tI*XZ zY=tI54yjJNIsdz=%cqS;&#@Ax>5mP~()oA3#m(l5jdW z`8Tf+;$l`Bj>t|}%YBJimMR3#y*>EZnlkahuEQ4$c0=|r?dXl$jODKGy3A0E3uij! z1nXXhmFV-?;QF2$sfw$u4Z>Qqxg4{tCp7JAiu2}mq0PPXv#?FByQ=!N2J&yM!f`7C z4$Y5#G7s0y}V4TQ?5He%bg==f9qOJkYU#e@n;uv`Q3IR8)BjsS z6R8X z?|Dk=O4$>yxdoZAzqEve1P21S_X$4>{{^OR!}ZR2X&eb}znA*d*=-A10v!%;iU~@= z=W@_#Y2i?UwBsg)(#s(D?7E>*o-1F7DqSNkPy3GM7|K69&*SD4zlC76)NlxKmVY{O) z;28bxhkOjfi|ofA0z=>&0&4;g(PrBtEWi79^6%R}O|b&sfP1|geO9%EPWHlV`*^z7 z_#a=?F8A3pb7SoURw0jnxneX}v9;Qx^q)a25uu&~2Zj}51`0IO;7Z2PL8eIXA4~S1 zfBbhv$K)GAGCoSkX9*?ZM?}C#swmqGUO-Nuh!EIHy_Z|Ri@xo7h5c^sowFXuQC0UE z-x5DJ1-j_WX}0q!teJDO$JJ&rUL6y7U{nY;Nntq!sFnB}+C0(ah<@(#IUiV{$h_s9 zZa$v`{nQbEUmxiH+e(^qF)0~xdDfOXQT-Zs5%r?ryhNYRwmhjdGa&)GZNc+-ZiU4f zW3RLr-M&n9l>41-EJxSH0ON~ze6K9app0*Qn}7ztAAw*i`90}kz&O=xEv@Ovc1ryB#fI|G!l*;ir`c#NA5{^$Be)je_P!-3u+RfzcKkqon2BA1n?e7q@rBG`GZ!5h z26)0O4}qa0vX4)>lp6hEPjJR`@j;Vim&Xk^^S8FW92d8(2^da_9YCgy8&a=ivN6zo zJ;8|VbbJ>A6)!IfH>?q-DU~KHQWGhFtf^BugFv+h^JR}MgM~RTgM}Pw`l@v97zums z8Jv00Hy=ksN@Jz>&3=G~AmpIpl|{+uY?mQ+Q)x&hgCG=BqK3cN{C*eI_SmoMc4)j{ zx-wsfh9M^Z%|fh2vXnE(6I|7FC7SiNvNEKbL|N9$Y%0W=7WI#BE|qs5=WBK&R+%_> z%&hN4sXd4UlXxD-hBZd~B5=bL)(ugD4)d(z^Fm&`^%JQmzvgGj7J6t@nie9;tj*D-rQGO#4H#$abJ%ZJ~O8&a{inys>ztk^-bn`fusOofux3drH=To3{kOLZ5-PIo3WEW z8gZcy(9lr3dMAz54rP5vsjZeUsY?Rt!L06OWddL9mbv?hf=>cpn_Ka1ol!(IV~eSw zP7l)Td`&RNdfO61B@<>sf>EO7oV?nSTvfx+N(5Iz=8OS(THe9Z(a&O|6TSp@Ni=tDIEK-x+=ToR zuDZe!f9*pNnw$;dnUt)41Q0&@4yR!|D%+WrNdBO_&W@#nhEnvY{Q4BrvpIm1Tj$^i z4gRtJ$4Pmii8|R3LtF)SxB0yiFpV_r{60yHEFfcW#D98tc#uXuClh$V4QyS&g(RW8 z1oqFm9Q1ueePv8wY)E9QYBULK6XpdIhTqq z>j`_lB40S_PXM+^*fBlucD0=1?8vy|XpTzd7;W06SiV;PLVt^Mc%R^!m$w zAX?|66WL?(%elexkl!8i%T~wZ>sv2*qV}^R^3_I?g}~P*CQCK<;j`x zkVh74>5Pqh>MSO|=nO^pELLEMyN_t5%IsWS_>a*)$xUQS1JC=o#E)8u?3)S7`SVS~ z3jyrkYz^Cbe6qx#LM2gT znOkMEAhY2(yUrS-zG5!EU0;Fn0^gkGTDa_v`66YG9o#O<3wmGQB*ppJDd``LZ@(lX zZpoTB*oZD$rnXiXJ_Vv>+^=3VQYjqyZYwze6MrLo!DO_bviJxSPj0iCcv-4;n z#a-y*oVXE-^uUv3!ozqldr0oqv2yHrMUvP{6uol+K!`988q|t(8L#oo(RRbcWxBat$8|ZlUp}KX z-Jnyr?bZjX(`!sP#AmP3Z%a5r^d0a>XYNcK5>fdzhA6o~x2p7Rpu}{$Gp_3gjnbV( zL!GvbeXqPf%kDlAAOw|cp^?C_dq9$9`jSccjCUWYJYfOK?yQBTJXr2~a3=)S!<(WIc9@VAM%gc=(=pFyVeD`TSwcN6S0rgNFZ- zfU407f{Ads71i%IFTB*Z+ZHRl*D*8C;q?vB9H5?qpqhIlmD%^W8tdO=f_f6xW z?|@UdDO3%N3&nkX$VhTZ#f7|H-yUOdciClocaFyX?FM6%f_{|eNlpS9Y6X-WEYkO9 z%pFVEmdyUe!JE9}V{G45)BHgu%^|RR9!8UMgN=cR8iK9|&b5dB)l1|#VYV9uqiU-B z$0ZTpmt^1r=^w_Na_jLcGl|U)&?3CSM=4cIwxssnVf_@VHWlxn&Jg2 zf_{`tg@w_|!t-kemLF(F6Ll#et6eTv_>oNN9dijFL;jpL2 zP(j=mN0S{qkobw7Yh;a8htRMbYGkp2+W*e!-8(c&`j%?gQj4~gk|&OD%FMmFd*%yC z!*vCFYCjJB|M)!eVMpPXy1Dt;dVekm9v5Db_%L-g%sc|Mn{!2pY{aM)Pb zUFVcZUC{SPuh~C6?n(z1%r4Z0QKRE4!>(|&uoo(nzJxexVcE6z!SW-&w^quLaq_Sq z{;w&K3Vkt}bfG3;+daXk`-NfBH0U> zAoPAz-s3G)wh7JL!|@^SFivt5tZ`8H5(IO?t#F!LZ|%yl{r%62ilRi$X3BN1hZ zjJ@^bI(+b#G99?RTrk+Dph|NlI%h4?{Z(!$1?8NNHge)K#@Ix3@U#Eqv*m+oqj`6+ zz<>^bd=FP0Uz__Af*yaW#TjB3Fi{lHkDii#qB$bTk1vOE6(JOJpMIi<^t)U*=>)(0 z38z}92xyYu9n>+jssiQbbSAF6-VxdBw<2o#w1hO2PBf8daZbhp zoBg`VDEWOyK%d&BSu*+?IE8D1TJ{R(WI9P#{I?-K*-&Gn*xEzdb2Z|3@7rx+3?4#M zlJH=rHcS!Q#KMVh@rz$3P_@a^MF){ZpgHVQhTIXpib+jA5(;|V(v~)oJ%1VPQ1Pvk zD*$P}uUo-HZ95=cQ-d1#&@?S7;mpqxQrEaFUB*^)*={k!xAoxwq~|Lb31B_SL)|^X zf_bNlW$10uydkOd(lvhnIKA4CD^1~RZU&j~uXe=iEiDZi)XqY|7*FQdaS!6|pnMEi zsN<)HnEXqShQn2iy!+z`ag1T>{gK1ZBDKwzk#}SU?w9=-1_~auC!AqVu8y5#WRG3U(b!)+E2~x1`+l7;$S6#TX4(^``?_z$Ss7aTeLtoaWudqBegG#as-{ry)rP2|V^TdSyvV5Z+ z9Ln_hDvNcA#Dd#(0!}P>klq0K6^)rJOXPTY>KW{KNd;901M{0CJJ=Lqy67r=$=LqS z{r0?|mHENn2TN@$H>YzeL*iaLM2_|?uXla$>zc1P->&?AeJ}9~eOX<|8HD^kY$_M~>O%r@g4IOhMZgzXp{>@y)A3Rl;goIs#r)rJ^ zOV$`h(SrWqQzqCZ+yJ%@(|LeEFDl_uxM!RJmdn70W^ z`PXLx@f~OUKLwxo8y8^#RFZdnS#&o1p!P<%HGEJVg*^stxI%+BZDVjVbADxIC7CXI zz3W10E%=*Kf5O>ChZCOPW3EXU-0rNF(%WojD85$!_*1Xy^N$X*jMOGZt~c4Bf60nm zCV#E+n0=x79EEgwmEHa4<>;MI&`Oud%Za)dlC#JBsME_#P`x}KOiJ9pI!{nKa-z`td@J_wqB9WKAOP~ zGTX0{+N*sz(SvT?;FdQ*IsFou+6q8tDPrI>3}FV3zeK{fu;%#+5e0zKfoHoi8MsH+ z;EF|G7!;a^uIP>8a}sb$s|f@6IeWpN>s;6y&aLe*@h^)L2KBgF;PYs7QE|rbV*LUO z=L?K4nkm6;Wyvk~>FQ*?fSmMg$Qz*INRwlJvLw%b8vJ%UY2YWF#fcBX-+a2r_Je&c zc}DYoyzA&oXMQAXKac9z==d-7#CFHY`=<_fj$66MgA34wZ4*en9Nxd6DEl{vI2*L$ z>*nou9|%-EmPD=l?OvztvpQ90U)=_4{9*rlNi#e6Pf2s|-%1*QQ2LiM`iBKv>JrsQ zk)#RL*2q$9(5}b|tkx9A=vxsOek)nK85|bYzqMVI)fd=tMPfI|j_!ED`?!BsbSBLW zz3Mbu`J$w6=euw9xL;%!gPs;kG4}Z2y1s&?hKrki?&#)khsLWRyqG3Zt1(8YaWaqq z0@xtgokgA*2u9yNdT>Jz53>uNI(dfDzil{?cp(Szb?&*Xo4gkGHz4wmOmoJ;-h}p# z5c_=#+u5gtC&Qr3b(}+@SY!D}X;DQE!8V25t7>4*wT$Fg)IoWGy_zsmP>!YhW~fy` z_38bq)KdHiGQ#qi5Gu1wZF*#y_L-0brt>ky@P(uR`4ZDvM$a+wN{oD4PLqXioR?{m zMYwyDVyr+-ObO4|^+ryIP?f9Te9OPSk&9 z3j@&iy~LXj63!NlcfX3x0KzabyGVFPf&Ilk(Xix}+KV?I?x2(|(R9S@rF*V*W83Lg z&02UTySq=#p}EG#t9fXra;>GDU60X+2y{yFyxTB*2f5qpg_qikqp={QRpu<$>$i5G zeQt|()pGoW2c5CCW|kqJ$OMh;tW^pOC@L9KP9S@v(k$Ut(wH|!rhC6h`s%t@jl;v) zpfW&<$qE~STWnq^13<+6I6U_HC9G;WwI4tHD+5%ijqHoQjHLRF3)Oz-!fqC7gqvHG zGJ7BGQK6vD@pbqZ{ry5$xu4EBqgWem=(ZEdyxc4I$&BPOimlfQce{U_Wb_zj7r+hv ziKMl1J2Fa!{CaWR4scAky$VIvD-sfJVI^vpWle z`FWtF>4c?sjd5-MdwGgA@HFFgzJf_`nv0>Ik#8ZUhi!abeGF>wDcNn3>URw}6hRlOAS4gvG~cKPM%S z)#Jze51K8;<`mGYk7Fqh0%%t|WQSf)zdEoHi!r<+?SIFUqNXq4y|Tpyv(H-}t?)!g zWz-#831A}#HMlAN^gdAVj&1nMw4uIry-+^#7m@VU5Pv`zjx>N@_>iBW(M*d#1i^W& zKg%u4b3n9+nq4enfiPk0Mk#AMrw=?~_MLU1*LFxo6^!JY^-$kyl@&i|JT@?tag#KW zLI+utU93*TAbyD%&~Xhg65dM0#4S|*O1O)Iwe(i81BYA(78}?$fxc!lRairDud8Us zt{t3C;9DQimbuH?_bkY|TNajJYa*m+k{VZxEj9!)(8Y$MuIn^T6UbTE;vDBZJ}S7z zg3EGMM=6ZpZL~_>>_0N5Ur<${zKg>5)Nu88x)95W6IIieZm2PY;lRYj?eV2KO;Lm6wsGW!yg3R2Y`j1BbA3KY-bUVi+y^aRMW62PE{f)khH?V( zz@_FOV=heiZ*SW{Wuefhix;#Q&4R&iI|T~MhR2cV`S$lw_N$-PR(F-)V^$$iR_A%& zVtB(H#-O^!0Wo30>#3p#>Wss8Z{>jf zB5!wiw)f_YIpGwSaBd-PcJ@NzZn-5P>!DV^bh$ziw>VdPF(o)@cb~Yb>?PN`N{LRt z%`dAkyeeI3>^^IJ)-X0dqpcMtj2*xsIC`=#4^{O&$*aX=sVZ1_g?zq9qeL?!rPx0W zjm5}~yc<>^qfu!Jr}N$VIP^7@d|%)z#qhBMuboIb5Ap8X%8#1jvIO~vrkJ2&J=()k zYejsApFSjvmC6C_c#b#XL_e?1N*))mHR*Ht7?SER$Tu57Lxc^5IMNN_Nft7jHT)Y!HbWppbI4n_Xnb2FyC3DCm#MaIzYI!$c_ zb`)sP9<-yL>AD^Xy1XFoy{ZKV5^r23kn_Yee2=W&58SbCBqL)>aJ$dEot+Q71!(qV zs?&5=d}a6jo5xQws{%sX+)`)wymcKN9RRV~8wfnqf5}y)WIMDbP2wh_zDUvr+0R3m zf3XxT{4j)?jLq-U#7P{;|20)+3)Xr#|fQ|Ob|j9 zj_-41uL4BSn!q*w%XD%C6Knz>u|7~n4*-OHnxnjuaA*v-P)x_u@y(W&$wl$Qao2;f zeQzJ)^4l?@d7}l7S)c67XDOFyf^QI2Y64fs^PboH=0Uh8A?8H@24j(Vj4XZm+e%lk z#WTUp(#5$rys)&D#Yyi8Mb%|Cme=8k_=(rv-p+XAy_t>u<9zP5TcQc+jEV_kk~Kix z7R~~gMp$)~qqr0HW@7;4M@DY%t)Io2m|x3&+W9oQd|MZH{dCs1gMqhdgbMQf_;>st zsvzUV!0RWGTK)PU{oY4AdVW;p#%J=O1+S2+ALqqTFs?vjYz{10k(KcLd{zdYUtQUt zp~^c;iKVCrozFW>#>O>Uw`>B&0>qk4@!+LHVUVKmwy(y+vOb`x=aWIr1h_xY=Ac zu(z;vnt=105ZDDpvStL3NbV<(PBp^AEw%eka{C?(G3t7$9)%pQ_j_}fEkOCfd8f-( zwcrlh4T_tAqcjcx5Me;6;u7&WFFjV-w>NOR=s88pX6Ff?{Q>y3BZ~J~HBuz}RVL_( z-i!E8BtU7@5;$~DY~n=x-Nue>K|$hESzWG(?M~2*66uhN$FDOhThtrMMU5JytB)jU z?U5VLJQ;J2_djaCcuBp%!QJ#=ea0^)O&@=>6D^MYuHAw%u6L*k5j0A2K_fg;jaz|#XH^w7 zxw4Ko^b-hLa#)--PrZd1bC;j(;ld%JQaPCjpk65qySK!L61rc<9JJmfXZFT(V8vC~ zp%qxeTl)M71T?mH=Ph_YN^cs>Cz@`SiYaM;bEO+ueu{_Vdxb-`DOt$~hXzP3mF?Sb z_*=O3ChGXV{1xZ<8~6Sq6OkIBUpCNhH7au{R}^_BnxAC5G}|K*4+?*k)yDD2)mLc+ z0h-L8@6b*G0s4YF%P+iEPeK5L_R0V0*KfK6mrh@35uLZtN@))x>apkdW_EV@Y_CDB zV4?eJHKOzM&NLUs8jqi1m28dKp_W4;0P3;XND#4-OnA)(z&UZF(Z|jDREf^RspweB z#05mv%0SND=IE`TwanQ{sd1VJ^94hrb>Ozh%q3K8{p^gVdq`Aowasp5}8q;`mA2=zU;u>|D)>kB{h@>}=QP(x^qFla^3rS$^_! zM4C9-IXHL^NFo+LO1E+*{4*yo=(2$WN=soIQO~S(1gcPjBseIb1cwTy3r3+%lY};= z$jghZf3MA6Q@zVb9&VOXmq`-aoaJJ-IPw*b_aaR8{7)>E z*`YSy7RSt?R!Wi=&BhI}tq+Q83uDX)JsK+-WSXJEpo!S}=PoQTvjAz&XzY?!&#R4r zf4urtjQ^l9ET(oScjIdoK-J5n5B(-Q&twwOnNB9MJ!;X_o z)GA%C44T6Y4pGr8FNG}47oh0gEj^@okMNnyyxW)i6tlZLT_0*~u8Z50H9%wX`&Z~b zisLF{b^iiDwQO5d(BurP6|8mJx+Y_+{z2(GfaLrr?-F=@u%nx1%8JLmScv*^a_PdJ^A zyceyU4HLZFF{X?r9p(K;v{dJq?r%2l4Sj3?#-KDpLcI};ArpI<`pv|)2KiR?uzvwq z)n{!TkDzMGO=i^S`aybR(?f^m{DHu6>g{n&OHcR z2?JP8DXtoTwS=v)dw#;{E^+B38tA zT`1HjpJY*9TQ!8lFI_)h*YEeeSabu#v~?MN#9l-l{8xj$>zt=(s(?ej*cjQb3N=VH zOAg6>xv5$V1T_699!{wJVNc#jQY%EK6L4%T9;L|kzGX}$M~J*R&cqqg z-sJ(4@EvC?JhyzPAz1TEqI=kprB)EqF~|9>bJ&Hfgd45NVWt}VM_hP0YNI4tfMEhV zkhP}ZLSmlC=T6v=jrHOmkpi^dY(SN{LzYlPFIfvDj>8;E|ILKS-*|I8U%K9zxhPxS zqPiNeAwKFX2(9jAbczkMJ*F_914ZwA^Vv{7J#wNZF|Sch`{J_d0(}QOzGHvlC-e0B zxY@xJ>&6ZXmf+%@jb+3mH(W?ADvN!{DERt$MV$N{@|vv^A>N%2qKC zz<=nOr&7;4SnbNxEh-F%X; zyi(Q)aVc3wv@u_+dz&6i-EMPt0H~zI-uEK?wtuGR44^)?w8VMk_%Uk!e*eqDUr=Gm z6D$Uu{kTbYc4Y6Tlf}tZ;l0IhmUYvLcn852wZH2xDj$UQo}%`Dvf}?kg}ibG0M3^7 ze_=)bKaDp3)jEYkzFEhGOHa(y`RG+Q^CCMAh@B8X!QMAqmyI70I&1L{p`w%}iWAyl zFCo#;@aok$py|9*#$5xU!coZs7KE_Y?g@@>$3AZ*7YB8;Dzb>n&_?q3m62&xCgo)i zmcEf{8@$ldbAf8I|CKg9`b3Ah@Y2sC@gwptmt-C*hN|{wVu|kvBI^g9D1GUxSv0As zn%O_d#3DkyLq;QQwtFU_#Uu~|#uATEJmc$3dXFE=C!zjX07wBru>7Obs+rnhgox2!0m#38;wqybQ*I|O%F z+tT;{@o}UBvNPEn&x%VkXK8tm@}K0j<}JzO+%niZCO56dI!d!@xOD*w1M^okZ)*>7 zP~{*v2WF@$()l+RftC>6x65QeICh4g9TBgar!ft~`%%$|-`uW61u*(7ntEN4e5_>CBU(>ZT?;9o?08kW_m5BL&ufYZ?Wl-2 zvv8n{OV;H+2T&UX+oehtXTj>X0Hw@#=xyY20XCa|;DVxXim2&krz`o$T7#Zwaa`pC zAw!8zS0p{ecfVSmI-^SiDzJdSs}f~ z;{q5)-clPzycf5}&7le`F3+#UJmn2-dS>$gsCIz((E)FLCtcOWpL6OQ#dA8^=6dJU zR|N>bKgtQgQ8y=%A>Ip?CRU=u8uiMN0Hw-S#Qm-OV3IS#c>HAKd;RG{nrQFnV7;>H z$Ihf0{n_Oc%Z?3zzD>!YP!boSH6=vvpSj$pxrt&<6EO!&Ku#pt542m#zuC{SC+XN^^z0TL?p7hDRn){^kx=1YfN3DZ<6-Cc^N>o$w}x zgCiZJ_qI9CF-?~f{_-vTyk$PyoaiZFiim?}MtDqWDWc#oQm ziOFuH=DyW_R>F{W;<|LuG>|IkhG2nlw1nC1c)cxx^``X92S|Hh5&#{=qNHbQ$*V3(KEtkUNRy2XoDSIdes~-PQ6T-<*j$`<4!P_%JNu& zx<-;042X{+9Wsn2*EL_-X1kOzl9{c#s|LWI0GI?DuBJV7tN!IZwB@UVUsQPJhyX_pU366oks_j1(%%il>Y0Vrq_&Fa3?q(xM~ z32qO4C8rljTzNoi9$m)(_?Uh#jh9aTP-(|uSKY8|$lh3V6@IBMGvEhUH^f6-t6bY8 zbBpfn1M6qe>8hp)GWRygNqA=>CXJ@0PaIzrJcyaVj_R?Eq1WZ^Hs@E<;ty%;`eUE! zBlc~`ib<5ElcU-NbAt9Cmur<(<&YMjo&F4LqTQZy?w{~rVe#56P%wYtI_CE+@mpEo3>K|HQ5TQ&&>=VkxrxMM{0GWN3Op6!iBE;&d9=51e22sFR=&F zdD53g^V1iyGwTIf>}j)$HkyXAK#5LJHPx zzItfetDnGP4Mb$wJ4q;zu-Fh(W#{ngDnOUG7JXgiRJHDa@!x94i@46Uyn#*imhNRs_AGXtENJ_`x_c zj+2cY4OGI9cDK*Vnl!G~Z3r0(`Yhoe^MN{Uj&_vf88SE2{{S5Br;nf9*Vb{)Hy0pM z#r!C#byM6i1%wvkay&;2hXod`)Y#U011g5l&mOR^9sFdSIZ7X(PW#-KY^tMl0GQ39 zB1Fk1f>_%Xc;IcKlI{R11iMOC9^#k!8ck%vn()_c{J*)9f4#tAe{H${lS=s?e+HLP zy6p<{3Co~JdbKd&;=uzP0_ukZNHuQqsDYg(Y0(0yhtccGTgTsg&UGKQJp%l5_}04v z>VBWO;^ww!9vsnyi033S08lZr>RMsJJY@@8>iXJxrU4Q-6 z(NW5UfG-DFT2~EjX{h$O2_YBL{l}uh?OVKdeFhIL9WVOFCcpe(Jel^e;v3gD09OKIegzlm#|bc#i70bn)$GXu-Uy)&bn zIbz~s=-Pkqc&)61`yl$>ejqP?bXAQ=pEqisqFSeYrpXFEH4RoLJb9>Iml||)7 zvz9U0h9+GY?7R#SCU!EezxVetUK^J&8fGN*Cl#u-~J(!J6|dC>c_^*Jl*x{qoapx0}CIM`%ph| z_ov5DpKI$33oqUY|BZRS=ieWROM#Nj=}4Z>z`*Ys$JL7*ue=I!X+I(F1?H>JRzGkZ zCG$a*(pk#L#qk_BtwuIUtzfG2(!6a$vfB%Kv!BI%Oz)bX;?lxt<7m)T$O<{ugelMG zNKVSsR;c)NzG4}|?CM^n?Z5hq_4n$4i?A`5@#AiS1M_5gp!zD}JAhUO*Nhgu0O(_` z_!Bk?ZCve;388A)5k#ti@BiCQC{L=7{4a=sJYW9`@DD?e_Cgxy-7|}xV15XuGQ|KGnk_4;n-l>H z5;Y{FDhWPp0P-HcWnU9t_VN`t52K4hGldU-$pm8q*w zH6sA1w!2T;;Fm4MYXVX5;Lp0y^lrvTqA99XB`wYHIC(`*c{`-Givo_e$>wWbNnnb& z&v>KV5GdM1zu_+FPiz=*F!crf5w}&5^qNR3&s`nd9Jn6?Ysx~qoZO#kd|YwikyGBc zT3o=9#bDk0Eztia`xEz_n|B41?)(1F@C319jb2 zPwVY?vUX1MqM*NOLsHzBX@|xcV@sw8;XxmhPW`*p$)3xw2+i{4<^@IC0cmROrnUfZ zjboXDzj`a&&&Qi%$u)1hZ^;dazx^WGY@8$v>py*M;2|BtKdWAyll7PamkM((r*9O4cCRBb(Ji zToX8X|Hw3ET@^aUalgv%qbGGi;6agJgQvXg0y2+-+FnGf3+8`1Cex^6d=f%P`+MS%tf6scTmZg zOcY=;OL@9p9=lr|OkRg&bBZ@x!sP0`Fj^Q=esx``BKFzy(=|V}Ds#(?8uwSo@@}7& zKOKujUnfeih~i9mFd=>g@Fabja%X$<{qe^_eIqQjSk;wr&d``y<)l_#+nST@Mb%U_NNqWHZ@S~tl z>UhZHm3znp@aWrs9N?y;X&O`r?-wPKoOk87SI~Hmo#cR%ogE@~P-LNn zAE|^(vg~ zEJVotCTfjwpBZf591bg>NJ=g$LK}GvAb*Ss64YZ#mU?f04b;tt^}8}0AAk0vKm$Dv zIre7$O)wlKK?{sxdarm1#lWmYi=g%Vrl<&9#s$b0b^9_W^nNYnZ=FtuWQCurA0f`Z z@F|!D!@vF`OcuwE8H0>RRs(>up*{9^7>}PPfi|MFE)|UAh3@vPqhz;XA7<*wWTsLo zJLaDd&LMS*y~QI@dc;)jsWJrnyyaX>Xa|=G*Tf^J^kBp#k``PAtWFfz6wU()fah>H zj@wB8B<3g!6rgAZvkv)UF)nOPLb`xPJt6%=P8T+I`SE3Z8|wkGZ^~Y%1B>f2fvUiX zXr8;&qZ;|6m}_67RfDoVG_uu>I;mDM6?OS`N$9*ed@9qL6uAOba+#qH64Kwy{C{{R zw0X>dI(t~8#hFmBMDW|_HIR&J>l1oEg29K8x)5o>BY7rj717);yen(bps(pb_k_?^ z%kg9Zu-JP>IahmX7_Vq*pf8=ifU7)x_k_r?9%JO_N* zQhju-kihlsi~#;O;i44HqO9IDjn>`btU)zj3{u;4%cM|XEc(TeR>|40e1$%J8YwU* z{A`G@cMTw;(K}lyuhq}q zt)9@(5gAkqaYa<$kJyHbHzwpg`i{Z5WGQ}u_Ib&?J5YO%EI|VsM)IyTGVjEbA17oV z9P@WvDxz65)jx8fa%)pu26K$R`~jNZ>Yc7RY<78$Sb8D#=!d#hVkCRe_)Fel1%I2R*`X+P*k zg#z$Y|KJz9!-jfCKeutHO<%~+-$OO3*^HvUKrV?Q3Dy)mdz6Tc1|g;s`mH2S8%bAnxe4#SHl(f0?h_6H;Os-b z(%xS!{aBBz2R_Q)vII=h7cTiwc!a7W9tFYvt@S^G^YV;$GH7i+L9Avu(>XUw z85fMv%5@DiQs@p#G{!{dEME~ecg-~^DBKQJcfE-h3n|kWL;JqvWF}-}F3hdn*HIq zG=7az3aP&>7d1A3_Nv+v1w>gOaSo#{;>ThKb~++2u$pAmqi-_HK#^xz0jip!csh+4kRiiaCq&6GMI4pqW;kibnB9rh5pA;-rXkS?i+8~c zCaZ9hweBitO71jkD4rsj|8}K7NjbVgk;4*kSI?4y zJaUskh#qum_21>IsqzyU5Y_ALh%=j5%!iYUmDf3ZRy` zIuwspfWWwIHW$QV6mqIPb97OTH4aQ4oQ$+a=xfZ!@JO?*9gw zt#J~S-qS^9kWNZPsQ+dS{=XE#{-amY7I(AmA541bV3qq5qJvE-=>xD0;wXj!z+)nn z_PH2jFt7@mu@-QS5w|r)!Q6mi$(NMB9Z!txc$HQ2xrUzc05FywZ}pYdt=XOM1dRWu z>LrDaO)ois zdoJf%8fcrCZ8ENNR_4!KUA!O|dTRrU^Z!Mklu%vd`&wru9MBhzb2>46}CKdmFV*&T$3r*tTC_V}ksx z6SVi~fb8!JR6b31{e9y2&Bu$iq49VikQU(^RzpG+Kw1(QnGy9eyi-BXgFzbmY`KD2 z^a|m4C^y7n5oa_gm+W22nf=S(pp`wGyr`&Qm?_q4-*WCLu7V}Bkp=Ahi6%SJvPDq9 zE?cb=zjB)##GU8n4{Ul!Bp0>!f5evZ0bxg{2Hbi@lm8K`A7RSKY=0Q&3mZmMXaHL5ny z{omsd`uk)En};}5Tk(~_lyMS=$uj($D2Bd!Lq~94yqJa02c+r81wz2$p{^dYmjTb> zrzlCoRNL{dxW=#SGLKMOe}4LIw8j}=%H8q+5qr2)o;o@+g{Sa6e3(f!oO&$VWQrhv z3P*iM1PQX!x;I|%X?>GD-rZdBi~kd_yloNV5$|f<@MMTLz*O?v;>a_tBP<+Xx0R?$ zX8C^!|M~2Q>%3EmYF_gZ-)2|Lv1?)jqYXQdzbgVHP98q1;+}b-Nxz9I8vf%2siA=6 zTU`j6?|)^2N-a->49>W!H&OIhxl*+w`boC!g$P77JCpyR9hegR49@!~*2p?Kx$V&S zzdF0>u&CNLPf1BBARsW5gn&q+bO<6Lp_DX3w*o^+gM@&Tbb|><*MK0XkzGjg`oGHyFx~t z89>HxzlHgQv*E_g3|PgSI_QPN&FYgO{{;@CNSg)6|8aZ=8)6bYAcO$Kuxyg`k7CT3t&Z^gq0R$1!J+`{U-+!0|@;peS6Rf7LhgO%Y32@$PeQ(-2k_g+Rk-23 z7&y%L_w)`$sZ8a%qmBew3C+$jqf|cM_5@nBPd-;J*_|J0<3;c_2$r@9>}eXRVWR~^ zKxY?;?E{RvZbyQz&2*khy>+>Pi6F^Ze|Z4ZsByuGH|_(3;1DHo>j8+Zaj)PI>%gVZ z*H1}I4{we5SZ!mI-ReIDKyP|Ac}oYfMh;nT7WfDEPt zx#8U@GtxB|7SGSDF*3X#*;l~__>?%|KWeL)wZZ+Awlyjq-rt5=rR+$uoj|OFkgl2! z0^a^D<7Hp4TAhHn-??=vPS2~_ckOJKVUg{R}W?@&&lY6?BNl)g@KB1ioglL{oTfAHS z8A1;<8*`TXv1VquM5&{oh-tA8`4kj;El$+LP-bjQM4@h-?y*t1pj6612dGXhBk7qm_W45VZ3Py|k0d=J~ zv6&!3LaXtI2H8US*vFBD7e7UDljgeQy)EoFFr~y1A^m;Bcj$^e%?<(!Qs(LE9^-E^ zMV*#~3m|xP0EA3Ag9lU#$zLmK45Fet>w5rZ^E*aQ2*>!bNzq321he+CXu9l@Hr>1` zOGDC%;9GZq@z06_`kjn+l4q09^1l z9jLL5{ny4;@~w#?OXGSH1&EG00oL6TiXDMG2A>fU4M2RCsk~>Tx{BL10Jez15l7JJ z0+d~1m0F*Rj{G^{sr3czc=lbn%WgjJovd*RfPmt_z2p$Dc$-?d*Pl%prK_2ye#?ob zd78f_q|U==!RyxI@)%*Val7zYg)L@4hbPBUa{&%mepChkC9Xa7Z8h-TRLS87^>(@T zHVU8+aD0AudJ0mpesV!cB*1(WD(S5P`c)M|v9<@ndxIEAX8@V(l+ao5S;9>1$Kw^WCXz#v#n;d+WdZtp#*oH$Rxh>Y1;RL6 zPIg^^HYlvrvVJnc6fvQf4!V+bS6)okiFz);iBW$^@&6lt{BN?)>d%3<4hV83Cx^hg zQFJiZ$p%DNnxZHBP=lRl!5Z9%e)f$f5b)su=B;}z`n*+mSHosB0MSM43iM|SnyXPf zWbLOm#m+kX@YCBBhLdD2f7g>#8!USUoAT@Tg?itK^!Q1Kx{dMPf0zT%LG}Dd!X4n3 zsZvcb#-21W#04m&0U;V&t-Z+amy1 zA>@63Y<$T3dz2VCrjtPKYRv$)rd>qK7;LP8?pnT5;G#HF%q>?1{UlI}@Y5rh$^R^4 zqm++E_-x`j?QO@!_F;Uc-$35a5$-nkPn$5AD@^LFbnYhmZZ?rdZlEvf(>)G;2c`P# za9vD$W%QBVl43qOFExyE!62>JdZ1UWGp+lFvO$yFXfe2o4)tHt`)i*80eC&*EUiPE zza);4!0H$#Un(>@V}dCe0z8+DJZm70m!%LSAM?YAXyI*7(;|r$*;4Nat~3JQXMPK4 zj6ajKTD*Q!AEP1~G_T**`OEz#ydAYeD~Aig{a_TPer>^%JvUBYt{x*}HCc5!EL|6W*Uryeaxk_w%*Q_tC zyt*Zvvu+DOXCUaazAR6>UXt00K#jyg$igpzXIMa+bj{Mix9%xX#GA^9&z`7)s0SgDq>?mYOSBA4{j?z5c(Cx4|9owxY}f? zN;&RUn>o8@pV(N29X$McI%$<(1qn)Y9QdG){z?`W-{o#u2Z?%V4=IO(-JlAc1`XgD z*EFUxkP{Ay*74soX(I#k5I#lr_cFIvpg`@5ut?Awi{j49(aA$_j1V{zI%Xq>0-LF| z&o&c5+C^GHS8Is9UoTapY2j+$CB{3!{V=t6|J>gRP@!QdfJZ>MzGiJ+tu?m$D7_)z z&CXMnLE0eX0HoW}axViiNP#`~BNkew z|Ad@FtD-W0>Jl84p`%-4=Y7J`uLz?*?qKmc=Q& z&P;$=@@LQV^oh?aWA*EHA?)h(Og+Y^)tMjM_jV58{R_Ql>#eSt@UtSyj8V9eVnptr z)U|H}mn`TTsfRgr z1_w*B4Gta*6&v7G;m>8LveNV2o>%&MC{Eo_Oho!SRWnx76=ec(=B?Ear$y&Eoxkt# z*YsEoy`*@Lz~>E~SHfm2Ct2BcU-_X}R;&j_SFNYC{uHwAoT=3%Af2^v38zh2*_Mcb(KfQkczlVto zX{;4#9XTagy)bZ4kOLShlxP^^*b1&^+=DMUq^oFp40vkKcYT^9L($yeZfUjzI>XxG z^W@ZHygW!I-g8aqZ2T%40S}PDPOi)JHto!fT9*b+*{dPf5-*9W z?3KcB2@~msD$ZZlj(Dus9~!TdiaDpuqplmW3h)Q-D zia7^boil);>QA&y;yWQg*;EKV(!Kq?V+j)$B){B^LkjfJi(NB7fRywXj8cL0Gs|Nr6GD2EpC)HgseeQ`?8Z6=-q z6xtqdj1Oqg;7fT(w{_s4{lnbsjJsG;M$YZ){w3Bt%8dOkC8S``<_13k|EFNt=D|hL zEw=sE)B_61V!-Ox)9Z;ev_8$b`CT(|8%C=WkS`=!Qr zr3e38AP*;Sw2q1#zXryW2)HyYkZBN$`r4XS25WoP2w(12rgw8NY^mXyU10}oqZ(9a zNZ0AnlGI^U)&7{A97FkLd;kxz=zel34LEI z3{u+}<`eHcDU(XVYOUN6j*r@+J4gbbHMdq8Fd5Vv`Z$y)6~s}P0i-%IE%V+trvi8^ zu3MrigdeqcDE*$A@jIA*UH!@^m4b@YMe{gDd!uY!SY^S&%=n3*FI&Wy=xEC#EjbSB zg$}Twca7TuPO+OK8f8#PXeGp()I#7#(vgd#miHggUg+8~Y)s-ntK$dF}#Se5hY2glm|# z3Rt!xX34^*Q`iAKSDkqoe=lQRhKDPG)N8A?;S>aZQHjgfyJ|}ONq_O`1uEmAC&ce6 z4)L7uA{{Tht8$A5;W&DB&EIL0I)&P}?N=EKpB|aJw}r62tSb8mrjWcz00?sB)oNB% z#w;K+ekzEvGq~b`ViOK^F25&TV{RcVex@R+m}C7e>&ta1!}r(BzKxu5Kl$dx^#_51 zmo;tTlKeHP=-6&@$BC+hfN6u}g2R+GZTf1%rqW0XPyrYTwHng$hb1$Xd5sEc^LmP4FTse`}n`r zsMkS&n_v&659e{p&K!T0Ra3;x{6V`OuyD{ad7*R^P{NG4@d9p)Fwm%uL+rk2lCpWt*p;EVD zTZ-I-H3Gkl9K9Z6ssLQN^P})V;PFxBJ+=7)^WDwE$(*%cyjQ#W_L%-3 zH?XrCI2`{ata&bAEPeqtgc46uY)I$p#=O6+i?5vBCx%LK{`kbS|G}{W0oPq>ubHzv zfU(9_W^qn_C|KJpoLKlL%fz1$fMK&^$!`Q|_9FfS68eWfS!TZ$vXJnkte@9s>cn?%A}=J$ zd?YCR_XEc+)o4D*Y@T*UHv4hhbz;KfUKb3>{r-bO^Y;MN8bgI%kF2Tpo?gKd{ruM&76IgADGSdTuc9Yc98B&s#uhTJN}g65!a)8@#FoW7ra5_s(gnf z&j?I`fA-sd;Wwo6IQs~dAG}45(K}Bx(Tsn|02u|@h;QkNTwvy;Z}k|9fOCpwV+DAD z{X+JyOoU_DKoffl$0f$>ZSxYUEB+~Ap=~2T8pOzQ%Ta_|b5Wd&QGt1QtWJk1)g`Nw zcqe`QttF*?td*u+2Tf#Z*sioz8z*(CqryeS-L`rL>Nf;&MuI|*5XoJKVahMDofP** zvtK}2FJGpCh{%4Gltoo&W>C(7Evy&GVf8X}e;+VrV|I+Hl_NRjRTZ!Nn?tp)be??~ z`a5M%@xdBgw%8b-muI&Bu8wsQBi9+pj@Q|@ zFEH>ar9aImIzS=5XQGBJNTmcQIrbA>nyWR{JT+~VT|R;P9ZGL0@j#u5otCoejfb5H z38vm)Q4m`?0+pI)&bOd*wn2bmU>oT9b4v27n7=!N3%DG$Ep6LuO08A2C^?m=p>lD2 zm{{Lekjw}0lhf;YnjpW z)k755H!uh!LdGG&R68b@6G`$>E0DOLaP;7rz9u03i-yz#7 z9G&h^(9tz6)gxaymm9YGEA*xP_RJ$d0+~dO4?mj-7*pwVOo_Fx2~JuRp#^R*=1p;H zR^;T!fesjMj&$3+n5x1zA$xP5?^>j-bAg*PEC_Ut6w{k(*-o$JI5<0m+V8OEV^PSl z7MU+bdBBO8B`>;vIG(sxnkqIY$LS}^i=q@#WSjWXb)BUWegdSSjYGh?rXlVWU3d}X zCQBcav#cGfqUF6Wd~jk(S8Ul+jhFl0i-Qm8gm#ZCuPuF7eQQ}HUo)s*DpO=1#m96; zqduYm^p-1t;pUg|$PW}@i2$Fqq2XacA98QbXgG?ktZc1OOOdiedG~ZrbG(?jk{$1` z<=T@E=6Kx1cFQqB8A1n;^{sld8a*YHOh4rEVfCRfCe&r~k>Gd}7wWlHrXQ{*P$l_C zf;bnEO_qybx!?X_J~U0qid46Xlb9p$YCvA@R-oK?+4S-Xd5KcHnlmkv;K!-qyBrVQ zwXMKRjIocExx9~0mEelxr88hxtB6|013>TgtYYaOmniF zv`QVsI8vz4(^xf_AE+Eqyu(I{B!x1o84r-DsgXch$@lh_I#k6gvC{U+@e5uxJY$#mR5T>Qf^>41BslI)Q@iU~wWd?c5eElCDc0IDh_xB<4>bQ02s_2DJn(O`?e`c1 zx0)abvx0a*m5<-fCv91qC7+$3 zcl`oC9sXL%lz^Wr0I%Pu#|u*jr+cT@Vuu~C#8-5m1OpscV0?4}#*%20q!%Oblw;U6 zm~CfWEN8XKAT(j4u6ws>IN^5k{YFtT#j_*4-4I$Jqy)c;qQJOGQ$;jw#U*uS;Y;KK zK#z6#s4eeqBdj$uRdgE0!P?;fmUyXPMz$rcJhVrEsU9&*gE%eiS!17`I^GqPeLby_ zQF-8YH zGftx5X5}Cl0sk)D+lxfFj!9ygsCIuLO(0|Xw!Tm&e7rn{4Za1-HPo8uWy8-41JPpF zw(CF|^`r)5m3D+9L*zftGT4WW$CXu$m1`0{hOp6C2nV=|Rfu;BB zK^@%+2!tRCz!frC!C2O%Ir7AaXQuCJRxLiegy}U ztEaqN=e<=-y0zhX*w@-5ohWG({gq4V1&K{GKoJ~n?4ln&d3LWKwoi|9_DEQoE# zmuSrTmDhGvK6_%cF1d_g^a$V#gPh6v*EPAQwmLQZFHfKC*Fs?}U3yKIH@*9O$pkh6?@b+Q=phb&|ItR;jT*f4XUo&dIgKA< zQ({~3HZnYY(AN2v{N_gcenPMHCCIS%UG0o#YQze>8L)2Xbuv9903O}|3mArb9UGdw z@ZFSt#0VYH(*5oK<#`dj&4$Nrl10n?%{v}X&%>Y6Vgm4Jp>qI7O1r7^lFep|7f!kp z(e}f4`WV)9^u6?FxXekO2VVGJ>&vHf zKR-Q~{SnU8Hr#yX@pMt5zz=>de6-DU{@DBS03*n~Q7>dVnIRY%AOB45zlH0Kjyx=9 zIu?*ToC(>nOgNdGK4rx0?^Q}_ee=r=6uwu<9kl~)k;3UPk}4Ry3@-1f&*>rIT@CgMmG^~e!5c( z-+r(6k=W(wEdAqYzk|+7+d$vVk2Ee`pXpuuq!LfVk&zJ_!X!Jk`5)J;Zhl6gNK8&w z^tvnCxG4x{P-#MSt9;Vb{TMv#%Ku9QL zxM{z7hxh8hy$f?d;K2aiHtu!!Bm5E}-dtxm0=h;q;2-m&zfFS3AF6rZ=Uv}O*9Wb9Imd3NaQXB7m+Dvf|;x`&OZ3^U4*D!Ae&mM7>AeY?2 zn%a6M#;_83e|32@9Ogp^J~Y8*kX8yj)Bx|LI602iY2OL{|#klepN4ZYpCwK#+oa6b8T7Jd4PNR*uL!R+PDZKUe_GYg- zY495P*CdjHl9Ezog7+#D6H`LHzLYfl399pe*SwhmPrz%GG7MDk8k4U$EArZTX9eUn z_O<_?KIq31(vWoeoFNtY9j22~H>g9dGMOrP=YA-S_GaJW-DyNAcoQx<@=#J9eRKcW zfu2++d6B%2_t#3^J142B5=gAo&QYoq^75WMMwM{d8b=vO>dP1BQSF13pNgbVzce#= zt8Jc*$=BCS?)sW8U9SI$p!XF^2^HMR($c>>x|33{O|oaGm>8p$;uInhXGU|RdTT-q zESe_pO$JfydQuZt2em>h&;*h#I!Z(N3TCn>Gg;Oq=@V2;G_woT{UwEXSc;N%Ma}lK zc%{Lwx>C$NOJ}291nt-8w@Bd=lJN_~!e*>ygwi0pu2ko>*ufFCZmi}5oTLnSAmv(h zh^9s3g#G&S+6)CF4W0*)6v@`Ps~OWzm#A9}cZw9HL;KfOnU@O`EetKJ8w#}_OG{qO z9dyIGz|X4+M|!E9$17OZ>Ozcfnr$U&NZ^Fs8qY_Is!+~))W7T~pNniX(?86jfd2Ag zwV+v1{HmcE_o5}P;?r0Pt@xNIypf_8-k3Ky7da-#D}thUJ9qctA_e7978>OR3v{@( zNW9W%2J4?#@sp7h#W%zHYc_Ta_h{$B~ZR~G;1f^M0sO% zoGbhcqzv*Ja+O5aQ>5iuw!F+T6HyZ;l|Je&o&rL1$d8Yy_6 zHYi>!(_vz6IwnO+_~@g#D5O%+I88Nu+cH|SQo+0I+_g$)Tx1JYTt|lc>RO+sYE<09 z%(y~|;(D)O+kETe?9FI)oyocT{4|8c@RcIP3}@9U1Aa?ARkmU2>+pfcs_KtQ$F4Og z-VfxM5|E%c=0arET~Os7bKju(Nxt(YG-KEG^X_8!cH}t*tg#3-WStc@@V>!0CT#Pq zFndQwu?~w9{>FVgFUQmvlFYK3!WHAq<|fkJh6LAW3PJ+TPi&HPJ$<;?v+_JbLn=f` z@A1QjFFr(1DZ-olmDq86baK4V zFi+W~ipiNpa<)dn8t2@A6_1}lOHJUMXIXC(@-Ij0T_;_g^HNi9%Prs$sL?F%WgH*x~?94B9P-pkUlPwgLHlF@QucGnItME=K|?JVGaHqQ-a|>AI&tT zpM(c|?mO|Qhj6}d-$0`ihq}(VfDX&p<%lMpHPO;uoH^lt$zb56*{ASz?L9aIGZhn# zSteenD~PwFhl?_Je7`N;T)tP6=GY6gpc%nH)vJoljP3O|eBIN+-PmS4e!9d!Dlrg$ zC*0Y8FlDmGU&mR}TT^NxJaT3|#Tc6-Im4^2%$UmAG08_cQDWAYn--#|JFm>$G*$7T zip+tcsxUrxkTDwH+nEz&EXH^LcU?;4aF#$hV~TOPmXQ18&Xq?eg8K6%Ez|WcMQ0x= zR-D&&j&2EGuuOStQukD_JEGbCD2Ljv;*a_+Dn&uKBKxb~@rHc?4<0I<@YA``F>#!` zlIM}ZpxgN<4>^kzNy|@y{#~D2cNL@0r79Sd#GEg5Ff(*T3-T#iaG(XTm~8hKWL?Y1 zk`?Zr?<5>6p^qv%fBt+@jae!_awv`?rL`&2ce=Dp$$KD}0_QBT6wz64tX`RsacXyK zx$etdueRP^pG4U}QFHlR)Zyk7l%RbTJ6vC=;*Q(eddW#Xin2|-bsfD|aPYa)^rGk4 zVyq7N`uW99$g!d46UpjUW({%LUBu-WwKBxm zwclsI`24MIwdZKjk2-uNi$Z51nf1r5q1M>~)8~={?Y*Lno(A8szWuzjxU;y)_T)cQ zk6l%$Qi$EVk@uf(%+LHz6n0v1PtGVRqKzkXK7$<` zS;P%5*>ks(UBSzjF-;E^b=mq&`;{qpx1)bgkS6i)G(BFs=2h)QuHPCb!OqEP8-B)% zeAv5O`G|CADVzGGS8E|%Q>sss?W4{b8Zy>tSeCzsH*blON44nQjH%mj)|l;Ve&QTK z5q0($mAWi9Tk7N;W__}=m%ragZLRT4*VWi6fI{c9;DDbI?M^XzYy zUAJf|y^oVLl&av1TCm1lyF%|mcPF3bXv4!rPF&o^)~=JBHLsH74s$*Zwvv)XvtjVJPTTzql1$(O>pB!_$>O1JWgUxhfn=1HaPeThnlzDnj6b}y>W5b z7W^MO_I5V_! zOt0GW#Y%hhn;-8CxJbVLct>Vf|K52QHL>ZrrJ-c4!C;(EscoS#U1(^5Plm=U_;#Sl z!o2t6{Jgxz&V$9on+tS1EEbjPBbw-X)?Ol zkTWaWVWa(1Vb$#;jheSXfN*H`=6qQuqav`X zY5%P3%VE;XbHM@~BNbZGze5|mgob4esMl$8lV7d8xGdpvYf`>=c8|H$Rr{c~9vY#I zl>dPtB*1_|38HM|<##`k#kh*q$!R*z50DU6`6S=t2H}(|GM7 z-vC?6`p4m&`|%O_vmAR@J z8DCXt4ZD&r(_4#eOS-L}Wt5ci!>oL{W%}nv*;*qfN6zEf@*TCzXKzNUWreHX9z7K^ z*(z#!^0|h_B$I@~{Qi}cJ{ujuX9U4tpX`foD2*06Ze*!{8yQ{+lvw;qu=)J$!E{$c zmWSl-+kRA2!~uEX-tzh@#WLN?g%x`T-`sW%>VF;^C`Uc_#gvRa(0{Z6_p+j_rs>1T zMf`FjfkIa*)KC#~biXz6dw3<;{*K*90LS-g9a7fJLuXAeOE;e0qNUM1?Y5I}r)Zt9 zWu;K+d+Xy;>9V$+U724%fa7Za@IE!2p!l_nqUYaUkP4dhjQqkr%c(N9{1wT|VZU4L zd8T!w6|?WxaiE^}a)(t9-uv$8sr}|C%w(8a%#q_H7Nv_itA1qeOTSdJ<=8GJn9VIM z)i$uje;5x$4GFugg~Tt|v!G755C@D_^WyiD)E*@Te~BkH$WSF>e&x!JQ_0ix)5X~%>5Bstc*=Pg8{DUxl;I~FC=TI_T>IaBH;%c9eD zNTW?(|7KyVJ$re+>TS95sO;qQ=h1T`@$Llbfc@P--tD;P*Huy^-__$eYreFQN8CR+ z%;uw>$6W_Y_X=0~2`OBW3N9GM3a})*o0@XIY%aN6?GhgR{u9}$s#82QgO0=g5Q`&1l{;rzM5g(jCW2&dW*VW0dOuI@!GE8p zH=~Bwhz}mY5k1c^zR|6g{XCb+p`=B!{nPh?Qq+FQLyBO}J1QI*!&mx!PZks139bi8 z{qg%RMejWdVG27P+fUx`QJkhY*2{oi!eWd%!fbvrI7ZRiM&{5I{IrhS6=)2_+T&0e0Li_+}=xOV@MYjUF_wV!=7=^VN&oTbNW@Ok}& zeoEVU@&d9XEjHNl!o$-s>rvXc{EdE7a`6=sQPH8FaC|@O@!D}ux@=k5x>8z{dl_$9 zw6HZ3@}kJJ+p%g@ciW>M=!7H<2Ze^+PQCoKEzW@6P#LhQJ~K1pM5D9Y*S%78s&zcU zk6Q{3u)X)8H8uZD9NOmFxYp$bCmJz_1*^^R?sT3i{Xj|Icl66+LioUu?9%0X=WZty zT#%30uUDTc?B9PPc>f}Qx!MTjR&WE~VdecRz2-BD2MVhMw}$YWTXnY%uHuxB-GrwOJT}cV#Upl`28a&;;gdO`zG=%4!1}O z!{44JpZAp+nPpn-3SYQ1uvxc%rli$8U%hv5z3SRe0jJpla*Sr@+H)ayw=LHqISJSRamx#&}HO#r>v!{^V_e=Zag3uO;f3PgX*3z|9A7Ta|EUgbvaMV*CnsCA1do%^p+@Utzss@FDBzw`m+0kxToqV&ib$)cVpl$_q;C!BQSID3DKG2nEYh}KdXe~`i6eE-e?Ba_Lm5S{ zri1q9AMWe(EnTkYcRG4qm9N)nE-jV!rNU(@Hl-Ta@-a=0_O0JOZ0_f|xVT!}jEy-Q z7J7c0qFgTWzf^dz3)Q7)eyLP-P9a8^660o0_Gf<+$6-CkDeF}t1{dv_o|GL)v{!gPFyG|`U=w88{0A@=YMzk=> zbrW}UXG3|55F2u-)*p2y&j`b5I9m}y3^Lg9I$?Y6z8zaBuj5iddGJ*k7MbCl7EN{O ztHF7gfv&9nl%l=&<;I!h*QYi&lvU083(X@%?bGvG$iG&&t-K7z4B)@#aJwxpvRQS= zrY0^Fkz1M*Gl?<_%aR`;Ol>*vc+^tg?qaWNseSo;2-BATSYhD6oO~MAJslHcFJe(P zO1O=EjYna*8tpBxg z%(`Uzu7;-)M&G4U(RJ&4se_$Uxo8S{;>mDL);`jzf@B#Qatw|$XoSuyU>!;x4F`p0 zzZo!csLR(OU*{6>PN-*=UQ7RYqhow7J&+lDdRFZNpFqMl+5_wM;ZaPVd!R@uz)o+dM<6(?)<>Ax&G}s^$0OsEqBq1)E@6h|C`Vg zm5v?{NG3;Wu@Vi~a!vib!1D#z_CcfBkJ#w`kEIhk_46^zt;TC*Y|ddE?&cGp>Ie8# zt;;nP=gB_0Kb&2^&T1Kzwv&>=TFu3eD&HlL;)K#Ph(iWalVQR#iY2bySrtqX>lwqC z$I5(*cXT2m-dgY+U+c0N?>6dp7^vUe?Hjrs(*KThh*cG1wy|WpEGK;HR@v*u#s||5 zk!2FB`ZGH}O3LU{h99VI*mQ*PTnt$+zRsuS?fo|V^s1L3Va-V1n@``Jyyg%Cds!sK z8TOs0t1eBE!n)=<4EN?d z)%XlFn07nV+!tqMzcv3}=#HD{N-^R5x=Fa3GB0lw-F{Vv4fn&pqIL3ijR(6tA9_7m zV>oUka8OQm>$tewak=Wb%POTmwwJ?!2zd$(OGl0=lax9UA?Wo%C~G>GvAUHq$UfVdHhYg||=e^-zKuTza;dm7z6kqAWQ zr#$Na?-l)~d5`+VsN;Ox@lBtn@J6CDt@dqA3Qbh7L~QmJk2==Gnd76`rVY^-_^th> zqd@^f{+QkTZw3jcTc3SwrCqzuFVS?hdts=YE<)Rd!^G5dwMA^Xe(bh^KD}<+@856c zvrEsy5Tj-uTgmO`<9#R@r6U&?7%b6xeN8m}XcnsP7d5LiWsd8X#embee^JVzPDJn zNluRWlYWQE&W@x+TU1$Mb~R$GYcH~MaQuir*faVSBSM86axv9rW7pl`vygt>S$HbHfr$-=!^bP8}ckYm$JSkaJ@g)Tmb^e)kLVh|n1z&WjsffXL{0a5T zGO6>VyPJ#E@%tNWot>R8@N-?;lROxo=4hdD!aTNaWS9ezy{o8r208byD1I_A$0cbkE&7)& zF+KoCNWLTbQAT#jNqAc|9RHz)hM!S9n%c6GC|GeoTpkCY@_p>5AKZqDnwnR3HaBy~ z{aXS8B29|Xf@ctn`@5^_=&N1ZowZ4)+2n|as;c8RlFpSvAsS{+U+qnK&1$CYDuVS$ZtB;b9&lT47KTHqJbUI1P4`!vM8Eo0XPT;Y zzd25~EBy(FnnZV|`nzTKt$PKmxZlJ;9hHHQ{w|vl_f5yrYQVilUzMf1`D-aFDp3~V@J*)?p;zM zI^e#$xc!6N{k3h22w8J;b5E%w)~x-BsCn6DpQ+PY1DgtL{qAxlBSPve%JEOj_STx5 z_Ezgu3sXT=uOxI~SEiyZ$KIaemNS-Rn=jv)itZ_M=1)P*6~?z2sQwS6h3p zY^h4~SdCvPMR1B%jmM zPj+j&a=Gs`>FBLZGzd?Is>W2rLNXT-<}&`?Jba*vzg7I5G}9Xq+o{imh15cWc2pI6 zlRV>5MsassT}wOmp_R}eA&%_iH>**p^A|3N7)nbUfHrdkN{-&7ZE?TjX%(LqF zLRuOPAcjdVhgK4@bi59=&&%L6LKY73=oQpE(-bfYEv}s@|g3XV0vbN@(YKiqzRT4Qm z45W(JsO7TToN9d4-p;!9m=9YDXbT1#8p8x?2A7$unr^EcL1y+MgT1}^B2?p(QZg=D49v}0<56`RMK>bs@h&#UGa%vV zEGu?cgBzGno;(@TFMy=w5as}_PLF8(JnpNf+@RQg&(PMhkeO@-tM927~sU#Wt7;OgP&&gqMgqtp23YhwOzq(einp<{26-fgH9BYPb^! zg@5Y>t&l~G*~zwmFMxFSx-mqWrSdK9%i>NH*s`?;jTOstb5%L|btEJ*GBU!mNg+4Q zdTwSuFSwpeKHrUX%=V>Jv5RVvHF>W6=1;3~ifx#Vi1--mZ0DJfmq&MNkrB8O1CiuMqL= zEQ5Gt`w%pF=z=*8i_Zs~r(>ZQkWt@w_SzDnjpVhm`&vj5Xz9GL<9l$NT9~$|Jbd^X zqG1fQ>RPB#J{LHjg7~zIfT;jvl{prvC{=FS%>DS_t|g$g8PZhmb#w0Bbu}2*;(Gof z9Cv&M$9$sZgpTb*h9!_3QK^1=jooZ zX)fZ96yX_0JFX%oMrm3+Txn1tD z(6*i)c0WR9P7bBLz5UGGT(C?i!0;P)(CG5hhe^VDbOHb;UR3(s-u`y7DI&E7j+0~1 z5PVx(&3UgiMx_3a}FYnXj}Nl$-3E%GNzBSHm}o}T{g)o-TrG&D_2xt(2I@1JBm zHFOJ(7P4eW&&YTqSr$N4MD0g#X?T(`y0y8u($UeW2B$!8{lFk`3HmZ5v3y#z@I_`oxq zMeO>bW@X7YCkitRAkxrD%7r33t8`)-n@s=j_=9=T#2i(3FGOKf+S zryKo7_j86ySkOo@M{bL<)mm+A)OC$w81BCnzUB&kV73&LVJ3WQwbZzUp`CzGd{P=Ow z4OhU<;_JWoofdNHkT}RMEYu?s@UJW^?lA>@59Lr@si9K-3@pp^Po{N+j}C^2e^z95 z6^KJ@p`gWp_oq*nn9rSnztaZ%n0+_1zI=ovNo#0C=b%Xd_VNHB(cN=!htrg;w}>hA z!;t!(s%nU3B^W@ow(jcdUvpUOo6J`SF0=8o37T6#nrbRjklaQI-%~BE#eBy>`)*x8 zge0#4FQW{H0pQ}FACx(-x3#wi=VAabo)zC)spgo!*$Zd8=YQ$FheOymXgLVh%C6jZ zxg{jD)t8!h&);UV2||7qT0}xYL6^wynL1xLdU<*I-(X&W)k(@!joUCsz~QqJJC1Wc zN2s|qy$ejc4|$>sEr%tCH#IagkhfmF>zP!eh?RfxL9XP`sE9$YO2zr zy=D(X!~;=mhClS#LqIO93r$;MM2hCpGhFagB%h+A|MvU+y&bs?w`1(kDUb^VApuEq zNMr3~XVqv3!SW#*!t}k0_IN+GI_(Zotf-B)wVyncMy6#dCcf{YHWPeSXQ*?CCwDnK2;xdEeE~p&|Sf46z9weL2F1$F|60s z@O@F5xjQh9$gf*H^#8=aQNU6WE|>KBF=3VD4&eQW@JIN{OLy{wrdYr zt8`9ZzG8Z?Z-X#!CHIF1`&-1aWNAwv%O-3Z-$iSvRYMfQpvad)HAR?>VPmgWRtxUdV__i8=WWiw<-@L02w}1SNDMc7{wfHVR%hC z+0`ZVUALABB%_R^4y0ZXv>rt2L^Oo3>4U5vr}M1+!p3}h#SD~rgm%G_q=hj5>F!P~ zi!cvSV2_bqYh zZEG9R9HY8Wtwfl%<|`48T1D$&1<#7bE$N&W=e$Oan_Z_^oF- zIXMYJm^Jr2W+RdDXWN&%q$Fxu_F?N>8s>SL2f-}z54E)eqWFzO&40zC7-@9ec-z($ ziE*w=cgm)5dSIxck(kNK&p(fpMnl8oRoPZ#_h2PsY7Bv)174PH%wmwi(3>kO{QUV7 z;px0kYmLMl7yAtDS?(<50VGTwNXVVUmneL?b)qSpi+_Kn7g@jucKGhw3^W95W7pG3 z>m`JXA~wtb1Sd9R%lDr=c@oKI=$nV>l)TLU@-zr64^>oj-FRHAO*`goed_Psh`L+p zvNmVZK1tpY<$js#fFkbF2IE(HF^5bw&G@I2pfSyWKnO7i&uWU9Y$*H=;#C7#qnQ5;odsMghULA@`o+|gU?D?qdWV3&_PpWX1R z0%yeS8`QRXgnWh$G7@(7?GaI*PZ9buI<3q$Z4RR0Q+m5dHPiFvZPy4w|Oxnv{P%?s{~C*;HnarIC>_`k*GB2MC1Tb zthv=N0HW)5rsIdF9d;YBI(L@I5PSd9M8&FbeDO&W;1`e~lLpfJ3QX0o2SvBf zJ2=}m{aRGNy%rvIX@d{fuV>LQCm1DZHe5kZqiOXfj~n3U{u31l{+$cxqnPbm5$-pAWJ_kNt;L=O*Z zs`=EQUNN`PIi>`VC$%xhb8~WX)NarNi1?b7Wgqv=lyErik*lj%_zm^;d91mSNkcG8 z`Tp@_7ni~hvMPmJGJq|y_ISK-2e=&(tWdsBaouG#- zt0ZXo3#d=?TZ}3gT`B3qdV?kQ>co-t=Q`pHvVi=ce})5QJlJbJSXd`>*SSDLqyIZW zMr3Q6ylm4p#l~L8DN4}%5>%2PIc6*9@uP3Z7(PDHY(SS;kKcm@H<%1egW@qha zV`c;iyWmaKSEGAr(*H*>vKtk1`X%*OI>uj1fgw> ze=^Os?lXn{3i>a?t+x7FQzl6fF&n63afh0{crm>gA&d&A4}JV-#?vgmY-No9UH~a- z{!dnQ`jd>9&5dr&O`Rp>5K#3#Pur_Zn5Jz8iiacKv0~e4J!r}tb){*R$lFWo=Wp6h zDFAxc1s^9z-4k2n{(Uu8T%Vo*G$a05(zu?$7|k zrf}W9eB*LSPVZbF5bwTP_5iAfzbq^)uZ)fFK)(IK>MXmdYURJ8gbrv887(#}OyzR~ zAP4XnZv?~eZn(8&X_Zo+qTyCZ%fRRhpiQ%~vui<{$^l&n5pWxIW zobDYf|GIGw^CrnZot+~-Y;iLM747Zqp@R0%m1h#`UR-4%IJE^WC`iR5c~ zy3H8WH!zyfk&qyIL3ZhqD8NsUX*zr3wF@l z#yXIJW4o1S;m%<&;3c+HRNafP8j8D~r+=Uh)=}d>$QWx7ldGravA+`TE+Dp0qPRgl z#rPT!WdzS62=jk(s)Xd^pIbdaSRe7HahQE)qj+x3A_|a0WFXB7&3eZ)k8X$^+q(?v zz;fAoKt~;5ti-gmwC;Tqz}I*0zO!8G8W=deQKozWx0NX#Ub)k3sW;pH7uO*p8em!7 zh-8EC^zCKyCGpK3eMD^M;gK~p&FEkoMCd!**x~i*R!42N z4x=}2%y8|{(pmcWG(sFYKsmF+PhCmsR zHQoVOrUwgOfkp&Aow>MwP?-sk%tSa3?B87(nWHeiLKIDiAN=z_=CK5!Dd@^y^78V! z_kn5s1Q}=c#_~&0(`cbPwdDl_2M34R^m3DYxFm2AFj0p|RIKw<)Yr_+P+chYv|y=^; z5j##v0(!v0!=bpeLEo zWKx;00d0W2t0Um&dF|&O*SKH9n9(;F>s+N{NL@dN~ zhQ`Yiei;tvF9)7-T2Wm`@o~+p9Y&;t6$Yk8L68hOpuA;i;0}3O2Ci&B&8TSjR8f#P zz4`G$WGF1=4UNLnNH(RNT3uA#L^cwDPaK<42*~Pia3k%?PcPQZaR6il1O!^hHDv=X z`=rLXG_Fs~7PcfLB!s%auH7{5F_vVq;@l%vn30lq$?Dt8Z%-TZ=ImR$T}!ciq|~D72wYnGM~Q)(xV8XDrq! z2F6yLkG*419bZ~n(l)%F67fE$FJ-rHe zaZJe^Sq8z7=(5CLTwN)HL)LTa8rrXjWigutrLc_`pL96E_J& zGX-*S(`|btRFI!V2M6d+L9?6;X%8$oq@&xZHPBV#`STT+lw5{< zunDe56k-sd9`v??vM9*C{ByY{s4lZPhY2$?0O1SUJzY1l=E2>qqN4H!uq$DIIdyDI z4=iL|z_BXw1|ZL~LIh&_U8yDOa{E_%7~%Bq0s_tgXZ&1IF|@7zVx1x3SA*@xOHJz$ z8o%tc<>8q!5A_>S*EA-&nv*s^OUEia-gx)Z93bT8Wwwy}mjPCGZ-b^>eUwJ?W3D6u zqW;!Am^Q*N5k|-J0^IEEau=iZNFFtIkz6r+-W6g%PgS{gbGH0FVlJSp{ujF9n&8#o zgEKnuThZbAvHQczleeX%L(i-Yj0$gOYCYyC0Lo*Y!C0=CE%ehe?dOsq;9^FaW*hSt}NjCmZ2@41dnymddKw*mrK z_j;&^`F>%{-ZtZ|^eiB#H`k#Kly411|JK<~S?Djaz6NFGqa5=?EiEp;^}p_0az@BA zPf0elJDl9ywQ7}wC;vzeHgMF;xOQ>?cCKT=p?PR{S0 z@XQLIbj$qzXj$uvc`(3jmE6r#Rn{_WtNb#jM)Qy8c+Sq=9&cg_Edx*hsY`{7EBaJ8 zu>-4}sa-BQsgbY!r>AG81}I+)Rh(w6UBM9sV*7adAPlWxOAEgQkT(zsl0tF+ zXa}Isk&-}6z5rlU4rw167bE9QAY48iJy||C(`xas16T})q3+i9c%c4VXBsptz!+69 zEnU{Uh|Ff7+Q*Q0PRC;y3S1h6pP_mIoB~yB!CvP6vJM=g0=*kkqrW^S<_&SB_Zk;ARta}0zNB|`hnHeCsIF)fd&p!@iRLM1cA65h; zsLqTEcefJtQU@+p<+zx0Fo=a(pURH{@B~t^X!2PZFL&)n9fUH;KT$J1kP*86yP z6PAAQw@O3(Yg_ksggrv^Q(zGA3uFqFUr<0w0*6~*W``LZVs7kEf+04@Q;#YH)E++` z`AMT=H#f6U*ohkio~97RcN7c^wIN>#e>7E8Mr#nTX5L>&O7h^rgPX?f%%7*JtKnY1 znfD9Ap>;w3`1U@`3n(`5edY3lLCxD$u2? z{pCtaw%+Da%Kd&cJPz5HZfKYFi2UHx-gN<((h_!vX!3R;PjXRavv*NAXBNkW>rVLx zS6Kyr0NkOwy)yc`)xG1Na0XnBhGX|j0H=3`IfBPt%)~1V55qm*Rz~B- zJEXO~1mCBp#FImlPOd0Ox6A?h10LSu%&7;JHf^BZ!N^AS>FVSE+3Lr+@&Jjem_!O$ z#$^Ue;qRJbF!&~Upm-1BCoP=`CD`4ndEwQ0M@*9e5ljsVy>ZZOLo=jVp@bnFD!h0i zSl-}*X<=Pz$)T6mBXGYFOeNvEnbdhTVT1Ro?-jhi1L(53?AHLU_Y~Wvp4RvuJy|pM z?H?3Tx&S1+>3&y;g7xNdpymKd>Ok4M2`MU$?^J!m%xgFa?N%RS zumQJ}wd5<3fJ-L_n&fbXqVHlwI9kcT3ST=fd>=PFcl|^@r?UG*SP_7%>2URudD+(G zaYz$Yi&iC&KOh;7iU)9NflonIXR|eMakUp{3Lq4HK94w!uY~1zNHJcQjTvoRtPi_{ zf;ST=tl3pSS7Z7~EKnRy6`L_+b)IArIS5{Q?1q z+I#=qv-=h>0=Nc*3Q7BELErsqTb2-XmPOuId-LIn^6o%e^CEgS3!;Vf4t5pLMxDgg zz&n6lr?`v07vm?B!CC;|-RcjrVAD80i}|fw2yp<)*I5L?Lcajs9H=hYbzK{?9kJc! zi0R;$k>ufx4NIu+N{o9$cLnQ=fazHjPlku~znOb539400|0_hRnre*?gi|3n2cW|t zmtc-ccZwirSVLNhN=xaWwmK~qbX$$S zrxBe`-OqE|v4J~JR68eg7z@pau=%8Cr6@sj4Xpo&sfeAO{Wf9`J9UcE?`O=;+qZ{| zhHm{KyKwmR+qdM{keQD3Y^CO=q6swyYQ&%Trnki26x**LEnWN?CUQq#0){H9l9CqT zn1*M9Gk$Ts)Jtcx#5Ux7h-ys3tR~45-_%{0Jm<_1+*%tl&8#}W$(pLTzQYRdMka<8 zdjI}=0oJ&$2Djc{iT2u7WpLNW(!#(~FsenSP(PM~S^%DhM0|+Je*fNwcnU3bej<-@ zqYw<4%sXYrutwtb#s~tMa8PO|qiwOb(2wmdR%|K#X`?dp&*kpd{tLA8p9$rpy;NvR z9;I1a!)H|g9VM_g8ivd|--(KeZqJIxu8AUcMkdg>5mD-2eIdf6ofLC?)Rk#_*x{CZ zx2d<9Ez8blEv(^^%~YnDI(F*qEQ0Y0_U9`L+kbaY=CP#ybJ17+3+Ln)C2zvo!dr#7 zFC&E?_J18y)%bh-{VT0vDeIvzf9isDisKa`PK7-D$6MO_{lB<=Gq`@|E7ODZMqEYy z#1uS%Adc)|J=kfLqf!iiJx(bq7%foXZtDGePnu&Ns1qQABprJNNy+KSPtBNBvYUnT5SVt8QET;^(@qvP@2W zxXj)wttjnvzPN0K@CFv=pugdbKl*RT+q-)h=temQCX6~Em72NSQKv{a}9E0hd_qV9ESg;w*M&GXjyGBP9> zgQwZCk;C~kI2Vgm%?kiH;7|Rje}CmPX&!PC{697pj;Jc|N_5|mz|=p!hcE_$vs|2? z0&lE~WPE?I3MA&5OwwQH0Tb1KJkvP_a#&2Uebf1Fo>Oy(SkA#KFg!RIYvZF5AJG9r zk-LtLI4ZSu!Ui~35Qip05nD>C4S?^g&fkfC2j6+tOnm)j7|8I$1 z_K;ONW%xw#YWloA_E8v1$bEeYyckot!q3iIl;DT_-Ks(mQADZD+Luq+Ya6-~au;r& zGW;90p^E=&HoX7qHxD*k6OwQ#E{jM`()K&{E8zID&Xnnb~dO%Z9AVjs0$#KIZm@fC(yBo7}y_PF!z zSc6`|?X-!~q$Fu-!-*6!of-^^D0^9SO)`LCcSJ(IQ^)fxgU9k-{Ob0PWTVD}wii<8 z#fSL(UL!_@w$FE9s-w#%t^OtZEWL=0GSW$d6 zqU&Iq;T=)}eO;lrE2R;n4a9>Aj1_r=5zMhl&LF!3)kKWhn$DA9Aeppuv6q*FX?*%5 zcxWWR2;c=jAij0DHzh{zq!4+pvHD$js1(KQxAIdgzQ$PSr8{2rWQjzACOogOc28E8 z4AGmIufe!m28RD_As>**Ag%)$&W)npcF_(C zKfJHjjZU39cuGB*7G3!v)ncEo&6Z`h{&3z0+@Jm7s#9$@4>FYY;OB26V;zRJ<$bRB zY!hbp4SORIZHWYScmTusF46NVP*-G~%HT{e2>Sv2C)U6iaA7vC1IBCf%r_eWsarL1 z;gU30d3(V$f=qK@5&@%O1u&x{Vk^vqNl8HJi^Gk0hhAtccu@n6#P$<+HA8|grp9`3 zreIET#+lw*$c-OmjF9kK%-UTIY>N8{dn>hS{a*Ns!8h9`^PjfOUq$9E4fxC5_O7vP z&(?NRmM$1=SH&tPY!^xCGs%Q1gWNL2!OeXSjP(faW)@r{>;A`hbQcCgFxIu1Zfpnb z%?jL;2}MQ1$<2Vkkwpc<{u6Ety!73i#*aELToZsvMDTqI!-aghdE_)srU$wij87O* zb~kH7&)QGv^b~hT4Gp><*OCnsS+^K+#+{;bTp%SebHZ~ipf=(%r9vIyYP12USN%hJ zJwOvfL}t+Z!@A&`w9cG??UiK;S}6~E0$u>1-G^S=cF9(@-vaiDke)cTAaB0a?|EXR zS6F&`SLQU3TV8E$eR`#ME`G&NWO}Rt#r$ndWM9&sT}#26-7*%lzq7s5iV1-DdaQ=A zD!p?sY6oP2i_EP%%boWy z9+y3Q8_NjtrYd9g6slrzfO_}OnrEmDQ!Z7pNBzdYQIV{=&d;dnAB$1sx2%wX&)*;z z3_37(A1ZU^z~%mD?gLU(s1xi7;sS!x4A?YrvBNHbvF!nU*bDGiATl;b4!k=Qq|!dn zLzU>6P-_>ZF_=w`?V)!(des@0$(^qIc-(5SDr#!C+PIO2P+T{4nYoGBf>Ajy?`fs% zWPd+A&Dr_(*IAHfLv7Fx4WW;MV(6e}l1UB^en1zU7s#qbT>0QIAIn53oV_gk8eBx$ zp7&j?663z!P|sza#C%nmdMmss>C(lMgRS0k&HDPc@|c;3ygX2T7s5_#T}Tr)TJYJk z+#sbDD5G5-I5>0h?0YW;m*Zewkokv_#9IG-c;(K6vd^Et`$X5;JZEgPrM%q|UF#du z?HqO{zg`P!UMy(3VBnN*%*u!H0qfmRDkW}u-|WP?N7VvYpL#MtDG8TT_BARlIc0oc=l@@O?tko!P0=3g z9S4nU2N@N6mPFsZWgzxQk| zmPM&G6!~aq=4M5hZgWskg1+_7pAAPfL_s_3w1V?|iEm-N%$HT9F>nw^k znDaMRNzhCg>!jbkVV2>NvSL=`l6O4XrRzti{(fimm{`n$E+=RXHxWtQLV9U|oN4Yi zf7uG4L2w@Vy`k2iaI1OPACfxGYd^cZdY^j8;*x^f(JRH>=DS~W=S`huwUAb8EiEnk z+~0Kb9DH~6%0P;@A0VA zRSZ;JL`7eGAGJ!-gGg;7Pt-UHa3m*xZsWEz7Ld&E&7#-yvLlEf{NLXP!N$V}8*}R3 zb-A5-eaS{6WU~EeuWqENx)*I?dg~yx3@V^tyi5Ck#Ad_E9;MGQgYteB@3#Cj!ZC@A z`}J@#``QPSXK^Nu{tqeVKJTc|AHLeO6#HS0j}RxR(F&=R#sD6gXld)S+^JMNDhHR> zEvMV?B|e256ic7Kc5!Scb@g%Hh7BgK1{2(TS2r3fxm_LYIrnDE9mjt>+Df9x{C<8+ zzpi?5izPN(KG!KoJ+uF(`6DpKx38g>+dh9$r7SRG&$(h5^-#KWTJ0>|JnGyYW(vGP zWoh1Z^5R7m_LmurZ#G;IN}UpT=;x1W*D5bw-W@PD68lHkh@wDD%T^(Ylalf6-w(W6 z2x%xh1i|?QNP9Q@Lu0^gM9rFa=R@;Nfm_-!h=6CIp5GjI`*FEfApOIapU*7M?U{&A z-Bqj&4_R;%CAYh;!kBxKTVC$$?pp-2CjA!~;rC<*UVkAyd2n`bSMiGE_;K5oXE)z^ z8iHzO%UEA|$8aFOG{|5^{EYJOdC<@xR1hH+>OS8AzZGm#AR7jx`4`UtT+RF8IBPv_ z!5zmpvoE@iD;yDij*hJu`Eo(BvdLJyC0gS4wH$*GJRh>qg|dG&JexP$!6Xwj#ymM? z00Z;NI}>h{mp{{Vj3(>d=`-D+vF)RTJHfzA?~eLcvHn)_sPv-Zl0SL9{K*sE6$9%-6;6P!#lImf3APmdL6 ze;s#>`d=j00A82gefn8mWxo02NAs)V)!AgfyN7`%y0c3-8u_&GY2MsP2ly2t(&_)9 zff`BD{ykfP_Lt>ls@T%1N{;59gqAQfhUEgT%-Bu{8^FRUt}d;H^83n};8X-0V|G>ppZN_0?! zLGT~#(UyuQeg2@ozhnus0Aj(P4RR_Sn5O2;>Cg%zsqq9rU_sw*`b5^Rn)<~)z&RI> zLMG;*87*N5l;M%_#ZUVo+x#Z)$zg+xj?j3^gPwEE!rrvrZ{!nN?4XSt!V%}oumL+b zEC9cs`G!1SjGN`B+MsOx7G!&t?2#F6oEpFj%A*8<0iMCdY))-$T7pYBFVYKfwPYjlsxB%H-r^Y64U^D5J0%GIWPT6wsGKo=`Hh z414N(9V>0U?0TjHUHiVh4qNu+cYG27IYhF7S!JOnF*<$f7Gkkn^~-Y?bh_xC?c zBJFNXQA&X$3JA|mO+LF}6A7+ly)gvH_q)G8*a{P*E{@FWiHnOPg;1TH)=WJeouF}w z(cj4dOngz+-D37a#V*-e@191Ij*e=Ebdk4VdqKOdiv3#%Q;d4hn)bZZ>*kPX!w}6? zIEjO{h@WqtK)0x|jBypt41!|8(QaFSaGZQ^mHk+aCA1Y}%*ezT8+rZueXVXGcHy*% zmXRia&q3o2!eYSMyHQx!9#?D}7Pa>+d-QOMD0CCh{w*M_T&D(R+BapLY)Sz!|e_xxXq+I&Ki!@xgfaL z!QS?waH5T^$TG%IcPKiQcGu{dV`c{D+Z+z7??pd)euskZV+5EzPh052Od1#!(hU3G zhB31-oeeF`sxKsu+FRRss@_WJs~V6~H7Xn%&Dh%~pQDKq&u|*7@_6j!T7Hkwi52up z+S`e?_$VDcOT`ZQP7iLnt4P9#wvZH^`YVfW?YR7a@{rk1t%D~EUfskHuh_Fi08q*k-G~<$h=gSTFp}ZvVQ;T4CE;C z_$spAqZrGl7YL#`c0rqiqmsi{jloD>BADR%aJv>(L7ad;oe@=X4tZ41Kv#iRr7tex z+1~`mrK8^2vNfjgo(+nuFdUq*^~Z&(nUX2Adq^+q9ao~FGyBhPu8`mlpVq||z$Jgz zs4Y-2N~ZvDEXs(DZX$Vd{7~t7D~IHJ<4oIw1yz*CA>jg9hrFnv!-C9&wQX->D+qZ} zcj>-3b)_2W(B`|gKzF|G^P|6BIzOK3eUClH31cP}eS^Q+{HVkPUE0k;AT+~zownXR z(Yd020NPp<(t`;L1qB@#5v>9kcDckRHOj@!ZpQ9x^Wq~vp^`8xBI?K{>aqt>B6ERu zBN^}KIXlAmj#pr*B${d1IyuGA^xCBzG3QrN-o6sEPjiQ|k^hmC4rWBos2rU_Bm28C zf&^YU1Vy5dS?B}yL0xvk1q zOEQg@=y>y1x>|T@@bKUIB+SM!{<}KB!j0^dif$xa?X9{#AfqTp?9p;QYCu%=xXy@6 z6*_H8C%ic6V#6tt>8+;9(#`!!o?Kh^)%;Gcyr>h7cD_uTMP~U- z3c-wp6@VpTD-t6;5AKkOOKhaDrO@O3SFSsX61*i-ewfD={d3`0pl?;!ehG!>H~r2p zR5k5q+UrR8t?6LUj@qBIYkBU0UP_B5mzEI;B3`=pJ5X)M;Su+TF_x^K)b-F_N6wEn3ahR&dg~j- zjIR%XvXHf;0fIJZLE9v3_{@HFLr!uLzMnV;n*y6*Xrm99Nzt($ zj7N+AI?qOTs9r6`YL(h{Sp2pXtv7L>KWZGz&hn(c8w6ooXTSI{jeWRM?e>~g(BEq> zr52S3sx#B(A}C~oa5JA*4(va9KW2{6TxPX)|87K=eq_h) zX7L@K{#e7cFK~OFW>6d2qb#ySR+0Y7WR`JFbB!-Duuz1 zI3-`nRh8m^-Vtc!GYS#rl9R3Z@Q9B>_)Bo5D=ouFnSG-!%r6=NAO;*-?%3mOi#jm% zWO#_~z-3VTE8K^+(ewM|0line`a%BCjd%R<*vM4T=DT3>4Ai%xFrvyL5H~~szLSji zPL)i~W(3qO=FfP5S}k73bc!1Je{-?Xut0kOBJjdgP^s+H#_!DQFnxx79Wk9Wj8!~{ z099B~^3^TlID*$W-eS$=q|U|IkI|SyM4X9j$L)M64T@kgz{^;@pbiH!%o&^)o`3OECnar zFasIBIA2nh`S15V8(!l|x=||S?mbFCQpDaRZzY<9?YK34ek-`W6xNWPf%DL)z@Vk8*TQ@i;lG&d$~495CGz==}nJvk^h#eO`RF!F9Mu2Rk*WN>Miw8 z&BBGtC5qrP=$XHM23^k}A75d}X+o+(22EX$Q;2^&Wpv8hl7cr@{=LuP1av3Jkl zkG_GoEdfSZ`Iw(pkI2$5z!h8?L==es(b)GDF&f8fiHKc#JZPP|w(V|7dG$t6oxe70 z^)$7-5J!HV7X7+Uz3#-N7b1QZ7GaEa#Mnknj%3;{7MpVL7DK|ov)PLa67z4b7Rc84 zZkda%U?{IB{w2MjNA5jf;^8EzvNRxvZ?^f~cEehz zYPW^mjPgSepbFSPuMLp?$qRhUd?+{Dd&mnhg;2GFFh|XTos}EYK3iaEKRS5E_~jGJ zE>`KYLbN{E!k7|8u|Wj%oIkz{Z|2CrYR7u$ik~UWdhL6lDT|<5 zV9RRtGhl(_J3CpRRM0JW50-cBmn0OZhD>c;7aOs22I?V9aN)RW4{f1nPNwGbXhV7U z!_y7sxDtIZ?I%f?nfZwfjM+D7Js1P#rYQ=D1dL|;9C(7 z?TG)VwT1o+Wl{bq|HllGL6bMD!c8Z~yLLia&>m!@2^9Fpx`D509@OCH?$6cX2=1&K z`i(D>a|@q*SKExv>GHfcImdabiwKq#S;K-xwzVHVwfr+ZOIVe7Tf0!n;B3}Bh+AN(vwF6lp z3AX|Ky`UU;%o1&(x#Ftj989jcx|?nnTk!aOx8T+1{QjSw%}iRw39B@{w7Na1CNpw9 z$a@N9RGqRn;m6S6ZP-1~>q@4uolswiR>QfE-R&*{&eA{7#(pL9y_zbydSZ1CF8LjX zER2(GqmxtN_S6^d9DuzM$SC+E=eBFv?OEQ`cy1C*4P}?&8FU0g9x|f4Im)1p5wwc# zjVcW6lZ^d~M#6A#UO*~5{uCB)_A|Q%eO*$R5Fr~wldWXJ_nQ_UQUI!Kvcu4AspK#oR zGRl*Fbn8S)hcR31Q0wTRthHCFnw8(jAo0HBBx>oFjpYyW;W~v%O%M)irN%XtL}A_x zcHQe$ys6P+-kbCwKJ|JhAE^Bkgw>GWx^IU#qicoGkVL2mYD*`X0?j@4vP7H~?9m6C z-&(2Xt;jl0X6VNcI}w@_Y}72uf3C>lubpB~1$oqX7?lJj+yR+K zLj4*LBu97C3XA);xRQ<%MItTzJ&4MB5{fLFJ|MaMyMQvW7VWr?@w^I6RNLAOb73YJ z3zGXgdJ;AGtj(8TMMg7((h6l(kLHM{hx`B(v zJ?tz3w@Vjm_jPUL*}ak6uvz5U4p^L{N4$9|{xBPt4ozN5ZU(R_hU?PQ@<-4|ze*rX4Zno*5{) zUB_0LZHzG}Q)_kbiWk^Ol$ZpFG`5R_9#0E@UvrfR`*+_y5MRH(X5t@fK zd1ns~PYYV_r?Vb(#U9n0f3AjHjF3QE5X;)KmKpwZ5u7M~9kkC_C2Gv-S#dInnRubI z1G?(E?i81G#5!aBSxJTdk)?bF{oyYieQQ}s5v=|jZJylMjhd(lh#8HAVeayAF`KXp z!+cNEmmnCPL=7q^HtsDpe?N~ww|5)uz@`dSzzsDm1)Yj_WOmh%2gfb~L1gG|inTNa z#vD5ffd9mGcZ)Vv0^g3>&5nsNipr@?MM`MIeHoS2wY(v+D@zz#R3RAVI`oM9XaLe4<09os^SbAP34cEu3*}oVE^=aBd%=-cVCR$5Pu9aJ6r+8?Nv?h~!a|VqY zxb-wZiFj>ng{KuyB@#RL|HBJc)XU|i_?1ih>Td?2XZ)w$cLa&7!(FlRhtMhquV_r;GjU3px6Zy5?eaZp q>Tb7q`$9IrY^q(w(4K#hQsL*~H>d`{)lVBXSRJylC_Q*G>c0RckwnY@ literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-vsc-csproj.gif b/doc/articles/Assets/uno-vsc-csproj.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf2e92b30c00356a3c6f5f257d83fa53ff4335b6 GIT binary patch literal 440013 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�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

=_>2&P{7wR;M-}n2a`z(vlzfjD4e|Wvv(7 zCytDlZ#rb2Wz%~u18Q~1I)-@({TwC2$&vefm`M)Y3MBnJAiR7EpU<_$Xc;zSn<4}A z!sba*^N)8c5fi9c7m?Do}W{fYs zEec%M81hqC7a;^T;jcPUZrlFYm#EQ_9ObL_k8hg3+L%- zFm(T-~?mRL1E|v zFzLY0+Q>q#L8-LC&_NMsRphuu0CE`sX%%m@2p_>&Jr8ecdN)J!v9BPvzkrAfa6yns-SEz!SdM*L=H!ZKhmcCZtX% zv9~-;2v$o7=DT1u-i~OMo@lGi0Tp3VlU^it;Rx!Uc(AaCKg+&7X<-%jF|btEpZ|mbl@kWtPbC(HbV`7a8;jIUig-6 zKl^%d7t09W5FOVzLrwM4i)R!b8?4#1J5sw)|EkgMjOxP}_Srs^e zi*}RHpAHZg;0l+Z8<-#S|3U$1paXY;y2}Yo-zRLU2K3n1%Gx|(1gBVCV&y=$8h}h zaFl!UHZx#X-+z1o23CH=;~Jnv7f^gYVnSCL1?Yob755qwB3a`1DjN*B7Cs{cFG{3N z!5}0OMyALDzAFGkz|aD7oxOx1#dJM8gkT?yVV^L`a;;pN{XVqvtuI#-r&7uNd^OB^6UHg(bf~y8JjZWIJgaDUVHFeNn z4b4b^ia;RsIDk&Z6Blt&k0xh5lrS3-xDl_zL^LGy@5&ktQ~_@jPK4}?dGThJ1Eivz zMu<6q#{NB>CVlO<7c-m3_36k|`O_oAL{gV0WsKBOZJgn&<&(AQnuc`8t!vL>7M zNg2O@sW-=?!-A{!1^5*GDU1EP6#zoTMS>8!TD~gq?M+Sx)G5ZKag%l_>USu3 z@=A?NiG|R)BMSlzn*G`1`6-GkcNC`ev49y|GrB=zw~Go5X<=JlGA2`q1I$qfGJqeE zqtLh?xDSMUWM;YFBIN3U9gtBkU3hLXl|{K)T^_;+9uN%-l(+(4y+5z|P&ukhgy0r2 z9St?bv)%fh@4y*E1zD78=>`j4 z$Mf0t3pwxA^63GY#cJ7`LAl9ld4dR;)oMk}3nABPCCKVAxQoyrY7qr>FDJ#MX4NSj zgxYuN@vjjKD%7he!Hvc9jbGGTy472!7hAEG+9;RW-z{|rYP26Lc6Kjz7th!FX!Lwr z>=E?u&DI!9UK$!!?~c|Oc|aZdrqTOtsf+U42&~2=(YL`1jWB=)1p1zM|7}iDvo%?D z#6oi*+ds58ruRGIG7;cug&t}ZODn+X?P|0C+IzspJHRGAV2cv+xx7uORhGS+FsAnX z9k7^wF(rFpcUTkht0Zg@y7i!%%(m#zo^uYna`7H~Y_IJpv*H0>G4Ncujn=-)Ub&lI zxqk<~DF)xb>fB#whXGa}=vN=HR$*9l?jJ&*Gk~A_>cDQT0JK(tDLT<OF zRnlc$GD98cOI>ofbuyF{I5=HOZapfgb@D?1wa_}vuIkM4ist4`Bz@VAYk}X zF=&DD9T4C{B8jiQX`_zlkv@WGe801l=&^*XbJXa)W?8?CUibN*CR3{6G`wYL?OuR? z1caDH4F5?z!qbvt;=Lgg4R|THsBfEQ6%WCGg&5 z5NBP>+wIN}iSFlQiui#{YpAaLdvDka@suH1CJ6QT4t->({$By1ACr0Ve079xxrO;hsqN zacN#pWVmZy_malC9-wzBWWLX}^1^(HY^c-0m^OK7cGN7G$$Wj)*GoE#>oc_(4oEB2oJ=2C9A`?+_M-tRPUq_q#$Kt5Ue5=ZxF4nmA@IQ z;rYWLPCvxNFxEIA{$*5ubp2MmY0rY`?tkWg%T@0n6TgWnet;plV8q6OB_%0NtlX)^3l!cJV9ir`pvR&QEn4 zDQ2G<_A`D4gbHXa8;@r=Et}4l%`98)*Y}QEo_1-iTA^^btlD5mAZsb47yHK@sI+v} zogif{>n=>~eT$}qvWU!TQa`#=e&AP)Hmmd;y1aqizK=#Jpoh;yK#Xhuk&#U#sj-a86JB3DFtZ@`)L*JV*42l%LDsaojVm~KJEz3 zusPk_hl>T%+TqK^Prb-jOE${I%+vadmHpVCFP^wgKQd3$RYuS>4B>&3Fi2<6cfUoFlG97?s>?jzHxbi{% zRCh^a?Iwd+8O*csedFnysdZ7wO3O)Id{QiroWxDT%?7+sX5adv<{(TR#l^#+1AY7O zHaa-$32oP1NRCt$TO~{K#F8>oZz_i&JAdf)54O6%j$Re}`X9rL`e^|qfez>GC@EI9 zLcj?vhO1DKvEwhs&?|@^ZTJMRfK1Q4<3UgMDlx<;ugNp4Bp?SSjX`wfWT_vdB+Q?2 zByw5%RZa#1UqpDb92f)wy4Ei<&SL2c#=v?4SX;|fK38k6gN5-2tH!QD95H(2@vr;X zR{Ml!>jucl1;7xmx-Sy#Gz<)xOyTtR2|*@PVL@4cO{U_8vR*Qo^hr9OLa4`V>YtOT zujsE!0{HLKW_y+NnEc`GL^&*BDM4Ve?!C5^e?#!q)`y-S{lJOD%{PAnO+w2MkwC!8gIm)K_S^dGU0sZ2iB z&*fTSmp1E(Ou4Qydf#0CByF?%HuWARkLUUAs3-b)+H=V~jw2HppN7hG!~-J%SPoe* zH*;E1*)Y#xI`gaR??KvjBZeb812hRB{erXa0y%nUKsA)O&>xf{8o&h2nhb`dyYGU~ zpKBzhpubXR#>d4raMKVG61avrQAu3 z3Ct0d7ba<*P0LKFw>1&Kul_D8u;kPan|olO_j7fA*0W4SJ|{)iujN7B^|V@)mGNIy zELn;>R^14YFxPKX$@16Bi~Cd0aXHaaBIpZ9mq-lrDQOivr%HqD_l`l@NsuqV=jpl;76W zzKnkVL!w2Ts09%74&4<=od_TwN2(0@`Xyf_6F3WVrYotQTio09zl2%2dM8mFtX-Wa zhz=b?hIgNi$i7pD#v0N^&0QYw&R7pS_PYC(gLRM~(s!&$ryepmQM0#b+Dh|fRkgvJ zf?TT+v z^h<_)!o4+-UtBzO5~2J^NasxKERkukkg&Aaro*7apm_GxP&4gDVrRd)o($x05RV9D z2#3?qOP8>lK7 zV)~HCrQZr!6SQCGD4OZsSSM7Egqw{VDy;w>onLr8+D4d~>i5z)f{iKO7-Su^7;>5v ziwlWl*beUKmh2NJ9Sh=B-c8dI?Gmfcc{5^0$PvK*z)4J7w+kWCGMnUN=2ViRFmyfY z2h^`Xp|VL%5Sn>YKrO3}L0ips`h;?95ErW~^QpDN$~Wr8RMf-cRh7ZYSKpCS1=O_( zhmh~%$BCX618@%u~1GXJmK~d}Yo@;M7RIL?S-LsMc=lHP=DR zSKuU$6JaYS6TZL@>ilt`$k?|{ZC8a+54W0p`N>dIfAYNukG@41X%ysfdj)!BAk(f~ zM9+?Y5gI2;2eIA^nrh3W@rwGm7>AP6Zy2~QV z>PYdcwvmaPUDcO9`OqJHH>Z6t_|yg&_xXUM@zb^Djpcd9sp_&oIDTsYY)UY5Ar#W7j+)E zBA(R7p2WDGuK=Eed7hMUy7JJjK-~{@IPwMX`0T#;EVf?UV8hB2=K%+KHfuyLqaD0_`S8cH0WnE!)zrwBp(R;~DKv?*-T#_n20qNFXw;D9)AP#q*7 zGzSj521nrfN3r=w=JBYL8&z$fI>5Q`{0azJKC^|l7A)ok4%WgZgne@TXq#Wh>hck_ z=Cyc0g)Q)z9lY!p*m0nUupL6VLp1s)9(^AcWe{s^;N@z-Wm-Uy3Th=AHK!4t2FNl) zCD@YB%d^UIrY@M!gW!D}TE^8IR~x=HCzc#m=bdXh@CSu576$;IS<^Klx2&&*6>5zP zd%!r##5#cmsrBbrB1I=2V-;czWAg7;#8xWQCV6&-aX#jLb|%!!x5g~6V{la}q-m^Z znX7&k@!N zQJq(?1@uMG@nZ*@HF>)$%vvDaI9y{F0t{;)SCU|@uz#Jtm zO+UX)AwRvFXa|)TUC|gLgqWr5m<@v%O#@55bv1#EU9+C;j&GB=fGLa&6yo^YkaQr7VHn#vK zH^0x`034j4dMEr|YaIXBl6bS^zVMef3010zb-AkDFJnt1pav%rMX^3Ll83giCv~YN z^?Xk1i%%M;Pa0B9dbBdB;3u#%Nt{wmrt#w@d*|Q+P8HCqt{B^oC4 zuo(b%ZOSiPmf#H6H;pauVtVR6RVst*ad6ZsVm_&+6DP!wsQHnrWso^%kS1hM1Z2<_ zWPI$8fdqsYIWpdwW-tWAq|XrA#s!#dD)WQ1CRGl>Z{-9;{atx1U>YED#MKto>8(?VXzZC)6DegsE; zlv;kO0P2zh=)G88(R2Hx0SK`I3{OKC5-6C}FZkwN(3e$^eJhy>ancj$%Wn&EfrT|{ zg>?x9wPJ-$0R=4!1r@-eW}2c_{GuL?qF%M4zJ{WKg`%$8qJEm9!iK`hgu>~9!Wo+4 z1?QsKh2q75!sUVD6^_CUvEuKhCF=<#tIj3!1tpsag(JHqJNO8N?luUw`PT`h_0M&0 z7fRi1?H?h4D1O<*^D-EhvI4T4HKs(sqGifLSurNXy%^7HwM;tGa#po+HemT?q}S{g zC~=^ioU`H;zZHc`MM--Zbz=pc8UFnM%CtPx%-hN&>PnWULWFmmm2VO&SqCeb3oChC zDmf9WKG0UNiB}1mRdK6V@itb8E>?-`p+=-t$uCwZE>tdU-0qw$x2M;@FSJ@+`=mH~Po5teYQo9b;Az+bpyv=pk7Zn_mh$N$Po!WP5 zmZ#1k@6PbTDCP}3jr+8K6v(I7LA*cANf;=T^l4%pV_!5_|9D8I$$Pjc?A#S|S0lXN zHC!6deWejqG#8zzftS(LhWIc>b=USTGqNU(=cO&G)&4-sA`spLRbB_RdexxX3SB~j zTGI{{1H^2;BvA3aJvPX9nyiC+t%LfhsY{sMlwsION(8O~*Wk2nvQhxZ73@1$J7g$0 zNxam}{T?J0+c!i-zkk!NMA*^4*g(JIN#hn{Yd0H5c~iEK`D~`;o$`W->jZwXMwJJ3SZhGZvJ=}q;q*~AbCp2NYBqyJkvpR&IT?!5qrW?Glg*qeO-}RK z!8VVIs7y}i4bKGma(%IDqz*k*no-sydV3Joci+t>x%zy*J+*#e>C58rmndPs<=$p= z=KX%Gl(lCBt+2YY6f7S`nh|vELFh70GF;U%ga%J(Fs-YoK%Gd~ut5&LM%Xfh>)Jus zGMK;vAahCj(!O^x(aK;@05E@1s(0FldH;m^s;=~#CK#0m&r)TF&o)_Y)g6j zX$`Af*-+)V_gqjnS&_p8*QomIDTbh^JeA2R+@-5J*i4jR)9qb-QrO1L>FMwvTE)96 zP0Q~-?Wr`k-^Gm%Hw6`!tmckbIiI);cE?bDi{IQm68KyrXGW$!^6h}6A4m-PO?`Q*$)OJTa6$f5!zjf##IWMrszI0bN>-H2F}+v z7MjPS{L4UTdRwBy7gt@#p}3D@V;F8HC8Aa@LQd!!X8@xoq$Clboc!qeIajou6%SZVtJt+dZAf*A#rq}i+U;dbfL(2X~1)7Bz>t-da2ra zY4vnzV|i(NbZO^y<&b)1(t2evdS$!<37=nij$V3^Tsa+Gd8c0cmR@<3UfYLW2cq7D zu3U#p-$ZI(D}~N{h&<+4xslnm64<{XTy$xrz0GNL#&f-`Y-}l5xrJseFOjZ4Aik@5 zGOpCV0}cM1OnJlI(T?*sNhdlJ-*;K6=WE~h4d3*&-tSYp@EhUskw3#8y5|#nn0Zp+ zDvf|ihnapF_eKei_&#_dUhTo8MV^#S3syzs61Ky>eF)bmnS%4jqBs` zIy^NA4M>Q{1!LEQuCoA2(&MU+D|RmcX&w6D6vg}16*10_0Yvk1N^TCp4Ss)5MxD^0 z!SqXW|F5DNkbuy`gW2XT&%Xjfu&4on>27clq|{CK^#=auKw}@Ql7$zruRY#S?8HJ^ z(_JKPePImca!`ePc~daA-B`$b9Dr8ng**hF%mr)Y4`bLcZ$!xaifGWue^QU-eKHlI zRH^y{b$)6e_OZ8eoJycrg>)^`_Tcn<`aPk&kaBkGoJN{v_-RU;J$9cTm0aysX6F&7 zcfFN84Pr%E+7Tk8{%wWmjOtPdsam z%W|4kaXI>?Si*g>S*z{#1nX2+=bId$0}dh2#LUV=uG95%+??w3qspn%3uII(pr{=p zlqXZCXlK(8_giw*kCYZ-H{eIMFl(vb@4u9aHp+=-bqg#0MLnvrE!9m9410Jlo9zzRjb~dfmaUZz1jh}qvx&zo$WJbNZCE5pCmlpQgr{ADLQOWF6fqpO z!>rpHWWk*9@6Vsau$%2BrCC*h1+qrX_H&;c-d`?P#WXuqF+U474n~=1c3gI2?Ymm_ zU=+DtM^$^+2|*TX`Mi;8M0~rMOVxL?Q=0pgbgvS}_-;4*iTLigUiqu*Sv5S#my>C# z6_?A=BkqUm+0@oAH-m0GPq%BmZf*~d$uiwg`(mBEKhO!wr4%Pay<(!mGfFY_kjAcKwP@4)(6=0hg22CK{Vp+DG@2%$?C z#lDWz&AeTR6Gjh&fgTqG7zYar=zThV14R8{rXl6Mj**QkNFy~KpxCvJRUIeDpfxTa zf3JsAj@v^OAseKVm4R2g)6JY>9b}>L0%zKooV5Zi*m`N5a2qWAB!lRwCY${O<fKC-*P<3D;x+ZIrJ`w~gcPbavvP4PmkuRo$T^ZXOwfQ<6Z%CU#K7Lpt z=WRBgr0JWdp)-TxEysQ7a- zHT9c%+yBl|)ELXgRn@>~ZFWHR+vKnTtnEC`uQ#m;q6 z30VgyLIOgybKQ)-)-o__IZNuP32-2rand=# zp&or5n>OG7O+8*TTYkNQ1ccz6+F-eVQjbfk@WM_V|D+zdPr}xU$WU{fda$4od_gMT zNu&Y2eB7u0`W_opMk1UtEjC#yNt>9xOTVZ`#!V00QV8{!Vim4!vrWRdKB}5xn*N7+ zjBc^Zfl!aqe$G?be*!|i&NJ05e^HNf-P}K^$9*GVmxXBv^;rAuz|!weKWtt zo9F9k?8^PNu-onLfY2Z65fTtudA#cV9T2)&`9nQEqiBO>ZhQVaAf(?0XZJfG)P|7t zhk8VsYD3;=Lpg6lg=q(2wxdz}rXJfd722_W2ZX%aaiiKFUvO0Bwc~ZQ?_s17ZnP7h zw*x0VdrSf`Z`zM-{0W8vrmc&~3Cj~dc2NBc2=U)_*1xLip#4ofn$tP1b}&K$Laq!H zn4NFzc*vO{)MF=2;ZN%EXF#aeIV{J&^O3xh<2Uul%o+N!zXe z19PbW7l%+)Es5;k)Z?#!&{UV?MwisjfKay#X1DCGfYAA=Um9n(qJFoM2DdPU!0&+2 z#$=FMS9jlsPK}N3POomQ^I~n7o|T1eU1p)S#_o>_J#(NQ2=!PrnQZ9VV}i+PlGS5Y z#IZKdXTH(%=~qC=3bWUmLKwcP=Qs6euixun*X!ur>+~xihZq^gzWlb|DqoMJs<=#0HGfLb3iC+AV2Fr280I7 zDF!S4V?Zctu%QYP5E^Wn5>Fxb(Odc%5b}J18;dy9!93KN#n*LCjUY4BV>i^B)T+w| z-Ip~q5LN4sDKZdFI5>_x>G7j~nU-qIIA(w9-Aw^^fiuF`iy z()UTD59gzgFftEFGWT7r&mN?o3CcX$;Z6vUO)5x+k`I;3;HJN+uT~iu(nyLt9a+5} zUQ$Rz?B*0niW`%N&<%$M85H=z@W3gK!qE@oSOjvql44S#V11FHN*^akE+AA4*!Vm` zaxnJoe3-0xnABeCMX(e_^vKfcc;k!lY^RBb*Tf6p9;7eem(f7aa@hbR0=kO;`e6*x zu7joKN`{es<5}xW*o`Xrg z%}IVNg+}(t$)<@F7c4L8G+*$94|u9Pj1g8Qpq~zr$wz?}D`ek}?6FUl!)JUsE{!y4 zL^@jN^|Tzh>NJy}v{ho7n{lW>Hr^RbAoB&P8deniI8pA-^lIDmGxlDc=0vz%d7Vfh zJ)e9L6R?2Ab6+Uwc_)SPV{!8EKpC_!Ou8fW z2~mpC5+rcLSnL4~ftwKyJs@y%=$U_vAQm869cWJkrXTb7gROZd35<~h zhCBo)Y)%!1slKEHt5XA_!9mb*P`d8`$?p=TsuVnN=W>r#ioj5XpvcU3G2V)R$Yzo( zoebZ&Ik`UcM^(U~Otdu*XvKGoI?TuO_HcXWR_2Xqqq8naN9^1S4xGAM;0G z14$o_R(F91HEP3QuY^ zD`jA+BtU*T;QmX%Q?jaOp0?-MoWHvo>?gJvqQKpY;Qj-qm2WjJY~#M;Iz`yWWS~Bc=Kv+Wdk{pm;Ib(zgdI9iU1^(K&)kC9ABVkyRI{00C5TMS%Ws0zb2W9 zG>!onPjOU9Qfs_vTH0O~dsrjUM=wYcK$(+{IwHrOyiTFDj;)A}T(QPm$j7s!%TQDQ zwDl$U#Y@F^mym05Og0p3_D6~CtnVZB-yagkM17>-@u;EXrbb z1ZU*4`#yd*2*f|13iAPyzI;c-06_B*B&^x+P17Zq8kfOt0s836Vv`H8Y$_;iDiSvf z8yaMduPeuFs^%~&=NRPsZ>rC1YCgVI-`doM+k(vDwXwJKShhYsvMbEUl3r`QK3wN* zXG<^us{2Tc(c@OtNmZ~(Vb^Go2~6=z=_@j*hn4k6jRb3i1W$dD$d_E;U`Z0lo=w>N zh?>1&_&`#8qc6NX;wQ6J8#GB=?)UX2QZ6q}74ND~+p@PYJOTs0r;`>F2K z#y2Z%s}duxvQ_9gV=YQR)WbUWrJk1#`T`nq7~F^q!y+}QpI_dNH}8*1Qu=2OQ!i7% z2oJC*h5_){;0np%*iYhaUobqw;sFCj)yK*c5Vx@zD7mGHHG*0Qg8uZ1khn+1_fdST z4F7025tSG_?ak9viuV<0zpNHdu~l}RfY`qSJvMLc1g3kY z-AA_SVTIgi^PIP2?JN$^{1TAdXZZbqlp(LZ&u3NA;zvD$7{$gek0SV!g^st*t}nIL ztpS)U1ekFL8}-e6Tt}dYVYB*tJb!bWhXoK8FIS0%+VK+X{a$I7J1~KGON1cY;fMs5kHVeewkIBIQ)JkL01&)#p_7H6Ds_ZsuUEAdg;<=&j}3!e)p+l6x2@mih> z`kjlQ#tX-ui`AZsOOuPO*h+5OO7)&ghsw&}T*y+{C!N}H@?3CAU&tBRm#SPS`CU9? zH&bfeSApNGb-KVDwO8N1$j!UZ!U@!bztp92Sh>E?BPpH*Ibdiz=sP-ivt1hTDAvrG zo77&K^*XqiT$*oReyR;HzPj8&xw59ZvJsBAV7;;%HMfCxw0GO}H+FPP1&_pBIj15A z+N$acJGyLNS%qGCks5q z5l88)3#Fw|#P$Kji?}Xf&W_Qyy|pYX4EO!L0+QKA1HG;*7zY7si)4pRyJ`z#B!KbQ zl`-;%aYm?d%Zgzfz)UR;6mBUS4q%=UY9aT_SjB@!-vhx{k1vQz4-2yo6Sog5D>ciE zfbT|)Yp9R;fA*sP04H01gOdP4k$>NdCW(~)b1zEzA%IY{BCG#*VlP5JKZd-YFbbhE z=O;KBvXoJoJDSSt1tb#t_rxC7wWZE`&yUQK-v+7+XG?WD|CQK#_hU~_(aUl+=iD)@ zWXanaVXJxYZ*a1%Y@*Hqnc$mv^y`n^Klh>%^%WD^@J#B<|8*}KRcIQ?Ttvj(P!F<$q_G6eqwC;w|=?+uJj2$vd#UMPkZWs)H;w#mj9fsU*1;SwxAHX>z& zUTsDxD49@-Pip3Gx?E*Bj76ybO6-xx>Hkjb{Wwr^PlUGb-};%@%T-I_x|m3Iy}ZGX z`x;S;gCp2}lgjH2hyNliK&aO^b9>rmA|A6G`c+tzR>6;)mf#K-Mp*?{XF3W z169ah-cneznZ*oGj=QpzJ*Iobe4hi%Jj=MxKhgrnt7yNLqCobdco%B!1-SLk&@20h zMMyNpmCTA2sk6{uC?|9Bc7v2fWOLxMDL7>3YfooKB(nILDf71JNFWMI@ zyZ1fzQ@Z(SI_+Nen?VZ4txx?-v*u^RY}-X=BOoz3_fhB@B<4{89EyVAlAd{?_t8tcF#0~KizD`{oIQtIUe3@r};75 z?qtP&GRt}E=-u$6sP^!7udJ8hZog{w)7?SccFEmg)79bKQ5$?~!D9@C>TF6mHEM}Nt@Pp2lXCP=Vz0eg5|Y@XqTCk{Wi}6^{Q*hr>7C75@<_yp z3EV&2Uy+1gJtC$-!He)hCrFcR0F^buO;&ut*1b!m&3sB(bL~QbA4FKh z13mVy#9jtwu1GhH8YHndl!0CQC$Wc=iQ5ZF>?NE88B1j1&-V4OG(Zx2L79Zxki_1? zNr=;*#NO>ms5?>?DZFSOKmPx1FUtBmu@^r?@@p^3g65v{GqLxITcP3~iMRdmJV?DgDpHo`T-Hi+qtA zG{JO8Vo&X&KxMc(n5k*FD7FgzJF(|9T&Q(5 zFxzr_QRE4K?*E!V@PU#|!xqlMnIe4p0k3ws^*{B$-_4FsS_v(hoF`A%|YR_6T^ zoHX+L2~PUn!TBQ}O|%kUzR2b<2ci32cTuAxy2}r(V-o~3@z|FK8A*J{f1+eUt2v>L zEci}*_bag{@R@FdoPb?hfE$w7GcTcdd($ry5)+vzu}PzTGobSL@sT%alfmU?PzR;* z@5G)|Wy0*x7E2=poU{t5{FT^SycuyCsZ6;V+UCBy8Fl{&PD<|Z6Wor0rK&P;hIjr> z>`DF*Q->t>MyhgHhkr=9+)k#URObmx?#dN$eem)HZEP z9yu>U5_==HEmy-wU+?Z9d(pZ!c&TI0Kj0+J$g%G)aFUJ4lI9mUDY16S&m3~nW8L(9 z<(92)r5mL(%5`J?X<}P2#~dR%^M3PnX#Eh6kxnAmbxX~2J4FUM&w80~+wt}@ugAz+ zcl2cQ4K;N4&=QvPw?w*6I=O=A_vfy%&ATeI^xgkR?Da}rRwO>`8%zJU#2za?*9wud zfQ^}>_h#ME`0bsD!>&zREDb{fn(H8vTV*=a*yiWJPWbz>HBd$>Pq!tlAqVjw-M@BLC3!F4| zX1vA_kn?&Q=f&~gz)3AbJE1slt@E#9*TjXh-ZE?gH&h@w90)imaLNjzbNau5ll{s* zpMHUpWpI9WPJT{1N)mB?uD=p{UyS_Re}R+#OzizTI2jk`pYXp9P8!pZOyQ8my_b>= zM)dF+uM4JQ3U*x!4x~aSfeHD*%FZz9u@o2b!`kb4dN5&o$V-o4=(UhtmC#G4pWx)} zoN=$?n>8@bofARHI_;59hzssdaFYCONcD+xQ7y&!PU!J0dHxH#9lNk3%y3D*5H41< z9g5JH_V8gGG<6XkFAuQ?6-@FQ@mhB@N>NPQehT&D7h_%+=Eo7OPqI$1|Deg1WJ$c$R za!_U%4s#R^QZ|Th9_>Cn;*}_oa67`WJig^;wCvaPw*H`v4o7ki6|@`NS9sA!*O&&p zAjE5I1rxN7@fhEu$aFltk)MUqhf~A0!+!oDg~$eaUJ(rprw~PW3l|9fIh98sOXu5 zYR!gp64g@=YMV|pC5uZ?1$m0#e*TP_8J382BJUC&2g?)%|CA0hbtCb*8xHGPeC9Ly z<_M?C_IUL11cLM=?QnuqcC_7&FB@`@P7a8nH@V55dIpR!s|wYqoKkg;3b;i>bjzZ>X`zphW9X;M3<2WBQqN>xS;Da0x z;x!&gm!1w6{_2$)?%sz~fGluQKIyr&4UBB$(l(bcpAO)ejP*D-rK-!zc{DneNNg|A zbr+hPDM&Cs2Ch7g`Xm9aCIcEPiC7j3or4ygCNc62E|fF#1fG$ZGjX(S4gq^QbU5ys z-k0ZSned7jk!LyhWVwVV)DF(kLeKKNITA@6sGT|Rl%Eo?0~_#I7C>OuF#PaW_b0fJ z)#`%@K{±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[NOTE] + > If the popup doesn’t appear, access Uno Platform settings by clicking on **View** > **Other Windows** > **Uno Platform Settings**. + > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) + +### [**Visual Studio Code**](#tab/vscode) + +If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: + +1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. +2. After opening your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. + ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) +3. Access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. + ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) + +### [**JetBrains Rider**](#tab/rider) + +If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: + +1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. +2. Go to **Tools** > **Uno Platform** > **Settings...**. + ![Visual Studio Code Menu](Assets/uno-settings-rider.png) + +--- + +1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. + ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) +2. Once signed in, you’ll see confirmation of your account with license details and can use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, see the [Hot Reload documentation](xref:Uno.Features.HotReload). + ![Uno Platform Settings Welcome](Assets/uno-settings-main.png) + +## Questions + +For general questions about Uno Platform, refer to the [general FAQ](xref:Uno.Development.FAQ) or see the [troubleshooting section](xref:Uno.UI.CommonIssues) for common issues and solutions. + +If you encounter any issues or need further assistance, reach out on our [community forum](https://platform.uno/community) or connect with us via the [Uno Platform GitHub](https://github.com/unoplatform). From 1cc726919d2ed0e4c84534d37daba8e5ad0fede3 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Fri, 8 Nov 2024 13:47:54 -0500 Subject: [PATCH 496/664] chore: follow convention for removing code in /Generated/*.cs --- .../HttpRequestHeaderCollection.cs | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.Web.Http.Headers/HttpRequestHeaderCollection.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.Web.Http.Headers/HttpRequestHeaderCollection.cs index e84f072c97ff..6a6929c5c4b2 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.Web.Http.Headers/HttpRequestHeaderCollection.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.Web.Http.Headers/HttpRequestHeaderCollection.cs @@ -198,6 +198,14 @@ public bool TryAppendWithoutValidation(string name, string value) // Forced skipping of method Windows.Web.Http.Headers.HttpRequestHeaderCollection.First() // Skipping already declared method Windows.Web.Http.Headers.HttpRequestHeaderCollection.ToString() // Processing: System.Collections.Generic.IDictionary +#if false + // DeclaringType: System.Collections.Generic.IDictionary + [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "IS_UNIT_TESTS", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] + public void Add(string key, string value) + { + throw new global::System.NotSupportedException(); + } +#endif // Skipping already implement System.Collections.Generic.IDictionary.this[string] #if __ANDROID__ || __IOS__ || IS_UNIT_TESTS || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "IS_UNIT_TESTS", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] @@ -247,6 +255,14 @@ public void CopyTo(global::System.Collections.Generic.KeyValuePair>.Count // Skipping already implement System.Collections.Generic.ICollection>.IsReadOnly // Processing: System.Collections.Generic.IEnumerable> +#if false + // DeclaringType: System.Collections.Generic.IEnumerable> + [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "IS_UNIT_TESTS", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] + public global::System.Collections.Generic.IEnumerator> GetEnumerator() + { + throw new global::System.NotSupportedException(); + } +#endif // Processing: System.Collections.IEnumerable #if __ANDROID__ || __IOS__ || IS_UNIT_TESTS || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ // DeclaringType: System.Collections.IEnumerable From 854a1f8010b555af0d143d6efa54b2685df73cf3 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2024 13:21:18 -0500 Subject: [PATCH 497/664] fix: Use temp file for AddIn discovery instead of output parsing to avoid encoding issues (cherry picked from commit 122646d713dc53c035d28d39596f3a07f8b1cad9) --- src/Uno.Sdk/targets/Uno.Build.targets | 6 +++ .../Extensibility/AddIns.cs | 50 ++++++++++--------- .../Uno.WinUI.DevServer.targets | 6 +++ 3 files changed, 39 insertions(+), 23 deletions(-) diff --git a/src/Uno.Sdk/targets/Uno.Build.targets b/src/Uno.Sdk/targets/Uno.Build.targets index b91ffbc698e9..cea2c1957747 100644 --- a/src/Uno.Sdk/targets/Uno.Build.targets +++ b/src/Uno.Sdk/targets/Uno.Build.targets @@ -148,6 +148,12 @@ It is useful to determine all target frameworks used by all projects of a solution. --> + Discover(string solutionFile) { - // Note: With .net 9 we need to specify --verbosity detailed to get messages with High importance. - var result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpTargetFrameworks --verbosity detailed"); - var targetFrameworks = GetConfigurationValue(result.output ?? "", "TargetFrameworks") - .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(tfm => tfm.Trim()) - .Where(tfm => tfm is { Length: > 0 }) - .Distinct(StringComparer.OrdinalIgnoreCase) - .ToImmutableList(); + var tmp = Path.GetTempFileName(); + var result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpTargetFrameworks \"-p:UnoDumpTargetFrameworksTargetFile={tmp}\" --verbosity quiet"); + var targetFrameworks = Read(tmp); if (targetFrameworks.IsEmpty) { @@ -37,7 +33,8 @@ public static IImmutableList Discover(string solutionFile) foreach (var targetFramework in targetFrameworks) { - result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpRemoteControlAddIns --verbosity detailed --framework \"{targetFramework}\" -nowarn:MSB4057"); + tmp = Path.GetTempFileName(); + result = ProcessHelper.RunProcess("dotnet", $"build \"{solutionFile}\" --target:UnoDumpRemoteControlAddIns \"-p:UnoDumpRemoteControlAddInsTargetFile={tmp}\" --verbosity quiet --framework \"{targetFramework}\" -nowarn:MSB4057"); if (!string.IsNullOrWhiteSpace(result.error)) { if (_log.IsEnabled(LogLevel.Warning)) @@ -48,13 +45,7 @@ public static IImmutableList Discover(string solutionFile) continue; } - var addIns = GetConfigurationValue(result.output, "RemoteControlAddIns") - .SelectMany(tfms => tfms.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(tfm => tfm.Trim()) - .Where(tfm => tfm is { Length: > 0 }) - .Distinct(StringComparer.OrdinalIgnoreCase) - .ToImmutableList(); - + var addIns = Read(tmp); if (!addIns.IsEmpty) { return addIns; @@ -69,9 +60,22 @@ public static IImmutableList Discover(string solutionFile) return ImmutableArray.Empty; } - private static IEnumerable GetConfigurationValue(string msbuildResult, string nodeName) - => Regex - .Matches(msbuildResult, $"<{nodeName}>(?[^\\<\\>]*)", RegexOptions.Singleline) - .Where(match => match.Success) - .Select(match => match.Groups["value"].Value); + private static ImmutableList Read(string file) + { + var values = File + .ReadAllLines(file, Encoding.Unicode) + .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) + .Select(liene => liene.Trim()) + .Where(line => line is { Length: > 0 }) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToImmutableList(); + + try + { + File.Delete(file); + } + catch { } + + return values; + } } diff --git a/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets b/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets index f5f251763e74..2a33b6875fa8 100644 --- a/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets +++ b/src/Uno.UI.RemoteControl/buildTransitive/Uno.WinUI.DevServer.targets @@ -33,6 +33,12 @@ + From c2e9f07b80cc8d424476eb9634814c2d3b505558 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2024 13:32:20 -0500 Subject: [PATCH 498/664] chore: Fix typo (cherry picked from commit 60f770ce9c660875df343648cd966b31603f1bed) --- src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs index 92b63671e01e..7c3af7961702 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs @@ -65,8 +65,8 @@ private static ImmutableList Read(string file) var values = File .ReadAllLines(file, Encoding.Unicode) .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(liene => liene.Trim()) - .Where(line => line is { Length: > 0 }) + .Select(value => value.Trim()) + .Where(value => value is { Length: > 0 }) .Distinct(StringComparer.OrdinalIgnoreCase) .ToImmutableList(); From d3b35cf38152e4dcf834a2d8e8751dcbd4165443 Mon Sep 17 00:00:00 2001 From: David Date: Thu, 7 Nov 2024 13:35:34 -0500 Subject: [PATCH 499/664] fix: Make the add-in disocvery safer (cherry picked from commit 4151902c67c2834114eca99c11878b2fe9b3657a) --- .../Extensibility/AddIns.cs | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs index 7c3af7961702..9a065098b8db 100644 --- a/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs +++ b/src/Uno.UI.RemoteControl.Host/Extensibility/AddIns.cs @@ -62,13 +62,18 @@ public static IImmutableList Discover(string solutionFile) private static ImmutableList Read(string file) { - var values = File - .ReadAllLines(file, Encoding.Unicode) - .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) - .Select(value => value.Trim()) - .Where(value => value is { Length: > 0 }) - .Distinct(StringComparer.OrdinalIgnoreCase) - .ToImmutableList(); + var values = ImmutableList.Empty; + try + { + values = File + .ReadAllLines(file, Encoding.Unicode) + .SelectMany(line => line.Split(['\r', '\n', ';', ','], StringSplitOptions.RemoveEmptyEntries)) + .Select(value => value.Trim()) + .Where(value => value is { Length: > 0 }) + .Distinct(StringComparer.OrdinalIgnoreCase) + .ToImmutableList(); + } + catch { } try { From 5bef37fe40162c7d86bcaae779ce5516561d19cd Mon Sep 17 00:00:00 2001 From: Rafael Rosa Date: Thu, 7 Nov 2024 20:18:15 -0300 Subject: [PATCH 500/664] chore: remove disabled Menu when dispose (cherry picked from commit 9c0456d5eac4cbae0418b77472bcdac26ce948c3) --- src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs b/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs index 7834d2a84f25..76b58839d274 100644 --- a/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs +++ b/src/Uno.UI.RemoteControl.VS/Commands/UnoMenuCommand.cs @@ -152,8 +152,7 @@ public void Dispose() if (_unoMainMenuItem is not null) { - _unoMainMenuItem.Enabled = false; - _unoMainMenuItem.Visible = false; + CommandService.RemoveCommand(_unoMainMenuItem); } } } From be56be494c1d7b6a77044bf218573e15d36da99c Mon Sep 17 00:00:00 2001 From: David Date: Fri, 8 Nov 2024 16:01:41 -0500 Subject: [PATCH 501/664] fix: Fix the discovered processor list additive --- src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs b/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs index dbb9d80fb160..ff91e6531b23 100644 --- a/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs +++ b/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs @@ -28,6 +28,7 @@ internal class RemoteControlServer : IRemoteControlServer, IDisposable private static readonly Dictionary _loadContexts = new(); private static readonly Dictionary _resolveAssemblyLocations = new(); private readonly Dictionary _processors = new(); + private readonly List _discoveredProcessors = new(); private readonly CancellationTokenSource _ct = new(); private WebSocket? _socket; @@ -257,7 +258,6 @@ private async Task ProcessPingFrame(Frame frame) private async Task ProcessDiscoveryFrame(Frame frame) { var assemblies = new List<(string path, System.Reflection.Assembly assembly)>(); - var discoveredProcessors = new List(); try { var msg = JsonConvert.DeserializeObject(frame.Content)!; @@ -358,12 +358,12 @@ private async Task ProcessDiscoveryFrame(Frame frame) { if (ActivatorUtilities.CreateInstance(_serviceProvider, processor.ProcessorType, parameters: new[] { this }) is IServerProcessor serverProcessor) { - discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: true)); + _discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: true)); RegisterProcessor(serverProcessor); } else { - discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false)); + _discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false)); if (this.Log().IsEnabled(LogLevel.Debug)) { this.Log().LogDebug("Failed to create server processor {ProcessorType}", processor.ProcessorType); @@ -372,7 +372,7 @@ private async Task ProcessDiscoveryFrame(Frame frame) } catch (Exception error) { - discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false, LoadError: error.ToString())); + _discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false, LoadError: error.ToString())); if (this.Log().IsEnabled(LogLevel.Error)) { this.Log().LogError(error, "Failed to create server processor {ProcessorType}", processor.ProcessorType); @@ -404,7 +404,7 @@ private async Task ProcessDiscoveryFrame(Frame frame) { await SendFrame(new ProcessorsDiscoveryResponse( assemblies.Select(asm => asm.path).ToImmutableList(), - discoveredProcessors.ToImmutableList())); + _discoveredProcessors.ToImmutableList())); } } From 1071846d929dc5458fc83756b04c9ac17921eb74 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 8 Nov 2024 16:13:44 -0500 Subject: [PATCH 502/664] fix: Make sure if a processor is reported more than once the client handles it properly --- .../RemoteControlClient.Status.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs index f7a9dd9543bd..047415e4a9db 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs @@ -150,7 +150,19 @@ public void ReportServerProcessors(ProcessorsDiscoveryResponse response) static IEnumerable GetMissingServerProcessors(ImmutableHashSet requiredProcessors, ProcessorsDiscoveryResponse response) { - var loaded = response.Processors.ToDictionary(p => p.Type, StringComparer.OrdinalIgnoreCase); + var loaded = response + .Processors + .GroupBy(p => p.Type, StringComparer.OrdinalIgnoreCase) + // If a processors is being loaded multiple times, we prefer to keep the result that has no error. + .Select(g => g + .OrderBy(p => p switch + { + { LoadError: not null } => 0, + { IsLoaded: false } => 1, + _ => 2 + }) + .Last()) + .ToDictionary(p => p.Type, StringComparer.OrdinalIgnoreCase); foreach (var required in requiredProcessors) { if (!loaded.TryGetValue(required.TypeFullName, out var actual)) From 9e38c7a32199d869aa34519649108e16236b65de Mon Sep 17 00:00:00 2001 From: David Date: Fri, 8 Nov 2024 16:24:57 -0500 Subject: [PATCH 503/664] chore: Avoid duplicated logs and prevent error bubbling --- src/Uno.UI.RemoteControl.VS/EntryPoint.cs | 55 ++++++++--------------- 1 file changed, 19 insertions(+), 36 deletions(-) diff --git a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs index 8a9b81a8df58..4fab39943dd9 100644 --- a/src/Uno.UI.RemoteControl.VS/EntryPoint.cs +++ b/src/Uno.UI.RemoteControl.VS/EntryPoint.cs @@ -442,71 +442,54 @@ private async Task OnMessageReceivedAsync(object? sender, IdeMessage devServerMe switch (devServerMessage) { case AddMenuItemRequestIdeMessage amir: - await OnAddMenuItemRequestIdeMessageAsync(sender, amir); + await OnAddMenuItemRequestedAsync(sender, amir); break; case ForceHotReloadIdeMessage fhr: await OnForceHotReloadRequestedAsync(sender, fhr); break; case NotificationRequestIdeMessage nr: - await NotificationRequestIdeMessageAsync(sender, nr); + await OnNotificationRequestedAsync(sender, nr); break; default: _debugAction?.Invoke($"Unknown message type {devServerMessage?.GetType()} from DevServer"); break; } } - catch (Exception e) when (_ideChannelClient is not null) + catch (Exception e) { _debugAction?.Invoke($"Failed to handle IdeMessage with message {e.Message}"); - throw; } } - private async Task NotificationRequestIdeMessageAsync(object? sender, NotificationRequestIdeMessage message) + private async Task OnNotificationRequestedAsync(object? sender, NotificationRequestIdeMessage message) { - try - { - await _asyncPackage.JoinableTaskFactory.SwitchToMainThreadAsync(); + await _asyncPackage.JoinableTaskFactory.SwitchToMainThreadAsync(); - if (await _asyncPackage.GetServiceAsync(typeof(SVsShell)) is IVsShell shell && - await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUIFactory infoBarFactory) - { - await CreateInfoBarAsync(message, shell, infoBarFactory); - } - } - catch (Exception e) when (_ideChannelClient is not null) + if (await _asyncPackage.GetServiceAsync(typeof(SVsShell)) is IVsShell shell && + await _asyncPackage.GetServiceAsync(typeof(SVsInfoBarUIFactory)) is IVsInfoBarUIFactory infoBarFactory) { - _debugAction?.Invoke($"Failed to handle InfoBar Notification Requested with message {e.Message}"); - throw; + await CreateInfoBarAsync(message, shell, infoBarFactory); } } - private async Task OnAddMenuItemRequestIdeMessageAsync(object? sender, AddMenuItemRequestIdeMessage cr) + private async Task OnAddMenuItemRequestedAsync(object? sender, AddMenuItemRequestIdeMessage cr) { - try + if (_ideChannelClient == null) { - if (_ideChannelClient == null) - { - return; - } + return; + } - if (_unoMenuCommand is not null) - { - //ignore when duplicated - if (!_unoMenuCommand.CommandList.Contains(cr)) - { - _unoMenuCommand.CommandList.Add(cr); - } - } - else + if (_unoMenuCommand is not null) + { + //ignore when duplicated + if (!_unoMenuCommand.CommandList.Contains(cr)) { - _unoMenuCommand = await UnoMenuCommand.InitializeAsync(_asyncPackage, _ideChannelClient, cr); + _unoMenuCommand.CommandList.Add(cr); } } - catch (Exception e) + else { - _debugAction?.Invoke($"Using AddMenuItem Ide Message Requested fail {e.Message}"); - throw; + _unoMenuCommand = await UnoMenuCommand.InitializeAsync(_asyncPackage, _ideChannelClient, cr); } } From f80f7ff7207804ad99c5288c1abbbd3c33ad32d0 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Fri, 8 Nov 2024 17:49:43 -0500 Subject: [PATCH 504/664] chore: fix xcode project post merge (crashed Xcode) --- .../UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj index 0be42284d811..6a5fccac38ff 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj @@ -9,6 +9,8 @@ /* Begin PBXBuildFile section */ D116C63E2AC79876004B975F /* UNOCursor.m in Sources */ = {isa = PBXBuildFile; fileRef = D116C63D2AC79876004B975F /* UNOCursor.m */; }; D13AB8A82B5839B200693F8E /* libSkiaSharp.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D13AB8A72B5839B200693F8E /* libSkiaSharp.dylib */; }; + D15930D52CDEA3C0007B40FD /* UNOWebView.h in Headers */ = {isa = PBXBuildFile; fileRef = D15930D32CDEA3C0007B40FD /* UNOWebView.h */; }; + D15930D62CDEA3C0007B40FD /* UNOWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = D15930D42CDEA3C0007B40FD /* UNOWebView.m */; }; D18D4FAC2C2DE804003E4BBF /* UNONative.m in Sources */ = {isa = PBXBuildFile; fileRef = D18D4FAB2C2DE804003E4BBF /* UNONative.m */; }; D1A0651E2A7066F700101BE6 /* UNOMetalViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A0651D2A7066F700101BE6 /* UNOMetalViewDelegate.m */; }; D1A065202A8467B200101BE6 /* UNOApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = D1A0651F2A8467B200101BE6 /* UNOApplication.h */; }; @@ -25,6 +27,8 @@ D116C63D2AC79876004B975F /* UNOCursor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UNOCursor.m; sourceTree = ""; }; D13AB8A72B5839B200693F8E /* libSkiaSharp.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libSkiaSharp.dylib; path = UnoNativeMac/libSkiaSharp.dylib; sourceTree = ""; }; D13AB8AC2B58566400693F8E /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; + D15930D32CDEA3C0007B40FD /* UNOWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UNOWebView.h; sourceTree = ""; }; + D15930D42CDEA3C0007B40FD /* UNOWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UNOWebView.m; sourceTree = ""; }; D18D4FAA2C2DE76F003E4BBF /* UNONative.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UNONative.h; sourceTree = ""; }; D18D4FAB2C2DE804003E4BBF /* UNONative.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UNONative.m; sourceTree = ""; }; D1A0651C2A70664A00101BE6 /* UNOMetalViewDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UNOMetalViewDelegate.h; sourceTree = ""; }; @@ -101,6 +105,8 @@ D1FE7A2A2B75C8BB00ACFC76 /* UNOSoftView.m */, D1A065232A8AC15C00101BE6 /* UNOWindow.h */, D1A065242A8AC23800101BE6 /* UNOWindow.m */, + D15930D32CDEA3C0007B40FD /* UNOWebView.h */, + D15930D42CDEA3C0007B40FD /* UNOWebView.m */, ); path = UnoNativeMac; sourceTree = ""; @@ -112,6 +118,7 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( + D15930D52CDEA3C0007B40FD /* UNOWebView.h in Headers */, D1F248A92A67288B008A609E /* UnoNativeMac.h in Headers */, D1A065202A8467B200101BE6 /* UNOApplication.h in Headers */, ); @@ -181,6 +188,7 @@ D1A065252A8AC23800101BE6 /* UNOWindow.m in Sources */, D1CC768B2AB9D464002A44F0 /* UNOClipboard.m in Sources */, D116C63E2AC79876004B975F /* UNOCursor.m in Sources */, + D15930D62CDEA3C0007B40FD /* UNOWebView.m in Sources */, D18D4FAC2C2DE804003E4BBF /* UNONative.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; From 124cb8465fd01d8759f86ae2eae71eb85a4fadbc Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Fri, 8 Nov 2024 17:52:53 -0500 Subject: [PATCH 505/664] chore: better/simpler basic clipping --- .../MacOSWindowHost.cs | 4 +- .../UnoNativeMac/UnoNativeMac/UNONative.h | 10 +++-- .../UnoNativeMac/UnoNativeMac/UNONative.m | 37 +++++++++++++------ 3 files changed, 34 insertions(+), 17 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs index 33a94bf7a50f..a9c3c3a2da43 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs @@ -83,10 +83,10 @@ private void Draw(double nativeWidth, double nativeHeight, SKSurface surface) if (RootElement?.Visual is { } rootVisual) { // remove previous clipping (if any) - NativeUno.uno_window_clip_svg(_nativeWindow.Handle, null); + // NativeUno.uno_window_clip_svg(_nativeWindow.Handle, null); int width = (int)nativeWidth; int height = (int)nativeHeight; - SkiaRenderHelper.RenderRootVisualAndClearNativeAreas(width, height, rootVisual, surface); + SkiaRenderHelper.RenderRootVisualAndReturnPath(width, height, rootVisual, surface); // TODO clip the "negative" of what was drawn } } diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h index e8db0f80429c..7259446bb968 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h @@ -8,16 +8,18 @@ NS_ASSUME_NONNULL_BEGIN -@interface UNORedView : NSView - -@end - @protocol UNONativeElement +@property (nonatomic) bool visible; + -(void) detach; @end +@interface UNORedView : NSView + +@end + NSView* uno_native_create_sample(NSWindow *window, const char* _Nullable text); void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, double arrangeWidth, double arrangeHeight, double clipLeft, double clipTop, double clipWidth, double clipHeight); diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m index 66eca41fdf8a..79a5dab4dae3 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m @@ -11,12 +11,18 @@ @implementation UNORedView : NSView // make the background red for easier tracking - (BOOL)wantsUpdateLayer { - return YES; + return !self.hidden; } - (void)updateLayer { - self.layer.backgroundColor = NSColor.redColor.CGColor; + self.layer.backgroundColor = self.hidden ? NSColor.clearColor.CGColor : NSColor.redColor.CGColor; +} + +@synthesize visible; + +- (void)detach { + // nothing needed } @end @@ -41,22 +47,28 @@ - (void)updateLayer return sample; } -void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, double arrangeWidth, double arrangeHeight, double clipLeft, double clipTop, double clipWidth, double clipHeight) +void uno_native_arrange(NSView *element, double arrangeLeft, double arrangeTop, double arrangeWidth, double arrangeHeight, double clipLeft, double clipTop, double clipWidth, double clipHeight) { - NSLog(@"uno_native_arrange %p", element); - if (!element || element.hidden) { - NSLog(@"uno_native_arrange0 hidden %p", element); + if (!element || !element.visible) { +#if DEBUG + NSLog(@"uno_native_arrange %p '%@' is not visible - nothing to arrange", element, ((NSTextField*)element.subviews[0]).stringValue); +#endif return; } NSRect clip = NSMakeRect(arrangeLeft + clipLeft, arrangeTop - clipTop, clipWidth, clipHeight); element.hidden = NSIsEmptyRect(clip) || clipHeight <= 0 || clipWidth <= 0; - // TODO handle partial case with element special layers + if (element.hidden) { +#if DEBUG + NSLog(@"uno_native_arrange %p '%@' hidden by clipping", element, ((NSTextField*)element.subviews[0]).stringValue); +#endif + return; + } - NSRect arrange = NSMakeRect(arrangeLeft, arrangeTop, arrangeWidth, arrangeHeight); + NSRect arrange = NSMakeRect(arrangeLeft + clipLeft, arrangeTop + clipTop, MIN(arrangeWidth, clipWidth), MIN(arrangeHeight, clipHeight)); element.frame = arrange; #if DEBUG - NSLog(@"uno_native_arrange %p arrange(%g,%g,%g,%g) clip(%g,%g,%g,%g) %s", element, + NSLog(@"uno_native_arrange %p %@ arrange(%g,%g,%g,%g) clip(%g,%g,%g,%g) %s", element, ((NSTextField*)element.subviews[0]).stringValue, arrangeLeft, arrangeTop, arrangeWidth, arrangeHeight, clipLeft, clipTop, clipWidth, clipHeight, element.hidden ? "EMPTY" : (clipWidth < arrangeWidth) || (clipHeight < arrangeHeight) ? "partial" : ""); @@ -116,10 +128,13 @@ void uno_native_set_opacity(NSView* element, double opacity) element.alphaValue = opacity; } -void uno_native_set_visibility(UNORedView* element, bool visible) +void uno_native_set_visibility(NSView* element, bool visible) { #if DEBUG NSLog(@"uno_native_set_visibility #%p : hidden %s -> visible %s", element, element.hidden ? "TRUE" : "FALSE", visible ? "TRUE" : "FALSE"); #endif - element.hidden = !visible; + element.visible = visible; + // hidden is controlled by both visible and clipping + if (!visible) + element.hidden = true; } From 3a7332aa5dfba3d3b67523d9df09656669db08b6 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Fri, 8 Nov 2024 20:04:19 -0500 Subject: [PATCH 506/664] chore: fix code style --- src/Uno.UI/UI/Xaml/Controls/WebView/Core/CoreWebView2.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI/UI/Xaml/Controls/WebView/Core/CoreWebView2.cs b/src/Uno.UI/UI/Xaml/Controls/WebView/Core/CoreWebView2.cs index a839d4c64722..d1be4098e6ec 100644 --- a/src/Uno.UI/UI/Xaml/Controls/WebView/Core/CoreWebView2.cs +++ b/src/Uno.UI/UI/Xaml/Controls/WebView/Core/CoreWebView2.cs @@ -286,7 +286,7 @@ private void UpdateFromInternalSource() { RequestUri = requestMessage.RequestUri }; - foreach(var header in requestMessage.Headers) + foreach (var header in requestMessage.Headers) { httpRequestMessage.Headers.Add(header.Key, header.Value); } From d2d72392172e67879f51fc33b4400f6d3e51e0ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Fri, 8 Nov 2024 22:39:23 -0500 Subject: [PATCH 507/664] ci: Don't validate transitive dependencies for template tests --- build/ci/.azure-devops-project-template-tests.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index ceed86143930..140b56f21d50 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -26,6 +26,10 @@ jobs: group_4: TestGroup: '4' + variables: + # don't validate transitive dependencies for template tests + NuGetAuditMode: direct + steps: - task: DownloadBuildArtifacts@0 inputs: @@ -78,6 +82,10 @@ jobs: group_4: TestGroup: '4' + variables: + # don't validate transitive dependencies for template tests + NuGetAuditMode: direct + steps: - task: DownloadBuildArtifacts@0 inputs: @@ -127,6 +135,10 @@ jobs: group_2: TestGroup: '2' + variables: + # don't validate transitive dependencies for template tests + NuGetAuditMode: direct + steps: - task: DownloadBuildArtifacts@0 inputs: From 67c4cd67a2c4f6dde326f0e91ba74c6592ad2bb5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Fri, 8 Nov 2024 22:39:23 -0500 Subject: [PATCH 508/664] ci: Don't validate transitive dependencies for template tests (cherry picked from commit d2d72392172e67879f51fc33b4400f6d3e51e0ab) --- build/ci/.azure-devops-project-template-tests.yml | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/build/ci/.azure-devops-project-template-tests.yml b/build/ci/.azure-devops-project-template-tests.yml index d44825c2442c..53bbf5cf2c93 100644 --- a/build/ci/.azure-devops-project-template-tests.yml +++ b/build/ci/.azure-devops-project-template-tests.yml @@ -25,6 +25,10 @@ jobs: group_4: TestGroup: '4' + variables: + # don't validate transitive dependencies for template tests + NuGetAuditMode: direct + steps: - task: DownloadBuildArtifacts@0 inputs: @@ -76,6 +80,10 @@ jobs: group_4: TestGroup: '4' + variables: + # don't validate transitive dependencies for template tests + NuGetAuditMode: direct + steps: - task: DownloadBuildArtifacts@0 inputs: @@ -128,6 +136,10 @@ jobs: group_3: TestGroup: '3' + variables: + # don't validate transitive dependencies for template tests + NuGetAuditMode: direct + steps: - task: DownloadBuildArtifacts@0 inputs: From 9aa0d33b935565a0c4d046b94f77cc75296322b3 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Sat, 9 Nov 2024 11:52:25 +0100 Subject: [PATCH 509/664] chore: Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jérôme Laban --- doc/articles/features/windows-ui-storecontext.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/articles/features/windows-ui-storecontext.md b/doc/articles/features/windows-ui-storecontext.md index 1fe2b3bae908..c7ed2db5b65f 100644 --- a/doc/articles/features/windows-ui-storecontext.md +++ b/doc/articles/features/windows-ui-storecontext.md @@ -5,7 +5,7 @@ uid: Uno.Features.StoreContext # Store Context > [!TIP] -> This article provides Uno-specific information for the `Windows.Services.Store.StoreContext` namespace. For a comprehensive overview of this feature and detailed usage instructions, refer to the official documentation for [Windows.Services.Store.StoreContext Namespace](https://learn.microsoft.com/uwp/api/Windows.Services.Store.StoreContext). +> This article provides Uno Platform-specific information for the `Windows.Services.Store.StoreContext` namespace. For a comprehensive overview of this feature and detailed usage instructions, refer to the official documentation for [Windows.Services.Store.StoreContext Namespace](https://learn.microsoft.com/uwp/api/Windows.Services.Store.StoreContext). ## In-App Review @@ -15,7 +15,7 @@ The in-app review feature is currently supported on iOS and Android through Goog #### References in a Single Project -In Uno Platform Single Project, you'll need to add the `GooglePlay` [Uno Feature](xref:Uno.Features.Uno.Sdk#uno-platform-features) as follows: +In an Uno Platform Single Project, you'll need to add the `GooglePlay` [Uno Feature](xref:Uno.Features.Uno.Sdk#uno-platform-features) as follows: ```xml From 1f5621c59a1f4164e6e8ae720125c1ca976c3472 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Mon, 28 Oct 2024 07:44:49 +0100 Subject: [PATCH 510/664] docs: Add in Store Context page (cherry picked from commit ee53078699feaf810daf0b92939a4fe1a0afcaf5) --- .../features/windows-ui-storecontext.md | 24 +++++++++++++++++++ doc/articles/toc.yml | 2 ++ 2 files changed, 26 insertions(+) create mode 100644 doc/articles/features/windows-ui-storecontext.md diff --git a/doc/articles/features/windows-ui-storecontext.md b/doc/articles/features/windows-ui-storecontext.md new file mode 100644 index 000000000000..ce2349205de9 --- /dev/null +++ b/doc/articles/features/windows-ui-storecontext.md @@ -0,0 +1,24 @@ +--- +uid: Uno.Features.StoreContext +--- + +# Store Context + +> [!TIP] +> This article provides Uno-specific information for the `Windows.Services.Store.StoreContext` namespace. For a comprehensive overview of this feature and detailed usage instructions, refer to the official documentation for [Windows.Services.Store.StoreContext Namespace](https://learn.microsoft.com/uwp/api/Windows.Services.Store.StoreContext). + +## In-App Review + +The in-app review feature is currently supported only on Android through Google Play. + +### Google Play Integration + +For Google Play support, make sure to add the `Uno.WinUI.GooglePlay` package to your project. This package is available on [nuget.org](https://www.nuget.org/packages/Uno.WinUI.GooglePlay). + +### Usage + +Once you added the above package to your project, you can prompt users to rate and review your appby using the following code snippet: + +```csharp +await Windows.Services.Store.StoreContext.GetDefault().RequestRateAndReviewAppAsync(); +``` diff --git a/doc/articles/toc.yml b/doc/articles/toc.yml index ba788bbdf320..73432e5c82c0 100644 --- a/doc/articles/toc.yml +++ b/doc/articles/toc.yml @@ -629,6 +629,8 @@ href: features/SpeechRecognition.md - name: Step Counter href: features/step-counter.md + - name: Store Context + href: features/windows-ui-storecontext.md - name: Title Bar Customization href: features/windows-ui-viewmanagement.md - name: URI Launcher From 56391c19fe7e77bc7495bd17a809d6252300eae8 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Thu, 7 Nov 2024 15:33:48 +0100 Subject: [PATCH 511/664] chore: Add details for iOS (cherry picked from commit 746f1d8af17f8f1f38eb1af6e1f9d64f1ee78ae3) --- .../features/windows-ui-storecontext.md | 20 ++++++++++++++++--- 1 file changed, 17 insertions(+), 3 deletions(-) diff --git a/doc/articles/features/windows-ui-storecontext.md b/doc/articles/features/windows-ui-storecontext.md index ce2349205de9..1fe2b3bae908 100644 --- a/doc/articles/features/windows-ui-storecontext.md +++ b/doc/articles/features/windows-ui-storecontext.md @@ -9,15 +9,29 @@ uid: Uno.Features.StoreContext ## In-App Review -The in-app review feature is currently supported only on Android through Google Play. +The in-app review feature is currently supported on iOS and Android through Google Play. ### Google Play Integration -For Google Play support, make sure to add the `Uno.WinUI.GooglePlay` package to your project. This package is available on [nuget.org](https://www.nuget.org/packages/Uno.WinUI.GooglePlay). +#### References in a Single Project + +In Uno Platform Single Project, you'll need to add the `GooglePlay` [Uno Feature](xref:Uno.Features.Uno.Sdk#uno-platform-features) as follows: + +```xml + + ... + GooglePlay; + ... + +``` + +#### References in a Legacy Project + +On all Uno Platform targets, you'll need the to add the `Uno.WinUI.GooglePlay` package to your project. This package is available on [nuget.org](https://www.nuget.org/packages/Uno.WinUI.GooglePlay). ### Usage -Once you added the above package to your project, you can prompt users to rate and review your appby using the following code snippet: +For iOS, no additional steps are needed—you can use the feature via the following snippet directly. On Android, ensure that you've added the above package to your project first. ```csharp await Windows.Services.Store.StoreContext.GetDefault().RequestRateAndReviewAppAsync(); From e9fa9ef7ad335fc2f6bec066a94173f9f9f6bc3e Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Thu, 7 Nov 2024 16:02:29 +0100 Subject: [PATCH 512/664] chore: Adjust cSpell (cherry picked from commit cd8986e3edde31844653cf215cb0a6323b4f5850) --- build/cSpell.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/build/cSpell.json b/build/cSpell.json index 550040fd683d..53432b651001 100644 --- a/build/cSpell.json +++ b/build/cSpell.json @@ -202,7 +202,8 @@ "jlaban", "sasakrsmanovic", "maccatalyst", - "settingscard" + "settingscard", + "storecontext" ], "patterns": [ { From 2a3ac67f7fa8398c854602ca46630f0d20578be1 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Sat, 9 Nov 2024 11:52:25 +0100 Subject: [PATCH 513/664] chore: Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Jérôme Laban (cherry picked from commit 9aa0d33b935565a0c4d046b94f77cc75296322b3) --- doc/articles/features/windows-ui-storecontext.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/doc/articles/features/windows-ui-storecontext.md b/doc/articles/features/windows-ui-storecontext.md index 1fe2b3bae908..c7ed2db5b65f 100644 --- a/doc/articles/features/windows-ui-storecontext.md +++ b/doc/articles/features/windows-ui-storecontext.md @@ -5,7 +5,7 @@ uid: Uno.Features.StoreContext # Store Context > [!TIP] -> This article provides Uno-specific information for the `Windows.Services.Store.StoreContext` namespace. For a comprehensive overview of this feature and detailed usage instructions, refer to the official documentation for [Windows.Services.Store.StoreContext Namespace](https://learn.microsoft.com/uwp/api/Windows.Services.Store.StoreContext). +> This article provides Uno Platform-specific information for the `Windows.Services.Store.StoreContext` namespace. For a comprehensive overview of this feature and detailed usage instructions, refer to the official documentation for [Windows.Services.Store.StoreContext Namespace](https://learn.microsoft.com/uwp/api/Windows.Services.Store.StoreContext). ## In-App Review @@ -15,7 +15,7 @@ The in-app review feature is currently supported on iOS and Android through Goog #### References in a Single Project -In Uno Platform Single Project, you'll need to add the `GooglePlay` [Uno Feature](xref:Uno.Features.Uno.Sdk#uno-platform-features) as follows: +In an Uno Platform Single Project, you'll need to add the `GooglePlay` [Uno Feature](xref:Uno.Features.Uno.Sdk#uno-platform-features) as follows: ```xml From 2ff370652f04288cab7e521f644b2a33de860acf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sat, 9 Nov 2024 09:33:00 -0500 Subject: [PATCH 514/664] ci: Disable When_ShapeVisual_ViewBox_Shape_Combinations --- .../Tests/Windows_UI_Composition/Given_ShapeVisual.cs | 1 + 1 file changed, 1 insertion(+) diff --git a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Composition/Given_ShapeVisual.cs b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Composition/Given_ShapeVisual.cs index efac09bd3a0b..5cc03c958ba3 100644 --- a/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Composition/Given_ShapeVisual.cs +++ b/src/Uno.UI.RuntimeTests/Tests/Windows_UI_Composition/Given_ShapeVisual.cs @@ -16,6 +16,7 @@ public class Given_ShapeVisual #if __SKIA__ [RequiresFullWindow] [TestMethod] + [Ignore("https://github.com/unoplatform/uno/issues/18752")] public async Task When_ShapeVisual_ViewBox_Shape_Combinations() { // runtime test version of the ShapeVisualClipping sample From 195e7042dca654368b8c6b3ad7000fa7846a4d38 Mon Sep 17 00:00:00 2001 From: Tylor Pater Date: Mon, 21 Oct 2024 16:53:50 -0400 Subject: [PATCH 515/664] docs: Correct closing tag Fix typo --- doc/articles/features/unhandled-exceptions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/features/unhandled-exceptions.md b/doc/articles/features/unhandled-exceptions.md index 453bc0d81f8d..c3b857a3fe43 100644 --- a/doc/articles/features/unhandled-exceptions.md +++ b/doc/articles/features/unhandled-exceptions.md @@ -8,7 +8,7 @@ Starting Uno Platform 5.4, we are generating a generic handler for `Application. ```xml - true + true ``` From 686355a512566eeaefd9ce95c1a8aac91d5d42b4 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Mon, 4 Nov 2024 23:40:14 +0000 Subject: [PATCH 516/664] chore(deps): bump Refit from 7.0.0 to 8.0.0 in /src/Uno.UI.TestComparer Bumps [Refit](https://github.com/reactiveui/refit) from 7.0.0 to 8.0.0. - [Release notes](https://github.com/reactiveui/refit/releases) - [Commits](https://github.com/reactiveui/refit/compare/7.0.0...8.0.0) --- updated-dependencies: - dependency-name: Refit dependency-type: direct:production ... Signed-off-by: dependabot[bot] (cherry picked from commit 67886a079c3d7482979445adb61e29ac1766c3f1) --- src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj b/src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj index 80b29c392991..b4a86b333789 100644 --- a/src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj +++ b/src/Uno.UI.TestComparer/Uno.UI.TestComparer.csproj @@ -18,7 +18,7 @@ - + From ec79093be2fab6d154a620294b4d7ba701e21806 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 8 Nov 2024 16:01:41 -0500 Subject: [PATCH 517/664] fix: Fix the discovered processor list additive (cherry picked from commit be56be494c1d7b6a77044bf218573e15d36da99c) --- src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs b/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs index dbb9d80fb160..ff91e6531b23 100644 --- a/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs +++ b/src/Uno.UI.RemoteControl.Host/RemoteControlServer.cs @@ -28,6 +28,7 @@ internal class RemoteControlServer : IRemoteControlServer, IDisposable private static readonly Dictionary _loadContexts = new(); private static readonly Dictionary _resolveAssemblyLocations = new(); private readonly Dictionary _processors = new(); + private readonly List _discoveredProcessors = new(); private readonly CancellationTokenSource _ct = new(); private WebSocket? _socket; @@ -257,7 +258,6 @@ private async Task ProcessPingFrame(Frame frame) private async Task ProcessDiscoveryFrame(Frame frame) { var assemblies = new List<(string path, System.Reflection.Assembly assembly)>(); - var discoveredProcessors = new List(); try { var msg = JsonConvert.DeserializeObject(frame.Content)!; @@ -358,12 +358,12 @@ private async Task ProcessDiscoveryFrame(Frame frame) { if (ActivatorUtilities.CreateInstance(_serviceProvider, processor.ProcessorType, parameters: new[] { this }) is IServerProcessor serverProcessor) { - discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: true)); + _discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: true)); RegisterProcessor(serverProcessor); } else { - discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false)); + _discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false)); if (this.Log().IsEnabled(LogLevel.Debug)) { this.Log().LogDebug("Failed to create server processor {ProcessorType}", processor.ProcessorType); @@ -372,7 +372,7 @@ private async Task ProcessDiscoveryFrame(Frame frame) } catch (Exception error) { - discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false, LoadError: error.ToString())); + _discoveredProcessors.Add(new(asm.path, processor.ProcessorType.FullName!, VersionHelper.GetVersion(processor.ProcessorType), IsLoaded: false, LoadError: error.ToString())); if (this.Log().IsEnabled(LogLevel.Error)) { this.Log().LogError(error, "Failed to create server processor {ProcessorType}", processor.ProcessorType); @@ -404,7 +404,7 @@ private async Task ProcessDiscoveryFrame(Frame frame) { await SendFrame(new ProcessorsDiscoveryResponse( assemblies.Select(asm => asm.path).ToImmutableList(), - discoveredProcessors.ToImmutableList())); + _discoveredProcessors.ToImmutableList())); } } From 340feb885ed3d462cf8cbc1bfa76f89e74ceb472 Mon Sep 17 00:00:00 2001 From: David Date: Fri, 8 Nov 2024 16:13:44 -0500 Subject: [PATCH 518/664] fix: Make sure if a processor is reported more than once the client handles it properly (cherry picked from commit 1071846d929dc5458fc83756b04c9ac17921eb74) --- .../RemoteControlClient.Status.cs | 14 +++++++++++++- 1 file changed, 13 insertions(+), 1 deletion(-) diff --git a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs index f7a9dd9543bd..047415e4a9db 100644 --- a/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs +++ b/src/Uno.UI.RemoteControl/RemoteControlClient.Status.cs @@ -150,7 +150,19 @@ public void ReportServerProcessors(ProcessorsDiscoveryResponse response) static IEnumerable GetMissingServerProcessors(ImmutableHashSet requiredProcessors, ProcessorsDiscoveryResponse response) { - var loaded = response.Processors.ToDictionary(p => p.Type, StringComparer.OrdinalIgnoreCase); + var loaded = response + .Processors + .GroupBy(p => p.Type, StringComparer.OrdinalIgnoreCase) + // If a processors is being loaded multiple times, we prefer to keep the result that has no error. + .Select(g => g + .OrderBy(p => p switch + { + { LoadError: not null } => 0, + { IsLoaded: false } => 1, + _ => 2 + }) + .Last()) + .ToDictionary(p => p.Type, StringComparer.OrdinalIgnoreCase); foreach (var required in requiredProcessors) { if (!loaded.TryGetValue(required.TypeFullName, out var actual)) From 6093882e6a27ed351d1aad66fd40207bd27e9bb9 Mon Sep 17 00:00:00 2001 From: Tylor Pater Date: Mon, 21 Oct 2024 16:53:50 -0400 Subject: [PATCH 519/664] docs: Correct closing tag Fix typo (cherry picked from commit 195e7042dca654368b8c6b3ad7000fa7846a4d38) --- doc/articles/features/unhandled-exceptions.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/features/unhandled-exceptions.md b/doc/articles/features/unhandled-exceptions.md index 453bc0d81f8d..c3b857a3fe43 100644 --- a/doc/articles/features/unhandled-exceptions.md +++ b/doc/articles/features/unhandled-exceptions.md @@ -8,7 +8,7 @@ Starting Uno Platform 5.4, we are generating a generic handler for `Application. ```xml - true + true ``` From aba082d457b9c2013adc2ad355cd4ee6ca7f2c99 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sun, 10 Nov 2024 10:22:45 -0500 Subject: [PATCH 520/664] fix: Adjust implicit package inclusion --- .../targets/Uno.Implicit.Packages.ProjectSystem.targets | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index 9c1fd2afed5b..e3fdaee234a4 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -11,8 +11,9 @@ <_UnoProjectSystemPackageReference Include="Uno.Settings.DevServer" ProjectSystem="true" PrivateAssets="all" /> - - <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" PrivateAssets="all" Condition=" '$(Optimize)' != 'true' " /> + + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Condition="$(Optimize) != 'true'" /> + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Exclude="all" Condition="$(Optimize) == 'true'" /> From 3e1ea3a50380b7a671b5c8a9cabfc89291ff4041 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Sun, 10 Nov 2024 15:33:41 -0500 Subject: [PATCH 521/664] fix: Don't include packages on release builds --- .../targets/Uno.Implicit.Packages.ProjectSystem.targets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets index e3fdaee234a4..6c9e0a81f315 100644 --- a/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets +++ b/src/Uno.Sdk/targets/Uno.Implicit.Packages.ProjectSystem.targets @@ -13,12 +13,12 @@ <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Condition="$(Optimize) != 'true'" /> - <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Exclude="all" Condition="$(Optimize) == 'true'" /> + <_UnoProjectSystemPackageReference Include="Uno.UI.HotDesign" ProjectSystem="true" Exclude="all" IncludeAssets="None" Condition="$(Optimize) == 'true'" /> <_UnoProjectSystemPackageReference Include="Uno.WinUI.DevServer" ProjectSystem="true" Condition="$(Optimize) != 'true'" /> - <_UnoProjectSystemPackageReference Include="Uno.WinUI.DevServer" ProjectSystem="true" Exclude="all" Condition="$(Optimize) == 'true'" /> + <_UnoProjectSystemPackageReference Include="Uno.WinUI.DevServer" ProjectSystem="true" Exclude="all" IncludeAssets="None" Condition="$(Optimize) == 'true'" /> From f9a9e3046d0970357e6778027c18a5aecfb8fe40 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Sun, 10 Nov 2024 16:21:01 -0500 Subject: [PATCH 522/664] chore: fix UWP build --- src/Uno.UWP/Web/Http/HttpRequestHeaderCollection.cs | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/src/Uno.UWP/Web/Http/HttpRequestHeaderCollection.cs b/src/Uno.UWP/Web/Http/HttpRequestHeaderCollection.cs index 92bde5f5dd8a..04ffc9107367 100644 --- a/src/Uno.UWP/Web/Http/HttpRequestHeaderCollection.cs +++ b/src/Uno.UWP/Web/Http/HttpRequestHeaderCollection.cs @@ -165,6 +165,9 @@ public DateTimeOffset? Date public void Add(string key, string value) => _dictionary.Add(key, value); + public void Add(KeyValuePair item) + => Add(item.Key, item.Value); + public bool ContainsKey(string key) => _dictionary.ContainsKey(key); @@ -222,4 +225,9 @@ public void Clear() { return _dictionary.GetEnumerator(); } + + global::System.Collections.IEnumerator GetEnumerator() + { + return _dictionary.GetEnumerator(); + } } From b5c6017a03653915cf3df513cdb6480d8c0e4655 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Sun, 10 Nov 2024 16:32:42 -0500 Subject: [PATCH 523/664] chore: Comment out API (for WinUI) --- .../Windows.Web.Http.Headers/HttpRequestHeaderCollection.cs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Uno.UWP/Generated/3.0.0.0/Windows.Web.Http.Headers/HttpRequestHeaderCollection.cs b/src/Uno.UWP/Generated/3.0.0.0/Windows.Web.Http.Headers/HttpRequestHeaderCollection.cs index 6a6929c5c4b2..96e5a6d607ab 100644 --- a/src/Uno.UWP/Generated/3.0.0.0/Windows.Web.Http.Headers/HttpRequestHeaderCollection.cs +++ b/src/Uno.UWP/Generated/3.0.0.0/Windows.Web.Http.Headers/HttpRequestHeaderCollection.cs @@ -228,7 +228,7 @@ public void Add(string key, string value) } #endif // Processing: System.Collections.Generic.ICollection> -#if __ANDROID__ || __IOS__ || IS_UNIT_TESTS || __WASM__ || __SKIA__ || __NETSTD_REFERENCE__ || __MACOS__ +#if false // DeclaringType: System.Collections.Generic.ICollection> [global::Uno.NotImplemented("__ANDROID__", "__IOS__", "IS_UNIT_TESTS", "__WASM__", "__SKIA__", "__NETSTD_REFERENCE__", "__MACOS__")] public void Add(global::System.Collections.Generic.KeyValuePair item) @@ -264,7 +264,7 @@ public void CopyTo(global::System.Collections.Generic.KeyValuePair Date: Sun, 10 Nov 2024 16:46:25 -0500 Subject: [PATCH 524/664] chore: Use fully-qualified names for GetEnumerator --- src/Uno.UWP/Web/Http/HttpRequestHeaderCollection.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UWP/Web/Http/HttpRequestHeaderCollection.cs b/src/Uno.UWP/Web/Http/HttpRequestHeaderCollection.cs index 04ffc9107367..8a12ccddde09 100644 --- a/src/Uno.UWP/Web/Http/HttpRequestHeaderCollection.cs +++ b/src/Uno.UWP/Web/Http/HttpRequestHeaderCollection.cs @@ -226,7 +226,7 @@ public void Clear() return _dictionary.GetEnumerator(); } - global::System.Collections.IEnumerator GetEnumerator() + global::System.Collections.IEnumerator global::System.Collections.IEnumerable.GetEnumerator() { return _dictionary.GetEnumerator(); } From 91d25a4127920e86644dda9a78f6896f8b1d9584 Mon Sep 17 00:00:00 2001 From: Kunal22shah Date: Mon, 11 Nov 2024 15:34:15 -0500 Subject: [PATCH 525/664] docs: proper class name --- .../getting-started/counterapp/get-started-counter-xaml-mvux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md b/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md index 7f8ff7f3a136..9b4dbbeb9f8b 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md @@ -89,7 +89,7 @@ Also, for more information on all the template options, see [Using the Uno Platf ## Data Binding -Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. +Now that we have the **`MainModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. - Add a **`DataContext`** element to the **`Page`** element in the **MainPage.xaml** file. From 75163d0d6eec3f13c2feb049faf0af85d6d5b9e0 Mon Sep 17 00:00:00 2001 From: Kunal22shah Date: Mon, 11 Nov 2024 15:34:15 -0500 Subject: [PATCH 526/664] docs: proper class name (cherry picked from commit 91d25a4127920e86644dda9a78f6896f8b1d9584) --- .../getting-started/counterapp/get-started-counter-xaml-mvux.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md b/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md index 7f8ff7f3a136..9b4dbbeb9f8b 100644 --- a/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md +++ b/doc/articles/getting-started/counterapp/get-started-counter-xaml-mvux.md @@ -89,7 +89,7 @@ Also, for more information on all the template options, see [Using the Uno Platf ## Data Binding -Now that we have the **`MainViewModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. +Now that we have the **`MainModel`** class, we can update the **`MainPage`** to use data binding to connect the UI to the application logic. - Add a **`DataContext`** element to the **`Page`** element in the **MainPage.xaml** file. From 85ea2b8c23140aa66f308ad4b7cf03f8b0aa4093 Mon Sep 17 00:00:00 2001 From: Sasha Krsmanovic <33944563+sasakrsmanovic@users.noreply.github.com> Date: Fri, 8 Nov 2024 12:20:17 -0500 Subject: [PATCH 527/664] chore: Update doc/articles/get-started-licensing.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Agnès ZITTE <16295702+agneszitte@users.noreply.github.com> --- doc/articles/get-started-licensing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index e517726a7fb9..37e7261978bd 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -10,7 +10,7 @@ Sign in with your Uno Platform account directly in your favorite IDE—Visual St 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). 2. Enter your email address and click on **Register**. -3. On the registration page, fill in your information, including your email, name, country, and password. Once done, click on **Sign up**. +3. On the registration page, fill in your information. Once done, click on **Sign up**. 4. You will receive a confirmation email from **no-reply@platform.uno**. Click on **Confirm Email** to activate your account. 5. You should then see the Sign in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. From 3920e83a70d5ff72a8c20c72ce7f861bfbd6ac04 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:05:54 +0100 Subject: [PATCH 528/664] chore: Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Agnès ZITTE <16295702+agneszitte@users.noreply.github.com> --- doc/articles/get-started-licensing.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index 37e7261978bd..5760d0661f4e 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -11,8 +11,8 @@ Sign in with your Uno Platform account directly in your favorite IDE—Visual St 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). 2. Enter your email address and click on **Register**. 3. On the registration page, fill in your information. Once done, click on **Sign up**. -4. You will receive a confirmation email from **no-reply@platform.uno**. Click on **Confirm Email** to activate your account. -5. You should then see the Sign in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. +4. You will receive a confirmation email from **no-reply@platform.uno**. Click on the **Confirm Email** button in the content of the email to activate your account. +5. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. ## Sign in to your IDE of choice @@ -25,7 +25,7 @@ After creating your Uno Platform account, follow the steps below to sign in to y If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), you can sign in with your Uno Platform account as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening your project, a popup should appear. Click **Sign In / Register**. +2. After opening and loading completely your project, a popup should appear. Click **Sign In / Register**. ![Visual Studio 2022 Popup](Assets/uno-settings-popup.png) >![NOTE] > If the popup doesn’t appear, access Uno Platform settings by clicking on **View** > **Other Windows** > **Uno Platform Settings**. @@ -36,7 +36,7 @@ If you’ve already set up **Visual Studio 2022** by following [Get Started on V If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. +2. After opening and loading completely your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) 3. Access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) From 3104ec53e13c32a0ad60dcacaf29612600d45183 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Mon, 11 Nov 2024 23:45:06 +0100 Subject: [PATCH 529/664] chore: Update screenshots --- doc/articles/Assets/uno-settings-main.png | Bin 23220 -> 21616 bytes doc/articles/Assets/uno-settings-menu.png | Bin 0 -> 32874 bytes .../Assets/uno-settings-rider-popup.png | Bin 0 -> 8980 bytes .../Assets/uno-settings-vsc-popup.png | Bin 0 -> 6551 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/articles/Assets/uno-settings-menu.png create mode 100644 doc/articles/Assets/uno-settings-rider-popup.png create mode 100644 doc/articles/Assets/uno-settings-vsc-popup.png diff --git a/doc/articles/Assets/uno-settings-main.png b/doc/articles/Assets/uno-settings-main.png index 9c3d037adf46cc4f2088bd81ca29db4c9ce18340..592dc6868a402b668359cb02daf4265cc441be52 100644 GIT binary patch literal 21616 zcmbTe2UJsA*Df52h>BDZ6$C_zsB}eoQ4~>%fCxxcKty`)O;kXnm!MPu14@%nLsz6r zQF=#;H0eE%@XvkD`NqB9Ki==Y@4aJ$p-FbuUVE)sp68i!@8El?ipP(hIf_D|jw{_( z&_JO`Nl_@0Y)T6F1Y3RJ3jdHeYA9Yu<+ZcS!5eaOc@=pSsv!K>{-Zluszz69K7FUp#rlrJ(?5M)hrZNE%N^v<5=u=OO--Y`KjfFyluQ5V)WnCT z*AZ5qRJOJQ#U}?`+rK9pJTbrawy!XJ?z?-6h&lfk>E)z>fl$uqX3h&mJ2N~SvI-n@ zr_)q9=rIcH3W0YNy3K^FCt`${p5zOw;@GyND?$-1jTjc-(0Q?;K7k zD0Bxqy?l|X$xWJMhi*3Czb5ynmyseRFRPGfAaRo;V%gyP_EvDv*R(=vOnJKt)u9wh zmbs;~b9e=X6Ecbt@oaN=`HQm(>_Y~vF49NYh9vYv zf~djS4idUUAMPC%m(7qYaoQ|b9;EodP7l92XE5ZnsexJK_1dw0@ssx(lj|LUgqnmt z2}5UzAs6{(PY&aXU8lw2`H_hvU2Q3Dj``uE)^_UweL}b%Ts;>Y(qsvTSme9dINPjR z?F=xvPvW@m?=%=X_*PfnkHGcyv6! zfj9r5WXgUk)sp56t2-!Dai-_}xA>iU3EUjEyDT~md_g9fLlKU+KPRKjN|D3!PUv&6 zFIczE(W7+HG%r8X49w>2sdQ^iTh>xuuMStSG2$jQJR)C?)l)|2$uNw z?w#C*{m4?}Wh<+fh8#q|YqX-lAw{1z$FnSN$_@LVwY!rg5-e-xFnLrNy(= zIoFPFVdDE7WTrg#xL=m3CDC=5c*xh3y)-bF9@`zYEhQPd(&@?9idBtMu^QaricqMv zWWbb{l!%%SShHW_%M5v&k-e=MF@!ZMR1>w9$j)U{Y-m~%71a^*|Y<9w}#t%gFHNx|AlV;kg|_sHG%0Eic(|8|xdiaDUS$?07ThA_Ell3{8p<^1b z2lM66JsxdqcJ8rEZB>?hh$0v7OrUTPcMW+shjK5?=FIRm5wnF-9z6KLHy z#zn;z%ru!#i?ofTmHK!tqT#@)Wh&YQ`LAOlCLS5mtY?XL4zlK<(g(8;)aX z+Qi8;OXTB*u!$8)+P)dEbHfy-RaOtT-YrD4MlWu-W3UDS%sw`)7=Z*)`HMw_x$n=V z&^Vv>^B0dUN*$__6&)(HFgZWuGc}∓F*fO1nW2jrW^yDT@P5q94=059|{h3D;vU`7D+i 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 Y{kE~k`mPnQCDbJ;abv;_(w4Hn0pwSxwEzGB literal 23220 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 J$(|#b{{~&~_=^Al diff --git a/doc/articles/Assets/uno-settings-menu.png b/doc/articles/Assets/uno-settings-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..7a90740b8431b0185e77c9af6de22de13d672933 GIT binary patch literal 32874 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-rider-popup.png b/doc/articles/Assets/uno-settings-rider-popup.png new file mode 100644 index 0000000000000000000000000000000000000000..b3d7d36a904190e25750a25609a360a6deeb46ff GIT binary patch literal 8980 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 literal 0 HcmV?d00001 From ef003a0abccd74a3d40aa7b0cdf49720253d50f0 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Mon, 11 Nov 2024 23:50:23 +0100 Subject: [PATCH 530/664] chore: Sign in to Uno adjustments --- doc/articles/get-started-licensing.md | 31 +++++++++++++++++---------- doc/articles/toc.yml | 2 ++ 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index 5760d0661f4e..2c60c39fab4a 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -4,14 +4,14 @@ uid: Uno.GetStarted.Licensing # Sign in with Uno Platform -Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider—to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno community to share feedback and network. +Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider—to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno Platform community to share feedback and network. ## Create your account 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). 2. Enter your email address and click on **Register**. 3. On the registration page, fill in your information. Once done, click on **Sign up**. -4. You will receive a confirmation email from **no-reply@platform.uno**. Click on the **Confirm Email** button in the content of the email to activate your account. +4. You will receive a confirmation email from **no-reply@platform.uno**. Follow the instructions in the email to activate your account. 5. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. ## Sign in to your IDE of choice @@ -22,13 +22,13 @@ After creating your Uno Platform account, follow the steps below to sign in to y ### [**Visual Studio 2022**](#tab/vs2022) -If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), you can sign in with your Uno Platform account as follows: +If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), sign in as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening and loading completely your project, a popup should appear. Click **Sign In / Register**. +2. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. ![Visual Studio 2022 Popup](Assets/uno-settings-popup.png) >![NOTE] - > If the popup doesn’t appear, access Uno Platform settings by clicking on **View** > **Other Windows** > **Uno Platform Settings**. + > If the popup doesn’t appear, access Uno Platform settings by clicking on **Extensions** > **Uno Platform** > **Settings...**. > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) ### [**Visual Studio Code**](#tab/vscode) @@ -38,23 +38,32 @@ If you’ve already set up **Visual Studio Code** by following [Get Started on V 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. 2. After opening and loading completely your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) -3. Access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. - ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) +3. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. + ![Visual Studio Code Menu](Assets/uno-settings-vsc-popup.png) + >![NOTE] + > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. + > ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) ### [**JetBrains Rider**](#tab/rider) If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. Go to **Tools** > **Uno Platform** > **Settings...**. - ![Visual Studio Code Menu](Assets/uno-settings-rider.png) +2. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. + ![JetBrains Rider Popup](Assets/uno-settings-rider-popup.png) + >![NOTE] + > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **Tools** > **Uno Platform** > **Settings...**. + > ![JetBrains Rider Menu](Assets/uno-settings-rider.png) --- 1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) -2. Once signed in, you’ll see confirmation of your account with license details and can use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, see the [Hot Reload documentation](xref:Uno.Features.HotReload). - ![Uno Platform Settings Welcome](Assets/uno-settings-main.png) +2. Once signed in, you’ll see a confirmation of your account along with your license details. You can then use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). + ![Uno Platform Settings](Assets/uno-settings-main.png) + >![TIP] + > You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. + > ![Uno Platform Menu](Assets/uno-settings-menu.png) ## Questions diff --git a/doc/articles/toc.yml b/doc/articles/toc.yml index ba788bbdf320..79950680a2f6 100644 --- a/doc/articles/toc.yml +++ b/doc/articles/toc.yml @@ -32,6 +32,8 @@ - name: Troubleshoot topicHref: xref:Uno.UI.CommonIssues items: + - name: Sign in with Uno Platform + href: xref:Uno.GetStarted.Licensing - name: All Development Environments href: xref:Uno.UI.CommonIssues.AllIDEs - name: Visual Studio 2022 for Windows From b2194a7abe40abbfd790486200fef43bbc5d0029 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Tue, 12 Nov 2024 18:34:08 +0100 Subject: [PATCH 531/664] chore: Adjustments after review --- .../Assets/uno-settings-notification.png | Bin 0 -> 3815 bytes doc/articles/Assets/uno-settings-popup.png | Bin 3535 -> 0 bytes ...ng => uno-settings-rider-notification.png} | Bin ....png => uno-settings-vsc-notification.png} | Bin doc/articles/Assets/uno-settings-welcome.png | Bin 27159 -> 24057 bytes doc/articles/Assets/uno-vsc-csproj.gif | Bin 440013 -> 0 bytes doc/articles/get-started-licensing.md | 63 ++++++++++-------- 7 files changed, 37 insertions(+), 26 deletions(-) create mode 100644 doc/articles/Assets/uno-settings-notification.png delete mode 100644 doc/articles/Assets/uno-settings-popup.png rename doc/articles/Assets/{uno-settings-rider-popup.png => uno-settings-rider-notification.png} (100%) rename doc/articles/Assets/{uno-settings-vsc-popup.png => uno-settings-vsc-notification.png} (100%) delete mode 100644 doc/articles/Assets/uno-vsc-csproj.gif diff --git a/doc/articles/Assets/uno-settings-notification.png b/doc/articles/Assets/uno-settings-notification.png new file mode 100644 index 0000000000000000000000000000000000000000..fa13fd5c64305b32020576acc6838fc0523f891a GIT binary patch literal 3815 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-popup.png b/doc/articles/Assets/uno-settings-popup.png deleted file mode 100644 index 74a2b5d5a85b59821e4a8b0ecef982f0484e1b90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3535 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 diff --git a/doc/articles/Assets/uno-settings-rider-popup.png b/doc/articles/Assets/uno-settings-rider-notification.png similarity index 100% rename from doc/articles/Assets/uno-settings-rider-popup.png rename to doc/articles/Assets/uno-settings-rider-notification.png diff --git a/doc/articles/Assets/uno-settings-vsc-popup.png b/doc/articles/Assets/uno-settings-vsc-notification.png similarity index 100% rename from doc/articles/Assets/uno-settings-vsc-popup.png rename to doc/articles/Assets/uno-settings-vsc-notification.png diff --git a/doc/articles/Assets/uno-settings-welcome.png b/doc/articles/Assets/uno-settings-welcome.png index 1f814f20fe3e41482cb64cef245fad4af7972c04..623a53e4a4618c98d430cbd527a596894de4c987 100644 GIT binary patch literal 24057 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 diff --git a/doc/articles/Assets/uno-vsc-csproj.gif b/doc/articles/Assets/uno-vsc-csproj.gif deleted file mode 100644 index bf2e92b30c00356a3c6f5f257d83fa53ff4335b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440013 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�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

=_>2&P{7wR;M-}n2a`z(vlzfjD4e|Wvv(7 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±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[NOTE] - > If the popup doesn’t appear, access Uno Platform settings by clicking on **Extensions** > **Uno Platform** > **Settings...**. - > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) +1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). +2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. + ![Visual Studio 2022 notification](Assets/uno-settings-notification.png) + +> [!NOTE] +> If the notification doesn’t appear, access the Settings app by clicking on **Extensions** > **Uno Platform** > **Settings...**. +> +> ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) ### [**Visual Studio Code**](#tab/vscode) If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: -1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening and loading completely your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. - ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) -3. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. - ![Visual Studio Code Menu](Assets/uno-settings-vsc-popup.png) - >![NOTE] - > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. - > ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) +1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). +2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. + ![Visual Studio Code Menu](Assets/uno-settings-vsc-notification.png) + +> [!NOTE] +> If the notification doesn’t appear, access the Settings app by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. +> +> ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) ### [**JetBrains Rider**](#tab/rider) If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: -1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. - ![JetBrains Rider Popup](Assets/uno-settings-rider-popup.png) - >![NOTE] - > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **Tools** > **Uno Platform** > **Settings...**. - > ![JetBrains Rider Menu](Assets/uno-settings-rider.png) +1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). +2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. + ![JetBrains Rider notification](Assets/uno-settings-rider-notification.png) + +> [!NOTE] +> If the notification doesn’t appear, access the Settings app by selecting **Tools** > **Uno Platform** > **Settings...**. +> +> ![JetBrains Rider Menu](Assets/uno-settings-rider.png) --- 1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. + ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) + 2. Once signed in, you’ll see a confirmation of your account along with your license details. You can then use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). + ![Uno Platform Settings](Assets/uno-settings-main.png) - >![TIP] - > You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. - > ![Uno Platform Menu](Assets/uno-settings-menu.png) + +> [!TIP] +> You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. +> +> ![Uno Platform Menu](Assets/uno-settings-menu.png) + +- After you are done, feel free to close the Uno Platform Settings window. You can always access it again from your IDE menu by following the steps above. ## Questions For general questions about Uno Platform, refer to the [general FAQ](xref:Uno.Development.FAQ) or see the [troubleshooting section](xref:Uno.UI.CommonIssues) for common issues and solutions. -If you encounter any issues or need further assistance, reach out on our [community forum](https://platform.uno/community) or connect with us via the [Uno Platform GitHub](https://github.com/unoplatform). +If you encounter any issues or need further assistance, join our [Discord server](https://platform.uno/discord), connect with us via the [Uno Platform GitHub](https://github.com/unoplatform), or reach out on our [contact page](https://platform.uno/contact). From bd28a57aef4754adad9ab87ac2f924ebfa0d9dca Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Tue, 12 Nov 2024 16:00:06 -0500 Subject: [PATCH 532/664] chore: Update to net9 rtm --- .github/workflows/uwp-autoconvert.yml | 2 +- build/ci/net9/global.json | 4 ++-- build/ci/templates/dotnet-mobile-install-linux.yml | 2 +- build/ci/templates/dotnet-mobile-install-mac.yml | 2 +- build/ci/templates/dotnet-mobile-install-windows.yml | 2 +- src/Uno.UI.RemoteControl.Host/Config/global-net9.0.json | 4 ++-- 6 files changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/uwp-autoconvert.yml b/.github/workflows/uwp-autoconvert.yml index 81bf71a88e44..0170b8d66328 100644 --- a/.github/workflows/uwp-autoconvert.yml +++ b/.github/workflows/uwp-autoconvert.yml @@ -13,7 +13,7 @@ concurrency: cancel-in-progress: true env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - UnoCheck_Version: '1.26.0-dev.63' + UnoCheck_Version: '1.27.0-dev.8' jobs: build: diff --git a/build/ci/net9/global.json b/build/ci/net9/global.json index 67a58e3c4b1e..8fec97e6dc97 100644 --- a/build/ci/net9/global.json +++ b/build/ci/net9/global.json @@ -1,11 +1,11 @@ { "sdk": { - "version": "9.0.100-rc.2.24474.11", + "version": "9.0.100", "allowPrerelease": true, "rollForward": "disable" }, "tools": { - "dotnet": "9.0.100-rc.2.24474.11" + "dotnet": "9.0.100" }, "msbuild-sdks": { "MSBuild.Sdk.Extras": "3.0.44", diff --git a/build/ci/templates/dotnet-mobile-install-linux.yml b/build/ci/templates/dotnet-mobile-install-linux.yml index 869700aa2261..15b4901ae26b 100644 --- a/build/ci/templates/dotnet-mobile-install-linux.yml +++ b/build/ci/templates/dotnet-mobile-install-linux.yml @@ -1,5 +1,5 @@ parameters: - UnoCheck_Version: '1.26.0-dev.63' + UnoCheck_Version: '1.27.0-dev.8' steps: diff --git a/build/ci/templates/dotnet-mobile-install-mac.yml b/build/ci/templates/dotnet-mobile-install-mac.yml index 15c1a0054858..4bfd4a406ec6 100644 --- a/build/ci/templates/dotnet-mobile-install-mac.yml +++ b/build/ci/templates/dotnet-mobile-install-mac.yml @@ -1,5 +1,5 @@ parameters: - UnoCheck_Version: '1.26.0-dev.63' + UnoCheck_Version: '1.27.0-dev.8' steps: diff --git a/build/ci/templates/dotnet-mobile-install-windows.yml b/build/ci/templates/dotnet-mobile-install-windows.yml index 15c1a0054858..4bfd4a406ec6 100644 --- a/build/ci/templates/dotnet-mobile-install-windows.yml +++ b/build/ci/templates/dotnet-mobile-install-windows.yml @@ -1,5 +1,5 @@ parameters: - UnoCheck_Version: '1.26.0-dev.63' + UnoCheck_Version: '1.27.0-dev.8' steps: diff --git a/src/Uno.UI.RemoteControl.Host/Config/global-net9.0.json b/src/Uno.UI.RemoteControl.Host/Config/global-net9.0.json index 97fb6fbccaae..3f6531454c7e 100644 --- a/src/Uno.UI.RemoteControl.Host/Config/global-net9.0.json +++ b/src/Uno.UI.RemoteControl.Host/Config/global-net9.0.json @@ -1,11 +1,11 @@ { "sdk": { - "version": "9.0.100-rc.2.24474.11", + "version": "9.0.100", "allowPrerelease": true, "rollForward": "latestFeature" }, "tools": { - "dotnet": "9.0.100-rc.2.24474.11" + "dotnet": "9.0.100" }, "msbuild-sdks": { "MSBuild.Sdk.Extras": "3.0.44" From c341e1a2b14583d0b81426248316b815b40ec7ee Mon Sep 17 00:00:00 2001 From: agneszitte Date: Tue, 12 Nov 2024 21:07:57 -0500 Subject: [PATCH 533/664] docs: Improve licensing, troubleshooting, and app creation sections with additional fixes --- doc/articles/common-issues.md | 15 ++++- doc/articles/create-an-app-rider.md | 10 ++- doc/articles/create-an-app-vs2022.md | 11 ++++ doc/articles/create-an-app-vscode.md | 12 +++- doc/articles/get-started-licensing.md | 87 ++++++++++++++++----------- doc/articles/toc.yml | 51 ++++++++++------ 6 files changed, 130 insertions(+), 56 deletions(-) diff --git a/doc/articles/common-issues.md b/doc/articles/common-issues.md index 02a49c02dd84..b7d6545304ab 100644 --- a/doc/articles/common-issues.md +++ b/doc/articles/common-issues.md @@ -10,9 +10,17 @@ The Uno Platform features and support are constantly evolving, yet you may encou A better resource for high-level questions about Uno Platform is the [general FAQ](xref:Uno.Development.FAQ). +## Sign in with Uno Platform + +Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider, to unlock powerful tools like Hot Reload, helping you speed up development. + +More detailed information is available [here](xref:Uno.GetStarted.Licensing). + ## Hot Reload -More troubleshooting information is available [in this section](xref:Uno.Features.HotReload#troubleshooting). +When using Hot Reload, ensure you first review the [supported features](xref:Uno.Features.HotReload#features), [supported features per OS](xref:Uno.Features.HotReload#supported-features-per-os), and [supported features per platform](xref:Uno.Features.HotReload#supported-features-per-platform). + +If issues persist, additional troubleshooting information is available in [this section](xref:Uno.Features.HotReload#troubleshooting). ## Development Environments @@ -28,6 +36,11 @@ More troubleshooting information is available [in this section](xref:Uno.Feature - [Common issues on iOS/mac Catalyst](xref:Uno.UI.CommonIssues.IosCatalyst) - [Common issues on UWP](xref:Uno.UI.CommonIssues.UWP) +## Build Errors + +- [Troubleshooting build errors](xref:Uno.Development.Troubleshooting) +- [Build error codes](xref:Build.Solution.error-codes) + ## Next Steps Learn more about: diff --git a/doc/articles/create-an-app-rider.md b/doc/articles/create-an-app-rider.md index c3a46afd8e56..08990930a953 100644 --- a/doc/articles/create-an-app-rider.md +++ b/doc/articles/create-an-app-rider.md @@ -74,7 +74,15 @@ Creating an Uno Platform project is done [using dotnet new](xref:Uno.GetStarted. --- > [!IMPORTANT] -> A notification window will appear for the free registration of the extension. If the notification disappears before you can enter the license, you can find it again in the "Notification Bell" icon at the top right of the Rider window. +> A notification should appear prompting you to sign in or register with Uno Platform. +> +> Signing in with your Uno Platform account in Rider unlocks powerful tools like Hot Reload, helping you speed up development. +> +> With a single registration, you also gain early access to new features and the opportunity to connect with the Uno Platform community, where you can share feedback and network. +> +> Detailed information on registration and sign-in is available here. +> +> ![Uno Platform Sign in / Register notification](Assets/uno-settings-rider-notification.png) ### Considerations for macOS and Linux diff --git a/doc/articles/create-an-app-vs2022.md b/doc/articles/create-an-app-vs2022.md index 106fdae6bb28..26b547e8334c 100644 --- a/doc/articles/create-an-app-vs2022.md +++ b/doc/articles/create-an-app-vs2022.md @@ -35,6 +35,17 @@ To create an Uno Platform app: 1. A banner at the top of the editor may ask to reload projects, click **Reload projects**: ![Visual Studio - A banner indicating to reload projects](Assets/quick-start/vs2022-project-reload.png) +1. > [!IMPORTANT] + > A notification should appear prompting you to sign in or register with Uno Platform. + > + > Signing in with your Uno Platform account in Visual Studio unlocks powerful tools like Hot Reload, helping you speed up development. + > + > With a single registration, you also gain early access to new features and the opportunity to connect with the Uno Platform community, where you can share feedback and network. + > + > Detailed information on registration and sign-in is available here. + > + > ![Uno Platform sign in / register notification](Assets/uno-settings-notification.png) + ## Debug the App ### [**Desktop**](#tab/desktop) diff --git a/doc/articles/create-an-app-vscode.md b/doc/articles/create-an-app-vscode.md index 9342297f0d71..d9645eedd0b4 100644 --- a/doc/articles/create-an-app-vscode.md +++ b/doc/articles/create-an-app-vscode.md @@ -43,8 +43,16 @@ Next, open the project using Visual Studio Code: * Visual Studio Code might ask to restore the NuGet packages. Allow it to restore them if asked. * Once the solution has been loaded, in the status bar at the bottom left of VS Code, `MyApp.sln` is selected by default. Select `MyApp.csproj` to load the project instead. -> [!IMPORTANT] -> A notification window will appear for the free registration of the extension. If the notification disappears before you can enter the license, you can find it again in the "Notification Bell" icon at the bottom right of the VS Code window. +* > [!IMPORTANT] + > A notification should appear prompting you to sign in or register with Uno Platform. + > + > Signing in with your Uno Platform account in Visual Studio Code unlocks powerful tools like Hot Reload, helping you speed up development. + > + > With a single registration, you also gain early access to new features and the opportunity to connect with the Uno Platform community, where you can share feedback and network. + > + > Detailed information on registration and sign-in is available here. + > + > ![Uno Platform Sign in / Register notification](Assets/uno-settings-vsc-notification.png) ## Debug the App diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index d51ebf91fb57..e4884171da8f 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -9,10 +9,10 @@ Sign in with your Uno Platform account directly in your favorite IDE—Visual St ## Create your account 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). -2. Enter your email address and click on **Register**. -3. On the registration page, fill in your information. Once done, click on **Sign up**. -4. You will receive a confirmation email from `no-reply@platform.uno`. Follow the instructions in the email to activate your account. -5. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. +1. Enter your email address and click on **Register**. +1. On the registration page, fill in your information. Once done, click on **Sign up**. +1. You will receive a confirmation email from `no-reply@platform.uno`. Follow the instructions in the email to activate your account. +1. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. ## Sign in to your IDE of choice @@ -22,62 +22,81 @@ After creating your Uno Platform account, follow the steps below to sign in to y ### [**Visual Studio 2022**](#tab/vs2022) -If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), sign in as follows: +If you’ve already set up **Visual Studio 2022** by following the [Get Started on Visual Studio 2022](xref:Uno.GetStarted.vs2022) documentation, sign in as follows: + +1. Create a new Uno Platform project by following the [Creating an app with Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022) documentation or open an existing one with Uno.Sdk version 5.5 or higher. + + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + +1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. -1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). -2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. ![Visual Studio 2022 notification](Assets/uno-settings-notification.png) -> [!NOTE] -> If the notification doesn’t appear, access the Settings app by clicking on **Extensions** > **Uno Platform** > **Settings...**. -> -> ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) + > [!TIP] + > Ensure that the lower left IDE icon shows a check mark and says "Ready" ![A checkmark with a text saying ready](getting-started/wizard/assets/vs2022-ready-statusbar.png). This ensures that the projects have been created, and their dependencies have been restored completely. + > + > [!NOTE] + > If the notification doesn’t appear, access the Settings app by clicking on **Extensions** > **Uno Platform** > **Settings...**. + > + > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) ### [**Visual Studio Code**](#tab/vscode) -If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: +If you’ve already set up **Visual Studio Code** by following the [Get Started on VS Code](xref:Uno.GetStarted.vscode) documentation, sign in as follows: + +1. Create a new Uno Platform project by following the [Creating an app with VS Code](xref:Uno.GettingStarted.CreateAnApp.VSCode) documentation or open an existing one with Uno.Sdk version 5.5 or higher. + + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + +1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. -1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). -2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. - ![Visual Studio Code Menu](Assets/uno-settings-vsc-notification.png) + ![Visual Studio Code notification](Assets/uno-settings-vsc-notification.png) -> [!NOTE] -> If the notification doesn’t appear, access the Settings app by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. -> -> ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) + > [!NOTE] + > If the notification doesn’t appear, access the Settings app by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. + > + > ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) ### [**JetBrains Rider**](#tab/rider) -If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: +If you’ve already set up **JetBrains Rider** by following the [Get Started on JetBrains Rider](xref:Uno.GetStarted.Rider) documentation, sign in as follows: + +1. Create a new Uno Platform project by following the [Create an app with JetBrains Rider](xref:Uno.GettingStarted.CreateAnApp.Rider) documentation or open an existing one with Uno.Sdk version 5.5 or higher. + + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + +1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. -1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). -2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. ![JetBrains Rider notification](Assets/uno-settings-rider-notification.png) -> [!NOTE] -> If the notification doesn’t appear, access the Settings app by selecting **Tools** > **Uno Platform** > **Settings...**. -> -> ![JetBrains Rider Menu](Assets/uno-settings-rider.png) + > [!NOTE] + > If the notification doesn’t appear, access the Settings app by selecting **Tools** > **Uno Platform** > **Settings...**. + > + > ![JetBrains Rider Menu](Assets/uno-settings-rider.png) --- +### Uno Platform Settings window + 1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) -2. Once signed in, you’ll see a confirmation of your account along with your license details. You can then use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). +1. Once signed in, you’ll see a confirmation of your account along with your license details. + + You can then use the **Hot Reload** feature to speed up your workflow and test changes in real-time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). - ![Uno Platform Settings](Assets/uno-settings-main.png) + ![Uno Platform Settings signed in](Assets/uno-settings-main.png) -> [!TIP] -> You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. -> -> ![Uno Platform Menu](Assets/uno-settings-menu.png) + > [!TIP] + > You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes, and **Sign out**. + > + > ![Uno Platform Settings Menu](Assets/uno-settings-menu.png) -- After you are done, feel free to close the Uno Platform Settings window. You can always access it again from your IDE menu by following the steps above. +1. After you are done, feel free to close the Uno Platform Settings window. You can always access it again from your IDE menu by following the steps above. ## Questions For general questions about Uno Platform, refer to the [general FAQ](xref:Uno.Development.FAQ) or see the [troubleshooting section](xref:Uno.UI.CommonIssues) for common issues and solutions. -If you encounter any issues or need further assistance, join our [Discord server](https://platform.uno/discord), connect with us via the [Uno Platform GitHub](https://github.com/unoplatform), or reach out on our [contact page](https://platform.uno/contact). +If you encounter any issues or need further assistance, join our [Discord server](https://platform.uno/discord), connect with us via [GitHub](https://github.com/unoplatform/uno/discussions), or reach out on our [contact page](https://platform.uno/contact). diff --git a/doc/articles/toc.yml b/doc/articles/toc.yml index 79950680a2f6..e6829dd2c82a 100644 --- a/doc/articles/toc.yml +++ b/doc/articles/toc.yml @@ -32,26 +32,41 @@ - name: Troubleshoot topicHref: xref:Uno.UI.CommonIssues items: + - name: Overview + href: xref:Uno.UI.CommonIssues - name: Sign in with Uno Platform href: xref:Uno.GetStarted.Licensing - - name: All Development Environments - href: xref:Uno.UI.CommonIssues.AllIDEs - - name: Visual Studio 2022 for Windows - href: xref:Uno.UI.CommonIssues.vs2022 - - name: VS Code - href: xref:Uno.UI.CommonIssues.vscode - - name: WebAssembly - href: xref:Uno.UI.CommonIssues.Wasm - - name: UWP - href: xref:Uno.UI.CommonIssues.UWP - - name: Skia (Gtk/Wpf/Framebuffer) - href: xref:Uno.UI.CommonIssues.Skia - - name: iOS/mac Catalyst - href: xref:Uno.UI.CommonIssues.IosCatalyst - - name: Troubleshooting build errors - href: uno-builds-troubleshooting.md - - name: Build error codes - href: xref:Build.Solution.error-codes + - name: Hot Reload + topicHref: xref:Uno.Features.HotReload#troubleshooting + - name: Development Environments + topicHref: xref:Uno.UI.CommonIssues.AllIDEs + items: + - name: All Development Environments + href: xref:Uno.UI.CommonIssues.AllIDEs + - name: Visual Studio 2022 for Windows + href: xref:Uno.UI.CommonIssues.vs2022 + - name: VS Code + href: xref:Uno.UI.CommonIssues.vscode + - name: Rider + href: xref:Uno.UI.CommonIssues.rider + - name: Platforms + topicHref: xref:Uno.UI.CommonIssues.Wasm + items: + - name: WebAssembly + href: xref:Uno.UI.CommonIssues.Wasm + - name: UWP + href: xref:Uno.UI.CommonIssues.UWP + - name: Skia (Gtk/Wpf/Framebuffer) + href: xref:Uno.UI.CommonIssues.Skia + - name: iOS/mac Catalyst + href: xref:Uno.UI.CommonIssues.IosCatalyst + - name: Build Errors + topicHref: xref:Uno.Development.Troubleshooting + items: + - name: Troubleshooting build errors + href: xref:Uno.Development.Troubleshooting + - name: Build error codes + href: xref:Build.Solution.error-codes - name: Samples & Tutorials topicHref: xref:Uno.SamplesTutorials.Overview From 0593bb32a156089cd40b065f402f041150776bdc Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Wed, 13 Nov 2024 09:11:58 +0100 Subject: [PATCH 534/664] chore: Update intro wording Co-authored-by: Nick Randolph --- doc/articles/get-started-licensing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index e4884171da8f..4c48409783d0 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -4,7 +4,7 @@ uid: Uno.GetStarted.Licensing # Sign in with Uno Platform -Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider, to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno Platform community to share feedback and network. +Sign in with your Uno Platform account directly in your favorite IDE (Visual Studio, VS Code, or Rider), to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno Platform community to share feedback and network. ## Create your account From 682c90e120a5478e41010b7be9eecf9821481b79 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Fri, 8 Nov 2024 15:28:05 +0100 Subject: [PATCH 535/664] docs: Add Sign in with Uno page (cherry picked from commit 1eb2127bde24fffaa524dcc83600869bb4851a85) --- doc/articles/Assets/uno-settings-main.png | Bin 0 -> 23220 bytes doc/articles/Assets/uno-settings-popup.png | Bin 0 -> 3535 bytes doc/articles/Assets/uno-settings-rider.png | Bin 0 -> 66360 bytes doc/articles/Assets/uno-settings-vs.png | Bin 0 -> 6342 bytes doc/articles/Assets/uno-settings-vsc.png | Bin 0 -> 26458 bytes doc/articles/Assets/uno-settings-welcome.png | Bin 0 -> 27159 bytes doc/articles/Assets/uno-vsc-csproj.gif | Bin 0 -> 440013 bytes doc/articles/get-started-licensing.md | 63 +++++++++++++++++++ 8 files changed, 63 insertions(+) create mode 100644 doc/articles/Assets/uno-settings-main.png create mode 100644 doc/articles/Assets/uno-settings-popup.png create mode 100644 doc/articles/Assets/uno-settings-rider.png create mode 100644 doc/articles/Assets/uno-settings-vs.png create mode 100644 doc/articles/Assets/uno-settings-vsc.png create mode 100644 doc/articles/Assets/uno-settings-welcome.png create mode 100644 doc/articles/Assets/uno-vsc-csproj.gif create mode 100644 doc/articles/get-started-licensing.md diff --git a/doc/articles/Assets/uno-settings-main.png b/doc/articles/Assets/uno-settings-main.png new file mode 100644 index 0000000000000000000000000000000000000000..9c3d037adf46cc4f2088bd81ca29db4c9ce18340 GIT binary patch literal 23220 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 J$(|#b{{~&~_=^Al literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-popup.png b/doc/articles/Assets/uno-settings-popup.png new file mode 100644 index 0000000000000000000000000000000000000000..74a2b5d5a85b59821e4a8b0ecef982f0484e1b90 GIT binary patch literal 3535 zcmai%c{CJW`@qK%vL=#c?0fbt``ELWlzo}8XN)FIwwNSBw#ph|7)fJ`2&rZ!gDE80 zg&~YJl-*e7oxbOH&hL-+eb4*HeeQkkeV*q&=iYms^SO^4E?aW23bFzK01j&_b4LJx zo{2WrVfibQ`c<#fIy!`-r757U54cQI7=ujgO#py~$81MFr)c`=TUKre0DzP5x6u*d zul#9|{H@JRu19&VO~GM2i^9ym;c^wl?wIGA88w~OsYyV29vShK1wg!Y0C(sqUU6BE zkylrn`J`(SoO3->6_VKWf(8BRRVhTYx`Q;|3gE53$nc1{W*t9cFQ2@d6HAz@nTyk^ zH>{L?oDC&vw70*0JL1=qCmWWt79}wyF(<`HT+F()T-$AO_gGevq0SqswEx^YFpN+# zeY5c>`sIP#30Lf%enl%48#83qd~bKiCN^RR1yu*kcpyYOgqW{XeaVr1*EepbO=`86 zHp)a%w~5fr^oG5!Em!xJpjrYmV|KO?ThWz;6*4*%Omr*X=6h*gvtuZVJylIkOalES z4*@YYH#d(gL3@Iw&u|w!!p3>p7lzg3mFQj^%pQ&A1PM|2Wap zWQCfln1qBx{6ABt+1XQ4Qmi2VM51S4pe>x`=Rd>E{Zy6BgK^PH92??}7Qp~?cX(irIxsmh(_{$;tM%J-Rf2qt=gc~yx z5=Cl%ZS)}?mpO_5osZYvP-uTMAOSlf0Ttzc(lc^@ztf;Q7GLYpg88Cp?Trkd$YEy( zPJbbG-9LX4C7c!)#{mbo#y`dZ>ZTd%j)K^QXa>Ts;6%`B+gyMaNFWEzTJRk^>SPCViVNa^)^4kub+7Xr|WX=~=WBh^y7 zraWtxPX;@H^AL1sQ5WzOQ;Z+@CtnwPFzRSkZ~?n5u8ce}GSdV6(np%vznSTpjhB=G z(}yKCnP`Oxrb_k;S`1=YlyOeU>Mp`0-Sg(zwnh>9SO7=pGgu4eTjo1%1CdW;1oxf8 zcw@2WLTx{^1J*MND(k{tbG=1r7)zuszRyEXY<%Y#82v&s`*00hRDgZW`E%sV-45&Y zfCt{I+wN46nl&iS(64C87$MY8iljp#&-X{dKxfqebxgn|HbPLemw&M7qR^%J9lCv? zkRb*D-={b`cuWj~MCe^ec3RlP7~2{r2QV-rLjb-X*rxJ)dWm>%k3s7+pkHGX2Qh4c_m)r4O&CV-jL8hX2`;Lntul9KByR*G+E!JM* zNm9)j+_{$iGN|W_4h&o9?jU)dd#^XS73Rh9`;k~+s?|2S=i{e^q}r{z`&W z&&$sx#04p{j!}+qbId~WY=WcZrZHDiYb?3%g|d9=f|_CH&sMhaGXG)Z>8F>g9g@6b z=B*2LNq?~=khgBvvwFp*n6ml1HDH$I`noZH0!vL^z7PY8Y&tQ^Hm97$D0BqZBx3I# zk<-n;*=6dxtfyfFL+$r&t=4qeKH-f4IdJhe;umzb>y#aNi^_s_L|Mj&WW!{9l zalXq(@vbX7h1OKY9Rq0bK#|q*s$ThkmN-~+MGLb#2;`ZkkiE_c8pMK;bLFlFJEqt4{liuyp}A~=#wV*RM|O7M9{C31FKJ^jxnc1i6m%iF*`o*R5&X=)ueJ- z%0<4A?85u8zv`mcgRTA%MLXPxYOQ3nh<%9qi2g%eR(6rr(W@8B=HthqSsYx>BbH%~ zvCrmoSa%rCSwg~D&K+(`x6COm!E6qNx77PxHNBpU-#(_xATg>RCs_a@god7bTxVjq;y3f{^8^Q> z#~5j1{`aA1#-HYDg(bCSt@=owjpa=A^7#Bfc;G$4vbyVHi=aZmIREFln*)nsi&{bv zh-{>=S+S)eZcO9v9i)Akd_2l|Ab9yiu`3oV++GVZcziMY1XC2tmmWI)@ES{XC7oTJ z^;;B1SF@VoAT+HwJ)%AOySHS9q8~dW&pSE8T&4HG4lmlRX{=8$C zsT=al)IDuVaxNkxeWoTz#O4VUPH}Mi>R7sJnAp}`FTc~>E`yVwIO6k@?g?NAehX3S z?q=q|N%tdk5*v4h7qsC8b9%rx!m>gKHG*LYoP%zgwIrMr$s zM=dDW;_J?~&gqA_q8iQpaR-|*Sly{RuMh_p@wK7$yF@2?ZM__0@k4BDtPgNYr5)1l zPsUee27mq|97`-m{GQEvujIlRSjO`FW8|ERk>-gP1M$OS$t8^K^ccGViwN8#t{SV@ zO5q(5X^BD)Zkfhh2Cr+4TQLJ}mCrhE%9q{wTlX9n5$@i39tF8O12W1D2F0FTef-QD zb1V{x*EG3y@<7IbGEQLP$k|UCq0VH3YJ4{8PA$1}cmWv&Ew!NR zsOk5u-s-qrG=#-$PI6k-EOaE4V&P>?1IddGL$L>>?ZWGa!A{BD7f^&|#PjP0KpR{LSY4a3lX%j7lnFk zQtSU5MwU}dh+$0J_UCBGRV(sIrg~IX!%HGHoDPydT$24k$YOsvLhQ!gp46tK3f09F z&G0oudA8ue&6?GRBL?Z08Vc%-WhzvH2T!OrR)5;oO_#ptwl*DrV*d;r@B0saj0%}D zWM@rzi76qJZLe~7&sP!ZoGR-lVVz}wyG@H{8BZrb+M*i(&|^L!=}PvwjqMf-!G6$b?X~vSY)Y1q8_tGC z@cM)WNOGZhHtYh{=Kl!%FUWI0#pCbOsGO0BiH6!zs{i1+2@GV=1itq8A0U^cPY7UJ vtR~WoZY2GzX8eC@{|}!33-tfH3zfO6z1I^@{TxI4gaNEAE}PexLLU4JWY(&R literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-rider.png b/doc/articles/Assets/uno-settings-rider.png new file mode 100644 index 0000000000000000000000000000000000000000..419216ab8ab7ee1d65d9a86615d0fa221cc244d4 GIT binary patch literal 66360 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-vsc.png b/doc/articles/Assets/uno-settings-vsc.png new file mode 100644 index 0000000000000000000000000000000000000000..5a81f957ac17050ed69c6c1d0c70ff1b1ca52e26 GIT binary patch literal 26458 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-vsc-csproj.gif b/doc/articles/Assets/uno-vsc-csproj.gif new file mode 100644 index 0000000000000000000000000000000000000000..bf2e92b30c00356a3c6f5f257d83fa53ff4335b6 GIT binary patch literal 440013 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�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

=_>2&P{7wR;M-}n2a`z(vlzfjD4e|Wvv(7 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±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[NOTE] + > If the popup doesn’t appear, access Uno Platform settings by clicking on **View** > **Other Windows** > **Uno Platform Settings**. + > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) + +### [**Visual Studio Code**](#tab/vscode) + +If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: + +1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. +2. After opening your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. + ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) +3. Access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. + ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) + +### [**JetBrains Rider**](#tab/rider) + +If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: + +1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. +2. Go to **Tools** > **Uno Platform** > **Settings...**. + ![Visual Studio Code Menu](Assets/uno-settings-rider.png) + +--- + +1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. + ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) +2. Once signed in, you’ll see confirmation of your account with license details and can use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, see the [Hot Reload documentation](xref:Uno.Features.HotReload). + ![Uno Platform Settings Welcome](Assets/uno-settings-main.png) + +## Questions + +For general questions about Uno Platform, refer to the [general FAQ](xref:Uno.Development.FAQ) or see the [troubleshooting section](xref:Uno.UI.CommonIssues) for common issues and solutions. + +If you encounter any issues or need further assistance, reach out on our [community forum](https://platform.uno/community) or connect with us via the [Uno Platform GitHub](https://github.com/unoplatform). From 5b043463e65f1bdc1cf93c46059941cd74d21028 Mon Sep 17 00:00:00 2001 From: Sasha Krsmanovic <33944563+sasakrsmanovic@users.noreply.github.com> Date: Fri, 8 Nov 2024 12:20:17 -0500 Subject: [PATCH 536/664] chore: Update doc/articles/get-started-licensing.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Agnès ZITTE <16295702+agneszitte@users.noreply.github.com> (cherry picked from commit 85ea2b8c23140aa66f308ad4b7cf03f8b0aa4093) --- doc/articles/get-started-licensing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index e517726a7fb9..37e7261978bd 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -10,7 +10,7 @@ Sign in with your Uno Platform account directly in your favorite IDE—Visual St 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). 2. Enter your email address and click on **Register**. -3. On the registration page, fill in your information, including your email, name, country, and password. Once done, click on **Sign up**. +3. On the registration page, fill in your information. Once done, click on **Sign up**. 4. You will receive a confirmation email from **no-reply@platform.uno**. Click on **Confirm Email** to activate your account. 5. You should then see the Sign in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. From 5126d3453835d85e6a156d1b6ecd10430e6ed7c1 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Sat, 9 Nov 2024 14:05:54 +0100 Subject: [PATCH 537/664] chore: Apply suggestions from code review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-authored-by: Agnès ZITTE <16295702+agneszitte@users.noreply.github.com> (cherry picked from commit 3920e83a70d5ff72a8c20c72ce7f861bfbd6ac04) --- doc/articles/get-started-licensing.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index 37e7261978bd..5760d0661f4e 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -11,8 +11,8 @@ Sign in with your Uno Platform account directly in your favorite IDE—Visual St 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). 2. Enter your email address and click on **Register**. 3. On the registration page, fill in your information. Once done, click on **Sign up**. -4. You will receive a confirmation email from **no-reply@platform.uno**. Click on **Confirm Email** to activate your account. -5. You should then see the Sign in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. +4. You will receive a confirmation email from **no-reply@platform.uno**. Click on the **Confirm Email** button in the content of the email to activate your account. +5. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. ## Sign in to your IDE of choice @@ -25,7 +25,7 @@ After creating your Uno Platform account, follow the steps below to sign in to y If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), you can sign in with your Uno Platform account as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening your project, a popup should appear. Click **Sign In / Register**. +2. After opening and loading completely your project, a popup should appear. Click **Sign In / Register**. ![Visual Studio 2022 Popup](Assets/uno-settings-popup.png) >![NOTE] > If the popup doesn’t appear, access Uno Platform settings by clicking on **View** > **Other Windows** > **Uno Platform Settings**. @@ -36,7 +36,7 @@ If you’ve already set up **Visual Studio 2022** by following [Get Started on V If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. +2. After opening and loading completely your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) 3. Access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) From 04e9d5664f30cd665abad702d4fda08e2d3475de Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Mon, 11 Nov 2024 23:45:06 +0100 Subject: [PATCH 538/664] chore: Update screenshots (cherry picked from commit 3104ec53e13c32a0ad60dcacaf29612600d45183) --- doc/articles/Assets/uno-settings-main.png | Bin 23220 -> 21616 bytes doc/articles/Assets/uno-settings-menu.png | Bin 0 -> 32874 bytes .../Assets/uno-settings-rider-popup.png | Bin 0 -> 8980 bytes .../Assets/uno-settings-vsc-popup.png | Bin 0 -> 6551 bytes 4 files changed, 0 insertions(+), 0 deletions(-) create mode 100644 doc/articles/Assets/uno-settings-menu.png create mode 100644 doc/articles/Assets/uno-settings-rider-popup.png create mode 100644 doc/articles/Assets/uno-settings-vsc-popup.png diff --git a/doc/articles/Assets/uno-settings-main.png b/doc/articles/Assets/uno-settings-main.png index 9c3d037adf46cc4f2088bd81ca29db4c9ce18340..592dc6868a402b668359cb02daf4265cc441be52 100644 GIT binary patch literal 21616 zcmbTe2UJsA*Df52h>BDZ6$C_zsB}eoQ4~>%fCxxcKty`)O;kXnm!MPu14@%nLsz6r zQF=#;H0eE%@XvkD`NqB9Ki==Y@4aJ$p-FbuUVE)sp68i!@8El?ipP(hIf_D|jw{_( z&_JO`Nl_@0Y)T6F1Y3RJ3jdHeYA9Yu<+ZcS!5eaOc@=pSsv!K>{-Zluszz69K7FUp#rlrJ(?5M)hrZNE%N^v<5=u=OO--Y`KjfFyluQ5V)WnCT z*AZ5qRJOJQ#U}?`+rK9pJTbrawy!XJ?z?-6h&lfk>E)z>fl$uqX3h&mJ2N~SvI-n@ zr_)q9=rIcH3W0YNy3K^FCt`${p5zOw;@GyND?$-1jTjc-(0Q?;K7k zD0Bxqy?l|X$xWJMhi*3Czb5ynmyseRFRPGfAaRo;V%gyP_EvDv*R(=vOnJKt)u9wh zmbs;~b9e=X6Ecbt@oaN=`HQm(>_Y~vF49NYh9vYv zf~djS4idUUAMPC%m(7qYaoQ|b9;EodP7l92XE5ZnsexJK_1dw0@ssx(lj|LUgqnmt z2}5UzAs6{(PY&aXU8lw2`H_hvU2Q3Dj``uE)^_UweL}b%Ts;>Y(qsvTSme9dINPjR z?F=xvPvW@m?=%=X_*PfnkHGcyv6! zfj9r5WXgUk)sp56t2-!Dai-_}xA>iU3EUjEyDT~md_g9fLlKU+KPRKjN|D3!PUv&6 zFIczE(W7+HG%r8X49w>2sdQ^iTh>xuuMStSG2$jQJR)C?)l)|2$uNw z?w#C*{m4?}Wh<+fh8#q|YqX-lAw{1z$FnSN$_@LVwY!rg5-e-xFnLrNy(= zIoFPFVdDE7WTrg#xL=m3CDC=5c*xh3y)-bF9@`zYEhQPd(&@?9idBtMu^QaricqMv zWWbb{l!%%SShHW_%M5v&k-e=MF@!ZMR1>w9$j)U{Y-m~%71a^*|Y<9w}#t%gFHNx|AlV;kg|_sHG%0Eic(|8|xdiaDUS$?07ThA_Ell3{8p<^1b z2lM66JsxdqcJ8rEZB>?hh$0v7OrUTPcMW+shjK5?=FIRm5wnF-9z6KLHy z#zn;z%ru!#i?ofTmHK!tqT#@)Wh&YQ`LAOlCLS5mtY?XL4zlK<(g(8;)aX z+Qi8;OXTB*u!$8)+P)dEbHfy-RaOtT-YrD4MlWu-W3UDS%sw`)7=Z*)`HMw_x$n=V z&^Vv>^B0dUN*$__6&)(HFgZWuGc}∓F*fO1nW2jrW^yDT@P5q94=059|{h3D;vU`7D+i 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 Y{kE~k`mPnQCDbJ;abv;_(w4Hn0pwSxwEzGB literal 23220 zcmcG$bzD??xHmc~ieLf)BBi8sDM$z#H%JX2p-7IDNJ}?tQ55M80YQ)w0YPABlnw!9 z=v2Cf&Y|wJ-1|NEo^#Lp-hKYK^D$t}n)UmwC%@14dDgtXry_Tb^a?2og*vAoFQbk^ z9hXO;j*Xl?1xKd!U)I8Z#~jqKs(os;5k=ArIz>j!&Uh1imTIpnCB2g{BM0uxP@!sS+J+i97K(DUG-Yrfh zBOgvFD>9$WXB)rnOBYp1jwDmP+t%VaJw@X>RLH?uC_ZWApmOg`hv=BY^tbqy!gVKSq1Wl^*_Zs`)vU&JLIz$9 zAtdBvWMtuAh+e}{`A5FUK^A^#CU}v@U4^&ENYG)(Cy3bOk@t>MupsX}`~Uf4FCKD6 zE4Ex!(_EPXnfW&u3Cc{qCQ*N}A}1{qbrcswd5TS5v|dA1Mn?LPI+X;Q{I!WWHm202 z#uwQOaaa9bWXAjZ*EY&h{blJ_TOat?yKQ05;Z8Q%q@Tko)Cek;khmSSS!G>B&tjNj;dZ!7S~ zH|p4shAFNyL-pN+=+)Fum)07_mizYyo#Hom9MNIiCiVgQ1VXVATywmx@AU33Sw1P# zb%*uA#vEm{p?tXTnxTjLKB26*qG4V88UqE{6!uQ#tOtFhZi22}AzrIF?yB3T+cymk zh6jho2Tt2_uQfU-Pli(WJ?eiehxN9x+bQA@_9CUBV4)VyY{&`CZWoT>QhRgeWT4d0 zzUCrz)~6}lu5&^ThfTm&=Dg2y8d-5yY5Eh%v6303%IIE)YgwX1H_wx)-CJ9|vn*^z z6T68vTJh)d#`^`3L_8bg5GWq1-*D%Qp6|9X!m(p0*9yqg`Y0Ftv{%IrA96poiWSiA zWXV{!%5hdWR?U|^Hu-+{krLXOmb7}5#qX@^|ss8!W&dP$(o~O-5K-(p7Zh!F1 zISQ7q%Z|;?L**DFmLdCVqz=t@t2+|1?oqD!-RNs#+vcNS$(L!#U!ub87E_b6$zRFW zFtor$GI}K`4`^P{&D&1S^-K~`d)L|*_(byC5YI7tuAFj?XNB1b{Tm!a=rA$Yq*EHY ziWST(L&^$a9MktZ{PdQ`SOOeckaf=)~>aIlo1n zaYs^^Q*YPx>lu#@!=+A345wQJNf^hka7%0)$F=o0C%6aK5kpwB30UNcq}TXn%|pQ~ zTGEljLm?eZ@jk1a!(yF8w}8>-TFnn)4os&;-1>P7jKRb#Nr;Zg@MCKb0(H%nXCqMy zE8EaUd3I<}e6P*xa6Ok-OLV%V4w&YzhgSXHS~4!ks&@09R!a!Y{WL>AeOT^*5&Zh2 zkH9ok*=u83<~-5&HXn>^-o_4F*r$Wph+E9e7mCI^gY{yBjR!VJG`goFJ8LCk{RpQR zin5Y2Kg}3_mP(KmE~J-Z;~@-QTHm{_lKd+BW9UL-{%s7n2*-kx1|x3JF|#@MWByc= zddXUgtdCAGttxII#JFdX0TeCoISu$$_OKM&zLtlSwyjeIfIg+#H->>P!*?;iP@ zl%Ae*(ikXu5NNQ?l|Y_tWm1uJso2iSuS$w`fUP1*G$Gliy80RM&E=Fv67_xuQVX9l z201n%R#sMXfuTYMT$514MtM-S>ov|nq81(wyPO5P8Wy=2)1%(r2c9cmiJzF8fBpKL z*luUV(9BAqgT2pc+8DW60SZc+GPuV$!#-Z0ScDvHSK?utAmkuYTiDS#9n3 zNbVMs=3H)L#SBx8s*9JLd`-k0Z$IYDDSmr-&bsj9wraY%>mDAv+N*18_&w#>>_~+O zVPokzgWUFPzmnn8J+rP|E1z$cU^zZF&4bUA_8GzHb<;WBGRFXyJ2 zBU}mnt7cd*^A^T3H#gVSxbr9_H<$kY{rl!%OpoNF!lWZi6klwtk}9aN$!AQSW|9_+ z-kg*RjUSv`+ZwWEj<@=no%wb?D4}yw>Le~ueyc^KA^d85$hD!}H;t*|(fEa|3d*Gg z$G*Ipv`Q_$8I_2k<2>1`AGic}?Q+^&s{?z9^R9iTV5H3;YR*+2;fPQYjIY5Zik@m!v>`ZbRd;ya=^dV3CBVC(gN zZ@p(r;V6`P2+xXL?TWn`-ze0uZ(<*%*;e)UV8QeG=KQ;f%%BLnY^oCD&=_M%JI0F{&p^dYN8lZf_^EoK}o#iN*TCrY7)_4{APq$6I3zFwT@y}*liH!@L7JkKb(7*BVyePiuLLpkTv z+5@8sJ}kZ>b};8?w8zeKE$Mw|EV?F*1sfZPca2|{YWzkdN;MVx2owJ!W~^y&eKrmJ z?N`x}yoi4Cq*Et8HuljEgDg@pSSRS*?E<^N1OvUo8Z8OqmOlmWh+e|QphwZB7Vk~O z4N8x@(o?8iugtrhQCeAD7T#BNN9z-by0DZ4PS_p&_&Y~kletCsfO|;@w>zEO1F7eK z_6;ASlVnN=MtcY~NS0kUldJiZiJ8Qk3`$+z`h0(eduW*`zC*N}-(cGJ3Jx#tU%UA{ z!RAhlafobk^+Avl{Lpa0rd+`$#_#Iki08P_(G9B3+_9^5Av3+UU*d3`r#CQf=ENpl zyt)?bbGPl7o7!AXCS0ZTEumC>H@W}Wu3Mzq_w9wzXQ9<1A~`JCs$Vr4v>w|_$_uuC21mD-415nYobMTnYNx4K$n$CH zITkdLCqC-0{<1;&9?9jYyDqHLBW5iTI{SFPnF8#pPf%MMUzI{J_I(zYJkLN7|%Ip>@p8h)VMDi13JMq>;%h(ZvYOcp%sZS)b>5sbGMH)Vn zS~az`eiwdzd3JDF!u6@n*wQDP5!_DG!qFe=&o0>g{PL=lFrVFDfo<7*_@f~B?dfU| zK%Dz#Plro@O$B~zWu>kLJ=AC^AuecFaJx=ekVZ)=B9D>MPx>Gq%$VBDCP~& zVNA2_R6lhspVg>}lU8IN$2>ewXG453@ZI*0R|1D^>8>l8OFln^Ntcp@h-rl#5A#`d zk6aHJFH4lFzpPN67`>b5vD9RHPXINOyv?e4KCgMc{oaqG1Pva2ntYE{o_Nwo^s~yC zrG1yHkt`ba?`y;z$I#6Wq}k--Jx|SViRN@{lzq@bhqjd`Gjlwujr@|#=Ba0^O#fA@ zX2UFKhjK-&oo+*KhxzQSYcInyV^gM5N|IGyKJ~O$Q(@mzsUjq}T8!Xkhp>zU3&zj} zl$FQkefCkTt&~LW$keLCT1)a$(b4C_-9;5f;}NI68snu(w^G+yqM3=Zvh``h+7~1{ zGhkG+rMhW8FES+=WSZpc<|hiOJhsQd*u-;>MyosoHs@_q!8UK@7)#6r6&TyCz94bk z?6FQ#e*@=b;5{H5J;W}V>q!_MpYBL_CF!;I>oxn^FQUl@)E^%fkbCVhJkRXA{antw z_)_S;1;<~Pm&zB8j7G}M#ON#Nj*xZmHg66K#+syJH_GCDY6qGf=??C*VAP^~Y7c4V z^C!?$SnHA9?Hw7H z*elI5fAiX=`MJesH00p&b9V3XvD+RfRPRCcxhnUHqt7n30tvT0gwNCUhn^tbG9ImT zdoox-4bIhoYLqo0-x6*~}j>@L6~* zo$Ur=e<&IA-S=KmnL!M3T)b6|OvvwUGhQ6lXB`tMZgzywizlwTw$v*n8T%Mbk$y`OxiBlAINgc) zY2^T$WxM-rBQq!jt5xWvY}SBKc!dyT9b(c8#}ZIO7jrzcC_A;orSta2$^{ zaOWU@P2`MsKlk}@2YT=Pcf{WtVhxU;jqRtkDgEJAr(b13c{h{+ZhkFm zd#knUK2A%QvRUr7yX}}We==$aC`#)~Hl8#EajER4`W$Fgu6IwN&ZvY_znb=awI<$~*mR^kGf7+=(R7y*U$nlU{r+lG%e|{0l3>3xj9)Ys zdXLeQOf)$h?wlDWKJOW~^)mW!EM&^|2a0gD}+kfxc)Q3 zW9wI&OI2W+*Wq;T{wv2HHHTaljGoQe`MTRTVE4~jzdlbAIgX>PTltk~1mVKGrRSW; zu>Y?*Ri}}=dZF5wU*uM_PeV11XZ!I^6De3Wy!Pjc>yeLoGG}4rIjzRAkCD#M7 zF|WZ2EQ!O+fsA;h0OA`J&P!h+YmU4IPsgtkT3n02t^}mchD$MPhmzLxy}?FAkXIfZ z?gte}}Y3OmG?`26YRRkbd=Kmx8#wz@FG_MG@ag)BYK} z@jap4F|38!MpSRqXe)kl%X`wb`({RRc&wH8WBqFwIbo$fJrBHNqU2Ukkxvf6e$Zd7 zbZc<#*)o<3$fL*Io|%wtvRLLCX>Jz2w*Pqb=wa^AwfONh+Wm~;>a4gSoPu%zk8a7M z{T&~>E%Wj1CJS8+xqDRNiZAKcLVMf`yeeirOC)3Fwn`4tI1Ywn85xz>BFccd8(cKnmqyO`R1j~Vk_Lld|nvKGTod@l)dcV z5Uv?tI3ihN>anpl!`q~0+>mH?V{>lk0<~(~quteabYp>Il|nRa!IF0`PEd-woi|Mq zoY`LfqQbUJRJNbpvJl>PQ^5c?>7=@5p|RiCOuX-}ymxIL|KVdz$_913ftJ87S;7a~ zk@B8x=8}|w!xI@x-*=s;zNyyV$TJeE?%NXXmMj-jDF_(c#bJcvJ6fhUWB3GbZ-oxn z^h66yVJ~0{M65g+l6SwEC5CoRHkk{)4B`9I7TUQHI(n&U#L*1hXmUGw<-Gc_LNCz_ zJt|%M3N)7Q?Aq*e$rIASLp}ISt!O+~kR)00I{VDk1@B2qNlqo<|FuB8nvH-o)4X$u zZMsYuD=yemxBKW7YoyP>uZ|#JV9@@m7u+Y#A+$Bb4D;gfXP!&AyRntK-<@=2Gq65A zo2$*p?7teIywQodVHO>)NB4ZJMn(Vo`Wbf##U`TcKl%?(r1P5+G>~G5rTTH_K)xJ2iXT7v1Bx`zfVE<&uHpyd+v;TP!m-X*$Mp^84Jj z;+kOrYv|Zx5{>VBupQ1XL@gUR`v&NPDsTMQ2G`Nr068I_ki&Y~#`dC3TAK(J7C&M# zm|S?xM{pp~4y*MC+lGMe<^0Q&zkchRi*zD63gqJsw>;tB+=hL zt0K!Xr1EjP*xQ~=q0Ml#fNQ<7;2bUG$>`s-^2vWqA-_mf4jX>ka&=;@?Ba(!DUCZm zc`rsE559#Z#Ir3UIolS(JZ+LcwjFXlhKiL)HsSa6%MAZLmmP6oH;8yQh&f*v_nGCi z>twjxQ^H*41h(cN*9z3|*KDUqL|>X_)8~lFJTvKq5P=E`3YI$>8WfM)-}wDVlS?Zs zBtKg4IpCAn>Nf^x)O*hw{Z@j;$;s)#>e`xpR8-VYAaRrfDagoVPg1;R+Wz&5 zaXhbLskYFxjo)$hp68N7a-G!S>IJK@YI-?(r>I4nBFjEriKG2>!Nn`d5^jP9o~yE& zT3T(ubAK!yYP01&d?#*@$=($ z4&-v`OVV*8mZ5wUO{ZxDE$6_<}wo} z+S=OsVd>LrY^raA=5U!4%RWaHxUCJG>cmN$zM#m_4Ha9lh?H94duk{xib z-xEtqhe3a6UnnXm*>$VQ88(H`yRJ4+{}>$&VYuy{f~oQTqlrF)@o?pp>+HK%PX|n6 ze>KwD);o0GepRtleumL|=bDa=&Pukb7b$8b*VgL{cGR6qMQo0xuQUM|uy1c}o&hNF z1@?Lh6(?fLAZ#=2Us596-P=130JYYodYxWkvs=TzX~K2AU1Sxx0(-KjU<|jmZ%>Yv zao2l=(%tEVADOC*Giee`oD3}{);@CoJuVBHobHg^vpUNtNoU*?(qNfi_0l**^we$ljXwnAiBLh81&)s$Zeds3Fo)#S z2CnahPm)olbakntlO^e)!}RrFdn`1ZSx(G4`DlM;^>gyUS*g8&&Zl2bQr}wDP!T??}plLQ;Gc(KPs=$JXLkFzQth+0XP? zgIbQvL|^0{OifL1Z4Wyj_VFtt!KSvadh4ddYCXjc$h_#s>#Q((kHvyGK~qvh0QE)! z>;?}Wyj0?=x`b38t*xzzuH00017^v=92yxb)OVZxNyx8J1sV>Q+U;~6?W;=cuhiWF z&tC-xH-w^9B^f--aBZ?B4!rho>}b!&e26&x{d*RCurdb^PeYFuCO9AXmz^J>-Y;xD zCujl45_|7YFiu2is2oFi9xPy*d=C12e!a2G`-;$!G(wMmf+J0ClluE#=Qc(M(5DR&H*C=uG1ChuqVN6W9KH z`LjcOxgKKG)3p|MNl|?=(39((U z0&d>Ql{+)o+TMIjsNF=PA#gRo`&~lf5N3azx^yZ=7b>+o-;%_s$96kh!sJ;{D4?5( zP{SU}Ri%4N6{{@9pO@=0y$Xm}9%4uW2P9&1nx*Yi*G^E)31Ky7;-1DIPr@qigf^g7?aasOac- zTKNWXq7G~p78WaGM+al2GjBasUPTpM^ZdXX`(7&7$em8t~#9b51vMF1fQ=Yv@<+0hLwYr(_bK4qYV%z@aW}L9~l^7n~ zmz_R`>wh$Lj!PX*NUcCzM55o$My3>x2s0C>qR&npBftB`lNpaBi``mz$^Mc8J<|GIr2uVcxTZ}Dli~` zw2Xv|Of8llPNo%i=7!v1P`TNwTe{ZDCE!JH+{fGc)U}I@1;q=Qi7{?MkNBh?V}bb& z87&#vl(=_2)!EU%8^{5?(h)Afm)x`zws6Vx@31WuXhF87YfMb@HU@pyHc4KMYVqZi z4|njK3U!s_D*xSsZocrZJIu1-SKV&oj*XXH_`o})Y`V)$(vxRIh%5$`*QVr&ujT(4 zM`$kR;4LdoAiU|{YAa5a{|%P}zy8~9_Z?u_Z94VC?DEUqGhT4#ND>^v(Re^lBkhhO zUCFlZ^EYPz|F_t)^%bBAceUYkq)A@#uRG`0=b_fqKDQ=%F<_2HF2i{OO!AW_Prl%>V<9q3*Ak#5A8?+6Jl-tJc@; z2_nYp)9r$28JSC@Z1OKm1fdu4I*_mWva+(WJX@s7&~$qOqQrl~wzOcp3{&`*kJ_L4 z;b3=ncgnkW#~?>Rw6-Hi?oLMj(Ug?Ew_GzuqmeIiN|!CqJ0Db&8r_ zgZlkmlaL$kZQ-x;@inDLKfibXz8`drC}!m!3tRR7wYxr(R#HOs*{t&vN@A^<8Od1p zbaeyaxbf`wcL?0Nr>`FjJ_AXWDO~;`tME{XbsZ0O*cXm@t|yGu4;EVr*bLu7$MGNQ z!}wGQNrHLCfslo*2VdOJd00NU>fDvd z`tFfyx5HmIP4t&oCuq26z#d&C&O2JAEeAqS)rz}HSti5u?C@Yu+{JskGkLiltSEpI zfEw1Y?q!j<)YQ~eR#w&@0HMZLOV8S;+qbExy3pq*9m7Ao%JV3TF zxAT(V1Az;IF{pK%ra zz6+H{R!)w?JVEkse@05^8dGX>WZ%`|m_9yi++2CgYpasiZ+un5t~>ns@+^W17~E&C zNo;)oGb=m$>tDxCn21<%Y30e7nz91sN03cfN&DN|LuH?ftOf+RwF~RbA*;>sdu&;0 zK6o$=f`1wj70sn3))F*4UA?z-0tF5+3~4xNNvEf;Z{kBvo}!ZL{QNw>-M9?w_Qycz zU{h-}mtFhKzMp3>JI6E7@xBm=gc(3j=OJ(f(~1}YO6_=l?H~s5&*hp-6LkzG6hDMD z-d-AcVr5kirV1UNV=2ruZWF;G-~0Rh8yoMU-`pVa0Vs70wOqM={?ysaf5Abda(Gzj zDu6)E8^XflOBKtFkW%a4c3}sqJVXG1&$?sT!{r~fM6e>p_u<2b#2sz3BtIlXfd)b6 z$~r^!uPN-Hxjq3vu%RnmDR)^OqR=6fnGZ{>XrL0D8Wvd7MJhr-e=UYV;9IW%52r$$ zK=D8R1|;1OH41hKoG%h)j3Hh=f$#))Q2^d$_wLm;GX%C;WehB(j)RLJjG$IvG)<{f zn8V8fq1!=yA=CodllgaCkN>e92o~ULBFItamX@7Of+2LpLPP5U6o^brf02-XozU7F zF+^oBZSq+P zGPP%LS6O*^jez$)9`+8tz3s6AP&u`{Tt}D&+Vh40y)O$}T}G-w&t3bobhj?f?o@Xw zuqRD=X1njMO_c&rpSn0QUA~Z4w>H(Lrll3Tm9uZ$81yw&Hn6MuY+ewf6axjj$|Mr9 zNcFhyqiOxrLZNiYS~$wiVibD=P$gD;7;guFU!s4$^F<1UUzo#THr`- zdiqI-3H6Xj{Q=nC8WZA#To-ojPo%g4s&iFk9HPjN&lWwL?9!YZ9CJl+ zV3Xxbh`6Tl4aR-)_@#{yR^sFf5_NvDF=}Q|6sP@v%er8?c-Q#MbH?;6flg3<3lXhh z>6Vn%Ofu=ef~aw zWT$wBeEBLFgV)B7AW0+G#@Dn^NzUKF@;M3lG1TLZMDtBzOA)}g+Mge{@Pji*gV~gh z2XH+FOEpHIEAR=U9?Q1}P69W;Fx`<9c+;}?QSV1>Siq48Z;6?h3Y#EVz(*&LnhBieDU{qlL&TT9z|Z`)qY?;GT`R6+b@DV;UJ~X{PX}C6?CK4QKc&|6<(#N!(xV zWH~6{wHk=2r?sv8H4HU#z7KwQGkoGY!A;F;a+r!o=f#^hR{#y(n#qF~&UyA$FO)*Z z0mC((q}Kb38skZ(6vJ)TF&D+5aZgKYX854Xhf2}Xl544Y&t}GRZW9UR1`xq?m}a&d z*q8!1+2p%hAg$cf(0C5v95Dh&G%W--IZ%0jwU@Z_@@O!G>L5B%a^mxJD6xoeBo3D0 z1VOI*P_PoApz$Vtng0>$3N0;C!WpfOH$Y>;@&^Qd5D2Yqi4~cL;@D%z4!2xaQWi!S zoTM@THkjj<M5?GjU|FaDx_xb7PY#O3cn^qXA|)h*%%lno1ls-z7u&(a{n?4zNCtxoL>84D zB);}f1;V%N3NSX1;I7uu3}9^;?}pI5E-Vy8eTfq={*JZ9p#Cs6W^N2+T;9Ns)ku}t zj)lPV8H@+fLKLav!U{)1_1wgv&qIA zNn=R58msn#aWbq!WfP-MrN#plsRKu|n!1Y(oJnd6P{W^dj~6LQPj+g@HC9y#_G zpZ98@ImsAMFyo21)>g$tudRWO65Rr zZ+g4#s?PJOp^{un(r_y5R!E*9u3;?;UQ zWh2^iAS46tT~qLS#Lf`LGJ;hp(caCi%%N{~Di-6sG`~1nMGN+@Q5ng~So2d@1Xq^# z;lmo8IK^6?9+XiU8X7u`k$Q-J%3(q{oE9J|f@%Snnig?C{Di7|bs@ISNgXN=zy(H7 zupz5}t_7a{{3B&zPm(>!F=Ab<3y#?R@}q9OR^E>A3R7*dX?c0Pc&**0Ae!g0fmG>U zGhBR4sd50LCm%$n3l~@Byi6`!BU+WlsXDaZg+OHOP%o z3*%Lc%V?ZOG}!?W>DG++BLjz=4#fwQJH#RTJGLWE-aC*!8`diE`>^g{kr zhXsR=MgR!zw5WQIcgum9!aazN9b^NUQtq_y6gW!@U7!$Vkl7A@GUl$sN`Ha_^IB&} zvlIu@QIUUu^u7X_c5k1J07cD~o{_KSBni1+AmDW;5jOd+Kjo|-qat(ZsTV;Mt4olF z7@)@kFP2O9eOYSqC$(N}C9&-4v*HH1?m|7r29tEoxk3#A(lC;ToG1LR%k}03B93M= zp;_Y=Ge(6qH!_3HxG++RkC@ zSof6m9XHE+`3u-9_sgoPZsQ-kx4^Zze=B;g&H)+e1b`yPElO6%mv7HPJ>m!Gzxf^u zknQBmcZ2@mrutJs;q^l5pt5Cgvly!HH?b2_IcOhDqW;QA8Q6`iPyEuPr=*M!Xz`y1 z_>nfses#@zA+J|0-O~>MB$7sY)az%CZcfb2lj$Zt>2L3>bSDKRdrQlKtp!aR3(wJNqwN z`){8u2*Z-7YrRbhYZsy$F8Ps6V|b;FM@2@an|{)%$uTLy)Qe}gc(28|La%M;H=UDJ z@n0WX2+#v6V7wtP9L<*W5W+h0qdZF&;jty8jyOrL^3M`LaG?Hr`SKLPOB7b*19MM~ z%T#RwI^=jlS^~U*W0f4$Y79zK+FM5Bt-xE zZJ0y={v-8orsOW<90bJzoztc)C^X3yI!W8BK8WEdBTnWHi)R#|&bt{nR zu($?ykmD_&KyfA6K#fQ+G`&1W%kMO=X*F6&6G+8#92FHCJFz!*Bsso%3*onsB!c=2 zARH<|*xG&`sGQp`&(pu@m22k-m;cGvD>^^0D=e?q9!#Bs@VrlR2DP^7=1J@WrGg(#PerlmzXnj#_8YYmQAw@}1 z(IqG}py0U9!z26KaTPKJQJEM81rkL?$!eEWBYQRL0D}j33!Vw+keAhq%TMM2Q2;PN z)WXuz4xzIlzrxD>m2N_C_le>(Jv}`;(0^ePQH?~i{rLX<`&?d2sog}PUG>qyvN4eF{ga&WQ0Whi&ZJplBGC{Yb4 zIUwk-#iN0PO93-P%oMsQNm~fB4UC*pf(BS6Vr__s8^D{Ac3^RY`atvraHm>8TWwN5 z3+B}Z6&^VX&lExnu*IYhSN1%nyF4in#)f|Z=`L+;%>xEu;I(-_lTj>!%RhN@Msi#9 zqkaXI!%T-PybCF2Wjet&1K(GV-%M>@cljYp{SMIL+-J~QqT6)*puddFFRo@Hg;D(o zClP`^Yko0CdpW;v{XV2SVEc$rAc*T+TqjUBZr)7SZ-(VS=Rsqyw2PjQA>Bhjw=iE> zmJ~sHP$3CmJJjxMHf$CEYsYZ+2-W7QK2!l9t@x7QH@3ha0wd5h4Z%YU?*jZAg6ukg z`!8Bn9f)wCyYb{AU@7hjQ%7FqNpJMb9o7dx$eQn2SX(=hvmBV|tEoLxOS_vsqFuCG z9W}Jjpe(^42cjJHTvrC~VLl5igeR0g78&TT8^(hzA2H2ugEU z;(fCe@tdMm57(e(K2X99VQpOoD>XGWAA$Z=^bcZvv?3EgH|Zmy0wV*`a<$(F2j@K( z(+G|;BgAgR%4%b|&q{GjGyQ{u7W@9~(|R%B)x!>*4S*L%=RBJa9B0aa`Bn9>E~SrT zJlH=+FLnvI&;BBFiVrzCI07^UAUoG~XKNslYo@QU59qUOjm%b?q#)QnBB~)TXduUo zcs5MfA!MeISx5cG91i6Dy~f8UWr8^yIBf6$6-L|W*jVHF?(7{f@Fh=A7bv_4Y|bS> ztRVyp-Iz6Y@t?EavzG z>uDC?f1MUm^z}@{4Iy2urQKu-h)PunD|B;yK77~PN1-Iqb<>BU~u9N=wlInIVrSXx@vLDLy$ z6z_hp*;n8=r*1Y-?v%6G)q=Fm03~X@{9NdBeJ&Q!81};uce(!zP8QvdK2RNyBkT0NiYC;C1jq3f2 z3g44wK(CPo^~q`B0m86B#ngoKXQ3VO4yGFVYkX>i4uMeko~fFw;swio^4fDwbf3?j z9r$cE=RkC1}V)^Y~(5L!xZ)v8RI@Vq)GxDhH<$t8-O0ds-yL@=NsQJc%^BVT8jM1ZmV3 z!(+Z`6~UbDvOEgy?!tAueo8I9XV8y5KP#UCt&&KSjl}^9xHBxly9)~IBylllLw|)S zgjdj&hB*<*FY`S)h$Vb9sJg=FxpE8{VX<bOr zCn2?&t@;jT2s+}xJRXutN(+vtMGO;WUE)l*sRGj*?(1(w7i4KDdyA|*4&{>V3| z>S|?hMdMVejO305reSP`ynFun@t7zkwj)YF+bxGt(*woUu`!p35?0 zDj3a#)K)^@{f%n(Z-E$(erQj+AvLX^A27$i8}0w^XSU}b5#B~v3H_*}`iMRz4RmJpg-K`YC@1VgN#nnZ$qrZhil8^$YbL0JoevG{HGr0hdGR8FV~A&BkR{k z_f}FUEJYnJe~#VP()l*|)^y>Mai=)KVn=QNM?v1)_c{N@Rp&$Q`i^A3oF%tQJg?4Y z7T0Y5k{!jxo`$pt%-=v-irGMGfTgCnAOQY7&Ge%`m#_Y`L@lc1nulv!o;;iZ*>D|=p6f8An z0<(C+=io`_!lf;}_gOg~b}o(T+li~Iw#&|Em)+XIxJ(2d-MEBWQAwo|D%irKqn zG}BpoQ)-vTz|vFe{IkwPiHqz>7l~132aQ7{KcLxMnZi zG0>wb^Gmu=?XexBL6@kv_#N+vrS}x$rE@bia*O-grBAn>XT{%QsB+&58-ZlMc85FK zjFH@3S*s+wyiX?@vQ|=YKwIHxldU-n)3y2>?Ty*NnB27hgZ(`Nn$~{ec7=Tld|>I; zf?3+)Y+Bb~$1T&RI!RD$_APsFi=TxW3hWogVC;Gc>c3M-3{_x*k+}dWsdaYeFhU2K zzX`no9~Xe9cm})}yS%jPa^3TtmWj^slI)&JOVGG6I?VTLX#YQ8q}%jF$Xu{!pLeiJ zC{P-YE-Cx6NO|J`7?%z&;iO_B1-yXhZ>7Y^=^6BK&;X1Yx>T5|@O!x9-xCa9h!l+7 zm!5Mk2o%qD#y|C#CV~)idBZZa{ib}$p8iq5$-g;~|G}WDeAtE=h3Os1GqrfPi=4d4 z;_tQ+@Q0u#K~o33oyXmXf5tf^uLt~gjO!Ht0hd70|Hm&^n7r>hx#@W_zXVMr5aPb| z;?NU3ES106Y`vwBc3^3fj#a@%_w?F7@$kgI-nwk;)fO{~mSQb!Ns2p?+tRkNUPzOE z+DShEdS!!~<&}+P4VCcdq9RQ5AhC9>?!Wjna_~P>P5T;5(mKM>t1vR3|J&JHW-mv{Z|aDo2UG3g#WfEm_l&42rZ0{f6D*y8or zjhRh1{j}k{Bzsz{x8M8!G2aB{z?^*Hoz#r9&&wBcyB93Pt46xP{H}Aa?aCJB3F&{H zbovzcuXp$l?RVXuC_AU~aTtt6$B!30{D^Z1@21;0%&>;0Yz$Up7}hy~TObI9Zp>`ASU&hT;pP)i zN%e-Phn+LvZ}TYp9}PgQ(Oeit^$cw|o-_uF(B_b-F!s<>meJwMr@y!Bf{X4?AIe+*M@RK*|+&MybKngERULz*WFsvrr~n z`Uo{5jH7;GCsRk`3k^O7NJ@s%75EO?@ULa=I78eZ)np3)10JS7>ykRg z6X6o#C>U?QkQtX33zI6LA5vArD!uPzhjiLf?mqAP>=5s_Pynb8DQ{A3wqXi0#jNvf z$ELhN+9VUjRo(cFb}fJuW#LkuHDVGGxsqOlM^N9w&}s~9O6D0dW!sS?j?DkEPdn?Y zPZpz9KcevsFGwPOZX1Q+1!?;*nig{dpV<*g#Cq-^VcCwPA`pw5b5q>y256UsC0ryUGfgimqd~?DUom?7yGo4C5z?p> zLd&89wYjHUj(F}2XK+rq>mQN7(Mf0p+@kUkI_%~efdO;Y$Zu7-x$W5tUZ#L=zd);n z->CjH^g`gz#(Ym(JRfk;$pC79(-kBLQH?Zkjt&oCSjZQil&Uu>D6%&<&(?^=qr@6a z?bD4u0#Bo5+0X=k@g-bsN9TYQOIr4VRF#h-gqY)cI+k zSY)mhMud_|=hN6F1Z@;wZj@Hf3h+w@uwk=XOAWM4z3}%R1it;$JlPz@QZ^zTVNC$g zYLspi@#Z--&N-s}mf@E4U+X1gTepM{tO)(5EfTNFTB{h=tiCLhO7I%kkUn*=-ydX* zYkH|XexmJQAY`iPFm2 zO+NJ_-~4f23R-~gH_!Z2int<0{T&dD~?82V9 zSGTLXK4!tLN;yUuKpropzAw?L7xO?KJHNYBd~>t6;4wiM;~FzyeHg*PmhI+VK*Rn` zvNlaoHG`(g>TO~xM8d=H>BV0i&)a=iO^Dxcsx7#vdw8*OrI zlHZE7;$6(ZzfU0$-DK1i-aDfhwnsWohsc#(-f)?Z+ptD-Xt6URG&rSE`Y&o9TIr>> zX}bQ!&c}%_`n zf3VBD>qp-oXIgN-lh%~NsxC-kKcrHV@E)sR!C-(MQh={hVM#a`_%`&iz1j+H`(cPF z?iFcl`^mbD(A<LCGu*25QQeyecE1fz@X^!ZwvPoJ6u|%SeO5+a&S_I2e4a5X@+E>a`K6@jJYkv<66J( zj7|PKuQSJ=g)Bqp*WqY)w6!;5c1!hud|4v3{yplgtJ|hRG3SO3{5Y~iPdbIv#)Phi z3?>M1&s@?>{&X@rsK1bgD@$}BD3S+TFUP|=9xn&tYqQ=IrqMVPcU3lWNYhj=KcUqk zmtEQ-m#Qak-n%7OD?u^D1fwCvF=hX)+;j0no44A+-#&5cQetz}58aNYlH}wRa-xLY z{*7m*HJ-D~k@WH3c39;E6}tKeJ2q#;rcDFldjl{?$N|DD9n5ke(~;zUW7=&S&?+?=N^qkNpIGa3emG_`v+>*X3WwORQ%A1hj+o#HQ- z~->H%-neLxgn6` z=lDpl8>>cvb~(1|0^$A5q5T`Ojl+%ioQiAWVo)uz$&osUTQ~5$<&urQI%n#Y%O`lM zPR^PmkVPSwdBR4ZSRM&xj0rMzkLh%Ujr|6i?%tdDXHl8^lcV(~5>@XR4+K#>2ER9s zkDvl~wA!oZCa1gKySz3l5P!Bs*0yguyVZTo)g{e*{{OT`cN=L2*lVEotI@}MJ>VOs~S5VB}&5qY5bcQz8HCQGpM zHThh_zXxf7PSU~aPyw=P^Nnccf@ zngITUXsnh<;p1k#Y{Oq8Es$uscgG0fm@2-kxY4nV5x>F+I55T|LBJDpP1X@f%N@ASI zJK)_W8>^&hk)>`QTvScevDO=*@qssW0N>3Hg)Et|tWAR_M*n=jF!rAjX3PrcYx}^n zc#4zC1^L1Q0z0&B-y`~_xrFR$&YSdVX`3OtsV^CPs0u+L1UJC%0z7$*{gQgZF<&@z zQove3#sVRoad!mk3~8h4@cTK!h3K=k3l`c4LJmC;Lu4C{fg0N5sWb4bkd_*Z`R2$% zZo{i9C3K%DxdA774!>V?9xw^$ATl-IxE)J$3ZNc&yQZPCwvr05<@EvIusiCGdSBq| z-VIxW5cDjr4;)ZgZiiGhvKYn?CLA5X;Jj^~5U#OUK5 zu2ns;HE)f!fL2c?T$Tk4o2EwPq~X+=fcaN6<1-rb(IU3gHmgbDzF;B0a>12#yj9+Q z`9#Q4eZU4FaHSIGx{B%ma{vC-h0EFsUrII>@o-#>4<#BNEaAi{C6%=s6^5I5LSkgM zG@8gcwWqvc$ssVYbSIezR&*U1>9khnX5x8R+fip>SZznawO8bk=zbmW02%j)S3wZ% z7)%hj#B`da`eM|fayed>mUDfOxD?(>i%(Y9`mj?k+1}9yg~?OiQa6{U&V$Y2(KQKx(TF5Ro98eBqb>BxSdb z+o2UL2NRn1UR$_?2h<7bb1<6mIzrS11iXgMMu5bN0f_|!;b2-|{o80 z0Qx>JEZ!SnV+=byugTsAexmRemd89fSp)-Ff2wRUkl?g`TP$wq1~W4KZuxWRNXkWe zm9Q7p4T1zL!2eCa0+q|TZE^6Ev{Ay08*AKX7C^4LXLMwJqdBAgBt;Zc$aK(tDC`01v?`t!{dz%JKCZgy%q z(W!_g2(sA-{QI{H76woGO6G>CHfK*#tL^vtET4^poULLz7i!!W&{J)l z!P?Q6zh6FR%sLa#0;BhY9VEOWSGP=qco!*9%?J%jE(wnU+$@n-^ax@$JWk0^2Io>; zf!ZJ4u7XSCQRIMI1J-Stb|#|?D&2#Y?O494H`lIaegUiiNOxkCr!hxH%6aNP_8<4i ziK{o@(v&EWv$#eR#JQB(=F1fWl9jG^`@TITqK3_~bhLK8!;B}2h)koz+lH4B8STU9#G8uKD6JR&wJ0Gx zE1i9G)(x(ghlS&f^So619aYnYO%7oOz8bRX?}ugk#=y9#VBE1BjaH&s?tMz0yBN>mTbEsI(i$Zp0AI;pw^4iabQW)lQv z>yl7lVdYU1gl~{x#YVk9qhavEnU_2Fst@}1dZEi!#qmg`*H1nG3JYIw8D+@1fFFo; zM4%h!6AMWH_Zc%y1^o!*=~3;-AOmKSpd@nm%=+F?In280E)^?lw+H8yd0uy)9DlWM zrKj1Y>?Hf>J#58_|IuP0bBxZ{-B^K73cerg@O=bw*Wi5PG(9kaL6ij5g<1yWPgvdy z1y29u18&yNttW@*ou427W5kuOvN05A4pPD8grPzr<&6v*TMsIvO!Pb+uNEH!S+-5P z(iI;^-lCEHcO1E=6E2k0+KGBy3^L-}P#dF6Ff)kqkfp-=CSh-_kLhb)LZ&jSLpzK1 zxa5(elQ1Lo|9OlLx8FxCfw>EZJjDzLO)`X!g!)DR+LT7S41zRl3~wL1q&=ye7)0g2 zn7v;@KLEBEhf#Wl9aSInlsA?o9?)w`mIR3N(IOh?#7T;4s5Cl(MB0ErZrN%tPEkb2 znN5(gbr6o35eL>B!SDU;cRCBrcqnD+PhQt&hYPXXi}+dy#2dUD0&1OC%a0)K-$oOM z2N}cFmjjwy>Of+}oZtv?xRtNdAywMSy}ugYHBD zc!m4q!PargJQ2iTP)jc$oFvhwn4QS1UAgtGS?d;W?xL11Ane}zIYgErH~dkROW6O z(poe$j`eT$C+2-6ZakmbcNPcaFE{VrNGc|W0O`((gvm+&EtyHPvtCUOUlkQFN2+^Z z?!HsxOCl!#Kf49TrxUqWb5$*uz%^HLj85+D$MGfLCg^rus%&9R#ipomJzX@=2w(33 zfCx_)2ILLyTrI_JrBjk?p~ymxfSQJy95248nsYQIk5Z;zCyZt!70kpVa>I9n4y%7` z=9UDNI^#M`5LVIC!|!w*w*@7VM^~L~roI)_&N+7NOHCu(J)7F?buI=JWFQe+Rs~+2 zMo>_<-!;nAjo~r!BAWDar6k^l2^38s{>t0AFkdRF%$|CW{`njGl^M%^1hw9bvY{+-S)AG_ydk1VC5_6b8gcy$ zIt*yH4!rT0N9=Uey}>fzKP$I9cDotFOj;KE5>x;pnn6z{>5kL>&L@~S%{{FOb@sq8 z>g>KPbmu zo<+OAt7-eLTyc64trG)E=2gbS9bJ43VUHym60OFkXY$d_G@p2kY4ESn=RKaL+%4*O zs`-0%NJ%keZ9)gDabboz3&hiT${O$n|n*Qjc0RLb= J$(|#b{{~&~_=^Al diff --git a/doc/articles/Assets/uno-settings-menu.png b/doc/articles/Assets/uno-settings-menu.png new file mode 100644 index 0000000000000000000000000000000000000000..7a90740b8431b0185e77c9af6de22de13d672933 GIT binary patch literal 32874 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-rider-popup.png b/doc/articles/Assets/uno-settings-rider-popup.png new file mode 100644 index 0000000000000000000000000000000000000000..b3d7d36a904190e25750a25609a360a6deeb46ff GIT binary patch literal 8980 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 literal 0 HcmV?d00001 From 21c2a82467ff2888b988034cbf5023c4c5e18f8d Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Mon, 11 Nov 2024 23:50:23 +0100 Subject: [PATCH 539/664] chore: Sign in to Uno adjustments (cherry picked from commit ef003a0abccd74a3d40aa7b0cdf49720253d50f0) --- doc/articles/get-started-licensing.md | 31 +++++++++++++++++---------- doc/articles/toc.yml | 2 ++ 2 files changed, 22 insertions(+), 11 deletions(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index 5760d0661f4e..2c60c39fab4a 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -4,14 +4,14 @@ uid: Uno.GetStarted.Licensing # Sign in with Uno Platform -Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider—to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno community to share feedback and network. +Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider—to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno Platform community to share feedback and network. ## Create your account 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). 2. Enter your email address and click on **Register**. 3. On the registration page, fill in your information. Once done, click on **Sign up**. -4. You will receive a confirmation email from **no-reply@platform.uno**. Click on the **Confirm Email** button in the content of the email to activate your account. +4. You will receive a confirmation email from **no-reply@platform.uno**. Follow the instructions in the email to activate your account. 5. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. ## Sign in to your IDE of choice @@ -22,13 +22,13 @@ After creating your Uno Platform account, follow the steps below to sign in to y ### [**Visual Studio 2022**](#tab/vs2022) -If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), you can sign in with your Uno Platform account as follows: +If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), sign in as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening and loading completely your project, a popup should appear. Click **Sign In / Register**. +2. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. ![Visual Studio 2022 Popup](Assets/uno-settings-popup.png) >![NOTE] - > If the popup doesn’t appear, access Uno Platform settings by clicking on **View** > **Other Windows** > **Uno Platform Settings**. + > If the popup doesn’t appear, access Uno Platform settings by clicking on **Extensions** > **Uno Platform** > **Settings...**. > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) ### [**Visual Studio Code**](#tab/vscode) @@ -38,23 +38,32 @@ If you’ve already set up **Visual Studio Code** by following [Get Started on V 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. 2. After opening and loading completely your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) -3. Access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. - ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) +3. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. + ![Visual Studio Code Menu](Assets/uno-settings-vsc-popup.png) + >![NOTE] + > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. + > ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) ### [**JetBrains Rider**](#tab/rider) If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: 1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. Go to **Tools** > **Uno Platform** > **Settings...**. - ![Visual Studio Code Menu](Assets/uno-settings-rider.png) +2. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. + ![JetBrains Rider Popup](Assets/uno-settings-rider-popup.png) + >![NOTE] + > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **Tools** > **Uno Platform** > **Settings...**. + > ![JetBrains Rider Menu](Assets/uno-settings-rider.png) --- 1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) -2. Once signed in, you’ll see confirmation of your account with license details and can use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, see the [Hot Reload documentation](xref:Uno.Features.HotReload). - ![Uno Platform Settings Welcome](Assets/uno-settings-main.png) +2. Once signed in, you’ll see a confirmation of your account along with your license details. You can then use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). + ![Uno Platform Settings](Assets/uno-settings-main.png) + >![TIP] + > You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. + > ![Uno Platform Menu](Assets/uno-settings-menu.png) ## Questions diff --git a/doc/articles/toc.yml b/doc/articles/toc.yml index 73432e5c82c0..8fa1b5f3f306 100644 --- a/doc/articles/toc.yml +++ b/doc/articles/toc.yml @@ -32,6 +32,8 @@ - name: Troubleshoot topicHref: xref:Uno.UI.CommonIssues items: + - name: Sign in with Uno Platform + href: xref:Uno.GetStarted.Licensing - name: All Development Environments href: xref:Uno.UI.CommonIssues.AllIDEs - name: Visual Studio 2022 for Windows From ab00eaf046fe3e6da9cd1f43222ffe4454436fe3 Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Tue, 12 Nov 2024 18:34:08 +0100 Subject: [PATCH 540/664] chore: Adjustments after review (cherry picked from commit b2194a7abe40abbfd790486200fef43bbc5d0029) --- .../Assets/uno-settings-notification.png | Bin 0 -> 3815 bytes doc/articles/Assets/uno-settings-popup.png | Bin 3535 -> 0 bytes ...ng => uno-settings-rider-notification.png} | Bin ....png => uno-settings-vsc-notification.png} | Bin doc/articles/Assets/uno-settings-welcome.png | Bin 27159 -> 24057 bytes doc/articles/Assets/uno-vsc-csproj.gif | Bin 440013 -> 0 bytes doc/articles/get-started-licensing.md | 63 ++++++++++-------- 7 files changed, 37 insertions(+), 26 deletions(-) create mode 100644 doc/articles/Assets/uno-settings-notification.png delete mode 100644 doc/articles/Assets/uno-settings-popup.png rename doc/articles/Assets/{uno-settings-rider-popup.png => uno-settings-rider-notification.png} (100%) rename doc/articles/Assets/{uno-settings-vsc-popup.png => uno-settings-vsc-notification.png} (100%) delete mode 100644 doc/articles/Assets/uno-vsc-csproj.gif diff --git a/doc/articles/Assets/uno-settings-notification.png b/doc/articles/Assets/uno-settings-notification.png new file mode 100644 index 0000000000000000000000000000000000000000..fa13fd5c64305b32020576acc6838fc0523f891a GIT binary patch literal 3815 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 literal 0 HcmV?d00001 diff --git a/doc/articles/Assets/uno-settings-popup.png b/doc/articles/Assets/uno-settings-popup.png deleted file mode 100644 index 74a2b5d5a85b59821e4a8b0ecef982f0484e1b90..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3535 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 diff --git a/doc/articles/Assets/uno-settings-rider-popup.png b/doc/articles/Assets/uno-settings-rider-notification.png similarity index 100% rename from doc/articles/Assets/uno-settings-rider-popup.png rename to doc/articles/Assets/uno-settings-rider-notification.png diff --git a/doc/articles/Assets/uno-settings-vsc-popup.png b/doc/articles/Assets/uno-settings-vsc-notification.png similarity index 100% rename from doc/articles/Assets/uno-settings-vsc-popup.png rename to doc/articles/Assets/uno-settings-vsc-notification.png diff --git a/doc/articles/Assets/uno-settings-welcome.png b/doc/articles/Assets/uno-settings-welcome.png index 1f814f20fe3e41482cb64cef245fad4af7972c04..623a53e4a4618c98d430cbd527a596894de4c987 100644 GIT binary patch literal 24057 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 diff --git a/doc/articles/Assets/uno-vsc-csproj.gif b/doc/articles/Assets/uno-vsc-csproj.gif deleted file mode 100644 index bf2e92b30c00356a3c6f5f257d83fa53ff4335b6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 440013 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�Ddv5pN>fbv{W<^OpAsH}o7tV5p0$<>Y(1l=7_|b*FdLY8^sib3;A+$kX zjQLh5p*X-=6!y_Dl-mEEK8ij@q(Hix9GK+BSnMzw!v$<#a^MdUiUUITA&ieesG`urHdHK8gy|>P=rdDF#@bcFCu1|a0!Neut^f_& zj!VO$sat+?iMdn5Qfj70&j))`&jn?BYoFa{7IWW!&3n0D&_qk~!b^tt@_qj{?guvs zj<6OrFsbb8_bT`ws3uX2l;mV~ke8O^d&caS=B20{l;!xaAO0$BfU%cV*S0vpq%d~b zD^cRN@7N$V4;;U{am64}Cy1??8aAf#nOY`6=b1VNg#gald3I;6I)rFB7kpLah^zjO zD4A=+Vumqy%Sw(hVa-X)BX`?HklmX1)(^{)wui%3p3X<3f2>_;xKzB_lW)a&m7mz# zczfS;4(552**WC&k{AcR9~h1PK#;7axKxv*os;~xlRhA@c9`v38=p5y6^492#_F5( zeq3-R@JhOSnu9w1e&JtTh4h}NcZGZ=g}{vBmXW}$633hJS#=(2!TGcgVdve3*3@Nk zNU%C|0ZaAG&75u0m)i>KUr#s7c8%W~rkn=HZ&zIx$H^>wHCxJUk~fjU8zETFqcN5| zM)wO5XF{gKFtit1{VZ!4(vw0-Y6V6*-u7V@>(ai4 z&_rFYtQ|eI->ygEOWt_|Xo&vH<1sq84=%3Gz29l%k$Re64E|57U)t+ze|p;b57XW7 z=6IgB{YdWAdr4T@g>h?dgonQPa&evuCnz>_Tjyg7b6Pj9E7XQEa{@y!s{3us?=ULh zrrW#H9+HA8&#C6DYXjC^a=!B~hjsKGZ3|RX6p;~<$jxy&((HwPf+$7tf?Yo)@jq-e z(F4YR&(so&uA9c9)dHJ*xJLo8)Z3t-6O7(629$v=o!2iu|?jgKWL6DONxo z!tsZJ!flNBKl(bJ`k4}%^BKvvum=V4bmBvR+f*3oAbFY@sQjog2>6sEIdjhDtH}pSl>SU@%DJIwpJE98qQ`Jb z2eLS-i8zus;vs+TqxUvo@8HJ*y;cUMghNRD zd<>(4`?vH!2RUtQZET&nP+j6Fd9HWbM0R>i*iWn=1uvDoF5V($3ARsvhbI&d2qZWv z@l~wZXG5^xippoPX?VdhC_dDsjbA%z%G}D_^YWKUWv6Q-QK<7QyvnpbW|2a%X_d9i z=IVbx1UIM8m$?e^oCmTQxYP{R=+`q?*5iOLqUY-l&#a1^!VdtPHPW0Fy!*lsGb*aQ`0;#ogW zwf^{sktAzguKRCz%okF0VrJ((f-Umvu6_x}Ye4?yq3jm-{Yw=yBbg7D>WZ~VKgG8> zcs`7ptk3+w zx=%9!UC4O{$X5~z0e2kF8n2w4TtnwUwK|WsgacEVz`dk5DyHFIgvGUqg&UjSSS9CVI@}$(fkL7btlXB7PPdbABN9w4Sx#p9b z-%`}aEA1SLK|jp?{LWU`C{qwK$dBffN5h3i^{g@GNBhh7e?29=8Gni2{LhM-g=~Cg zo`~bVKfqxlLjw@Tkl>1qL4B4IDZhp)B*5XSp!A8h6W@37@pwHNc%Au1;_#)-L4;o* z-PbB5AUDrrtDG!uU}_OJ%WcctRgh(av*4I{P9o>H$$jam#N{miks8tJLgiE#u|x2G zY>MP7<*6`f|EJHRQESJ#w5_#e&tJ}bbB|T{pZ3Nk;eD;1$U~Okr9V8V^KXBi=AV3I zd$`_m#f6@xBz&2g&%RcW8zrOJ(RquQ zb#sLgLqe|CsQ=8%Nl2sJDDpT8TJC2 z*jUc4@{5fFmD3BIH#GELUtnzlP_#rdtKV&?p-i9)j9e1>e3DzN)Z^t%!CZNHnQLv@ zbz2z;xGc8a3kLKx+~;N6WZI|h-20mRr+#{>3CrIkW(YVvY-|HLY>C{=r@h>yyrrkB z`jZwNzKmg1=O{Dv#zI0*Q4E>8hC{CaUuiYXXClOYxxCp0#eOWCV+yizaHq?2#Abts zL;yobSE-2&%%*;XO4*>j%h-71O3S)X;O||)ysO3AO{an=;ISJxv|T1GqHIyGYXFBy$@w~ShLWE*xQ6^*%J z#C9K2X$F`~NVknAip|-9<~gSHyDI;c6ES)=Fiu9iCB4d^sMUkXCWt9^KUHgesz!}2 zouSUl-QuJ8*+}@V=UM!m#`du-gW*> z7c9&432)z$Q`Z*L;T6S>=NNOS?2fBZvA(2(Ta}W&EUS*7!`WwBFTDt(pkKarduEcq zqC9^^dJ=`?IE>L7n}xD^rLe|^+Q)Y6N2(Y~o00^W+Avv_@(|L*RF$x-F=QV&Tt57A z_AZ46StTr>Y(p@MooU$4`kB3WOOuwZ!qI+(8y#pCvtmD$gf%QAN6>gACOh`9rcba& zkCev7J4AITCpI`P*e-oqf15E;mNDRvo#L3GnCjOuZoA6rA5_Lv^(*KvOFkYfUy=@| zSudZ#DL{iY50~ag1LoKNe#fwvWzr~lSFjeZXN9syCcCn~>FE2}Lgnh?7*;YCRIB(i zgB|+yaNLpAd38H2Z8tmPAY&bto#R-!dthq}p}E}4VST^hv^_7+UD zh3|)DRj9)~ck?i+XTptUyQyO2B;ax~lHP(B zfnIbNZR2W3Wf9)we0G^$nsG9kengma;=0ZeCynmp5wXn2Gs0Y5@Zy-brpkWK<#>eg z$W|wJ@y4{f+%2EDoRhYEK~Y$5 zxM=+4c@nC5THtw*eZM(FuF$8BJt$AY;);`bMkMAz9PoY{#`7JffZN;8s{#Un&@QYL z0WU8KJoIdBf1HP6Cd8lC2Mrvo=Tpui4hcO_B zEF+!)Vva>8ZzC)C&PEpOL3YQ-gYtYwJHjA^D`8rLeKyR?_?qa^lUMbETiDB36exS_ zCWah!Cr0;={^|b~j~rXR>c#nB?Pbne4LHIOeG+mIKRUvF{(;tAEZFu1Kk9rehClp6 z&RZ6MWZ}}MxOeVN8XTY~9|!laX?_M(%1^+n@a8H;B6y(8iG1IHAigaZ>Khj%)PP>z z*Fy1CC$F5Q0XtDrDQwWC!=BZ+crnl$&lm23a}mv&WPx#Q^%cioqMR_Hnm_jaJE=O2 zEdhSjeiau^33>tPs{FsV0-7(cG@FvyEmm|qXhGGHHa^ zrqomLFY$TmFX}fA49TiT5fcyi=NszT4;)im8t59ZzWw>$x@LmQ+eB3#*jnXNw1hH> zxHvU48?9##fEMcf5PfiG`(rn9dSq32VxdZUm!b&6tI*~U6fnP4w?^I4Xw+o+2csOyS#6j0rx(%6sFKQfX$)qRVSSQ}<^-*=v<&O|VQ@^n)VhZot zE%)7i+;71J!GWLHW@L@#AFiDta4%njrQ1cKwF@f#gDX-W<)rIG5g*^&F>e%!>g;>_ zxoh40Tf1ss$6pNrtwaZo)D9fNq-6E}jlu!WLP2MDjOwm);>*qnjUjBmgNy1S#gk_g zp&!h%zM{bH~0d zMsCg7a75bvX$+cdid(#Q6s8UW2yU6(M|TJZulVWg2}8?qoqbUWgH}Vi4fi44zmyI$ z_b2`jPe8E0Haqt=%R;#X-?5UP)Ptu+gkL#@;o`6eb!f9Dm&+7%yM}a+xqSVeb?2+h zxir3V_ln0kP@%a=m3ML^9gW|3kpH-zt2R?F?P)g~k2mR_=Xs$IxsMw<|1@=LCq#hL z`AR>KycA!U4>hERRFMh^ZKD*S*1^$uJ<~h|GKgJ`K%OqtsFUy&ib~_+m!2ewC6Up z2;SgKDrhcemG4nYYH7hx?|=d90^9+nT#A**S9H|M{*LJF@%wyvzHr z!|7OjdqNYtqThSH_dC4{vwss(vxYOfdpk$!yPh3l9KJDXv&HMh%>o{8YZ`@wA z&nG_WJ89z(eU%rz^EYtv8_|Q?!!0)(8K~fAz<%^&XsAzoFK+)2X+1?}a8>_x@uGT? zga6nkcGQQ65-&2eXKQ6kmM>k#ggH}YO`11t=ES*EXHT9x zMFuq~6eZD=Ly;CudQ@psrcX5*jk z?&rskpYP-`qY6t*Ab;X3(7*!`Oi;lE8Qd*7f!cW~!j&eprNRp(%#cD2E#wfx4MFTM z#1BO*k;D@{OcBHeS!~h87hzoQo_~a!F)}H(|7gV)9eLalFft}{4m#=Pk_)aPkvvjK zw2WjjNhg<7>q#l2d<)7esl?LCEV&zBg*r@H++i$_ej6TR(k>XNP`-AMi02K?@-FM-Q zS6&BEMR7zGO~lvUeDCd--+%XY>BD&m|1Q|z7n2i~)PJ@h<3YzZaah^sm~HIPiyP%L zV?Q5t)MJf12Ki%-M;^3fL`6=SWR*>38ReB>ZaHSMw5@qtn^`*<7$7bNufwbB38et_tS5aj0iIfv33vc+Uu{ub~m{YalYAXI%QQg?6ui$ z`!|IjTS>&3~q2H1B>7XL8zUC4JS7Q;$Qbrn7ig>kA>E2VG4WqLKRMLhT4mv z3vmd;73NSY)*|2!2S^(l-cW}_++h)Ic*GjYkcdm(P(BfqnmtWE4$fkpMCBA==}J=~QIxZcWhrZ!%dl|ob&aVag`w`!pz91QekDJg7q%TF{6-bf6T)XOg5y z#H?wmobvSON7n|rgl>yOV+83*5lBtjSQDi!b*a2YioBQ3)PH%@4LJuyQ=RTKTI%#E zJAeA23YwIsMV(wE|0ii16IPOS4Xx-zp$bu{K6R=WwW>g`>eQ@C^iKv^r5w3RRk3c> zqF6PnR?iw%vPShEyiD3+2=Ys#&XumB8e~q4IX`4NvzZpkD^cqjSj4HcHY^qFVG)a< zudXt&jXj(=al^pJIhL}O1rA^rGRO)Q5~!VZCu1;cSU zweDpJ*;|~1@w(kL7-3UmSnrOPyra>sY@}OW^+L<0;{?!TX|!JX&UaW7ai?cBhmh0K zm%p4ss$|9{|D7!)K?+IO0x8ZFB&LqlwhTV5gOyuc<|22(5Uy}*Eu5$G@?^Id_Hctg z{NNBrn8Fe^vFzN+TT)bw#YvDrQ=uXd>h_n$HD-)n{@T~Q(yvvv_^pkB>?`mt#6A)L zLIM&Xf&3^L$q69g#8ew(DFZpX$RkL4r<~;mL6$N0Y4MluV=i^Q*NR#;^LQV&*>=(d zj_nZRo6j8Q7M1o`wwM}|UA$yHL%CuX2JxRo3}_N(xWt7f^r1)W=b1so%7#w#i4iSm zMGyMXj+S(uoEwy1EEz{q05gk|)sz{_nbg+h;>}$3<5I7>K|>Y@DWotRd$hvMv-Wh7 z?}KY3|4U)N;$`)(5nJV(0h`zhYVTrzM24vy*cL0MT7H1k7@Wqp*wqf~eOm(0{aTyb z+WBv03(^k$=ve~8aW4-4Bh^oIAm?VWFb z>wDk@54b>5tPy*BdK07b^s|Sfl~H$_;ym54n%}wYif{Znu3j;^3CuM+BN^lnTQJ8_ zPE&phG371q4wn(~>;$;kAPavsb9`wS_`00uAmt(<8`*QA|Ax+s8SuChfZ#FO8RSW4 zOltcq@Pq#w-}MIg)vHc*sbhWXC=_mV!LD_yXPw|vFFV)A-u31pyekji&u{``kWG9U z|K~}W_|Wm5cfCv5)nq_2w8dTbe<)c3x;9s@Pri4>FP`z`JvNb9Y?%A7t~gRC_kklb z2A%V<@tyZ0U^VV}(NpHz`W;A~l`I`5j}0^IcDKRNE_T_Uo$Ro$z1eNA_O$PQ_POUh z?RDRK+z+322{*{m?~@p-CHNtf;>g`cAARXh|D&!JV}X@S265wB$)r$vvj@y)OH!Zw z9roD~D%#a_-c(vx6x8UyO~CisBw_k2(I zV($PI@b(rk0U0m?A#ehT&jBsa04Y$n*bXd6VfB>l%fu`#pwIqDumnx8rqnHN{|1cL z{Ex{5PyAr)1Z8jrX>f8L?=b{yLdZZzEJO3;ua9al2)_jgPa~-ug9shN2!&9~N-u7L z&h!LHS=z17GVlTsumUj<3$O42wXgxRP-r&e3$4%#w{Q$4unW(y_&UsnMsNw;@D1TG zT&%A&d@T;`@DA~?SJE#vGG*uT@DIBq^dJKX2e2T3@DL5rG7vGR0Fl)255P2o09UIF z#jp}7@e;`}6VuQPCGG1Lsy49f6Jrb$H_;L`u?kJG6kRFPpd=KDq754{7PmtXCxZ~F zExriE7Hd%!iER!^qYim77;mE$wm=iKKog4b7?TkhnXwq1u^GwX78`>d|DN#~mC+cn z@fx)e8@C`DBZC!+r5c&>7?qJ7gi*e3ur_=UzI5>%xefF_#V`^E7wIt<>oLCU0Xn2{ zB1nN1=FuJj@*V?nY`pIY4T3-nBOnJ-j0(~ny{ieUX$r@$l}-^2QIQlcvLd-~Bb8?j zEwU-Lz#s4eGMK|71tKH~#pnnzB2ZE?S~4S5Q6o9=BRMh^8_f8as1M7`AE%+w6e=2W^5#8CkuiU|K@TF?y@vU!4;2k zA~sk~pYbk_WG)Gf`K9bv7k2mK7`i!7n>4G)t8)L$n~Q zXjSvlRuz;WVYO5KD&wJ{f> z7I-vYLu*B8_EA%?niB7A4=XqogDUkET_Lu3|GM--Gb`F4RP-^A@Cj`Z2#pmA3v&?>f_$?zcX!G(QNx71)m&W` zCh0d^=huEcCT6Qje?h4@M|Naha462wf1`qc2bd#Bwk%qbWnWf)8<>IXmpz99K23&z zBSJpew^B#bGBy}TpH4E6aD#!cgC~N7|1;R7el#?K^n`n~6}&MsexVgu0Ww&D9pDr* zx|0?; zxE0X1=4j-Kwb+Tdczul+rMMNeB(`&LEk`WF^{CJ>AQ*om*n#IbjwM)*@%WDQn2z(9 zkN4P){aA-^ayU1EVEckZ3+zhO0(Z-}ksX-?pVH1+7dePU0)*2(=k}2`d6TElc8xX( zF1a^fEHW6GlTG=Q_s)H5&Qes>@?@=%$|ZBt7d71tkZpNoaru7#IF}!om+RP<`}mf1 zIgo|fswg-r0E27h&c*apAtvP{|1cPprFojW&H5r{g0|rAIx1owV}+^to58u%gjkGP zw>$A;2P=gx83T8JIGo-2ooVchjn*!W*84^|3Mn)O?K6I>1(9i2YR7O(LwM74or$=mb$X|}OO?sFoJy3O^Q>I}C7CC>LXV{aUo-xp-oF*1`;HcDL8~S*oL& zsw3N~tNNfN+c>>Zg{3mt{>(4xb3gqz67<{ zjfOYD7Z`&S%u%{2%aheKU9K+)0Jo%Xc%%H#yVdJ10sAr#@i;bneF4jaI@2*U!5{4L zSo2Z65i63M5Z2lS^z7qo8RMu`v$9DWvK9QY8632shkwb+VmpImhobJ*kSRy|svA7R z5nRK`F4IhMFS67m|A4niA>+0AJLU8;Mnicq%6Bm)NwBfC5FxW2{ULx;e6D`9I1KDE z6QgsdH8S8jrS&<-uM23U;AU~K#bvB>r9hFRJ5H%cd+nhX93pdZoKT0-$OUVhD? z130y^FyeYrxxBl&6jVcxFSk2XABN2{JEwpW2urn(NLP@!W=7^5Ie_WKy%* zX=oKARe$!p{|&;=V~{!(bU)z~TDcY>+;*_Dyw_hUg+XJ;YoW-wJ+TC~T*NFf_O(D2 zgI%FEG7(fu74>e_RhF?`tWC;9fA-2mm#aJ1K_xsX$K9yFn>6}5-~;R4p*%Tc_h*T$ zKlk(6E%V2I-DZasm=F;}7s6Ma)gWdh+aZ3&XLIjJs;HAmGRVRLBz1AV!(HWiA z9eB6c9o~DB@*u}auhYa`-9+=EGWVv`zhZQaC5EqEY*(FReYGJn79nDN)>j_ppFZke zeuhAN(M~+4P2SguCBbNooCA#56$7S6N3UT_*$0!KU)Q#Etr5kl?1)-uy~ z+q2%I|GfP(z+K$$KCnRj!1h&nErM7c_b_96y2fa6KfT|#ZQBWR)Ws4Z*r03szNNgp zG{~GCE5EMbvAztw^U?S+Jl=~VqvOF>AZDauZyfatqU1MUmCuphW_?-pXGPI_@Um=Oj~BL{`DI#Isp4q9|QV<{b!ln`K2lEJ!8lh z75f(t$(=m>#ee*r+_)hFXtS8_z5kmAel!Yx{hPAA;lGVg9ybVN_M?vYTORqPKKB9Q zpTK{=1{y4AP$0sD3lAn#_>f@4h65==d}vW3#)%v^dSuuUjjiR*jmJs@AMr zmtLLP^=VkETfK%v7-^x}vSJ64A@#OZtCV!>+P#Z6uim|U`}+M0II!TsgbN!!j5x94 z#f%#}ehfLXATfdGS_&wxOwpUI*iq$AmtyG&G zi}k$vw(QBG2fN;V{PgYV%dZa~|JVI&@B6n8V1EAz7$AS|88{z-3L>aqe+4?Y{~&}6 z4mjb12TF+Hg&HPUVT2nt_#uTEayTN0B!+0=i7J}NB1~zCcwuqm9hY5=Hr|M1jymqh zV~;-m2xO3qiAEYLr`ckjkV-DeWRp%l31yU0PD!P2!(k?)TmmImWtU!l31*mLj!9;j zW`4FEk$TxP5StIVnGl=?fhQh$=5>f?i7>9XXNxKN=^>wg_DSfVh6V~~o+u((D5Hle zDyXB9LYk7|Qyn(3#Sjw))Yk%EdUsVt$jR(eXcDpNsO(s*XAw%&?s zuDb5ZYp=bjxfh#q0=9{fs3qxZvdS*YY_rZj3$2&J^_9_Ivu+t}w%Tr6|0S2)ehY56 zyrtRQn*Z3-iWE{LAwd#bwDJp_!#+f3c;%T|DZZSln(wLn?yIk-{stWCzy|k=Fu(^Z zoN!%`!g|+Ndr7QUssvlSu)qx$yfMZd|En>>B8N5Rwu|LPk5bpi9cSWX$W+ zwc_54bI#X!t8>pj{~Q^xccr_#f6{x$KW`PCM=a46In72S2Dbt);{sQjpUxNHM$w z*iRsQ^IKisVj3-p4umwUA#A>v8647uZJVHr``kCDg!IsWZG&FuPB%JD3ldw1;YvT^ zf7oJa=rYK5l<2LRCPbJ5F{wes__A}2^dCHBA>ICg(>Ae>ZT<+TN1rM#y?vCK4MjnJpx7ZD>V1-E=~4hE*Vm zYZ*7&5D}P4{YcZCgj$-gdXSWh-vm!n;ojB$F~}!!Lia zg%kqNT{`XE@}LS`=srz`R)r^d_bJg!?46H>E2HqK(J_Qv=};b94*b%%^!;fmtNQ6|dqo$i1YfVa&3#oWS$xiv^3~ zl*ZOB^gO3h`6|(QqO+W(9UulRn^FzSlufNYAwWM%ih^=eumNqwjt7!p5o?)Q(|VsX z6GG0*sxV$Twnw|Z`Phugu$NnI^8%-vU9XuZN%3vva5XGIpSB66GTa0=y$MpPdak80 zede$Xn`EIrB&h;v?m&deMAeXjOC6jG|2*y6=tsX7q1a;dfCt@FH;cMgS9I7zW7>)& zNTD5MNW#n3m4F^X)4`x4BjW7mR^Ccd*JS-|uX(N8-sW1^Vm+6SQ)-@;u`t|GNZ*uLd=zJI;%fa^P7m&^zm{Am#3^-W#qT5btbT|!YBXVer2A)I@9(m40D z!+l1Gm8;s2I*+!e0tBhOclzFLZXtNyW1pk%jV*iB0$a%`@H78BIFGX%o|q+VLa6DT zpc-HS2D~|LqNqCubCPM;>|He&DCSdBLK_N9$V$F~yed}ivtqgNakQQ6DZ!PxS zad2F`gtWngK1K8i)#c2Xbqz0rBuw4&s2HbGksfpFJN-J}|9 z_EUc*1yeAB8n}Vn#DN^>PI_^H8%SiOQGqeIBV9Hzq$LHzQ$VEEE?baxNHk2nZQj$B2U>zP{>l8h>E`9 zdXzyYWwcj-_=kKL|BHV3hO`KawdjVosEZp@hXc}!CG$YDn2WNAi+U)G##oGfIE;oQ zh?GQ#sR)hHD2>xN9gg@IkVuW$sEymmjkQ68mH|T=MT*@>jyE%odvT8XbBcpjj_pVp zUT7I&7=OuljLL|NyJ(BVh>y$2kN2pL|Co;f*^l-}ko9Pg^oWrAXfnxXInU^h4+)VG zDUo?$jgEnh6N!--sgV(RiIS0t^tX{AxfuRe86+u^C%G-FI2o;YYXfR+U>B|6yF|m9YVjl_8Ho>62wils0*mLW!0 z*7J&KX_joMmVeooZt0hS36#y4J4yMKiMb@(VH!r{n4t5Rj~QQDrwT z`HY;*hm6VZ{K=`5V zsAnm)U`pkI6h&gBjk;ti)Hs0#hg2Xe(rcFlAY%Mq*plXhd@--P28{DG;b9 z5cTGo&tywalN?!AqET8GVQCotHj!N znx)#wsE@jahItS!(+((hS($pNmWrwNaFpXIrPHWqg-WA(Mx&~vCGM$bvJ`0YNuwes z|8h7Qq;nT-LWB^o%08=l96e-mcTrSUmK<>MG%G}Op=zx3f|(W8F2l2|?BcA;ngBa! zr4opq$BK%AB&!jDq&ikrP5MMgg|PmLn^onRCB=A~_YYV4rH;y_G&{4B>ZOp{ zD1y}nVtQgHhGYy{Sj@zrd^L~%&|x+fv~oIb^R;4}BvvXpqDLh52gs!#6fqBz!p zSC*isvE`%GhV|P_41!(_Js02Y`U87-t`&|gJfOaukj~PUF0i|^tr4?ymdGWas z=ro**k!Q+90y`bknHQ={y0sai152TK8@otruv*!=oOpRg!=dWeVV4Jr12~_hr-Z8+ z7$bW+IaO#kwNbbGpH#}SCP`Y;>WbZIw$-b)XnV8QOTBPAWK-5`UbI-wnSRJAz5v+@ ztgyDrwlvwxzS!%&+uOeI`@SMUsY9lm7(%zq8;xLyuR7unMALyHD8KH>|@o+&Ol^kP})lG<>!>%)>-H#5;V%vlE^xkuI1z z5HY+=0<;!y!3GDb!dHyNSsWM@xnT(~8f*f^wiLz>5y91}#b=DhTKu{xkuIKEc;EEK zKKOVfn#OhP7wJeZcAS{b%f??c7qn_LW85~QP#!Ib#MW!WMSRHGyU2;0#E*=~LLA9P zJjsnL$&4%(^_vjw5I}`Dk0iud96`latjDEn$_E^vvv(YTvs`B;|3%AXq-11eW_-%E zY|BxK!E}KnGV(v|w7VEJ$G0rZ!yKwCOrP5YK$cd8ggm{N49U)1$%-t^&+N$2OwE^E z&CsmP+04z@{D(^%C~c4gz=IbcOw8wu&ixE(G$7OiP6rq zoY5Z*($kpBjbY9qZPF)AjmGR4;8DoC>Cgdv&=7siFFn&TJn z)nnb&Va?NIE!Jh7)3qbfsWQ|?YSnQq*Q1uyhtbX*G}n2p*GLD|iy_r}4cLJVT`FCQ zFlx^0PZNotQFC{J5o$c8QRo8~G)Spe-rEN;{ z3>klI+N;gl_=DAtq1B1)*t0F!m~GpajoXi%+q50oy=~dL4cy$>)}zANt!>=LZ8xD^ z7^98c&F$P*)7OgOc!&en&u!h;4K0K{B!)dBugKfK{oRu--nSjxwY}TsUEaPu-si2} zWue*nQry@r-}4;;}0(36<*^MKI1lS;XR(?IIh<3y)YWi;ze%c*rB0##2Av5w*X zV(F;v>%YD_AD-2RZ3}n}?8lDm5h3b^!RJ_*?9XoMg1#86PV26o>(_qkwO;M9ZtdCL z?Y0i?I8Et|QdMpa?dSgMn+_PAj_&R5=}=D6r@;zSKGp7S?<%h9(@yMMj_u)&>)y`o z0pIW2KJfqU@7iwgxwh+-((Cu`@K&zwe_`Op{_qta=gVFg%}(VO&+#iR?d-ho0AKJ3 zPx9YR@FI`$2XFET&+;V?#Q)H?m{RV+-0?Nv~8ZrPvY<%)$&g7JTLSdp6?(Z zSM3=$o=vB?0KU=22qdzG7j}kU-wmS_fsGBRIl`X@AQ1X(Bm#J1)&81gakyr_KDBh zUC$SC4*+vd@rp0`#_jWq5dlDu07ww@lh662UG#^+CIE!_2k!TGU;28V_keHuf4}#w zpZcz^y;pxJQh)@RkNBOB`+3dydjUWQF!$A+`@v7uWj`1aQ2U3U_QJ3HP2Ki>0kfh% z_udWrr?2{`kN4M4{nO9-uh0G1ubqOgIIxEN%TNAuz599rK#yPS<{%$7DE;$*3_BF~yRh4vg8l;}~TNr5iC z*>tDVpHO{HEz0!i)u>phBDI>;>sF;wtBU1HHmugMXv?ZS`!%iGwQ$>l?Ml~d-M4nx z;*G0UF5kI%1@|2snDAl4i2*OZ+jy_zzmT^^V*D7bgd_=&v})xK=4a5MMUN(3+VpAE zsa3CL4cc>S*act5rd`|iZQQwa@8;dx_iy0Ag%2lQ-1u?i$(1i>Zrq;~8$ zkb*@QVSKU08DpeTMjUU{(MBF?^fAXCf&6jDA%i4RNFVFvm2rOfd%@s>nUG-H*7O^DGv&?`4aKjZ>+vdtO_gr+-Rd-!>+jaL{c;l6KUV3*sD3WRwdr1l; z5ZJ60m+q-|V1kW{M2mwX(Inx85pGyvh9h=ZVu&ZUxZ;X4$)sS8JNEcvkV6)EWRgoZ z`Q+oC8*w=4js+NHm}6#1i`kA-$e)d6)_G^1d-nNfpo12A=-)^*?!**dCVFXjBdNJ& z*;;~nWtOJCF6x#2(Sm8NyY~8Pu*3e?o|ecK`|R61^Ct^|i7WP4R;+b4UuvrVu4X?ZJ!W-B7amFD}-0{dOpIq|AFSk5%&iU5-^Ue_u zU2)GxryTUsQx{!z(pPuAb=dFK$aJBQ{ugcBi*vf%ezwm2ci@8;et6=GHy$;Wi)+~y zrH^+WwJfYoIp^oAxBhzUv)6w6=At+nMI_p3p8Mh3eo5fnQ!Yqgt;u))efZ-i-|Us> zSIK_)OT%BF{R?Ivy7dL;ZOD4v>1ek())_E?m|GxHY(ldGCT>KTm|X)=S3m}05P=%J zVC*vJ!3~12g9_we1Wjnc6P6H#D^y_%MVL97Vcs0g#uG`lf$%v<)9aGe>~{@*n8)45@3zwO(8!6z}g6`6`Sm2W?CtMWQoQe zWH43|wg9yMNs>1MjAd6yLldAFk%c7*=4W~s!3x^Ympb$cXp$M3=z-;!W~m_I-crmT ze$XYrgbX&@vd!BR4xAw*;R}aZPIMMgo#b5S2-}%LbGk5{?4;-C$j}a{3FH=>sD%&x z|LIJ15=08R9A{Dl+O~rtWT4Bm1#~#s|-ruq&@uc3syN*XC}QUMFOr9f=430t_5lfNJZCzD{0|6jDC z7LWZ07wo|W+4eFu4OQ)DHOonWZIY+|Xhl5^!cTwPq7|G>z$RvLk4;K~AX{){Uw=`G zF}%hWtRM(xB0%1M#Fmp|aPB=w!P{G;wzA7)Ni^+2-OSvBw4AhsJ=j#;>yUvHD!GLc zs9FZxf>*q8GYBcdn_1_|hI*y>g+1(=fKd!Yz6mhMa~LZHU$o=Gw*1F_m#dnCP&NSx zel336Fw3@bG6Mc+Lu-HG-Ui!s3wd?Pev{DO<0gR>xNQXl4T9Zv(DuPcjzWSXkc0@d zqrl$ntv$F)T~ho)zT-PBRK5IV;R&>nQ}Bfx5AvE{xC1My?YNSXw@`qB#!OA>Y4yrm$}v@ z1)FW*w0lh8v#}i{7X(6zTHK=yTJ=mTY+*i02zL`(u*YkQ${GU;q#cL;ho-$chCp(` zGxunNR_!rRS6D|No3Mw#Pz@V<#L^zHWNu%tc1wS-0-vm~HdeJt3No;-AY`-01k^kt zGD!QjsvbqE|4|RImH}X|@kJ5}GKviU!q@gFLrKjiNT}7+*QBtvK{9NQF#wDd!oJ!n zzkTB}v|AwX4&($h@fvOiR*|8pnWC@5ie%;5t4i?9B(BqnSnAug|E(3NX*#Y1HeXHE zTD?aXADiK}`L^Nd9^@^o+X^z2bTvE&Eh;quFjriB*thucKiVLP*|=ietG*h)PdsqU z5*(x~Q7M?c{&l9ISrUV!dLY-wXtQzVMDP7aWP>0DvRU^YQ~36)feZJ4Y(cYD#>_uz z(FVBUJhs#h>sV)MNQ1aFV56DiSbD&-Fd}sXB_+*e3_VAtT$af{49=h&F?8K7Ww6xFHBGAh-s^ zEmEjIZ5c1u;*3~2zX_ri1%#|NIKJk4KG(B_@TxFigDjS79O#;f;mfVvs<31s2t~8K zR)9Mh+%ycbg$!$}GCPPVfWc((j7UjA`S(g0QuP_%6WVf?7DXd&sTug1gx2 zj9Wsme^|pUD2Lp7!1PLjK8rm8EHQfsvG4MX(^80q|H8s6EI6vTJcUB2f4DqgIxC2R zj)5XM>3Jq*DF{;N4CazT#2|?HiULWaFO|S3G~Abs;=o_hw1{)U8?&`hXhNWyy99`U zWSO~wCxPm^-a9$ZB&f3Gg+r>q@T-9v&RGE$Bhe3ObmiIaffnl)E@m z2rC{GNVBpl3D_FyO9I~$AI~U-u^O>D6suBbq)sx%B#5hZe6qf)iG4#rV}d-zORGQn ztAV;a$t0>-;~z3Wr7d7In3#=CFvZN$In%I(31CI!L8ZasA}FM=f7m2jWGqc1gXXa{ zO+&fw>OWe%r5z(6>YKLIM6ptcL4z?!ftWw4|MD#iT)-9UEOKeEIyB4llE>2kBi1@Vv#Br{ zi?G`0cjq(UZCqFY+R40Ww6TSG3GLO0Z` zCj3et{ZX#@F79M5DHxwN5Kn`6L08Z~*1A7%gGvQuNrA}Gfyks<+rY3AE?a;?KJ&9d zbEew+2i^myNEEb4{EQ{&tU=?%J`;^CpuWnS(n1rBQmlzqh`-RNut>XwDG*1}SflSr z8nYt}tP}`NxP@cWD$bYHe2$R#mW>d^TLO{*Cg|u8BSI988Y6sEF z#^6J}wj&46GnM zDi@_lV^dZqEY5ITnLFf4AiY?O<(bz&Nny2Efsi#{OVW4Iz+nL^FT zuxhoU#5*?h%fkZ=x7s7m|3g4TS}UGa3CIf=$+SGm$xTited)y zGhMv|Fcu_qMFUg_ouxG`a|MC9FVDz5<{}5$vNnHk1>l3eifyeh9nT)k7YP_Od&|36 z+JXnAK2m5?{+Y3Va0er!&d>S2*y^Y3^w022FSe?Mv6EZZN>N)-f-=L!EocM&!NIoF z&@DhOf$)XeyDzgLgOhd7TZm3;kafcT!N8)R zYl_erEQq&ttt8kkReC@XMYE5k#M~{2c94LDAO#GiDj0k$a{OA`8?`Ce-6*V2yIEPU zVjh;e+~;)z{bMeC{~EqBfUVaZzU%OXl#_zKeNg_vQ!`A%Sd3pXoZoo5-!80Q`Q2ar z?O*!+Ux?s@KI<>YDg$uSx^_LzF@UlpW3J55t|SB)_|q^>;w-alg(m|xWFd%FAhJ#3 zNGBu=@WdOO7$_S2(uIJIXS#i2(T`>TT)?l;3q55(>S(HGR;jAE;1OlVp|DT zcrv_GB|lY-Y0HcR(7k^kMi;pyxUwa)aRsR?*=0-uJ)R@=x~(WQWHYvaiyaU*b{bq0`n7Ny&++v>oQd2piI-f$GKis@q zJB^=BjhE}$$$HGWyXVP_4WHcNcJ3+Dl-lX2T0je8GwQO{Flf^t-Quu`0tHf03}=Xr zXrIZyn1Hm7)4F#VVcIBD6xL{$fT$xvXp*6{;jkT2NKJwgB$Xbwkm{eE<+_lf4RLeY zs$uDp|Ej8@>F0OlxR}=Goo44(tQmm&>7GVfnl7r&dm`BAJfy|xn~sf_*6EZ2tJGMk zr`@`DhKWY#l!_g~rEsDL46@+Ofkr|#>fqIf20GSH?lvX79c-)MoA1ZYP4Ug-Ku~{KBs=j*HKJYzq=; zz#wcaJZRUp-jg9k-=1v=PA*$>CYVPjtf^oHW z|1jrKiXW8v8Px;qfF|a3@olsLZst&ENcqdFY2>aBgP9Un9_}?mZJ?9 zy8AwH6gL<80a)$6>a!;B(4e3GZfltMHy0Nqt}Yh}H>Bs7aoTtrf!1Nw9&Y{x;Ke5L z%MJ@Ikc0(Tf+l}*Cy#O{pK>X$aw@-aE3a}XfZ*8f@*(%~%m#D+P3b4ZVLNuTtRId9--nINZhccE-J$81gibWjgb;*S7hNRY2 zby$yeS)X-igWBi_?7_BkF@N)2H*)|Mh)n2*aT#`EFZOQ1U0zoJn?Pj0^E20VWl#1t z@AWx%_GO25W`Fi(_jPQK_H3{AX}@-DcW;3(?qNdiBqCN?FBeS61d4eWc3*dQznFH1 z_e{_NNSLs5zju7kcUrgf-@tVB)^~spc!3{yg6Ek0t~BsLbpbE<-N^CW@NtHZc!{6* zr^+Se!S#Q)c8%}$jhA-MCTMC8d2i=-kKcBY?|73R`IF~(mM{5lC;5~|`IldLm;Z-( zal&)ZW~V);c%JWhpZ|HFFAaY84Sx@Mqd$72Px^r`_24-5R9E_~f_kZ+daCzIvKji` z0CLe)d9Igvn}_+v7ILqr`Iv9{vaflvpZTsgd$k|?wMYB6KYO`vd$#}jv=8lq5O)_M z_kV%-s{eby4}8HdBdp&g!pii)PkhB+e8$h8gD>fXN9o45@X4=y%fEc4v3M<_TKJ@U zxOaQdulu_n{kZr1xwre$NBz+Me9=#R(qH}4fBn{nebd+Wamw@9K9O?AeBSSU-~WB{ z{_9IW{EP>F<3E1nPyTgbdf;$+<$r$YkACSNj{hNX>o#VL7yH@Ye%9~)*#CEZ@TYy% z=l<^(f7$o`+8=-PSO4-S|MWlq_W$+67KkXAb0q5f>Cb=t-+%t6BY=?dZy>>f1`i@k zsPJEs1OO7WBDHWL#fla$V$7&@XYC(oY$Hc1I8Wy>a_MmK3mVlx7g1V~Di(s=Kqzll=^+Vh$5YQ?H9z1GZ%)ha@< z2DuhQt932gwr=0TjVpI9-MV(~;?1jFN)2EKp;v~_>17;gN+S7PWU)7 z;k1jlCa&Cg@8!vv2Y)VoICSLHryqBIeS7xm+Ph*JT7|NDLY{`v1mUVH%lCm?+VrbnQH2KJ|%U+uKgjzW>ZwqSylNq__b zNVL)lMP`AdmO^bLMi7V>d8Uv(5h+AUD=DUEkOTrL#72o8O$AnrEqeIRi3jbdk&6YL z_~TwjBAKL;OETG{lTSh!rIb^?7Q&jTHT&gcb|+brNR?-6CgYhyN~AA!LdUWQ$Up*`wui zj8d7Yrkirwsi&WU8mg$Hg0xA55h_GjO&K}`)j{@%>0_*5O{D~!nv8Lep9H};kSj@e z_2)oSZ2{+Ilm6pQo&Sh<7O&3^1ePRlnw6D{J90&9XA^B=%Z@=Jq;0eWWeY7C5&{YB zw&N}oBo`7^rR-I=C^Z#V??KIy8nD0v6I`&t2P2%Yl2!)htUs0ld{R}0 zA$Cx#cK#>L8r_`izakK1gSab zKU=i3SSy?SLIx}BD3HX@D<{p$Krts^GNoGnLdwo@&n@;Cn{i@G6bj%ukP>SS3bUD+ zxx(i^cV;Fj*Ip|Cnwmy$wgsfEIeMY!12P!k=m%Oz`sodpj-cwVquzSzv9E4A?5x-B zI_!AeDbp&ue|fjFE6|FxodZJMHDu_pcEQ%*os;nRtqOs zNx<2T6uKf2WV}-Bm;@QsPEpT5^b+KX1ouR~?mwJxF_0##+@lOg7zO?a(~5l^B!0~L z2PqKfqI+;bBK{advB<{>DcEBQS;3zsys`xeWdFrf1epT5tVV{aWTh{OA%n?^HIM_| zLV%-ig)6FNKlyp340_vD$iO1NT)83=3`C%*Aeg>?u<$26+QcZVrZ@dX!5;Bi*5s7( z!4P_A3lf3g(*{Bc3@R*)VjLqG%V@?kq7jXs%Ti$+QZa*EEHfEHmlP7yhK2|$QplRf zFIuq$pjmD)lIkNB2Qr1L*g_IH(*g?XWMUh&wX(3#4%p>%p_uqErisHa5`WB?N$&axS}d3Y?=ZRAORs_ zg+>T9h!7U%l!J1C9rGh!)ljIx{guh3Gfm3n38;Cs(`b z)vtmztYUS`8pCBNnNZA2qJhKF z-N=-f#kg%{0@0J(RQU^K^~E1#@c)plHdBf}ic)QCtE8|bPzuTct(a)jEMX18N@JqZ zE0ggX&~zrFYHmiDq1A$5T{amdD3!4O=$Ojv!ANLYZ4|uSj60N~CsNStHQAe9@SyiR z<`VC@)PwGFr)%BjQa5_njjnUMn_cN*ce~XMFL}B9UGIulyX76PdD9Et_O4gG+*K59 zu;*U>WN1SjN(ij}VkGh@gbQ7KRsfMzqN^ID9a^XrocwYxF4%1oHws`A6XM`yDhj6f zW79w4Igkh@l7Zgis4Jc}m2SOoa3(6NgQu{?2%gPDl9E#yDol`4NI<5{;zB*=6$yV( z*t7^7R#2HW0g15b#BJJf6aT$(OlCqBWjO0tyX@sJgE`D%9&<;^ z3M4MWgiCMKh{g&csiAE)TqIqSu}bC`F1+X$QkdD`{+Tqr1ubby^P6eSgeK8&;%AbI zfT4!bd3e}!1 zZG=8r+>{nfLHpIyI1^hG;_T71c`a|E)O3eswpm-)n9RyvHnW@U>}Q9uo(U=EOjz}l zS@PFJWeJx;s-jM-T+|>s+Sa$Rs-lD3LRG)ev01=kmU8P)A+|8_wsf2$ABkIC=GNA| z3sR4R`fGvrzDF0}wg13zrN~HAb=U%R%r5=C8`=_|IK?Y&@r$oTQAWxU#9lJ71RO@K zy^-sAg(I2%U}`-l&kxB#XL9%uXEe7+bc`@nz1h_KBkROk2LCky*`(FJy+taW2O5*K!9|@mZ?KV}q zvK6fc6`yR!NQ%~u@w?+a?|R=m-w)#Tg2b{WY8H7{4@DWjKFQ{NUp(U*@A$_ZIj4-BlvPwx;kHx&5xT<7ireLG|%mrB{B#NKT%EQj}tq(swp*ueFtv+?*J0I&*M}F3uU;XG)fBM$fKK8c{ z{p*9D`{Dn-_{&fJ^FQA~ySevVag;tH8<6+abrJmg#;00n}25Ml%X&eLwp1HBa$AugKURUug z-(0jD`hC|4>Kx3CU;0U(3TB@SdLInVpbgew4B}w>y`T>I;0^v@4g%p23SklQp!w}! z4~~xYPz2Z|AuVxFhgjeSQehQZ;T2-x2JT;H^q))oUlxL47>eN-k|FISAmA+^Ojw=+ z!o&ow9{*X`-V`2O8PZ`L+Tk5CN$zo+9GXO03Cj`EARsD)CHDV(*O5-y*3q()xkMv7xbek4YUq(_z`NS5SCc4X3hB5s7D_>JO{C1gy>K_Uh*Da(q?Yz=5G3>Q2ql^vV>9c=KpXK zXK~VGQ>FzMCMQ%rWbu9GbDCyqN~dU+W_6P0b*g4`QYUs!Cu(kIc3LNRa_4szB04Sv zT;`x$mYs33XM4IQJlf`#=wx5MXMNh|ebOOe0_RE$B!2qme*!2NF66^Bq)0TUc6w)m zLT7k(=Yo!>f+DDcisytjXoOlQgOX>4LMVocAXo(77e7fR%n&^tM zXp2IgZ|tBb0_lSasfHHmh7#$8CTWl=DTNwo zlMbnqBB^+q=Y$}ldKT!7YU!48sT$p+J+cHocIlXsX_;n|ei|k^ndzFcY5$w9;$t#o zWcnVH(&>`gsgxdRo6Aukpz`UR3M!xuD(ZMBaDXV*iKv@8>Z3wxrl4p} z;%1~;>ZM}pUchLYB4(y~>ZgLLR^%wZ>?m`p=#L(1q3UU$s_LJvDxs!otQzX9zN(+H zs;t&(tKKSjRcS(?r`5Tih5*4_hH9}I>#$7qMn$|=F0KtZ^A+%y^ zwrZ>2!6|{x#K%=?uHvezlIyODE3K9*tfH&ArmL;0>$$>fyXxw@hDM@V#-dVRehn*3 zZfn2#>#ZVRB_gt&NGHk=L>8R@7a<&AxGHblD>;J{lE5^F(#?C9p zj;qFYY{-6W#*(bZt}FBPDnk4!&;=_3>}!@fY|P5+eFkiro$AcuY|gT%w3<`3cB;+- zZP4Q9fbO15Q0z{cti_hB$ewJ{%InBFEyzMG(<*J$F74D}ZHKPk^6{L$lA_RpZP*%T z&HCTXitX8=t!yH!IVmhbrtRCp?O#GH$4P7mMrF8C?b9}G-b(G>W^L8-?bZ72-~#U7 z>TTf?Zt%I~${tawok_ATPV?%~Sr>&~v=#xCuetG%)YzFMEx@~h|qZ~yQLBjw(sc5nE8@9m0j>sDsUejOk>F0n#y z`?@a~5^tCq@B7kk{c7OmR-Vr;to`zD{|+GOe(T*b>-cJ~`I0XId#?c(F!v&G`7*Eq zC-4LRt?s%8?{=-Qey#s%@CGZSvfgIJa&QQXFyk$6{(9~Rqi_oMo%ELK#0v0KE-?5u z@C-w+1Ius?)35~Junr$E4*Rh7p|3$OF0aZ62Ct_IBXJVrs0Yg@-YW4EL-Cm5Z%lM9 z5bSRhV{sOL6#zH!0RQj~gK-b@a14ua7?bfCN3a>EasL^!u{2U}V_0y{`K}hzaUFA2 z{H}!c+VLLqF&ULG73=Tk_VFMSGQqI$Q4TL8H01ynxEJJfN??ox6#3@VjHDmKy{BbM0EGZ;L z>1J~{i*rd3ZQZWK=@OqX7c(*cvO2djI|nm7yK_8G@;uvfdu(zKGP5%a@;LkRKf44q zql7gBbU_<5NwD%uRIxW7bVEDzNEC`fK&H_OaQ_+5=P=i^JZp4DbM!9Xb4O#eM{l%9 zgEaLV^FYM0dM$Ic0zd;j^h?9^MhNstsF_8_^iAXRLTs}x9)>dynZD(8P&afrQ|~zo zFb`n_J(KiOhjde~b4kB5R4cVpM>SJF^>^g6Bkr?H3w2lD^i21m8`-p1ll4OU9vo%0RbV5wDEhhj{^U+6JbyZXKR9|&o+cjU0v|megUvuV3zhyG3bcX=}0JQW^ zw{>HOGgy~IO)rgOQ+77*G+OucS_5@ub9NyUH3%BDnvnq~XoOzl^@>v&UX5Th&8+RSQwFefhT#vSL$@XhM zcWeiCbi;OaQ}=aGcXr=(b`W+-6EQO{_Hm0hAMdt9x)EKEcX~(hWe>Mn-?sdzcYMF^ zXU}2vp0{r&wRLMZU~jj6_cwO`_kO3gbO-o$)AlCXwtOpi5|_7up7%vBc!blha0h2k zb3$=Tc!tw&au?%rQ|esfcU=QGf0Out`*(>$w}7X3fulHq^LKX}_ID?Ccx!l#^KXNP zL~q;pj!$?+#Ar&SH4t3*!|`~L3vcda1y1s)j%S36oA`)7xr#gainsWQM>&gMc_bgW z5AO4j8~K+XFOGu*lY@Dghc1P$ME{U`IeeRWo98TtJ0&=G1esSklv8<@~xv4%xvFCTQAG@J-+R43yQ()KtIzlrygIrIe5P(YM{xSU zBYd&uI*^ZhxmS9^L;Q^fyZ?@QxWJybw9UJ{!@I^qd%kl#zHj`#>wCrz$F!d#VkABSX-ZHmkCnE^i~PrrywH>U(Hnizhdk1A z-T{o1=d z$iIEjv;Ex1eUO^G${7#T2mILcJ&t!J5B=;j zz3kUM>}#ykBSh(=RR3<+0@AcX3RZj6bAIu+XDLg{jjYH}OtwUwennh;ryKwDHzu0% z)sXegn#{hz3#1DQJ4iO*cn#D%#umL-V3njxPI*8KJB;t z{olU*^FPr8#J_*P1QrxX(BQ#@3Kt?w=+GdEwvksMOAC!tkAdr~$*v`0pYt%9wj+}e0i0uTTIws1*#6lqeWOPMxx`V?wZsZ*&| zwR#n6R;^pPcJ=xdY*?{l$(A*H7HwL!YuUDS`xb6oxnof#^(O_XJ)RC*CDEC%os^gY z?QJ2IG)V#g3IDcin)?`XWXY2$SGIf^b7sw(Id}H_8FXmTnH?*Qg7nv>x&lc_vDZ)v z8H1Z-BMq7W$P}ah{Ehbg8+dTx!-*F+ejIsn<;$55Uw!fQ-MnN<|FhScw@mAX4U&4E zuy^9cTfUoADe}DeiX+jlPtRWcPx$lS*LQzkzWx08HTEY-pTGa~^RK=A3?wi<1OYry zzyJ$WaKHu`d{9CN9Zayo3@O|YLk<_TaKa8n{7}OYBlPe@6E7qY#T8RzQN<8pobkmP zUA$378*{`F#2!nek;fl(^s&VqjU+NgB!N7zyo*>m>KDN#Y9)boAo8b{Bx>ocH&(WI zt-hd!D*vjvGR-^_%{0|qlg&2Wd=t(%#cC2fypAgDFv6nzvLJu%k|GK%0;SE)qr_vZ zIyn_xl+i{VeH7A2C7qPg&k{|^pVOeEEg@Ty5X>KYMu{W}NJ>4G)Ou_K0)gCi>#fpQ zWu2AQT5Y`**Iadtt1zVQ;Z2HPkD^YyfBH(`()~K!}V6&ZpS^>+;qWJcS&;HMR(nJ+l6;tcD1$l+j`}_ci(*Z)feD@1@@QV za{Dzn;DX=97vX^$R+wIgA)=F^C+}-V0x$(4BMAvM8TC|1pfHtGQ%zMBD4_t*ZP%7v ze*YQfm}Q=s=9)vJxX(gUnrX0`l4#{MO+t>uZ+}l z_0p6yMG7aKI3BE>EJ{W-3R1_8WUz!J0H9Ttv%4DZxaFRk?z-*1`zxHI(|PB{Jgv>1 zF_bmASyt*9g>Yyut#&+|7e4s$gdd(fa)~2`nBmGXhx~HNJJ;Ov%s(Gp^wK#uU2@P> zC;jx+Q)m5k)Ge2N^VnUV{r1{%j|k_2EH(*aDKZwwA4$qa)o_1CAsZ5H3m;cS5 zv5Ou@c_Ay6(iRedp#VV&by-^d7}!7uJ`jQt%wDgK@~gWDYbidHfFz_azAPYO6xSgf zB(jjdf*fiC*n-{eSg1P}hAww7wA~C_D8m}Aj&?SDAr526LmKXIg+R=q4{sPm9UhU0 zLhPXtlZZqnK5>ZuaokE;(x7&1L0L#6Srh=cye&dv3>JZ&6r?9XGoBHRX;kAHx2F{8 zL{6Fx-?{$t*$)OQgBwkmOkf_QISVRHJ@|oEtUEp`@VHqdpa? zQI+acvy#t(?6WLu1AsvVf-D_6nxl}Ss9<}rghR>wXTvXPZ%QrW^(r%D#HnbquO z9cWeFV3jNc-D)KNfmY6*7PYBWZQLGuk%*f1tZ7}$S`mBK!5a3jxh<@1Ya3YI;&!*b z4eo7udsyTCwz$X@E^wKf+~JyJiao7j4uPt&Bye-J+12iLxhpHmt|gM_Lmbu(z4SV=0q>w;jekPS1dl}7XR&#dKyI!t+N(u=m4MG00l=dcJm21}Xp85P( z`!Y87WuHi9y<73v_Q`LBg-|pj&sNIm>OhxjNL#v zV7FD?bD#e_YJY~#c0RQUpdBQEt-$tcUegMkynEz}fx3ZGqVInf{OSbP`lqwbb%A%? z>R%T-*2li}u#+9_W*;?2_5>z`*rQ6h_RB-OV;&2e9O!x1``#mk@q`oxCFr(A0z7Uk zYbOLJQBT0s`QCWPKb}#{MopY!V6&W&cn|r?&iRZl`XuoADv$y%F!?YL z0w*v7J8%On&;uoA?MmVo8cq^AkJa*|)V`zubuVRx;@wUu0B4W}Yp^QF?;=_w0X#<9 zYNIvUffR7h1=olDY|sdg5DAw;@|dFGrvIfdYT_iIP}+v@1%Utw>_i5WPz$&4|5mRc zS}!j|P9Xd#flSTJiZBEpF!(_512u3B-B1nVFapzX4%?6pInWOC@C~7hr>Lwz+JMXw zAWuL9%NC>mxDXK&@$qnwEDpu{6cG|5@$}|TE!qnJ4p9;_Q4_;$0G~qtpu!Q8Ko0S6 z5A|>q*{~E-@f6{(4pp%gSMd%}5f)8xq(%@%tnA@Z0(t;I0yfbXe^KQaaV#9M*?`d) zkCD%ouo4UE5+w;4pAk7q4;m+_JeDS+D$80BKoqBu?=&JbW@`JmQIPTpA@T>8cCi=5 zQ61Ou#e@;R+)WACQ6A@U!zeK=*8iqen(=M+(JPk5ANvF#opB%kQ6LF&AOrFs3lbp> zk|7t;Ar%rL6H+1@G9oE*A|LW1D-t6uk|Q_LBQ+8vGg2fwG9*cIBtP;bOA;kbk|kHt zB~=n8Q&J{dGA3zqCSURETgOXZ?@}ee+D8b_>4MHf3k|~k0DNiCI zi3bw}QYoL}Pyiqa{6s6YvZ8pyPr8yTDJm>0>MO&tEYFfl(9$c@k}cQLEzPnm;qooj zQZDO~F7Glf@p3Nnk}vntFYU4~0rM~QQZNgXFb^{@5pysTlQ9?5F%7dZA@ea6Q!*=) zGA}bSF>^9AlQTEdGcB_-LI3kJ2@@>ek}N}0GevVO1M@UT6E$DcHDgmXQHq)IC)bzcau0XQ+)ule~R-nKZ_Y9K$HMQSzr%Pq%#Vrb2_UtS*}w% ztCKso(>uEpJik*s!;?J6(>%))J>c0KHpP5t%f1C&4q)IbXqLH9EXJ|#O7)IryCK@U_yACy8T)Iuv1LoZZAGn7L&)I&QI zL_gF&8&puBlRHJ}IYYEOlK=r011nKwWUgtE6zPk~hJbz&{`?^m7=Q?P)JF+`0e}=p zdvr*H)JTQ&NRt#vm;Y2ro0LhJln4l*M~OfQBmqZPOEL1XgXV~YLTP*i$V*S*PUDnL4Z=<9v{>+zFyPcqAp@=YK@$eRNCg#036%j1 z)lh}B0iJYGm9$Zp^ihvAQWX_R3AItRth9EL#x#}OIFQ zYjs&qwOOInS&8*oVYOPL6<4eES7B>u()22_@W!q(367^m{U=7vhFsItWVT>|tS%R+ zZsBC{73Y-{mH(;gS_v29wIcF$U-k7T`1N1?6<`NeU<n*CmS7cDM+!m-2w+Gd zmPaL)NGG;PFZM?*R%4?yVmmftIrd{IR%C&c3F?(z<<(?U*3<44B;M6zSvHoc2pzxF zgCK!uLPis8mS%6Zk^WBFq(GpK!&^~qXl-o1?qLd^)JTWGNh8%#nG{ij^idl%QJwTq zt(E{9fN8JvR#Jl$iZ(gGmIxO^8^KgY$ESQ&fkshmRfeSVjFh>hF}4fAaZ@QN0-1zD;7zobYm&@ zax)fV8~>MbDYiVtqBEeXSRD;g$-cLkps|P_K3X7C=z<_iCZmQ7KhwEA@W^ zSZeLJ0R$CONmnkIt}g`Rbx9#^*|#A4DfS9*%$C0Py1AYL)a75_iY72 zcoGA<#5G;drkYA6goyWS$+d0I1A;l_7rX<4LGN)ERv-?ISV(Z;w3m8^7D4b23OB|c z0RI*~5QGdAS0eI{Lm(n`6BbJN#TFbR^SYxpNP=~<&Esr=gR?EyF6D}P7+Jogh`Bi0 zj+lyJc8UFUKH6c6ZETKrf)uJq+T;u*zNCa3VkWN3?V6&APmOhTqVwt&BH962ws>Kw zBr)z-V5fLV;6vJQcPSK^%y9SZvQ2i|*jU(jM*cYNFj)}0IEly5l0)Q*Wul35Q3^)Z zVk4JgA2)I*mkFel0VJ1ciQsWJ*JD8zn6LJhf0=W6nF$oQE&8J{l+OGRLXK@DFqjVH z=*)xlBO<1lA|M!!sSlC~xgY=$S<EUM9Y{_RFmj6X~ zS>b$cmS&?Mc@si=;Wm3aSqzmTf;|y+Be;*7B1*jDh7Gx&pQ7`qBX*Z}mFJWy`kCpj zZO*EreVJ~c$v19`_9pb={5V={zqWe+K{YlZ0cqpo0(G^rZsZfrgb7p zhA`HSf;JBKD7=H(L|T4RgO%Ht3~dkO3XjHK`GA{L02bhW^VhERcToHHQ1SYHv$n7E zT7d1hNdHg z82czDIxb+kDM}c1SvPLk8*Xv>BCuPzsXN;81iPQ&)J|>boSWF1`k+`LYtjp zyN&zVrp>_-T6+iFSO&wup<}wg!n(CP&ODqcL`x{P)Js1|pZ#GS&YT@U$#{ErpSz>Z zunnkFw*XNv3Fs{L1nu3fc#%7J>d2rqMmmc*`Y<~9!6)0p`xtCbjTH1-FmzjEfUt)T zqo7TVqaRtQUCz=`S|^SLFC1Agq;p!f;DX1HCtAVigeUVpuORN5q?z~iN~7B5&N}jV z?mT7Bb1f)hE~MkPHOxAbaoP#vwmJ@@d6}1RZ$c)Jdcsxr+9;3c1o0o_Sj=dh(2<3* z$LynX&GRx3+jV`@4a27k&@cvL3%>m%#w>oFV%_zEJlrl(2LBx@`?SKR7|gq)XT;ch zIuEv~qXdn6Hf#^S*>v6G*XRt8onzuU6dv~Y#AjNKW2F7u{X&jGPm(|QgAY2V8*bAN ze%SmOF;IwiIMQvI3%=Gw0NH?E`B zQuDV^7l7xlw&;T%ule_`pSFM*KnbW|$QPI=hT3$08_<5n=@JO413jScRM~HPjeQ;T zyj5d79JKLW<$pTnCLXqFuQh0Hm9Jw53mu}l*KlM0DN)H>+Ge z_={?L!fVdL8G@{*P_xgM(#1K^OT*VWc_P5PFjQS2+W$cJ{Nsj+yB*r#jxXMgS%W)% zLf^?-^)ZIfP~P&G`iA*rinW@!W8#_N+u35mx&PsZae{R}9;S60%(a&cB*By`c_2C) zqp6wBRJx3}ADBDWnLXzJLTF&ei$E`m*&cQm=29e>@QJtnaG_6?l% zqeM2;UpD@oX9Qw{twRb9!|ZE9n^PnHB?KUBk@`o_o)l8Q3X&oC?^ml<1-IBsNbr}v zg}+GI`X{g=!-o|&QDiuhVMB(tHrcvp&(=ehBgwQQn9`$7lPCXy{H4;~7KlD42K}dz z<-d#nWX802bRo@6H;Ha6NfKwpc1{Uu#MQR1(5QkaqynRKSXfj)I2 z97?bqM4WaT_9QcrpvtONM`oOwRO2SII%fiwM1TMTB8?w2Ah2LbWXO(*OlH93@`3@6 z7cAf`n!%6-rYE-~Dedi2rb+}34$crZrth_n% z=ft5OcOJd^bm_paThGq@w|C>+!GB-AeLQvT=);pwZytO5^1~f&Vfzu|d7LRFNZC@9 z%>MmqxyKPy4;hw#6lw8wlVB#n#MM;v;nWITW=V3FMtWI<5mFkqMG#-MNU>3I;kjg0 zD~hqlkOV*g;GzVOWDz4Ik<1u{jidOZN&gg@*fY+JKtd8^7MhSq)E56KSR5%pDcH_H z|7;>b0w5+aVp2@Cl0XttP-zd7N1b@rQB1BRm665S(+X2XO=u>XByMpfnPZyNic=HH zMNpnlDdgdRXZ|CF1W623lU_}!#Z#ad{<8&5P=fR&Q%3z2rAuSxsSukZe)&*}d#Ndf zl6e}nX`+h`n#7b6fI6p97#^yVL=t9ol$M09q@byZ(%A}^2_(?xo^X*usj zgss+Ax~5LH%+x5nlb*@boObTpB&AzOo7SR$BD%$v!Rjh;!FzusFq}yw06?%w1gW`@ zLiWfGkdbV@`4;{#M+QRHV#w222>m6NRuXW^QMc`q=+jmLoNaNaJ_-MnV~H$(mj zw{4yv>9nSj9W{!SQmzlgRsT~Bp-w%);ts{t>Uu%A5%%b2I_9A$GNe%}SK^CM%9euk zdPS=DL@Vw%5e%tC%2qDLS#UfN%Y3mllkv_A$uW9L{=@V@r5F4IU&3x;Gz~u!A7W*5s&=w zIVfZS5jRq0Dm(X&(h;O|7a@f%!(^oFQH(G1Qr*(Fg1B0n}A5=u3>$c4x`uX#O1dFG=Kr{+mSvq0sU z^=ye0B9bUK?Gv6G{LAUUVlgtQ>2XB~nZyuxO(a4qL>g)!rNH8ru>3P_dcqcnE()@L z5kv~h>sBtCLOXcbB4ZM|n@KJPrT{t5OtQPy{3h2#^gU!)0m|m3_(rU_>Chk+anwf2 zB%+n7bf;mO5dXGJLau_f1f4|<5l)IKs6+^u3+ z^9fb6iO7lKWC~Tx8PBA4Gtk(zX+~>+({^@Oo%yUW060nlh!(ZI{uO60>lp?7$k@g@ z_OXzStYjx^m6rIc6;$QvpzdkWp(a6?bsK19P3BaF9Hu2npsD%pB2kiFE1mYB7gV-c zkPimvw#8A2OD#;mAf1OG8Z}_6&FaFV5R7e%UmGY(jzAn8G`~9y^L&$3PFU>4d+cFQa#j!=@ zO6rr70rJVG!>(W$JU2KcXF@2-8^Hu4;W15DJb9_e1~E+I+T}R45B}J%WU?hEE=auO zLGgjEbmk$J_+!}IZ@h%{t}*jZg+!DBGOfF+EO|N2z6}oyMd}~$-ZB%L!Ax!(vqqnt z1~iwRbZb7tn#^2gXRZ-|X&Q6JUj#t`O86NO1^}8c(uRtYmck@dw4U(_sMhbH^?h<} zYybG*T0Fr1wXk;`Y+?`l*2YdYvX|{^WjCAIx(Ue1>Yov!`O@}DA9Y(n(O%htAA6n2^T>Hw`rq2x1Mss@8 zgGL+21oj^ZI5pFm#&w(};c7e&yV%E0_OhG(j_LZ3#vvXeAV0(Z{A;%Y=*#Erj zFy|U-1+BGK0Ksy>0z&2x4m!doJV>M~PAl}|=(EG?EHue`?}DmmuZh?3n9sb|keD`a zYo3qo{d|#$JbK7Zh=10yO=B_>M_9W)(r|?J>f_iLElP&ovplco3-PJV#%sFr7w zd~JDp^3CT_{l9JM`qdWn`p;kJ?WceKVGe(=;Z|$>w{ty5C^B|`>DN0$S4hz(fO@Ak zK%`pvS2y;@OBC3DMxrXd^?x|Q6c~qqX!mkPQablA1vPUsiM1JA$1_w@MgJ>^SS=V= zfprhM7g+XyY7?MzC>TeeVRja1HWBxO69|M6n1DoRfJR7xH#dYwD1;jrgiff0NLYkX zxP(vGgiy$YNoa*yn1x&@g;MnQnsYk_!(hM0)FwutFfh>Un_&lZV@_=t{JY|y5N zmMDps2#J%JiJi!a!0~0~wuxUeY&xPFo|cM}wu+M0im1qns90)1KoGi@1Qwx2vG-{M zpaip4iJ(Y{mk5lSD2$)zi^dp?o=A$w_>0L%jLJBS%@~cM7>d-mApg|}jdAvj#kh>e z7>Q$1V%^to-WLV`c6b42c$y<{NnlI&kbUm>j_?>ZJ;+$|$b$>$et1-m@d#O`n1gZk zk96gah=qbK$bybBi&#gC3i%HKkXK8`0AII{5;>6+S&V7lQ?;kI+>F^xsyKGlR){CLK&1q zIh00Olt_7$Lm84vnUqfHl1~|xO}Ug&$&^TGl~W0nSSgiUnU!AIm0Zb^v4N5+sgh<% zmL+MHEV-5`Ig+(V5E6h!v?whnsRU&il4BV}Gr5&~36p*KmH&U4l7ab^gb9{~d6;vxXRZPMnyQ(a ztht)5*_yEVnz9+2v^kr$S(~_do4T2syt$jc*_*)mo5C5K#EF^3d7Q2(j=iazx+#v% zDO}HKInimH)H$8j37yy}o!MEP+xeW_7XaHingAf4LL<~p)F#e{N|DU)}bK!p&|;QBkG|fdZH$pqW>WpjwZU9D7vC5TB4e{qAuE^ zGZNL0rfWK;Y5Jya8mD49r)^57aB8P=TBmw? zr+b>GS{eX-il>5FrAYvuy2l+RnxW$vsEo>|jvA+EN~LTnqmwGBmO7=FN~V{pshJ9< zo9d~Z3Z+^4seW3jgZikaYO0N@s;IiEsrss}I;x=>sY^Pgwc4hUI;*nEsk{oRnwgv8 znVP}MpbJ{8#Coj8nykpWtjgM~%=)a(8m-WpoIwp*t)JsytN{T4A^8La1ONp9 zEC2ui0IdbM0{{sB01FgoC9t5ug9sBUT*$DY!-o(fN}NcsqQ#3CGiuz(v7^V2AVZ2A zNwTELlPFWFT*XVfSz{nHqOAkH=)i7mz` zV`1i@DC3PR!FZE$1vFTYEew^1*Crh$vDAKp`G_M}N-9*(l3!^e&@VtdjJk zMLu%>@sFvk)@tinv}PCImZVvFD_4#(bk8l~2{ZsQn1bW z8I=SAlav#{JlXRtQ`7S6u)eR&`e#A_6ma1}bVZPA!w+}dk)0lgEb_=Cm%Nm}Cc}lW zY0B10ufFmM^s>zR(i}5+HRF8q%sSr-v(GjI-E+P{6Fv0LMjwbWMJuQ5bWEi@4X)Hw zS8cVSS7)sn$69yoHCV`gE%w-Cmu>dhXs3-^wQ9HR_S+#Y#Wmdht!j5c?I>rr-gwvl zqH00)_+7xN_3*7Kr-LKjj^YKm!?-|>{|))$1w=l08F2Q`s%5Vu6paHZytN+u(Q56>h933`|hiWD7Npw;~f0(!WU2c@x~`VGV)>b?)>x6 zM=$;KTJy{>t8+8U^Y%IOsu1@(cQ1bUbH`QxKse$wpn+&uNpm60?2^w)3y{cUY` zwD<-fe?(K1Sd#A$Xu*~7|fss9jKWNdhmlF z450`|NWv20$a*GBp$b>X!WO#lg)oev3};Bg8rtxNILsl4c-1r=`tXN9{7v@%f=I+7 z8WAo-Jfaep$iyZ(@rh7$neU=V#VT6yidf8|7PrX7E_(5cU<{)e$4JI9n(>TiOrsjt z$i_Ch@r`hdqa5c*$2!{aj(E(Y9{0${KKk*GfDEJ{2T9068uE~cOr#LdySjS4%vYPd*eGDsF*BU{kvh}TSjq6V5 z<5s!a^{#joDU#Hh*S`AouMu4pUCi^-$% z_P1@x0&s_m8Uq%fgTzg)a+k~8<~sMe(2cHir%PSc__n&(&8~L0%iZpJ_q*T?uXxug zA_9*0yy#6YaLgN#>#Fy?EBP#Z=S$!E+V{Tr&98p<%ikQzx4!@muvgq0*Z&Imzz9yT zf){L-#?|c{i}lbt&C`ZG!Kw_2aOC-A@l4?1QX1$OqpTe~gwxh^a#bXhDvR8#C`m zT^Lfd9QjtLu*;x#KSIbto!WMyOXqSwYOIM8SBAaEk##?2t<>b2R&Dv{-2okc+-1w& zSJ)qWG1YLMV97d$o%U+o9{0m&&PP%_5F>ghHWO|x#2Y`55_rhB^K34rRXjAHfy|`W za{9a*KUDI8Bp9Dgl}V2u%B=ojNuz10)QXwwd`h3618`QyH6H4$J}k7STGV=sAMf@+ z7W*)`<*8}x_C_E}LrSfUY2zoB0*}j6v8~Nzil?@Ek1Ii^YSw_6fR^K`&@DA`yT*mr5ZA+lw_Bo(lC1ySC&_R_uMzkibQahh^ z+2T6Jtdy=ZSD*HHCp#uQl=?M5+4~}x516tnzrSB~9tb`2&7@8I#)U`ORE+axPRTV2 zlYc(ao`fv4P5i0#c|JDA6cDdqxoOmjKS>OOEJx~=v~>RbVjYLvSN(DWSl^90mjW=_CHHOv zz`TLj+JU&9f%xfxu+tOY@d6)r1Bvm2D0qXYv~dr$g2sL`(X|ILEd^~M1hL=;bMOXp zY6o+B2J@x|^Ya?9wFe8|1&iQ^i1CK_%mhn#hRCFc@R*0lErlrEg{a_%s^Q~(xRZ}h z1Kwzb>fX62w1);HhZ^FCVPE>2%1A@i!&=opS+|GTErmJUh3zARIr4_PYKOafhI^)m zd$))CmeWSkg!|z~q%4F6MM%A9Mr2AvL<~s=v`553kw2Q>MHtaVCTmBgdPb(-`6i@C z>K0RE-$mx*MlYhNnl1QG@9azKo%NFu-)^FWyk(}#ihQjZ4}e48*_R}wEYBZac{xx~>Z?gn4 zP_k4c_lp=X^j8vqJwg6HPJkmtr=R4~I>oLyS(lz$EF(I&x2zbI0$lF` z{LBJENCELm0qH{l8DSv>e<77_A&qw-U1lKzq>yQ)kmaG!HzXU5uc%GCh{Lw%@VoGF zQZ_H72=U(o6Bp%Tk>RSfzq0?*1@9i| zuB`y~39&XZ#ZKk$=`U+R85`F?lADnEJB7BoLB&Q&%Yr>(F z7!3ACBvB^#g0eTFRKKANG6;HM96sC;qLr59^_Tl-{sr~?zv~>5noMMHT??goK3cfT zk)Hq+ROpTMjm2j0v4pd*+2p~c5!^bf1|lCD`;SyjIuod_TA1dV%{sH2oH2uC{%CY-6=-4nU*u5NHn$d=-|}9wo14-PvBQ+8#^PK}FS` zsMqnPnRCUqBePQ?rn4izpf$G&n-1$!fe$gK9;Csk1=$JW00${YtGg-yd!^QzTjpnG zv|PDh9ZYw;`P!L~h4mA$qpk|rvkI0c0t-BXwbi;{s~a=~^2e&cbS`w}30+|JOxnw4 za`N}5Q!U7htqIU$jOeQ_{AsfB?kp^;4yR`iXLb!|uMOuu4d)Y&6bgyMQBj+AGQ zRCbM2uZ`3`jnos5HVTe5>yNhjj<#oyLb^t~)<%1tM*E1zz6p-?>yQ2L9UICX8|fMw zTN|5r8k-^>pAj6N(;r{(9bd{GU+EfOTN_`08s8+I_$4^8qd&3dJ8_Ubanv<&vNmz{ zG;u*Zc_ldcTYvJ#ck(WK@}X<;X>Ic5Y4R1x6ui(Bg25D`-xPAr6l(Vr`p+qh=P4k` zG+1aF+h7{kZyG;mny`CXIHH~Sd76a0i_CB8)#fy%-wa*O47D4Upn_2CC1_ z0X3NA_M7E>!^qb?EBJF(_<2@@WKK+IPQqYL%5P34XHL#<^cz=&y!|xtml;)N;4>RL zEpzX?s%cDk03cuuwqH=rS+K2{4DVX_)%7j#WWiZz(bZtl-EYw| zXVJTR(f8-#=jX)$lBFPfXFPFScIL@bfu(EWzNnwDtIA99B+H3H%gF}Isea4pIm?;d z%h^AdbDx*zy3)p)+flWCnX`V~z5eIt`bEyhRn5ll@r|3)4cPJk z`1Os~FB<^TO@!P{#M({do=uE1F4)vJBG-@z-lxbn8rT@F`XpOg-Lu5PGk9mj%Q>Q* z+MO+GzmNidAr|}seEmh!^Gh3ldy8S4UTK?6c$?R7oA2{B|N7tK63h47|e zJ*N7kU#Xe@8~l}0+6#Ybi$kpOFZ>lnBLAQG>t<)N)p2_yN4~B0XXiioi)Tk8&>sx} zBirdqX|5mNi`-ay!++qfs}X-Bc6og}$4kA@eDP?~f8(!J$!bW;@#25SU+d$YF#J`> zg$KmwYQNkbN@6scAU@gOn<|pegW)f?(EhrQ8x!4~x96MRi=Yz|$@R`#2S}xO?VsBp zZcny4#Yrppp0r)5dvDsY(_D)TCd?UG)fkVAeOc#N3mmsW?*v(X$8bt>>}$3 zyw2GFl^{cNm=zy0UtTOD#&K`%_d(NUH>C!SZ`a5iXl}06Q~!Hcr1)u|NF+NZ1DpOO zl5Q>dHiPc1=(`CU+7u7?^s*Ro)5HC|fEj90`ew;=5F?5PZ<1rp7b*+5R>5?WBFEM_ zYV}NzPI_*j`w_hbO8x8zF4&q}g$ULDszRj|z4*Ysnh%PNs`YG8Vkw6PF5Z=l!*#3> zw*#x&$bEI**^#qS`d#AHMpIfTGFi(|lZZ9dvELkEE2hc|aAb_9d+)tKflrf)@P zd0>E?Xbz^d0Fo0CQZk*?`sz<>IqTf>vHLXMOC-!3OUB5lpQ+uYYEQKzB&gZtkMA)$ zxd=Wa_6vn^a5@H{swF$gbk5+ii?2t)*Y-M^v<`G2Q&%ngAoogT`*f_<>@bcM?RG6H z;PK;nQW!~*d`cWmQDst+){k>qp6HZeR#_m1X6{3sgdDu=(>312mQ(kIG#e|Yi|aM8 zctQn@bkzwCNh|rICmvt4o(u^0J%Q-Co*Bq^@>2hkBGv{^uZBMkpUz& z;m{IA5Lx2M-h^zve&!KKnN7hntg_iLd$rDQ+Q~ z5R2WGkEzUe>=j@bPqqn$R=YUCuZwVg1PV-O=)rd~!pl%e^*ogSz+YcXZ}-|rs9UMr znKScnWrr$Q92%5S(I~t6)5};BLCV&@De%U5rOM{wJ|lS*5pT;#2aiq1x-kur{7IJ% zI+>31BOZDSAQ*a$1CI4nFqiG&?B$WW{5SrRo#hLOO8FQ5x^(>){!+z436v;EMikwp z)B20Q)L2wKOPH)+`0KM|N@U~zg1>TtdQJY~FFT9a5G;I4nt$*Ywpob0&Ho*LiC)vq z#r(xz`vKME{~dpMuUzNeRjc{0r$Hw_KV0X%dQ&cfBsUfG7k`yR?1BH{FIT2hSDV9i#Rf2AMsbCc_{E7{6+1|6BF}a_=_|&hXsbeE_J#xR(_ZA{)4|}b02<}ox8qO z374C5@E*^;@gh=)hT$(%mkK2q{t~4RjmdR_;jbgs_u^4jLJC#JZx}hkX<_&)B}GN3 zN_TOjKlCsD8aLP7mRp4IW7@cnR~g=p{DZ#&-c|_Jjqf+MU4O>wOk9c$o*(dPYfSOGID^-rgzeRthhQ(#kd4;@o^@*0DUPU5o2Yts z-|$H-e{!U4VKmK?Zi8bzgcN>(v+nwxB^#oaAJ%c+V(89`7duZXEMo!;&$?_NfS^=0Zln zMM;5&>G;@x@Ryw4!%X@_b1BbX{Pi%K?=YP&u6U%D^)Oei)KXbCbD+_w%U|@lrP@mI zSa)@0M6ai%wtM!-ppz=Kr$;_Mm?SwABWr1BF9x?V5{OOxxIDY;2p8}MhQGo|7A9_7 zvujQrwx!-}^CDAqDW3h@$y_02YJ+^DjCAWH;`uWL-_r4X=Dpha3Dk9q1NiXD8^3tq z0fX0ih2|nCX;u_bx&0g7S-;^s*l4GJd;izO<4C=yU-*;lKicq)V|?@(aG>o&(n?pj zq8S6pYBE4j(ufu;-{(8bgWwPx&0JCcoOW4CCa^UzO^=9)!BYr3A=Sh_B3R`7CcZ2UCSE)vj zZJWXh84JS&A86Mgt+Lm2*30jtm%N3FAg{SR&+C@J?&IUfxP`d>8_BO)2UdBGYuCB` zozU)!ui&Sx)z#Y{fBS`h@YmoQis$Px1rW5*n@fUw7Cu(9Rz1&UqzT8eiUmjr+0zUx0+;5F1AX_s45r)4a^hbgN z(Cz|&GP>K`zysXC9YnTS8lXx%09VGYgfkF(F7SB4*l|Aq#fky&Du^t?9=jd5Kp9ku z7{qqxKy~MS1N=;<6?mHny!CLUNq1Cn1d1*JeXreY+uVtV0s(9xa=gIji{N+GRx@~^ zO_p@OZ-6S+PK~tAW2rz%nb3k%9v$Q`bM3Hb9DK(ag{an0OMK8ms11iz8|iKIQU871Js6Xh)T&M^&~*RntXeEk)JiM>q0DH)}_?dPcWLD2k;; zcP<x487++qmI>F}{iF_xv)HuKXkY%h=MFU#={0RFM;RX5V>Z1QDYa(qmTAm0Ih+ ztlq_J;w#SJ$L?syD(uAUd0K9#$DS<3{_Pjit(WlQOj~1rd+N-4#yt!f3Tay%1>vSA z#68~Wz|&)W;)qAih_6zQM_rD`$at4_7yq|kK*4#|PQV{l17#!-SjG{<@E1WM1z#eS zP9lw0B3(uzLq{Uhaw5z9KlqC;iBso4@mHitU9gtGeUb=4ax0=Ej;NzphrR|kIl5P} z!g8|GeX@!UwJ<@7x=xCwSBiEdwR}bjjCvW~rx@SI5)q`D>!ezGrCQVDm8GZJEvM$Q zr#hf$>Jg;XbH&lYrMYILkwvC?4_o_n=%as6^XE%{a~Pm1{TF{BlBY-M=#nm{$NWi$ z^$W>58L3_w=@}U?_LaSyk$az!Pmo#2mszZnS?ZNpo{?GEky*W*S$m&ZPmtBfm(?t* zm8g@YTapaJUlbK6bVFH11L?3kt1$fa!z+6z1H=dOLy;P7%h?hZX;c5gUpDT`>}HGq zFYs4|WvpvnyoLf^MILhrN_9MC>o;z|l*0>wMmGoQm{C~%Qx^4>=4GW4TX zyzW%qZEJoSO*YTi{B&^K{bI)-o@WTV$ngxKwB^h zWy$hF3Ej3m7ach3LY26Z6TK|!>;@Aml8mc{C1qRES**@lki*K3Zx-dGd-QRpoF4^L z28Mg5HBCozWHUlp7IB1g?ZA1H6G#D-Kgf)CO}l2-2FhgQ!wAl;M@Y2>1^hy7(%#mB&=? z)ki*&KL9aD#L`@Wy(sT?E`vffKR}$Fj@6Xj7F4Qle^k%~DpVE^p<2aa6`KRA%eF~Z z2C7FIZEm9K`rm;yyg^u_!HU=A#TN{Ck@b7JB-em1rmv|zU6={xL1gka{RyvX2<`0n zg>b%xJ_=BXY_CeMTgSOf*g($}Zrje1?FOBY9b= zjXMiug1?&N=WC8LK{$G^gja!4zlyTzTVipkc?XS1x2oQ%@{=9&X=+qrv)A)lmQC() zK{J7xdO$B-aFn*2$452AA{+A8lyp{cdMdSkjcw-N7)i2(X6R{QhZtyNNE;rk9rUax zy&BQKwu0oqid8n54ehf?ZFC7aS}9UVh>&l(*h%u{Xs}#}(V1lyl0*Ygg6|xY{v6oK z-~8xATG15AD4Vd_*~j>~m8gr7E2ZD3Ye>H9dsf%jYS+YL*A!9rj6nCCUUx=D=YoLT z!k^CNDy4yy?i*;oSQthArhxGAlI^{257sP0X%;p>J9xCJr@2{yU>Y@*u@~z@oBb*n z`p(cSm>`!C7~)-XH!73`?4!NJ%uAqjk#ENg>;n+<0jnt^9-YIEKVpr6RH9fN1}Ihj zFf0*$ty69DDWib2`6LWVre`^kGnsb@K+vb15}iS;Oy5q$h-0csGC|y@PB_b7ySa(` zY4-}~(Xn~4-+rO$KWJ`euI?`hlo%%@6d^8BQc$^>>d9Dq`$?h)OREUdT9h>1pN-h6 zVW;?=;)lhW1g7|p)H2wb#$3CnA9wu?&iaEnVL#ln2fe!neXH?2*9HTKhk^u$LiC5i ze1{^khoYceLtp;?;4cLdW!=%j5HgG}qw&RbF{7iIu3!7mW!nVD@|s6~!0;DSz(Chn za`EVdf@}}*cn;OrT$jYS?|4GU*vkJIe~l&hkCEt_0RQL%Zxw*|g1|>6;IqQ;9PSje zwcP8RKm@-j#GEPkm?^ZHDZtMu;PVuCd$A71#_UUbMJ)agbn6InCHb5=Oqk)Qa^!8zYU|+LfF0_~$DhV)IT(AXxQ200gVx&=zj&uw*SOSnQ1w51d=v;cX?TUO} z>T3Ho+qoF1D}R;Q=WZftDL|;R^!EF~@-x4)si3XgMXB0rycJvUr;tSx-$jsUZ&M(_ zUO`>*xOB=JaECWIF~?R#V^s=-fCz#!EhKsg5Tblt?#_-vM4o=FAVaCPve3wyp0M&x zH5fe_Y$eu&yV!UL=0$*lc-NjWTlzS3_g9J80oV-)xB_G#vx3*tWLgDlsh5~51|a_i ztbTG-1SXIx6PEopDn3VTZ45Y!10Ml>lYzbG;l%0ew3_x5hkF$}X@+i(B=S%UhJ2fn+7>>08%@DFq6sTC4-<0YE2tpw4>OKNDm&$8FxNF^_H;j2 zumCx`(eFy&5HkVnYe_u4!J4uNRY61n0c0H1zFMKF{o0xeBLElzQC0Y~knv!FXy;E5 zd(c1``?fV94U6cmxM~gg=PmrN<4)vj01*syavlx_p!sJX;PfVWAVFKc^ME1{o(1oK z8HDVN$+He-f;!*{lVT~5f@of_{mzOjl7P@AfF1_OffUcEoHzJvlYyKXhk{uA%-tmI zz?M{qa{5s67oB|&VI991fP9bEX`g+Il0XSavM`xFUSZHB-M z!%s4=1cw^|e|%}6B2|h7bd?xF2XFR4K@Q)8OYkpu*_?2Y)p(>#F+tb$jc{k9mC}P} z;6(?|;oAf1>ElJJ^K_dtu!+0+BD*(jUVHy-ZVW?+uW^S zeWjAGUDT_rMGyStR!7VB;o?&GPm3`Xk0vj9fsfwXyGMD5m%%Ga2ek0q8);097O}<_ z-B(v6Qgj=I&#^L$nB>Pf(t&{;lG(IrwO8&>403FDVDeMICRKsqD}`A5C?3HWq=TCT zrp)|TXO0KRfes@=93L+BDK1C9sZw^CVJ_NZhMzq;Wlxxy-kBMJ<~bh#2?zaWz%Xb& zGSoS=QHVI461X)9G$;pNI~Q#RZ|R4Y}?5e_BPI8v|Fs4*PSb=mHV z!thV^JvdJrie^Ho%;u{k|K0$gVAub4ZI}TMM&$o34YX5h!8^q@&bTcYjlp??YfasL zB3*~shAT3|b8J46!ff;-Tj$zxB1gy{kwo{m^-PHXq|v$+N3@B5Rmo%^K>=<609_Hb z8^72vscJ!)xEcT8sFzyl@=}?uN^4s?&b-b|V({R4G+$#hm}~Ipe)h9l!0)7K9XGR! zU_H~ObwQF!xh%gc)ck`=>Ne?wk^Lo(&@CBX7 z0gG-O{S~6zE3t~PnW@%5DmaF|O|mb>`DlDm5#-3P$122;j6&F@2&{@5q=-KCvy0*q zpq`apd|m;`#0aY~)kU3UObymMzP2lk@%?bZp5Z%k+(72i&mqs;w$muj+KVvTL^UgL zR>-ajIc;UE)5TH@nqW$z?5yO$Y_)FWc}1g8E=?V)k`~Re zAK6Va`u4jmT1Nf=Zf%or>Q-&DI7x0Di!|5@Y^%IbZe5$Ql$Jr!4320G+qT_Sy-&UK z^9oLRde~Zylaf3JZi^Oe1|A!sJceHTC2fX2=L0-OezzsVE0xW=JjQ`YH0{R0m{PnZ zp?DMM$YF28cugZ|OWRGOS%2`Fd4s0f&Eno8@|jn@0(O`uDNFI~#u00FSfm++@mXeA zm3CNW#q8c$=6LLNSmpU6@>>^#(?G0?;-vU(O42MLHf4EX{I(Tkr4XoXRoxH%k2P(3 zkdJk}hyr#EgEXCXO_R8&#?6bCo%U@TVFC^v`=y-@o#$tVx?Q(>o#)o`Hv*1dkv?HN ze#4X&bQ-|3>T)X3(;0UfrY$2@{?0fk=rYc;-{ms-9!bb`T6w|8byivWXXWSzt8TZ& z4?aTf%T{IG?yH~PqB^g6?EBr$`ydH>ZiUnKcy7l@3*V>8YxQ{TZ@oNw9hPbFdmq&e z3j3V4?HlU+>_mG1R9S=9>w7&Z{oe1-qE)ZoY=+1C&-bh}{+}PujoLmx-R}3o_Olpm z+`i%!fybQ+K$0+q$7vTq;kHhNvWA$TTkwh#E=+~-^qXL~wTqM9OohKkFa?J4N>JcVM@Wxt*2cF> z&~Q&jDud=r<$%(=IK1GacuTU`__$lM%z6i4T`Br@-luk>Z|7hzl{NqUMv8)0|06 z>o=$2>X21(pGnF?u%MIVlT%BbNiLJHV9@B0(`=ndsSB}Svfz`~U6@I2>$hNW>yS6R znMvzKuw)D6Q!vGyO&^r7-g!WrsHBNdeuN)P?3UNqbuu%v)$(XsHXex3dt?TUl6WZ5yz6aO>1tzgcMO1vof{3alN< zkc*+SV>%t%pgq&$WsJL>ak^Zm4M}R{n6@|w7i1Y&Iiz)N06uvR2pC?aE_Urpe)690 zG`wkD>^=|ud-K1tohEcMfBl4?mNne@`PcT;euhYKm>AQz?E zGyNcpweR90QI7d8AZ)4=C}>X6dB*DIHIxvI-DOVmG1eSNp_AlwSQx#dFp`aq{67_i zB#C^y?EiyK{)5>-CZqJ5Ir?}jxIEtfLnklZIP&jK{=bXD)WhE3PZ}#9|4S66o#_7~ z3KiZth<^8rOJoS}G={AJz>vb_<7?O*O@H?h*2%l94vI7S{D&xnb@KnuqOdO*P1y#Y z^I+>AQP|aSy>A^S{#O*jI{BuLX)D?fH!x8c4SlQJ({(?+&ip8V`MF#4_GEk1DkFDO zsGaDXs9HI*SNeP4{bGU>1ci4)8u2sLN+3G-fw3Z*F!G0xHv<-Afne^GeDMpng;)eY zz>szrRjReA3{fsJ7!Qdhl{ielM7to0bHRE$hL;6TJKRf%hA@s4l)4=+!9i!15DuWG zGM3>!+)08>4(}?Ys3PkzAXT{hO!(k_xSM92m?8oXh_4XIFsW^k%(QDg+{<#b9JI)G zU9j2DAz;4GN(EF0S!JlVmK^L*0en=!DtOSEFA}A zQpN)UMh?p>4{yo%ic2exDyvN^t*YvOKpBp!n_-=NP5WNuajlBi$Z=g?sjPKYa&k4sxwy9JB(hw6Jt6p3<{(oDiTU>w zk^@J4sRV7!?->Q2)8Dfy(#(JUcJhDbwO1ou|8vl})qSRc9X9A(Hm*WNUIpvq9raq= z)?63ud1NnI{BGBMH=tEK7Jf)9o|9o9hJnopT0@=;s_~k;?ReIc$**F84<0+|R_hJR znI2~y9d`aK4+j|nN)LzSi`gDW)or;)yJR*e4=2rK{GU$S_gR_`A-87&IZ0R+_vih1 zd5rr%XzQMm3k0wUPDcNB@^f0Bp8qUa8QDcmp@npvtc0@)yM?~v1Kw?y)qRd_t2=*r z#6au?K9Ih_gg)OPEk273?ZZ0xCL2;k2lzgC!vE^zDa`%x?{i<%%6x^0)c@1T^9+4` zKV0X0cbNZAC!gsk0G}=UsPyknzIhzLPSJ!9>*O&qOe9*R-V?(*dGarj7|=kOepJ%h z2pNT6s&shRkMx(3ti%-9WipaM#VRzg4ez*$p8d?QPX0B6+?%g5QV4R> zqzpS>K7J{>gwPH0k0eC$Iu(-K9tc}SMv%?_Dk7ux91tbEigd+BA;uh**>H;VAR#cL zq}Az?WRVC;9y7oDE!7vUtp@Al^(jQJ230a={5-28NtK63U;r?_=1a)~>ODwr2==Q= zM9tz+(T7$llh}n`x+xq9R5MmfZ<32+2Ks7v3@bL zq*Hwr941E%lR`(x+N|q*&F0B>CvJOsGG=#2qBmZ02YX&fVw_$J;!u$llNL>hQ8kKe zB5n^s)`?~MU!81Ly0(22E3S|f2}WSX@9#t3Vhxk-D*3{;ga;ppAewL7^Nb%-PZfI^ zOraU?UEKaEC#4~F|23g3atJPK%h0P`eSG7GHkfReGvH|g!H;aqU+u#<9gP#`3R z3N3yY8cK|fIAl^2Q!a^led!4IVzC<3w=|_dz*bz-XdZG`G@3NgY-v4>8K|!_n}4P_ zv~IcskI##$8h{Y|mg7LB6JfR>tfdNe^Ju;!eWBf9JWDpHk$0bvHt~h42zHk8619Ix z8mqODr>HF_*X!S%y#3GT=J~!=R=3}RstO`-Kba$>3UG25sYM%H^vNg1k-hJcI9o*yW z`h_=nm-4FTGM3iqC;3~F5xtkI^nK*9cb`16T-LARpk04E`Rdn08wFZEM`@i8Go9=E z7D%^yM!nZQKDjr6pM=gl@*IC&zl=6WKcC~(@od!1-BF{wT%_e4FK=XCBT$!LP5Sxl zm66>0+dpa#)y5y{K_54bxS=Lb!cGT=D34olrvU#z&fkM~8av7lr(Jn3E&{#e+B~e! z8HLXUT5lzDJp6D)@sqUtW%oZL$`~W#TlCfk;3Ep;a8lfC83Wp}F|3#@Gh_0q!KK>=pUmO!0XC@JoN_?m$zZC)-;0@7S2wu}B^xBe&x{zRAN3dunN zGH!j?A@A_~CGg#UwgOYQfmQAyfA)futgYqoLyQ#NM2_P{wy8(1fgtfzSwc2*jU#vbC_Zl~h;Pba?=ew!5j`9LoKKO#gsA_+S@ z4By^0J>oZa#24sYL_B_EB0ew76~<~rrlv<`dWuIZfe6|nuUaC=kb<+rBQMQEI2-&w zSx4nBMNx-Dh11wqmwU@vTQ_+csgy_6wnt~qMbbG%XIP@asYP4UM0L^G^+hN^Jil-> zeEFXCB{VcRZuiR)Tnw>A%-Ef}3kO{fAo`bR%rbuLhn?uGh!_-$FS^oE#D1%Jmxk}{L^jC|u@L_e!00OR=>{!JRhXT27tNkaN~aL$^q_wN6t- zvza^SGXqAT&sk7np+XpgSNinH=%a2OQ-}P{ul1xMAFVH|B9Eb$AlKI_LXkf?{tkb8EJSfMQWRk9Y035mXFNN*& zXP2}jm_ExD%6e}R z5tjnaKs!7W{x4x5gWvc+*(uMRfKr5cQ#X0?Je4R3l8u$0kkx?W41qIpbni0sQW6ZS z155!T8JPo>Go0e9yB=w;g{Jv|cF1boBS1#kDlOeA6s!t;cTe|(a{WSp;7o}tcg1L^ z3*l@n;))wuCNRa;4cJH+S&brEMKj9d0}aI=3AKAcHGKVOIJww# zMz31X4(8Fr79^^tE65NkO?lh}oD1&FL<9Za=BiG5Z2JQgMD+$#f_~ZNM z@zh*DPYk5WGt?O3w`@GXjBX3y4`$yHP!Fwbtsge=C4=%!S16iXG_B1Tn}dxI@A#%I zU{wCXyS)^_#jdJ7=X-t3aeE|IN1~p{S`;u>x5J~VqfEV(+`K)zN@AD+s5gt>c->MU zFGa+I>Xrr3qtfLGh17l&o5v$hmN)$n9UgfP%pdg(J~X37>q2zuX!4O)I0hvobPO=c zKv2OW@}?+aYToejpG3Pl+&lM6a+iE!OcD$?5h)s>Rc7q+*xN+*CRwg8{6O=YYD5!; zaUx?kZ{RnLZZa$WX$k2INOw(fFYyERVQ1G7R$w<;AI_@sl4Q(Rt;PvkAoQ^!Vc&EC zt$cbOn6wr51nTiZt>?3Fh}3&Un1%h8xB($s=uW-Icp5Roy@&MHKbNuTO+g>U$v6Cn zW_nTQ*Mi@$qQCQZeHW~@JL1Fx5r;1F+YA!13i}9y(!mJund33T)OLvyyi~`8hE6G)Pn&mA35H%T&XtXytN+ z=ZEg?aWh3z16)-bytD=56SuYS&eIbN?ho*KkNFB2y!sGeW^7R3&kr=1n=i4`p3u^p zQ3x48nhqM9Idz-<#GI<>r%GJo;c+_a?U(8`F6Cq2)$_C%B(%iR@Pm7K5ua)?q((BL zd#Sc*HkM?0v`Q(4dHEi^l$xUwpR;^xwv-+|k65H%UW+e%V`{^Tzz>#iIO!z7)1Q?8HyceScKGI#c(5F}!+j<5c zf_^$Stk0+~_5dJ21bG^pHDu}KLH;?il+o{yZ(kLy4Pqv0*sMhbH`ud*Lpfe!IWF}= z4zoF>UFehJZx;EQx88JHznPwSv-eY_bPFXH_u<*%j(IiV!xjta_5s|)b^5P48fPN( zZH`zW$uIHnmlFcHqNm*;sBzY9F=R_)=WxV5-yMKNE-P=J# z=qzvl9nf`spQ(8-gjARS`uX5xdnZaslzIKYICwu^_^_LPGx|MOwE>wadeT+WO5 zmzP7NVx?!wBkpD{Rl6ffiM2`={?yu@8bhIsTo5Da@m%mxtD#V&FwisWxESlG2jl&8 z^3m5^(L}?Op|g~_+>_CF$74N`gD)q+O~*4m$}R?{Z#YkugvF+NPM2m+*D-iTNzWE6 zw|8p9OKK6?`8KYuyzraXr?x_eu z*cVtL1yqKfzp(uy3XOg<{n{XOnq27P~pCi6u19`aPQ!?6Nv$m|@4J zWP!ZnB%v%2AhHDJHNw+o{ml!Pgw!xUJX00)9vB=q9O8c$mUl-{d*}PMET+!=;_}Ce zUNmW5vR53A&pB5b^v)B0GaGsznpW@ld9}=DNS*Nk(4dOU+dWZmtr#;Ss0^&dd=z^7 zC}8y1&iW|q{|Nc?Soi+1ulKQ+^{IK|QLEv;HcU9l{~?)mxGN85(1u!MlQS3dVPUeX z3!RY4p;-({w5PIi)z|Q>@b%}O8x3M$ZHuhW+WP+fp!5_!)sfZAT`NS}|85 zLv2?sm6;Xnirhds2G7AhgAh4OEt!K-GW6SR+VX3G0Lcw!rYreO)D0?!{lPiaoX^{W zsA`6(is4E%YQvKDmXgItoUaU$dhyjGEjC`3RGtf``VhC%^?@v{bHg5Aw;2RM@X1Dq z{bQ6uB2W~LDxBnPF2Xw}xJES&h^{tgfqs-60uA!8*EVzT86Amw%`Ct@6C302NKF9Ylx=%Z;OiGU&nF1|yT9u0EqufncGOVkOm6Yh@8x z=79MlM`mNtJT=b6grt-#owk3(kkV| zOnhhsDk}LeHIV6ZR_>9%{iZWjS|mg(e8q zMyupJj2hZ1pMl1|j7)^omLj_ahZP;_Q7>vPaPp<$GtiZg+ll%I7L>!s1a}h0CW5Uaz~$kM4>i#(xR9dAtB1-Gh9D%=#l&=WvoBx;&&35C?pcilPI)i zz7hJDC=^Z3re~oK(ZxnisCVs9cVhI{U^25d$D+@S2#x#{DgVG7M2_CV?82yOI>0T4 z%X2kiTGSMUxl0Ed1K*D}{woS2g%-M5V+aFf@gx%i-e?wk50ghz)?G`*%Qze6qMIv} zYbV9D@SfUq!(->?nJ&4m{gmayLMWLwk5J-0-(_Z$Q%e;Wm0}Bs1{$r5|gBMot7q*Pde2o4h0b_W) zbci6)nHih4F(MCstrmThy}tF#_ucugct6+-mL=ma7D^K3=>neA)yji@Yf_-9tVy>2 zUyR*lR9o$$u3?}+ae@^sR-kxWyv5xqP~5#(ad#*Z+}+*XU4y&3yF+m(IjMYWt-bd+ z`<#CnBY%@Ql6OAyx+569iO!ATFydZ7G?5~s`Cj%>T3a?(Jjw={T*%F)*DYgCSo8 zD=5~+J}geg_g?Xb+AT{tE>2O!dSyon9VmhPwP9b+vD}+s%IE)>D)(pQg^u8s(MBJy z?6og*-Q9m3e>&R)?@-|fxwnhU*~@>M|CGoo0UKN@&}s6uk$C%P{-vhl9$f?l&5D=5gOZX zMek8xrrE^Rw-h40%^x!4u}zv=-evD|9<`S#3OZZf;~m=vA(NVB;I8b8in>hFnAzmA zuN-_-Z|p}RKgm~KIZP(D(*%0hmpQH+X}@&U?0fA{6~B^Mw2C-0(&kV%CcLk1>AJkb zYKnpIkD=x4)=MeWD4%|yQteHPPzTW2dS5HH?YbM6-8aQkxW9fP$)J1IG$t}@E zRYC`E*F~*Ss#HbXOiE1C(?vhs#Sp{7c-2+$z+dy&^`WLjhDLx%sGCJWa9OiwD{a_rS( z+S6-3En=zP`|V1kN@^*WOOls0x|Zt9Le2KHbJ-$0DhK&FC7pwM9MRZNHOV7~8QfkB#-0upodpwIR|94V-Hd$4R;RN}|G za^Jx$Y{}Fb(GjS$*qn|kgP}S*NlI7A4A`!U7@#_RRs&0aNlF&O5MzLtWXrPH(R-#2 z1Mv@yMT~ETgG-W4=g0v^7PtHRrbkvGPkqD6fNczh*X@RFu@On% z$YczUZ2O8W8jQNp4^Fy`dTx&#m=E;^j!;L)9Bq%DqJTE8WJ*{@&nd<(-9+|S#%w5t zuH5<#4aRPL$L?ar&|t^z?L=p4#-66f_=U!PD)e4ojhWkxK~avwu#UfQZ+#GwHSZa# zsLUp<;veOBD0z|u(RqGkYV4c8PX+sYY!BzypGt|N$ zl%vzgy+RenHxN3{mJ?)=LXZcxQA85i_r@Jg_$N$60OUx8I}cm%{4#J5geO^H-@bL9 z6v+vnA{wJv=|-=Spbr(s-I;s`_vOG$bX5iA32{nbd7L>{2n;x(V6~rOpW(sr`NFL* z{;^c(ojoFQ?G*RUR59Tc4Bs%%N;eD6G{3=AILD-b;H~_Bj>-pY8gBe@wdw@bwVR$R#Qia47O!28nA*%Sv~VgMfw$3V9k8Y9k05 zGc$f-K5%qiT00Xu(g?uLneaEWJ{(GZ^NNN$Ge(B9UtiCLtIQhvDSfA&eWnF+N6rMD zD~2IV!^s0rmSy|_%9Rve%^b>pV#@xcP;^V6Icx+c1}JA%1Q!sxa_PGp$v{PS7LQg* zKH8acEERs2C)BJQx~)0AHcv-LDezO(ZUOQl4NW zJa;hCFW6*K**$fTTy4S|2a(zeI7u`I;{_WZyD*U>W#vnryi+Z7(pBrm!okUz&dTcw zvzTKwAFSgQ%Aw}1qUKEs)4H{A3RH`Xm@`y`?1H94DkhIrRhPQv$_G`vGv zOjRCLtW7=*G8*8>azQzFUVjd@Syn3{gdht|X-$-zla3C9PAVY^-cEl3g_n>y{ zpfE~RnVS3w#i4oW>_S#VuGi5xE-R|$RjN|K;9~xo=y~i3d!W+zoEp-^qkde-_>?pm zCR2lyfEpq+H59;h(YHb?OvS5RQ*B9+qr$6E&@acA)UUrseZ_tyhFZBF2UyI2;0lKu zYl48aBp)=s6z+xN;}o8KOcv0&EE^R4!=7d{cIBcq_{X=@E4T%fEUge@wU@7!e07#! z=2vq#kdxbxpQ_dn#~D%%gr>Go*P`)0mp9!g#D7uaaz zTL%`TRs%Nt)|X&Nyx8Im4B29Miet{cp53uV z;+9@Wn?V?81xkyf;J*rFz|jwAn8joSf?;(M!Ey;Nxb){^D}x$hs{6}I&-EfWFa$Ax zOkp@_wVM)Cs?qZ?oM^%R1-fBSE195;u|T~{5JC^P`cM9)==bX0052p)1bAbefc}B( z=8ZkwI!yhwFe^NPIN*D?kP^5#Vh|qYZVYH4P(r*yXjbR3R3XL*pT0Tf+v`c%E94hc zfm6PLyo-@f_K0euI??M}h{wUYvwDF}M(T$ZKUPWvWnw=wdiAOTsb=SaP?h=iAN&w} zE(YdJ2UdNZsyd=YIaYzj@Y`1li&%q7`#-9hDi+~waiFv+S}>#PxGs5E z8?dHkw|m3LZ(hSMW3>WRo$P!A24M**1L3fAn^K8u_f9)JLf3}_UtR_6g5Sg&urDiT zcn-VfueBbkVibEmak3cra&t4!0Qd;EE-M2{K_CLV9uDCI7HFXxP$8;$=pB@r?=Uh)ffU46)QBr_?J@kS0%Pwr(U2J&ez|s4lfGRA*jk zGjs$&>J`Egu~#)E5OvW2JpO}%T4)Q83$Zis-OC7GixtaSdrn-%-Wcd zstVqF%QjnSUdHFD?ohQX)mr8z`mv0Y+&y3dpfHEn+ZV`xsU`ZhZP3L|c(@79GC5^D@sTwMM_SxplDJ z3r4KAQGo=#jU6TF>;izdFbTKLZxLPDG2N7bF6m9cbw>ehgrY}BmorB%_B(&TozL65 z@9aQdUZ;S)*x0PN+i)kx9*tYyhPyd|;m|#%mV&!5T!b)m=ZKdIQMmUpcz6EFPO-|^ z?sLJ>;RvmnpMW0Lai61NwC{DhoI|bda~JO;_MPjHT&_PkC)_$ki#|juKSXJ}WUqx~ z<|6>>oeOVoy}$?sU}ygX$NV{wg0tWfCvaCL|I?IQguMZ8% z#a@3%mw$=IWpJ&3NS6v)Subg5dD#CU8lw&v^!yf$iCCGi8zXWAq7mgV6%hYJG#*Lj zu>C6<6JdB@7uk{uW+O+^DkMeF@aOY+RvF;q>=*b7vFl0~%v|!3)Y+ScZL3YsrgqlCYIvZ)$jwazUobOI@9&hZ=y06w)@vo^OtD+hjcNSY&T}p zYEawI_bJ6{V|?FSr{`a1z1GXg&i-wo+4iB1gQ($j3OD!-L^LkCgt;XUvHZQ%>_wg* zI{oByb3)>33*Mt{J2&547^-G1_`oWBi@d=Z;{L@$;1O^!H8V!y3jOoB5tdZ_3P)DQ z3*k~>-5ZguAOAa=NI$MGCR>e;K(U<4lfuZUduVQ38eByXs9q}vK_--u2z#O%b- z871zRzGn;k5+xJ&k=S0BhbAwwS#w}FDO=biP5OlmWT}Zc6S$Y=b~7;H=P}w(CguWf z`bsR&L~lRqP2NIeHp)T2acGoG5V;@zpdpR-qOih2o;6JowFtN*PX_wHtLV_iuk7&f z*HW`d0|q$gGN+M1ZCB*o0yC&4+(r&>F1UUnAzRti1+S0?`z>&zdQb$ZRJvbgNv?uX ziLkU1_aog&U4qOIef?G(-D%@`mSkDeZr;&p(^(zzS_3< z7JaCy_I*1&bA4jt7pu~C56+1WmOe;Io9kt0<>R2I$W=Qvqzq#ZRrYPjPEj8ZoKwv+A=xVDouJ5FUU&fMXUNF}0h4NmTuz}Ho=`rOvO-Gy_=5qSAIcRQv33S_o7hmKR`Sym- zu3fLVI(fcz`#dhoT`nAPaf?(f9oCHj;38evfV z>WPsT)$aCIJqZkhzz2;M=5@nNIt@?FccGet;;-LdaQ-s##>9l#Pf`qYx5wG(H9&b5 z3_PdML-tV#qpISJ6Oh=i>B4?JKLF6To{j47ehwH@0Vf+!&1kf1BD9UrwV#_5I^PfpttM}#=kX>QXM zUNCMmGXf#Fw@Cy+#heE0L`uW~$&z|_$)0vUa6?rSY2PtT`r6s1 zqG1rbAyKsO^ZTa#e6!^);lhMTiINC+jX0)OHRT6uLtZ-dM#`n>!@HX^ukIH*@}X+e z(2O&MT$DgOA_0F2A()&q10Al7ff-4fYwf76&zH}-;Yw6JC9^^Y_C8{L>DXaPNSdY^ zCNRVsKkf9t!3}79l&2pE{6hAT<&_svQ&zX^4|3-b8rv?&xi3{m5Mrc|0FGp;JT)m6 zY9r_iwK`TmrEWRkL-BXMVysCX-#nbkRN1A0g zI3*cBMx>1#R8D!iE-$Fju@Dy;FCn&KJ8d};1vW8%HmUHmok+KX``+letcN9!ARqv9 zv`Fz3NQz)DriWFf9x83nXfJN2gHpBfkf!|3zP8+0EAY$DUBAj_R4XkXx^tGWk(pvh>Bc6Zo!+P;&bj3)6+*&@)Gk{%gmf|YXHHrn+WR!7I%>+u zjC|55@YXT5N$QtqJR&@*XO_GqZkJzCxG(bVQ@<}Us{fmlbp-YJzod%^4*q8urb>Ai zk(C2^v&A0u(8?ms6jP-&mA(p*^&*p&4&c2?w-;OOFVR@*@nKHP*Hni{%-kJ^Q@ejv zxhlN$*ogUYp*QTND)+?PRM2&CzRaPn974L-J}%9o-PVClzS(?tUEXJOY#J*)b*O$^ z*$umG+Bvas>2_VcD|2i+D?Ri0@wj$_cGot*O``K_sRZ=v6kM=Du`5(^PiaRlaiSp=5f~Z0_iFvE|B<=9tU8 zC)!O_@XE0PZ}Z~Rs6%f3%Apx#sk!m&P%`)P$U6UV`J~OUWzGHA{bkGQ%Q45UNA7cD zQMXm(vAb?Ut@F@;maRAGcln8y(Mwg2RVO z%$w5K3k_QCqqp4Mt5NRLWL?=R9NWU%2E=`wm3GL9EI$q_oO5<2S?Iu9XT8bX)nLsx&1E@7J- zzepE|WxSsdcG&QXbV0AwI>igWsg6_uDL~jmQ=wu}DhtyTov`TU` zWd7vc#x&^fk`ZwLv5qu|XzT+_xq^ts_xL5}iTD3aG^WLPYK%X1%$SHygj!5Rfr!Qu zx{UkrHwV$M(3#0yNd^NxeubG>rk{`rvM7p#C|$BBV8}gzS@g67SJo;F1ldCy8BA(; zL~7X_N!g#8OxS7Th+wlh339AIWciq&bJOO;!Gw!7<@jZ0u?*(Ox@f<}$W=(fzw(Y$ zL(G!THp5l>wbYbc$YqHXR71+6k*DW1&0`+S$~n(5eaOSe%(42E&pp9ukrXE?k+0;U zKsS*@DU`!$lb<9`@~t8fM4p!{pJ(S?U=9w}R;F@Maf)?O zn@fBZL5V_A{u`zeG~E&i6O^o$=GBDXp_cp2C4Eq$#Hq5VHn3z?4QH{bR4O)o<*@Xs zyBKAoU^A&?qDgMAsqA>MjIvA9YoX-yQ#sBA(uPDiMNsM8VcD%q*-w`Qa8r4YaC#d# z<}Pi;Qc*cVa|Oy{85vRzs%zN|K_#txDYk2+F+Sw2N<8EYqU6FA+ltqZ1xTD#RIXKi zy%|%`mDIsSSW8tHdX?`vtH0b=c7jc-S%!)}Hdk{kRr9E)ay(WGaMnQ6Rtve-h)Krs zC)YGK)|es|NfFk{52cWE*0OKZSgBSi5oV>xLV4t+sSmxkPJ}v`0q79cu@=FN1=fA^ zt~C=+D@-i2+p7DDSi2>j_xmO^y%xTurg6Gx46J5o zfz~0LbnMN{iO15GLhDnxOegStb46Fn?nflG=GJ}n@J+MV-nDJovACznZQlDWNf!;0 zpWxS*%3MX-F6lC^mfC0V+UqXcq39D}kK?4LD;)>h;g&nlP$FT7DqxmlUOsgMB(}qF zc2Wm*zFO}5WYRuz)Jdtmz+asw>u>dXGd&60ciK^lXnLeVh;xh;*V`!R^;l6XPq$7#XDY z1Og@W=y3HKq=ac{^cqVgXr%O-FZWtJ^;!}2QPB0-Y4j~S{UTk=8hc%q`#hfdyi!1j z^zkSmRvUFFlmp0bAO23(Lc*Cq#`P5!1rT+1{X#c z*I=F$FxYJ{%6Xv3JSs-2BzJkxW1!D8NG_Rv$mM>Zp(LaEw`g1>HY7DL*wGSMuJKni zrty(z8Xi`6{xbesG2x<%wjgxQ35Kv>`T7QYgnDJwd))1Cq0*-1h zu*K+A>jaUe4JJb@$;t$|^RW9e+B(K0dFmvsW@YNe*Qloi?AFP(f^h_J@FbJ_lyE^7 zv!smYgk}!@)bXbj3e*I?Z&j$FQ@=#x)@iAgX_=qXvae_4xn~qKXO!G$R8nWuT4yv? zX0(3J=)9iQY`&HH3wqUjNNTVQ=Uk+wpG1;)vcdv%BBc+vc~Yon%+H1I zY8hs9i)e*Y)+SSCnTvT00g`#ven}*PlmbA_*HB&kNi@AhflF{Y^@$S;li2*F(%(x~ zFyZj)WP%c+E+)?um-tO^`+j0|a4!dmO<{H}v3yvWP7MIHVm*Upkwr@ra~WzDH9swt z`epvaz!**o&0LCT#!LLRa_}OFU~_fPeT~_;fzl!4fFY;4a?W>Q?T&jLR%?9^xB|}@ z4wJTy!Z>-3g1NP_4%N7hskQOSV9$O0Essl4qIAp>TSGG=6K2V}<3$=9#YHc?aY>1r(=DBW5 z@_1HatXBWruHWBQU<_zWl~8Wmkx%UiA6nLE3nDPz(Ovad)!H?dnY&EgHDBGec;2-l z-m~G^v(wsh@Yr)o+jAM!aAov2D`PWQ-8+xRV|9Cyop>{mRS zA#-Vtaucv=9VOCKHr~6S z<<$$)GfV(D*W>kNH1M2?*HiWK;>hHJ27Kvxp?3!^x_BS%&!YX~`@9whdJs(e55xXT zo^;(YMfwsz|QzV#xx^WnYo)xPuh zyaT4+1-0LWtldF=ibjy!NAcc6jzHr)?-SDRliKf7*6!25_ZcJ)S-cN9+7Ef24+ZHD zMePqIYY%1MhYFI%D&EJM_8msZQZxOLUHYnN%pQ-Ass6Dri; z+7sjP)7{*Uao(TPYkjLNYWCVcJz{)bgPj5wJoi3qzuF{wuGv7}^?cq>e?Dw~K3;o1 z1wWsYfG>H$SK8nkPw-tj_?VaL2weke4FC6~ zre>Qj{+C?{>7ptDAzj|eBvU#5C0+Pk^E6cWbma1+k!yVLC=V6#e~~UpibqOinyntM zY2l7lstiZcgp-v{)at&iwD}P#pZ;2E%EwY)pK7(a-#`B#R5{n_@kWO) z>rbS5X)qWFtqdVuY$>FZ{zbY-r;DVjU7OC9YPS2oR=+V{tOb8tvnaYPYfrhg0;e4j z=352!ydekxK4sdhkEHSj5dR`wJl;K0D*ho|JYSNeU0egV$&x&QZC)H zlI;RW6JdZbX}IM0aetF8-g@Qigw{pYtgaP$VU1ZX3aD*YMifCYaf3SYM)*%b@)39*1D7HLal-(KTUG9Xs$8hilpTq{`Dymb^f8*gMAL7blBvJaXj zBf+fwaDNQR^C?L0#1tq=!kH=wTY^}bR30T}l$zYgA|>I`zbR060GDD56s=>B->(K4 zI#72&ys;MgOa_#tvT4F;m9i*9dI9s!ky;H~RL&nocF4wW-heu22Exa z(Tpb5Lot?I;uO0=uS%#lQ(+?)AKRJcYo!vT>aBY%kmpV?kr9A&@~DW9v{O9r?=&Js z*+L-X@8iLMT3Pd6x~GNp9+MJOb#7;pH1fw`b(=-iVg~xB#xf^s0)m~oSEmwNc`=MZ zD1jUwzD1Y2v>k#s+1hQgtJ5nCbK?Rss6LukzL31#{6HabC!bR2Ne6l*W^0@(>HO%euH3yt<-7r2RJQ_T?ds$tFPTt}Z&6&+f;VWe8D<%PNH}kYaq* z!jZHp=@!ScO8fK)b?T9Rq4|r~k0ia;#^L-|^+SP6HdP;of$zv+iI8BCUo@vuoHC&; z2d=M2eW=kn1M?CrOYDrZ3t&cpTv`#3pp$FbQ}6U7l`_}s?8rN6Dtw$abxFUxzXNRR zf>6m0GnMqHV{i|16hSZ~LOysgloC1Wf=@{@HbB}ysSi*VWN0`3lRY)>`%J^LW97Vj z_<&xAmb+y7&_OB!Y;}=znA>E1HO6Eq(-wgOhv{E|w&CuLhBng!@`;zg==;{(h$P#T zJ+CM){xpyQAzCL+c)s-Y$v6q!m28)tK-FtnfVk_}&MZ}D&diiVqxoJGQ?W^aIf zg24n`Fu4FbgmjUTH-MInuXu|iXYbe@hB|33>cuhWVwu`I{gv zOUP1_YD7~-)sPoXqQLu-G8#_Um@rc%#*b<`T^rF@HO?n8paZ|%YEtkpSURB)GyyFkV4B={MMI}s0 za0Lx9#--1ygR+4!*@A{93Z2uR2ryzZ*W}_^)Ik=OOiMN_MnxRA5m= z*LoyHmclq2dc@BEb*TvEc{o}MOg00(vMSP^VM8KA7rT+tDdpWIM+D#YpKbp zd8jnkGzYS9sBMNUHRt{p(q*Js^%v=Ki%Q6O(fn`H zl`kcc_Dg1v$6<<F)4bzu#3-4t)c<5(7?SN+PpRfHhb zq$oYZYV}c@1W?LM59!(GFXl{(C|Jt%6(0+};|zkT3b#u`7e*ar4;G6 zGrs-#hN?A39HlDRY!?w^K8JZ$l4B0Qi4@_Q|=bu9PH=-zdk)pEJUa`i|0OZRZ@;T^Hy6 zEH&-hT~}|xtGDehJc2FVET6A=X4U(@KYO*hODcT7OeNf`RmYN56eU34G&N+Q2o4t3%zn7ZZeI8eRp0NF1*!|uV zzn7Xq{YPefz6SmNcKrdq{lJ)iEj4@kL#F#fbE5qIEH$wQA}I!Y6g;f22!R6Qn!CEHDlf-zz$|o3_=d+vV{h76b5q*2J`HGFExo!G9g#5 zn!)0p!IJ60Qpi&CYOox3r~+H^P0nB?%TTq@P>sS+?XRWgP`&R^L(EWPOL%0Fpj(5W<}_p`YL!bkVD8IWv?AGR2;u zb=fzR0$BD)*oyM1%Q$52lQg;Vz3LORnj%yqh{TW&WsM}wiM;&u5C)=hxQ|6wt-NIhDM$?amp;Usg*w7;(9hVnt+UOt|5EYHnqb}aqd}v&OthK;QO4j zJ724_vdajs03nh)NSP$0GW||D5MkaM6y$ZHe6~JU%{-5xIUiuGa*FW(?Uwz!?=3=M z8OuDS;jv@1SnU)72j5> zCnRw6%PoThj^3p>|8dLy2^{@(%YIC87mJRywYpaIuWhxwZGWD*yZLdnX35+J-h{&J z)3$-N=3nzdpek7Rfw*Ps-vJ`j8@|{|#=0I(8;%?PL=O%b{ACDNx&e6Z9OV8Kf7USj zo5An@wT9u?Er6_HZuYmr`QT}`BZNk;(}hKqVkm?qWu|k4K8s)*+RxxX0!J!Fg*$N? zzuhu_n%xA0IFsE(fq>J({j3nS zpcw9#{D=EFF;SEUt`SCRUU{M>hX;8XHc6BDIX;V`7R@|#7}z{yEQ)V|QAi>QOMI{H?#E<13+1#oN z@Q%p38;h6z0)(w^Zrw{{d2HQGdPHc``G!-&2K3e}#iozWlm2puqT9S`n0l(DYJ`64 z*k+h(Y}s~%ca6wyRPgNh#{}P-Z;=y3xGeCM5VwpqA{o$gJgxGzv^J>2;^cZxhn+)W zhR5$4#4UT{L|z3eeBj`f-nmk@+&3}eumaPYdb{kp1unf^b9-^>xbBN?akm0|YgWJM z{`T2nD+KxUZZlkx*m)ybQ0wDvJjtr_Zk*+5<9>#%%)?$mdfBI)60=p8{qkhu$NlPf zndYO0?zHCP=C!iNvz8ZUuID}ImMtg!`C84Ft#8|1ehed@JzZ+PX>wYe{}VVm`+2+m zCvar>e7~Px{`_z(>D;<^()SMhr|*5YR}OyOQXGS%HBi=tpWgo4Edxf-qKI})k*Wmo2=CX(lm9M z$?JA{Z@T~Vy~_yRewu6SGW!(#Pv6^F%QWQLJmk|4XRz4tx$XO|mM*JayebXsehv#q<-r5>pC=2x`yxkQrU zey@#x^}Wf(t12UQFg}w@F5rHvHjiaM(PbW57IvwS|>^IT+0OgQwgrCH@m$Ys#fKH``+=jvSQk2 zLu=D~ne9-cXl5^@)+gQSI}jYuT(O4NK}2}u^WQ3b5#JzwNBP=?XMu|S5V?WIOx1?9 zP#*A-V-xdesz-F&LC|C$czdzV5zv{*7i`rZukkiPeyz!8HK*B40O2;L@(d1O=C_EVqDb4`IL zx8CRIKY^n)fBoqr#A)+d;LqC%I8^FiZW%~}e1*x^>V6Z?!wH8&nu1t=J}-VXB-cq|vGW^? zZG1Bvbv>WL^7(^>_c|Qd>AdTXOF2#-v?_a}{R&VS0j4V3<``oft~Imu8|H-cy+6?_ zGTPlg$8QTeo`Is%G((wNOJqEoRI}UmQ*Uqg1YhF@pFOEDo!vXQfG%@Cw|>MZcX5qVywYpLKGGF{_eoB>5pijhAxMZ%-HfTFg_wM)9CHs z1)X=#m*_M1?{?bES&E+1v(}bQ*m-9;1fN5Cv>|~bPmD9jb@~7`eQ!wM2+#Y!^}UJay@~IHS1g1vp-|L%K#hIeD* zkY-5uvxZUSy!#I6d!O_FUBkp-|LS`?FnP%Ur3`WX_6(2{$-gT=)-ZUuuzr3Y>jcm0 z{q(5mr8xe}8V0oKpW^r3sz5@Q<9FX%<#RMyfb)ES$KAizFp$6z5VD480EWy1-N8nJ z)bRkfeV|bcRI+H`gb=(+KwyC#jbe9TMuYzZZcuwp;O)&uNOao(rn)tAGtE1%rCsG*XpR#>d{!}g)_FA6#y#{uze0dqESC{ zGVHI^!NQ1qZ>^j1BLZ=oZi^bAKpypW02@dAci@PIp7tXKQa(1$t7tYb4E+nG2oZ0! znma)B2gOf__;j7o90R0LQIRm2G47d&44HB=&N0UF(Ye;fkAH}2giJXV}Boa^&;XWMy%0BoYMj&RU$@Q zpAEuYJkoZ&e<6?l$Ed8>1QZ1}M^!zAgM|NQ;K(#LDl*V`mKgxzFpDk(q;Qy00~3?;^>ARP!x1~<@f-oog_>L+EL#zE_{C!|G4RRpblA-k5eHbmB?d+bf;bORXr z8^l+3_-W&c+)-7A!Fx7xRqo}5kp3_AaU-TvWV&i)Iw}%bSAt`*ND7Vw?>RokYc*f? z`pm9LC#``5w8%7U?<{gPp8k#0-NvlXLYeOe)0rMrX+LGNQ=~%T-pU((T(p9$hpLPZ z*+ObLA`jmDE|9FZ-oV~x$s!S+haAe7oL%8u1z|a*B7-lRDS3Vo2p^K=gIwhZ@|0t8 zr^Lckbn`B^@xe5Jbm~l5wj2bqd}RLoyNe7s{(M72;gpHIASGP_HK;xlfXqi3c2y|v zpaS?0zudBd1w}Ufq^~Yb_<+uWlia*Szcc`D79Bo^OJV`6Ts-@tn&S85Mv%>?rdP)I zs)Pr+lt}=O#RLNhAw*%h;zRYgLkj$xA|IbT*bhYjIsV%ifO>6)ZLF~sk}4)Hez#wk z@Sv4 zrMvV1Bb32d8+SAnj);{s6#*t$3+E3Eyu|^OOEmG{%QcWNMpRRxoFZ%}%W|lyv75#T*ul8Z}+OcN+Cp&NpyWqA@!45ki^LA?)P&YFb^QU9eco zwqQLbe-r<%-hyO6??WZJFFm%eV`NvGOCklXQ5(O1vu!Zq=q4U+rW2!G43H zZaeW%AxsN5gR9X&at9ZTTR1W|Ce21lBJ|A7@lWN7Ql1@I%PK@JDa;`24jV>y; zF6xvn+LkW*Y<3H|^-TG7 zi?#Ih8TLp$_0;C}$cE7Qu=RX_tYI`<vMywVV*2piTWKj`+OmRBb0C7!72ULdi^1g zzITdQFwubdW`E4@zBl=xc@m`WP45}~G@!3HkoCLo?LRP30O@-ZIYBQES_%wSln~Yd z2Hlv38iwgMVux_Zhg!@fAc^l^eQ%V{leI0<*u#*z5v1>JTmVUY_rVj5xcLqv=zg*LYeW7p9lLX54Hx~5tjG;!?NxU`New`+RoJ;Y3c3+YWZ0Dr}V z_XnbKgfi!_2^h#v;pmI2 zX7Q~_NrGT0{3)2NClTe^gIDOMlL1&>9g^OefXw`e&D_q)z`i-`dqu3bn^{?Vyl}06 z6f10MQCVU+B)AM%#Lj6{Yu0i%%m98WtgZ>5Hmd*;oM*bOgXENANKFl2hkrN}*WEN%v?S&@RowuD< zC;oHB5(9sYHU_z~8T!U+wT4=8n@~V>DnO!QO{8)er?Z~3e^pH`6^qQJ_G$hCH5swe zxfT@z6q_GpjShttjOpEea4-T_G0yQ}dFdO*D&EGP{n`g_i?^+a42^Jbukn3%Hncji z*bL^H@6r8Jv8hfmv3M|c8izi80Q_7DjXMD-Zu0VKL2)ty-qwdq*kc>W#v{mJH>)l$ ze$#xJh4mb<)hdyU?J@EedJE5b(bPNNkbkGbB^J^w!sV&?gtmzuxqZPoi2^-!pb4-j z!!%rX!)=^XREnXg+=W|5p8E=*7zI%5G-80+kSJJ*a84vL831+Tv)B_!iZHux`Bz?$ zty3L-eAYQw3kK|S1FS5n_PMb1(w4CzVFwhUO5d-_S)+?Sr@{eXlgcn6?`6bgBZnBG z5Hsd8(TdhOT~gTfsb$k!sIa;`>G*Nji3{YcG||o>qB^rdyL< zhLK%ViLP5|P5d#ebi_m76xL3cbNdWq!ilO&{}J{A{wH97XB%c>LNjxxKY1DfrBt8H z`s!|ZMiUEp7?T6oFf=imXpfvgyz~~laf#~QQRa%F#DMRwz5|>%qtm@u#Hi=9bW~2p zg%5jkVKK<_ZXOe(DsqJ41%H~%ha#ZRE(iZQvs`>q(~b)F59E!Dcc!{8pl@EUs$so5 z7f)`nWV_O^o?tY)R;ji_N%*nfnJ;90sI`UeAU)EK$Spp0TX1pf#d}Ad-tbcQL`%@l z(Dh2|&0X8Up^@N?5Yp}UcN7lV*g)-HYnbZZjTFzBFqJ`ld&j*tyaUr-%^BIHlE?C&+q{{S4l67fKh=b!{!WGi@~k;oBI zACoF2U7>{Ns_{Y(%EF4mVu^+g@|KAIYYp?KTlVGQ@ylLF#!L!YY@b5L*sfFu|BI09 zJ>c=b0Y?v&Onfe|WVBIZECmB@fvU8aP7cODe2SjhJSFrhvazF!<~;3oIM1!tyMsxD zQ#5XDwuX~QnhnM;&b*44nasBxmkW}FH2V~ZbvJa>{Fy&l8H(C*X zALGnd=wUKT{@u{$;*fbMd_pKWkjREffXH#9T$scS=1pHnS^;VfxiEfsMt6j3KuLE9 z=3i@=(yoa9jjEwQT845M$Qq`XqEh1RXweUG=2`tpN!AtbN{M%f?xrKr`*xz@9cdBP zWLzI3#>FS7cWtZLQ2zi&=f&i)FbD%_kLG^?N35Gw@_)Kzl+_CI(t__46_qtZL4O-JDS%ZGdIfu}cD-{|lYID!i@X*lZPv}}d|N0!6{%LA6}@Kj6Gb%;NKBlrpz>)v18GOFAr zn?c53z|mEM^~f*aNSNwDw@qC5z5TSZQS${8s`7yC>~G+x_r2pc$L(gv6*p;Bht)s8 z(bv++NFxYvlC=A#M`tcWPgRC2CRh>{ ze}E&Bd)tPk$nw@daa!i7b47yR4e(EE4q;PC-u@K<&mjRnAq&kIAo&Hega2% z?f3CAz8N&o$L7WYd>=+34bco7pFlyT2H7LJs7#XPC|*7eIT(|u-@s9WTucq7eN;oZ zxWO%s%Zzaj>t>*^b;IOSQ+O`VL!cL6f*}q2;?2u2Dxs zr`-kok5oxT4%1W|Ujn3?Ig~PrI!I+m&D6eo!uSe2D>C)jlai7TtL>RCvGnltKWtD= z;?1BW-!xMzEtqawR#da6heWVERbut|es{|RU;OEoL4c!0nsg+GN*F;J`R-fQm^auj zQz#+85u#i`$=|@yKt@arSM`B~o2lA22ypb#;^6N!%!T2naB;a!hO4Y5d&nAwc6?Rp z?==iNOKcCqrcKV}Y}Y@PBgECwW`n zE6wmGBDP5Xg}my3A|%RH-n0q1jq6u>tcc-!{=LpvR7PU!wJW8D9!unLm(w|h?nj#~ zyy?&UHZ^aPE+jIz&Td9Lp4+9?--HdwXoTXzu;PW4S9s{#fWn$3(;1XOI4H1gS zCTZRgcXXbN`eY~d^5BQ8o7z+YgMH2i3sa?1{o%R_(R_noQ?*j(nVOP!S=P;FnpX*v zMJ?5(eDvmW+qbjr+%@HuFa)Vh4KE+9E~V88EHY&hzZizt*95-+wPEw-K5FdLqD~N5 z@pSRSv)A%XXolGrfArGd9UkbC9ui@%io{t!T_;4*$6HolN+qPf+V5DspL) z_Nh)PlGHW;T(|MYzrzP1;>=^N={v(!4SySlT{_N}B_US8cxcOc){Ep4sTKAq7lw

=_>2&P{7wR;M-}n2a`z(vlzfjD4e|Wvv(7 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±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[NOTE] - > If the popup doesn’t appear, access Uno Platform settings by clicking on **Extensions** > **Uno Platform** > **Settings...**. - > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) +1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). +2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. + ![Visual Studio 2022 notification](Assets/uno-settings-notification.png) + +> [!NOTE] +> If the notification doesn’t appear, access the Settings app by clicking on **Extensions** > **Uno Platform** > **Settings...**. +> +> ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) ### [**Visual Studio Code**](#tab/vscode) If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: -1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening and loading completely your project, click the red Solution Button in the bottom status bar and switch to `.csproj` instead of `.sln`. - ![VS Code Solution Button](Assets/uno-vsc-csproj.gif) -3. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. - ![Visual Studio Code Menu](Assets/uno-settings-vsc-popup.png) - >![NOTE] - > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. - > ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) +1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). +2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. + ![Visual Studio Code Menu](Assets/uno-settings-vsc-notification.png) + +> [!NOTE] +> If the notification doesn’t appear, access the Settings app by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. +> +> ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) ### [**JetBrains Rider**](#tab/rider) If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: -1. Create a new Uno Platform project or open an existing one with `Uno.Sdk` version 5.5 or higher. -2. After opening and loading completely your project, a popup should appear. Click **Sign in / Register**. - ![JetBrains Rider Popup](Assets/uno-settings-rider-popup.png) - >![NOTE] - > If the popup doesn’t appear, access **Uno Platform** extension settings by selecting **Tools** > **Uno Platform** > **Settings...**. - > ![JetBrains Rider Menu](Assets/uno-settings-rider.png) +1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). +2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. + ![JetBrains Rider notification](Assets/uno-settings-rider-notification.png) + +> [!NOTE] +> If the notification doesn’t appear, access the Settings app by selecting **Tools** > **Uno Platform** > **Settings...**. +> +> ![JetBrains Rider Menu](Assets/uno-settings-rider.png) --- 1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. + ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) + 2. Once signed in, you’ll see a confirmation of your account along with your license details. You can then use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). + ![Uno Platform Settings](Assets/uno-settings-main.png) - >![TIP] - > You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. - > ![Uno Platform Menu](Assets/uno-settings-menu.png) + +> [!TIP] +> You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. +> +> ![Uno Platform Menu](Assets/uno-settings-menu.png) + +- After you are done, feel free to close the Uno Platform Settings window. You can always access it again from your IDE menu by following the steps above. ## Questions For general questions about Uno Platform, refer to the [general FAQ](xref:Uno.Development.FAQ) or see the [troubleshooting section](xref:Uno.UI.CommonIssues) for common issues and solutions. -If you encounter any issues or need further assistance, reach out on our [community forum](https://platform.uno/community) or connect with us via the [Uno Platform GitHub](https://github.com/unoplatform). +If you encounter any issues or need further assistance, join our [Discord server](https://platform.uno/discord), connect with us via the [Uno Platform GitHub](https://github.com/unoplatform), or reach out on our [contact page](https://platform.uno/contact). From 970500751eb351fae505aa57a850853026accf6e Mon Sep 17 00:00:00 2001 From: agneszitte Date: Tue, 12 Nov 2024 21:07:57 -0500 Subject: [PATCH 541/664] docs: Improve licensing, troubleshooting, and app creation sections with additional fixes (cherry picked from commit c341e1a2b14583d0b81426248316b815b40ec7ee) --- doc/articles/common-issues.md | 15 ++++- doc/articles/create-an-app-rider.md | 10 ++- doc/articles/create-an-app-vs2022.md | 11 ++++ doc/articles/create-an-app-vscode.md | 12 +++- doc/articles/get-started-licensing.md | 87 ++++++++++++++++----------- doc/articles/toc.yml | 51 ++++++++++------ 6 files changed, 130 insertions(+), 56 deletions(-) diff --git a/doc/articles/common-issues.md b/doc/articles/common-issues.md index 02a49c02dd84..b7d6545304ab 100644 --- a/doc/articles/common-issues.md +++ b/doc/articles/common-issues.md @@ -10,9 +10,17 @@ The Uno Platform features and support are constantly evolving, yet you may encou A better resource for high-level questions about Uno Platform is the [general FAQ](xref:Uno.Development.FAQ). +## Sign in with Uno Platform + +Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider, to unlock powerful tools like Hot Reload, helping you speed up development. + +More detailed information is available [here](xref:Uno.GetStarted.Licensing). + ## Hot Reload -More troubleshooting information is available [in this section](xref:Uno.Features.HotReload#troubleshooting). +When using Hot Reload, ensure you first review the [supported features](xref:Uno.Features.HotReload#features), [supported features per OS](xref:Uno.Features.HotReload#supported-features-per-os), and [supported features per platform](xref:Uno.Features.HotReload#supported-features-per-platform). + +If issues persist, additional troubleshooting information is available in [this section](xref:Uno.Features.HotReload#troubleshooting). ## Development Environments @@ -28,6 +36,11 @@ More troubleshooting information is available [in this section](xref:Uno.Feature - [Common issues on iOS/mac Catalyst](xref:Uno.UI.CommonIssues.IosCatalyst) - [Common issues on UWP](xref:Uno.UI.CommonIssues.UWP) +## Build Errors + +- [Troubleshooting build errors](xref:Uno.Development.Troubleshooting) +- [Build error codes](xref:Build.Solution.error-codes) + ## Next Steps Learn more about: diff --git a/doc/articles/create-an-app-rider.md b/doc/articles/create-an-app-rider.md index c3a46afd8e56..08990930a953 100644 --- a/doc/articles/create-an-app-rider.md +++ b/doc/articles/create-an-app-rider.md @@ -74,7 +74,15 @@ Creating an Uno Platform project is done [using dotnet new](xref:Uno.GetStarted. --- > [!IMPORTANT] -> A notification window will appear for the free registration of the extension. If the notification disappears before you can enter the license, you can find it again in the "Notification Bell" icon at the top right of the Rider window. +> A notification should appear prompting you to sign in or register with Uno Platform. +> +> Signing in with your Uno Platform account in Rider unlocks powerful tools like Hot Reload, helping you speed up development. +> +> With a single registration, you also gain early access to new features and the opportunity to connect with the Uno Platform community, where you can share feedback and network. +> +> Detailed information on registration and sign-in is available here. +> +> ![Uno Platform Sign in / Register notification](Assets/uno-settings-rider-notification.png) ### Considerations for macOS and Linux diff --git a/doc/articles/create-an-app-vs2022.md b/doc/articles/create-an-app-vs2022.md index 106fdae6bb28..26b547e8334c 100644 --- a/doc/articles/create-an-app-vs2022.md +++ b/doc/articles/create-an-app-vs2022.md @@ -35,6 +35,17 @@ To create an Uno Platform app: 1. A banner at the top of the editor may ask to reload projects, click **Reload projects**: ![Visual Studio - A banner indicating to reload projects](Assets/quick-start/vs2022-project-reload.png) +1. > [!IMPORTANT] + > A notification should appear prompting you to sign in or register with Uno Platform. + > + > Signing in with your Uno Platform account in Visual Studio unlocks powerful tools like Hot Reload, helping you speed up development. + > + > With a single registration, you also gain early access to new features and the opportunity to connect with the Uno Platform community, where you can share feedback and network. + > + > Detailed information on registration and sign-in is available here. + > + > ![Uno Platform sign in / register notification](Assets/uno-settings-notification.png) + ## Debug the App ### [**Desktop**](#tab/desktop) diff --git a/doc/articles/create-an-app-vscode.md b/doc/articles/create-an-app-vscode.md index 9342297f0d71..d9645eedd0b4 100644 --- a/doc/articles/create-an-app-vscode.md +++ b/doc/articles/create-an-app-vscode.md @@ -43,8 +43,16 @@ Next, open the project using Visual Studio Code: * Visual Studio Code might ask to restore the NuGet packages. Allow it to restore them if asked. * Once the solution has been loaded, in the status bar at the bottom left of VS Code, `MyApp.sln` is selected by default. Select `MyApp.csproj` to load the project instead. -> [!IMPORTANT] -> A notification window will appear for the free registration of the extension. If the notification disappears before you can enter the license, you can find it again in the "Notification Bell" icon at the bottom right of the VS Code window. +* > [!IMPORTANT] + > A notification should appear prompting you to sign in or register with Uno Platform. + > + > Signing in with your Uno Platform account in Visual Studio Code unlocks powerful tools like Hot Reload, helping you speed up development. + > + > With a single registration, you also gain early access to new features and the opportunity to connect with the Uno Platform community, where you can share feedback and network. + > + > Detailed information on registration and sign-in is available here. + > + > ![Uno Platform Sign in / Register notification](Assets/uno-settings-vsc-notification.png) ## Debug the App diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index d51ebf91fb57..e4884171da8f 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -9,10 +9,10 @@ Sign in with your Uno Platform account directly in your favorite IDE—Visual St ## Create your account 1. Go to our website, [platform.uno](https://platform.uno/), and click on the **Sign in** button in the top right corner, or go directly to [platform.uno/my-account](https://platform.uno/my-account). -2. Enter your email address and click on **Register**. -3. On the registration page, fill in your information. Once done, click on **Sign up**. -4. You will receive a confirmation email from `no-reply@platform.uno`. Follow the instructions in the email to activate your account. -5. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. +1. Enter your email address and click on **Register**. +1. On the registration page, fill in your information. Once done, click on **Sign up**. +1. You will receive a confirmation email from `no-reply@platform.uno`. Follow the instructions in the email to activate your account. +1. You should then see the sign-in page. Enter your email and password and click on **Sign in** to access your account details, where you can update information or add more details. ## Sign in to your IDE of choice @@ -22,62 +22,81 @@ After creating your Uno Platform account, follow the steps below to sign in to y ### [**Visual Studio 2022**](#tab/vs2022) -If you’ve already set up **Visual Studio 2022** by following [Get Started on Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022), sign in as follows: +If you’ve already set up **Visual Studio 2022** by following the [Get Started on Visual Studio 2022](xref:Uno.GetStarted.vs2022) documentation, sign in as follows: + +1. Create a new Uno Platform project by following the [Creating an app with Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022) documentation or open an existing one with Uno.Sdk version 5.5 or higher. + + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + +1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. -1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). -2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. ![Visual Studio 2022 notification](Assets/uno-settings-notification.png) -> [!NOTE] -> If the notification doesn’t appear, access the Settings app by clicking on **Extensions** > **Uno Platform** > **Settings...**. -> -> ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) + > [!TIP] + > Ensure that the lower left IDE icon shows a check mark and says "Ready" ![A checkmark with a text saying ready](getting-started/wizard/assets/vs2022-ready-statusbar.png). This ensures that the projects have been created, and their dependencies have been restored completely. + > + > [!NOTE] + > If the notification doesn’t appear, access the Settings app by clicking on **Extensions** > **Uno Platform** > **Settings...**. + > + > ![Visual Studio 2022 Menu](Assets/uno-settings-vs.png) ### [**Visual Studio Code**](#tab/vscode) -If you’ve already set up **Visual Studio Code** by following [Get Started on VS Code documentation](xref:Uno.GettingStarted.CreateAnApp.VSCode), sign in as follows: +If you’ve already set up **Visual Studio Code** by following the [Get Started on VS Code](xref:Uno.GetStarted.vscode) documentation, sign in as follows: + +1. Create a new Uno Platform project by following the [Creating an app with VS Code](xref:Uno.GettingStarted.CreateAnApp.VSCode) documentation or open an existing one with Uno.Sdk version 5.5 or higher. + + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + +1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. -1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). -2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. - ![Visual Studio Code Menu](Assets/uno-settings-vsc-notification.png) + ![Visual Studio Code notification](Assets/uno-settings-vsc-notification.png) -> [!NOTE] -> If the notification doesn’t appear, access the Settings app by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. -> -> ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) + > [!NOTE] + > If the notification doesn’t appear, access the Settings app by selecting **View** > **Command Palette...** and typing `Uno Platform: Open Settings`. + > + > ![Visual Studio Code Menu](Assets/uno-settings-vsc.png) ### [**JetBrains Rider**](#tab/rider) -If you’ve already set up **JetBrains Rider** by following [Get Started on JetBrains Rider documentation](xref:Uno.GetStarted.Rider), sign in as follows: +If you’ve already set up **JetBrains Rider** by following the [Get Started on JetBrains Rider](xref:Uno.GetStarted.Rider) documentation, sign in as follows: + +1. Create a new Uno Platform project by following the [Create an app with JetBrains Rider](xref:Uno.GettingStarted.CreateAnApp.Rider) documentation or open an existing one with Uno.Sdk version 5.5 or higher. + + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + +1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. -1. Create a new Uno Platform project or open an existing one with Uno.Sdk version 5.5 or higher. For existing applications you should take this opportunity to update to the [latest 'Uno.Sdk' version](https://www.nuget.org/packages/Uno.Sdk). -2. After your project has finished loading, a notification should appear. Click on **Sign in / Register** button. ![JetBrains Rider notification](Assets/uno-settings-rider-notification.png) -> [!NOTE] -> If the notification doesn’t appear, access the Settings app by selecting **Tools** > **Uno Platform** > **Settings...**. -> -> ![JetBrains Rider Menu](Assets/uno-settings-rider.png) + > [!NOTE] + > If the notification doesn’t appear, access the Settings app by selecting **Tools** > **Uno Platform** > **Settings...**. + > + > ![JetBrains Rider Menu](Assets/uno-settings-rider.png) --- +### Uno Platform Settings window + 1. In the Uno Platform Settings window, click on **Sign in**. You’ll be redirected to your browser to enter your Uno Platform account credentials. ![Uno Platform Settings Welcome](Assets/uno-settings-welcome.png) -2. Once signed in, you’ll see a confirmation of your account along with your license details. You can then use the **Hot Reload** feature to speed up your workflow and test changes in real time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). +1. Once signed in, you’ll see a confirmation of your account along with your license details. + + You can then use the **Hot Reload** feature to speed up your workflow and test changes in real-time. For more information, refer to the [Hot Reload documentation](xref:Uno.Features.HotReload). - ![Uno Platform Settings](Assets/uno-settings-main.png) + ![Uno Platform Settings signed in](Assets/uno-settings-main.png) -> [!TIP] -> You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes and **Sign out**. -> -> ![Uno Platform Menu](Assets/uno-settings-menu.png) + > [!TIP] + > You can also access a menu where you can select **My Account** to view your account details, **Refresh** the account changes, and **Sign out**. + > + > ![Uno Platform Settings Menu](Assets/uno-settings-menu.png) -- After you are done, feel free to close the Uno Platform Settings window. You can always access it again from your IDE menu by following the steps above. +1. After you are done, feel free to close the Uno Platform Settings window. You can always access it again from your IDE menu by following the steps above. ## Questions For general questions about Uno Platform, refer to the [general FAQ](xref:Uno.Development.FAQ) or see the [troubleshooting section](xref:Uno.UI.CommonIssues) for common issues and solutions. -If you encounter any issues or need further assistance, join our [Discord server](https://platform.uno/discord), connect with us via the [Uno Platform GitHub](https://github.com/unoplatform), or reach out on our [contact page](https://platform.uno/contact). +If you encounter any issues or need further assistance, join our [Discord server](https://platform.uno/discord), connect with us via [GitHub](https://github.com/unoplatform/uno/discussions), or reach out on our [contact page](https://platform.uno/contact). diff --git a/doc/articles/toc.yml b/doc/articles/toc.yml index 8fa1b5f3f306..610381a5feb8 100644 --- a/doc/articles/toc.yml +++ b/doc/articles/toc.yml @@ -32,26 +32,41 @@ - name: Troubleshoot topicHref: xref:Uno.UI.CommonIssues items: + - name: Overview + href: xref:Uno.UI.CommonIssues - name: Sign in with Uno Platform href: xref:Uno.GetStarted.Licensing - - name: All Development Environments - href: xref:Uno.UI.CommonIssues.AllIDEs - - name: Visual Studio 2022 for Windows - href: xref:Uno.UI.CommonIssues.vs2022 - - name: VS Code - href: xref:Uno.UI.CommonIssues.vscode - - name: WebAssembly - href: xref:Uno.UI.CommonIssues.Wasm - - name: UWP - href: xref:Uno.UI.CommonIssues.UWP - - name: Skia (Gtk/Wpf/Framebuffer) - href: xref:Uno.UI.CommonIssues.Skia - - name: iOS/mac Catalyst - href: xref:Uno.UI.CommonIssues.IosCatalyst - - name: Troubleshooting build errors - href: uno-builds-troubleshooting.md - - name: Build error codes - href: xref:Build.Solution.error-codes + - name: Hot Reload + topicHref: xref:Uno.Features.HotReload#troubleshooting + - name: Development Environments + topicHref: xref:Uno.UI.CommonIssues.AllIDEs + items: + - name: All Development Environments + href: xref:Uno.UI.CommonIssues.AllIDEs + - name: Visual Studio 2022 for Windows + href: xref:Uno.UI.CommonIssues.vs2022 + - name: VS Code + href: xref:Uno.UI.CommonIssues.vscode + - name: Rider + href: xref:Uno.UI.CommonIssues.rider + - name: Platforms + topicHref: xref:Uno.UI.CommonIssues.Wasm + items: + - name: WebAssembly + href: xref:Uno.UI.CommonIssues.Wasm + - name: UWP + href: xref:Uno.UI.CommonIssues.UWP + - name: Skia (Gtk/Wpf/Framebuffer) + href: xref:Uno.UI.CommonIssues.Skia + - name: iOS/mac Catalyst + href: xref:Uno.UI.CommonIssues.IosCatalyst + - name: Build Errors + topicHref: xref:Uno.Development.Troubleshooting + items: + - name: Troubleshooting build errors + href: xref:Uno.Development.Troubleshooting + - name: Build error codes + href: xref:Build.Solution.error-codes - name: Samples & Tutorials topicHref: xref:Uno.SamplesTutorials.Overview From 6578f138bc5ca967a239e55813c6acbf6ed29aad Mon Sep 17 00:00:00 2001 From: Dominik Titl <78549750+morning4coffe-dev@users.noreply.github.com> Date: Wed, 13 Nov 2024 09:11:58 +0100 Subject: [PATCH 542/664] chore: Update intro wording Co-authored-by: Nick Randolph (cherry picked from commit 0593bb32a156089cd40b065f402f041150776bdc) --- doc/articles/get-started-licensing.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index e4884171da8f..4c48409783d0 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -4,7 +4,7 @@ uid: Uno.GetStarted.Licensing # Sign in with Uno Platform -Sign in with your Uno Platform account directly in your favorite IDE—Visual Studio, VS Code, or Rider, to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno Platform community to share feedback and network. +Sign in with your Uno Platform account directly in your favorite IDE (Visual Studio, VS Code, or Rider), to unlock powerful tools like Hot Reload, helping you speed up development. With a single registration, you also get early access to new features and the opportunity to connect with the Uno Platform community to share feedback and network. ## Create your account From e25a9823f8d98bc63a95013d648d034cbe08ce0d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Laban?= Date: Wed, 13 Nov 2024 11:29:16 -0500 Subject: [PATCH 543/664] docs: Update bootstrapper --- doc/import_external_docs.ps1 | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/doc/import_external_docs.ps1 b/doc/import_external_docs.ps1 index d389c0457333..70a9b9bbe27a 100644 --- a/doc/import_external_docs.ps1 +++ b/doc/import_external_docs.ps1 @@ -7,7 +7,7 @@ Set-PSDebug -Trace 1 $external_docs = @{ # use either commit, or branch name to use its latest commit - "uno.wasm.bootstrap" = "ad639b3dbeb0234bff2d5c31c041d0438f57ea37" #latest release/stable/9.0 branch commit + "uno.wasm.bootstrap" = "3a06d1cc66c9bfabd85feb89536a3ed3ce7899e5" #latest release/stable/9.0 branch commit "uno.themes" = "be986dc71ace7e2f5075154321dbf0a68f5d00ce" #latest release/stable/5.3 branch commit "uno.toolkit.ui" = "490176858d99ca05a8615a11bb4da24a7c49a323" #latest release/stable/6.3 branch commit "uno.check" = "27e686d9205654375fd2c7861c3ebe5f2ad69e93" #latest main commit From 026226b0c12b1eb49e8cac90ea25002be21a53a6 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Wed, 13 Nov 2024 11:58:51 -0500 Subject: [PATCH 544/664] fix(macOS): native clip on the provided path/svg --- .../MacOSWindowHost.cs | 11 ++- .../UnoNativeMac/UnoNativeMac/UNONative.h | 1 + .../UnoNativeMac/UnoNativeMac/UNONative.m | 13 +-- .../UnoNativeMac/UnoNativeMac/UNOWindow.m | 87 +++++++++++-------- 4 files changed, 65 insertions(+), 47 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs index a9c3c3a2da43..6ceb64d78f3e 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs +++ b/src/Uno.UI.Runtime.Skia.MacOS/MacOSWindowHost.cs @@ -82,12 +82,15 @@ private void Draw(double nativeWidth, double nativeHeight, SKSurface surface) if (RootElement?.Visual is { } rootVisual) { - // remove previous clipping (if any) - // NativeUno.uno_window_clip_svg(_nativeWindow.Handle, null); int width = (int)nativeWidth; int height = (int)nativeHeight; - SkiaRenderHelper.RenderRootVisualAndReturnPath(width, height, rootVisual, surface); - // TODO clip the "negative" of what was drawn + var path = SkiaRenderHelper.RenderRootVisualAndReturnPath(width, height, rootVisual, surface); + if (path is { }) + { + var svg = path.ToSvgPathData(); + // remove first path since it cover the whole area + NativeUno.uno_window_clip_svg(_nativeWindow.Handle, svg.Substring(svg.IndexOf('Z') + 1)); + } } } diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h index 7259446bb968..e9cdec54ebe7 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.h @@ -5,6 +5,7 @@ #pragma once #import "UnoNativeMac.h" +#import "UNOWindow.h" NS_ASSUME_NONNULL_BEGIN diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m index 79a5dab4dae3..27607d4ac8e5 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNONative.m @@ -16,7 +16,7 @@ - (BOOL)wantsUpdateLayer - (void)updateLayer { - self.layer.backgroundColor = self.hidden ? NSColor.clearColor.CGColor : NSColor.redColor.CGColor; + self.layer.backgroundColor = NSColor.redColor.CGColor; } @synthesize visible; @@ -51,7 +51,7 @@ void uno_native_arrange(NSView *element, double arrangeLeft, d { if (!element || !element.visible) { #if DEBUG - NSLog(@"uno_native_arrange %p '%@' is not visible - nothing to arrange", element, ((NSTextField*)element.subviews[0]).stringValue); + NSLog(@"uno_native_arrange %p is not visible - nothing to arrange", element); #endif return; } @@ -60,7 +60,7 @@ void uno_native_arrange(NSView *element, double arrangeLeft, d element.hidden = NSIsEmptyRect(clip) || clipHeight <= 0 || clipWidth <= 0; if (element.hidden) { #if DEBUG - NSLog(@"uno_native_arrange %p '%@' hidden by clipping", element, ((NSTextField*)element.subviews[0]).stringValue); + NSLog(@"uno_native_arrange %p hidden by clipping", element); #endif return; } @@ -68,7 +68,7 @@ void uno_native_arrange(NSView *element, double arrangeLeft, d NSRect arrange = NSMakeRect(arrangeLeft + clipLeft, arrangeTop + clipTop, MIN(arrangeWidth, clipWidth), MIN(arrangeHeight, clipHeight)); element.frame = arrange; #if DEBUG - NSLog(@"uno_native_arrange %p %@ arrange(%g,%g,%g,%g) clip(%g,%g,%g,%g) %s", element, ((NSTextField*)element.subviews[0]).stringValue, + NSLog(@"uno_native_arrange %p arrange(%g,%g,%g,%g) clip(%g,%g,%g,%g) %s", element, arrangeLeft, arrangeTop, arrangeWidth, arrangeHeight, clipLeft, clipTop, clipWidth, clipHeight, element.hidden ? "EMPTY" : (clipWidth < arrangeWidth) || (clipHeight < arrangeHeight) ? "partial" : ""); @@ -83,6 +83,7 @@ void uno_native_attach(NSView* element) if (!elements) { elements = [[NSMutableSet alloc] initWithCapacity:10]; } + // note: it's too early to add a mask since the layer has not been set yet [elements addObject:element]; } @@ -91,6 +92,7 @@ void uno_native_detach(NSView *element) #if DEBUG NSLog(@"uno_native_detach %p", element); #endif + element.layer.mask = nil; if (elements) { if ([element conformsToProtocol:@protocol(UNONativeElement)]) { id native = (id) element; @@ -111,8 +113,7 @@ bool uno_native_is_attached(NSView* element) void uno_native_measure(NSView* element, double childWidth, double childHeight, double availableWidth, double availableHeight, double* width, double* height) { - // FIXME - CGSize size = element.subviews.firstObject.frame.size; // element.fittingSize; + CGSize size = element.subviews.firstObject.frame.size; *width = size.width; *height = size.height; #if DEBUG diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m index cab6692d6f57..6d149720118a 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac/UNOWindow.m @@ -688,52 +688,65 @@ void uno_window_clip_svg(UNOWindow* window, const char* svg) #if DEBUG NSLog(@"uno_window_clip_svg %@ %@ %s", window, window.contentView.layer.description, svg); #endif - CGMutablePathRef path = CGPathCreateMutable(); - // small subset of an SVG path parser handling trusted input of integer-based points - long length = strlen(svg); - for (int i=0; i < length; i++) { - CGFloat x, y; - char op = svg[i]; - switch (op) { - case 'M': - x = readNextCoord(svg, &i, length); - i++; // skip separator - y = readNextCoord(svg, &i, length); - // there might not be a separator (not required before the next op) + NSArray<__kindof NSView *> *subviews = window.contentViewController.view.subviews; + for (int i = 0; i < subviews.count; i++) { + NSView* view = subviews[i]; +#if DEBUG + NSLog(@"uno_window_clip_svg subview %d %@ layer %@ mask %@", i, view, view.layer, view.layer.mask); +#endif + CGMutablePathRef path = CGPathCreateMutable(); + // small subset of an SVG path parser handling trusted input of integer-based points + long length = strlen(svg); + for (int i=0; i < length; i++) { + CGFloat x, y; + char op = svg[i]; + switch (op) { + case 'M': + x = readNextCoord(svg, &i, length); + i++; // skip separator + y = readNextCoord(svg, &i, length); + // there might not be a separator (not required before the next op) #if DEBUG_PARSER - NSLog(@"uno_window_clip_svg parsing CGPathMoveToPoint %g %g - position %d", x, y, i); -#endif - CGPathMoveToPoint(path, nil, x, y); - break; - case 'L': - x = readNextCoord(svg, &i, length); - i++; // skip separator - y = readNextCoord(svg, &i, length); - // there might not be a separator (not required before the next op) + NSLog(@"uno_window_clip_svg parsing CGPathMoveToPoint %g %g - position %d", x, y, i); +#endif + x -= view.frame.origin.x; + y -= view.frame.origin.y; + CGPathMoveToPoint(path, nil, x, y); + break; + case 'L': + x = readNextCoord(svg, &i, length); + i++; // skip separator + y = readNextCoord(svg, &i, length); + // there might not be a separator (not required before the next op) #if DEBUG_PARSER - NSLog(@"uno_window_clip_svg parsing CGPathAddLineToPoint %g %g - position %d", x, y, i); + NSLog(@"uno_window_clip_svg parsing CGPathAddLineToPoint %g %g - position %d", x, y, i); #endif - CGPathAddLineToPoint(path, nil, x, y); - break; - case 'Z': + x -= view.frame.origin.x; + y -= view.frame.origin.y; + CGPathAddLineToPoint(path, nil, x, y); + break; + case 'Z': #if DEBUG_PARSER - NSLog(@"uno_window_clip_svg parsing CGPathCloseSubpath - position %d", i); + NSLog(@"uno_window_clip_svg parsing CGPathCloseSubpath - position %d", i); #endif - CGPathCloseSubpath(path); - break; + CGPathCloseSubpath(path); + break; #if DEBUG - default: - if (op != ' ') { - NSLog(@"uno_window_clip_svg parsing unknown op %c at position %d", op, i - 1); - } - break; + default: + if (op != ' ') { + NSLog(@"uno_window_clip_svg parsing unknown op %c at position %d", op, i - 1); + } + break; #endif + } + } + CAShapeLayer* mask = view.layer.mask; + if (mask == nil) { + view.layer.mask = mask = [[CAShapeLayer alloc] init]; } + mask.fillColor = NSColor.blueColor.CGColor; // anything but clearColor + mask.path = path; } - } else { -#if DEBUG - NSLog(@"uno_window_clip_svg %@ reset", window); -#endif } } From d9553776b1a927550525c211070e270298fd0a58 Mon Sep 17 00:00:00 2001 From: agneszitte Date: Wed, 13 Nov 2024 12:52:31 -0500 Subject: [PATCH 545/664] docs: Add migration guide details to the licensing related documentation --- doc/articles/get-started-licensing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index 4c48409783d0..c48bf7d3b7e3 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -26,7 +26,7 @@ If you’ve already set up **Visual Studio 2022** by following the [Get Started 1. Create a new Uno Platform project by following the [Creating an app with Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022) documentation or open an existing one with Uno.Sdk version 5.5 or higher. - For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). See our [migration guide](xref:Uno.Development.MigratingFromPreviousReleases) to upgrade. 1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. @@ -46,7 +46,7 @@ If you’ve already set up **Visual Studio Code** by following the [Get Started 1. Create a new Uno Platform project by following the [Creating an app with VS Code](xref:Uno.GettingStarted.CreateAnApp.VSCode) documentation or open an existing one with Uno.Sdk version 5.5 or higher. - For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). See our [migration guide](xref:Uno.Development.MigratingFromPreviousReleases) to upgrade. 1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. @@ -63,7 +63,7 @@ If you’ve already set up **JetBrains Rider** by following the [Get Started on 1. Create a new Uno Platform project by following the [Create an app with JetBrains Rider](xref:Uno.GettingStarted.CreateAnApp.Rider) documentation or open an existing one with Uno.Sdk version 5.5 or higher. - For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). See our [migration guide](xref:Uno.Development.MigratingFromPreviousReleases) to upgrade. 1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. From b9a42c33fe00d2f467c4c0facb3444d60bc0d4d0 Mon Sep 17 00:00:00 2001 From: agneszitte Date: Wed, 13 Nov 2024 12:52:31 -0500 Subject: [PATCH 546/664] docs: Add migration guide details to the licensing related documentation (cherry picked from commit d9553776b1a927550525c211070e270298fd0a58) --- doc/articles/get-started-licensing.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/doc/articles/get-started-licensing.md b/doc/articles/get-started-licensing.md index 4c48409783d0..c48bf7d3b7e3 100644 --- a/doc/articles/get-started-licensing.md +++ b/doc/articles/get-started-licensing.md @@ -26,7 +26,7 @@ If you’ve already set up **Visual Studio 2022** by following the [Get Started 1. Create a new Uno Platform project by following the [Creating an app with Visual Studio 2022](xref:Uno.GettingStarted.CreateAnApp.VS2022) documentation or open an existing one with Uno.Sdk version 5.5 or higher. - For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). See our [migration guide](xref:Uno.Development.MigratingFromPreviousReleases) to upgrade. 1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. @@ -46,7 +46,7 @@ If you’ve already set up **Visual Studio Code** by following the [Get Started 1. Create a new Uno Platform project by following the [Creating an app with VS Code](xref:Uno.GettingStarted.CreateAnApp.VSCode) documentation or open an existing one with Uno.Sdk version 5.5 or higher. - For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). See our [migration guide](xref:Uno.Development.MigratingFromPreviousReleases) to upgrade. 1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. @@ -63,7 +63,7 @@ If you’ve already set up **JetBrains Rider** by following the [Get Started on 1. Create a new Uno Platform project by following the [Create an app with JetBrains Rider](xref:Uno.GettingStarted.CreateAnApp.Rider) documentation or open an existing one with Uno.Sdk version 5.5 or higher. - For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). + For existing applications, you should take this opportunity to update to the [latest `Uno.Sdk` version](https://www.nuget.org/packages/Uno.Sdk). See our [migration guide](xref:Uno.Development.MigratingFromPreviousReleases) to upgrade. 1. After your project has finished loading, a notification should appear. Click on the **Sign in / Register** button. From bd4ca084643b076244653a2171c2f79d0f108c69 Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Wed, 13 Nov 2024 13:49:34 -0500 Subject: [PATCH 547/664] chore: Rename Breadcrumb to BreadcrumbBar --- .../{Breadcrumb => BreadcrumbBar}/BreadcrumbBar.Header.cs | 0 .../Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBar.cs | 0 .../{Breadcrumb => BreadcrumbBar}/BreadcrumbBar.properties.cs | 0 .../Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBar.xaml | 0 .../{Breadcrumb => BreadcrumbBar}/BreadcrumbBarElementFactory.cs | 0 .../{Breadcrumb => BreadcrumbBar}/BreadcrumbBarItem.Header.cs | 0 .../Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBarItem.cs | 0 .../BreadcrumbBarItemAutomationPeer.cs | 0 .../BreadcrumbBarItemClickedEventArgs.cs | 0 .../BreadcrumbBar_themeresources.xaml | 0 .../Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbIterable.cs | 0 .../Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbIterator.cs | 0 .../{Breadcrumb => BreadcrumbBar}/BreadcrumbLayout.Header.cs | 0 .../Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbLayout.cs | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/af-ZA/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/am-ET/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ar-SA/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/as-IN/Resources.resw | 0 .../Strings/az-Latn-AZ/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/bg-BG/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/bn-IN/Resources.resw | 0 .../Strings/bs-Latn-BA/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ca-ES/Resources.resw | 0 .../Strings/ca-Es-VALENCIA/Resources.resw_ignored | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/cs-CZ/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/cy-GB/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/da-DK/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/de-DE/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/el-GR/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/en-GB/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/en-us/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/es-ES/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/es-MX/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/et-EE/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/eu-ES/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/fa-IR/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/fi-FI/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/fil-PH/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/fr-CA/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/fr-FR/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ga-IE/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/gd-gb/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/gl-ES/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/gu-IN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/he-IL/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/hi-IN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/hr-HR/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/hu-HU/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/hy-AM/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/id-ID/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/is-IS/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/it-IT/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ja-JP/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ka-GE/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/kk-KZ/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/km-KH/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/kn-IN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ko-KR/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/kok-IN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/lb-LU/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/lo-LA/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/lt-LT/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/lv-LV/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/mi-NZ/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/mk-MK/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ml-IN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/mr-IN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ms-MY/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/mt-MT/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/nb-NO/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ne-NP/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/nl-NL/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/nn-NO/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/or-IN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/pa/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/pl-PL/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/pt-BR/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/pt-PT/Resources.resw | 0 .../Strings/quz-PE/Resources.resw_ignored | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ro-RO/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ru-RU/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/sk-SK/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/sl-SI/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/sq-AL/Resources.resw | 0 .../Strings/sr-Cyrl-BA/Resources.resw | 0 .../Strings/sr-Cyrl-RS/Resources.resw | 0 .../Strings/sr-Latn-RS/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/sv-SE/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ta-IN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/te-IN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/th-TH/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/tr-TR/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/tt-RU/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ug-CN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/uk-UA/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/ur/Resources.resw | 0 .../Strings/uz-Latn-UZ/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/vi-VN/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/zh-Hans/Resources.resw | 0 .../{Breadcrumb => BreadcrumbBar}/Strings/zh-Hant/Resources.resw | 0 100 files changed, 0 insertions(+), 0 deletions(-) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBar.Header.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBar.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBar.properties.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBar.xaml (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBarElementFactory.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBarItem.Header.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBarItem.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBarItemAutomationPeer.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBarItemClickedEventArgs.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbBar_themeresources.xaml (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbIterable.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbIterator.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbLayout.Header.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/BreadcrumbLayout.cs (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/af-ZA/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/am-ET/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ar-SA/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/as-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/az-Latn-AZ/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/bg-BG/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/bn-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/bs-Latn-BA/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ca-ES/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ca-Es-VALENCIA/Resources.resw_ignored (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/cs-CZ/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/cy-GB/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/da-DK/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/de-DE/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/el-GR/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/en-GB/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/en-us/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/es-ES/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/es-MX/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/et-EE/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/eu-ES/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/fa-IR/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/fi-FI/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/fil-PH/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/fr-CA/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/fr-FR/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ga-IE/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/gd-gb/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/gl-ES/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/gu-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/he-IL/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/hi-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/hr-HR/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/hu-HU/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/hy-AM/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/id-ID/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/is-IS/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/it-IT/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ja-JP/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ka-GE/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/kk-KZ/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/km-KH/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/kn-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ko-KR/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/kok-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/lb-LU/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/lo-LA/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/lt-LT/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/lv-LV/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/mi-NZ/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/mk-MK/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ml-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/mr-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ms-MY/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/mt-MT/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/nb-NO/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ne-NP/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/nl-NL/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/nn-NO/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/or-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/pa/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/pl-PL/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/pt-BR/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/pt-PT/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/quz-PE/Resources.resw_ignored (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ro-RO/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ru-RU/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/sk-SK/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/sl-SI/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/sq-AL/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/sr-Cyrl-BA/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/sr-Cyrl-RS/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/sr-Latn-RS/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/sv-SE/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ta-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/te-IN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/th-TH/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/tr-TR/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/tt-RU/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ug-CN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/uk-UA/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/ur/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/uz-Latn-UZ/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/vi-VN/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/zh-Hans/Resources.resw (100%) rename src/Uno.UI/Microsoft/UI/Xaml/Controls/{Breadcrumb => BreadcrumbBar}/Strings/zh-Hant/Resources.resw (100%) diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBar.Header.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBar.Header.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBar.Header.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBar.Header.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBar.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBar.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBar.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBar.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBar.properties.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBar.properties.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBar.properties.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBar.properties.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBar.xaml b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBar.xaml similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBar.xaml rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBar.xaml diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBarElementFactory.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBarElementFactory.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBarElementFactory.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBarElementFactory.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBarItem.Header.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBarItem.Header.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBarItem.Header.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBarItem.Header.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBarItem.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBarItem.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBarItem.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBarItem.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBarItemAutomationPeer.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBarItemAutomationPeer.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBarItemAutomationPeer.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBarItemAutomationPeer.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBarItemClickedEventArgs.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBarItemClickedEventArgs.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBarItemClickedEventArgs.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBarItemClickedEventArgs.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBar_themeresources.xaml b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBar_themeresources.xaml similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbBar_themeresources.xaml rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbBar_themeresources.xaml diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbIterable.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbIterable.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbIterable.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbIterable.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbIterator.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbIterator.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbIterator.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbIterator.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbLayout.Header.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbLayout.Header.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbLayout.Header.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbLayout.Header.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbLayout.cs b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbLayout.cs similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/BreadcrumbLayout.cs rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/BreadcrumbLayout.cs diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/af-ZA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/af-ZA/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/af-ZA/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/af-ZA/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/am-ET/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/am-ET/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/am-ET/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/am-ET/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ar-SA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ar-SA/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ar-SA/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ar-SA/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/as-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/as-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/as-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/as-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/az-Latn-AZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/az-Latn-AZ/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/az-Latn-AZ/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/az-Latn-AZ/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/bg-BG/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/bg-BG/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/bg-BG/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/bg-BG/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/bn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/bn-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/bn-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/bn-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/bs-Latn-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/bs-Latn-BA/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/bs-Latn-BA/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/bs-Latn-BA/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ca-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ca-ES/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ca-ES/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ca-ES/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ca-Es-VALENCIA/Resources.resw_ignored b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ca-Es-VALENCIA/Resources.resw_ignored similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ca-Es-VALENCIA/Resources.resw_ignored rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ca-Es-VALENCIA/Resources.resw_ignored diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/cs-CZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/cs-CZ/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/cs-CZ/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/cs-CZ/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/cy-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/cy-GB/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/cy-GB/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/cy-GB/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/da-DK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/da-DK/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/da-DK/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/da-DK/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/de-DE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/de-DE/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/de-DE/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/de-DE/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/el-GR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/el-GR/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/el-GR/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/el-GR/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/en-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/en-GB/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/en-GB/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/en-GB/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/en-us/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/en-us/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/en-us/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/en-us/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/es-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/es-ES/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/es-ES/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/es-ES/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/es-MX/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/es-MX/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/es-MX/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/es-MX/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/et-EE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/et-EE/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/et-EE/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/et-EE/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/eu-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/eu-ES/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/eu-ES/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/eu-ES/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/fa-IR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/fa-IR/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/fa-IR/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/fa-IR/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/fi-FI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/fi-FI/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/fi-FI/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/fi-FI/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/fil-PH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/fil-PH/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/fil-PH/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/fil-PH/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/fr-CA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/fr-CA/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/fr-CA/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/fr-CA/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/fr-FR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/fr-FR/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/fr-FR/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/fr-FR/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ga-IE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ga-IE/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ga-IE/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ga-IE/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/gd-gb/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/gd-gb/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/gd-gb/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/gd-gb/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/gl-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/gl-ES/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/gl-ES/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/gl-ES/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/gu-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/gu-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/gu-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/gu-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/he-IL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/he-IL/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/he-IL/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/he-IL/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/hi-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/hi-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/hi-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/hi-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/hr-HR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/hr-HR/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/hr-HR/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/hr-HR/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/hu-HU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/hu-HU/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/hu-HU/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/hu-HU/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/hy-AM/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/hy-AM/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/hy-AM/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/hy-AM/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/id-ID/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/id-ID/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/id-ID/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/id-ID/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/is-IS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/is-IS/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/is-IS/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/is-IS/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/it-IT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/it-IT/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/it-IT/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/it-IT/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ja-JP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ja-JP/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ja-JP/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ja-JP/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ka-GE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ka-GE/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ka-GE/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ka-GE/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/kk-KZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/kk-KZ/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/kk-KZ/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/kk-KZ/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/km-KH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/km-KH/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/km-KH/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/km-KH/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/kn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/kn-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/kn-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/kn-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ko-KR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ko-KR/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ko-KR/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ko-KR/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/kok-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/kok-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/kok-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/kok-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/lb-LU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/lb-LU/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/lb-LU/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/lb-LU/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/lo-LA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/lo-LA/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/lo-LA/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/lo-LA/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/lt-LT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/lt-LT/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/lt-LT/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/lt-LT/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/lv-LV/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/lv-LV/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/lv-LV/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/lv-LV/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/mi-NZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/mi-NZ/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/mi-NZ/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/mi-NZ/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/mk-MK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/mk-MK/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/mk-MK/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/mk-MK/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ml-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ml-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ml-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ml-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/mr-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/mr-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/mr-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/mr-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ms-MY/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ms-MY/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ms-MY/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ms-MY/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/mt-MT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/mt-MT/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/mt-MT/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/mt-MT/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/nb-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/nb-NO/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/nb-NO/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/nb-NO/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ne-NP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ne-NP/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ne-NP/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ne-NP/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/nl-NL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/nl-NL/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/nl-NL/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/nl-NL/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/nn-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/nn-NO/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/nn-NO/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/nn-NO/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/or-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/or-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/or-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/or-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/pa/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/pa/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/pa/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/pa/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/pl-PL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/pl-PL/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/pl-PL/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/pl-PL/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/pt-BR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/pt-BR/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/pt-BR/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/pt-BR/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/pt-PT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/pt-PT/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/pt-PT/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/pt-PT/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/quz-PE/Resources.resw_ignored b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/quz-PE/Resources.resw_ignored similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/quz-PE/Resources.resw_ignored rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/quz-PE/Resources.resw_ignored diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ro-RO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ro-RO/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ro-RO/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ro-RO/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ru-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ru-RU/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ru-RU/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ru-RU/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sk-SK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sk-SK/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sk-SK/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sk-SK/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sl-SI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sl-SI/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sl-SI/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sl-SI/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sq-AL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sq-AL/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sq-AL/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sq-AL/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sr-Cyrl-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sr-Cyrl-BA/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sr-Cyrl-BA/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sr-Cyrl-BA/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sr-Cyrl-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sr-Cyrl-RS/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sr-Cyrl-RS/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sr-Cyrl-RS/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sr-Latn-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sr-Latn-RS/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sr-Latn-RS/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sr-Latn-RS/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sv-SE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sv-SE/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/sv-SE/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/sv-SE/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ta-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ta-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ta-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ta-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/te-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/te-IN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/te-IN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/te-IN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/th-TH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/th-TH/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/th-TH/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/th-TH/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/tr-TR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/tr-TR/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/tr-TR/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/tr-TR/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/tt-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/tt-RU/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/tt-RU/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/tt-RU/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ug-CN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ug-CN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ug-CN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ug-CN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/uk-UA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/uk-UA/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/uk-UA/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/uk-UA/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ur/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ur/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/ur/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/ur/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/uz-Latn-UZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/uz-Latn-UZ/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/uz-Latn-UZ/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/uz-Latn-UZ/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/vi-VN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/vi-VN/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/vi-VN/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/vi-VN/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/zh-Hans/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/zh-Hans/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/zh-Hans/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/zh-Hans/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/zh-Hant/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/zh-Hant/Resources.resw similarity index 100% rename from src/Uno.UI/Microsoft/UI/Xaml/Controls/Breadcrumb/Strings/zh-Hant/Resources.resw rename to src/Uno.UI/Microsoft/UI/Xaml/Controls/BreadcrumbBar/Strings/zh-Hant/Resources.resw From 979f050f6553ac4bcd55082ea0daa150485657b0 Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Wed, 13 Nov 2024 15:37:07 -0500 Subject: [PATCH 548/664] chore: Move ColorSpectrum string resources --- .../ColorPicker/Strings/af-ZA/Resources.resw | 20 --- .../ColorPicker/Strings/am-ET/Resources.resw | 20 --- .../ColorPicker/Strings/ar-SA/Resources.resw | 20 --- .../ColorPicker/Strings/as-IN/Resources.resw | 20 --- .../Strings/az-Latn-AZ/Resources.resw | 20 --- .../ColorPicker/Strings/bg-BG/Resources.resw | 20 --- .../ColorPicker/Strings/bn-IN/Resources.resw | 20 --- .../Strings/bs-Latn-BA/Resources.resw | 20 --- .../ColorPicker/Strings/ca-ES/Resources.resw | 20 --- .../ColorPicker/Strings/cs-CZ/Resources.resw | 20 --- .../ColorPicker/Strings/cy-GB/Resources.resw | 20 --- .../ColorPicker/Strings/da-DK/Resources.resw | 20 --- .../ColorPicker/Strings/de-DE/Resources.resw | 20 --- .../ColorPicker/Strings/el-GR/Resources.resw | 20 --- .../ColorPicker/Strings/en-GB/Resources.resw | 20 --- .../ColorPicker/Strings/en-us/Resources.resw | 20 --- .../ColorPicker/Strings/es-ES/Resources.resw | 20 --- .../ColorPicker/Strings/es-MX/Resources.resw | 20 --- .../ColorPicker/Strings/et-EE/Resources.resw | 20 --- .../ColorPicker/Strings/eu-ES/Resources.resw | 20 --- .../ColorPicker/Strings/fa-IR/Resources.resw | 20 --- .../ColorPicker/Strings/fi-FI/Resources.resw | 20 --- .../ColorPicker/Strings/fil-PH/Resources.resw | 20 --- .../ColorPicker/Strings/fr-CA/Resources.resw | 20 --- .../ColorPicker/Strings/fr-FR/Resources.resw | 20 --- .../ColorPicker/Strings/ga-IE/Resources.resw | 20 --- .../ColorPicker/Strings/gd-gb/Resources.resw | 20 --- .../ColorPicker/Strings/gl-ES/Resources.resw | 20 --- .../ColorPicker/Strings/gu-IN/Resources.resw | 20 --- .../ColorPicker/Strings/he-IL/Resources.resw | 20 --- .../ColorPicker/Strings/hi-IN/Resources.resw | 20 --- .../ColorPicker/Strings/hr-HR/Resources.resw | 20 --- .../ColorPicker/Strings/hu-HU/Resources.resw | 20 --- .../ColorPicker/Strings/hy-AM/Resources.resw | 20 --- .../ColorPicker/Strings/id-ID/Resources.resw | 20 --- .../ColorPicker/Strings/is-IS/Resources.resw | 20 --- .../ColorPicker/Strings/it-IT/Resources.resw | 20 --- .../ColorPicker/Strings/ja-JP/Resources.resw | 20 --- .../ColorPicker/Strings/ka-GE/Resources.resw | 20 --- .../ColorPicker/Strings/kk-KZ/Resources.resw | 20 --- .../ColorPicker/Strings/km-KH/Resources.resw | 20 --- .../ColorPicker/Strings/kn-IN/Resources.resw | 20 --- .../ColorPicker/Strings/ko-KR/Resources.resw | 20 --- .../ColorPicker/Strings/kok-IN/Resources.resw | 20 --- .../ColorPicker/Strings/lb-LU/Resources.resw | 20 --- .../ColorPicker/Strings/lo-LA/Resources.resw | 20 --- .../ColorPicker/Strings/lt-LT/Resources.resw | 20 --- .../ColorPicker/Strings/lv-LV/Resources.resw | 20 --- .../ColorPicker/Strings/mi-NZ/Resources.resw | 20 --- .../ColorPicker/Strings/mk-MK/Resources.resw | 20 --- .../ColorPicker/Strings/ml-IN/Resources.resw | 20 --- .../ColorPicker/Strings/mr-IN/Resources.resw | 20 --- .../ColorPicker/Strings/ms-MY/Resources.resw | 20 --- .../ColorPicker/Strings/mt-MT/Resources.resw | 20 --- .../ColorPicker/Strings/nb-NO/Resources.resw | 20 --- .../ColorPicker/Strings/ne-NP/Resources.resw | 20 --- .../ColorPicker/Strings/nl-NL/Resources.resw | 20 --- .../ColorPicker/Strings/nn-NO/Resources.resw | 20 --- .../ColorPicker/Strings/or-IN/Resources.resw | 20 --- .../ColorPicker/Strings/pa/Resources.resw | 20 --- .../ColorPicker/Strings/pl-PL/Resources.resw | 20 --- .../ColorPicker/Strings/pt-BR/Resources.resw | 20 --- .../ColorPicker/Strings/pt-PT/Resources.resw | 20 --- .../ColorPicker/Strings/ro-RO/Resources.resw | 20 --- .../ColorPicker/Strings/ru-RU/Resources.resw | 20 --- .../ColorPicker/Strings/sk-SK/Resources.resw | 20 --- .../ColorPicker/Strings/sl-SI/Resources.resw | 20 --- .../ColorPicker/Strings/sq-AL/Resources.resw | 20 --- .../Strings/sr-Cyrl-BA/Resources.resw | 20 --- .../Strings/sr-Cyrl-RS/Resources.resw | 20 --- .../Strings/sr-Latn-RS/Resources.resw | 20 --- .../ColorPicker/Strings/sv-SE/Resources.resw | 20 --- .../ColorPicker/Strings/ta-IN/Resources.resw | 20 --- .../ColorPicker/Strings/te-IN/Resources.resw | 20 --- .../ColorPicker/Strings/th-TH/Resources.resw | 20 --- .../ColorPicker/Strings/tr-TR/Resources.resw | 20 --- .../ColorPicker/Strings/tt-RU/Resources.resw | 20 --- .../ColorPicker/Strings/ug-CN/Resources.resw | 20 --- .../ColorPicker/Strings/uk-UA/Resources.resw | 20 --- .../ColorPicker/Strings/ur/Resources.resw | 20 --- .../Strings/uz-Latn-UZ/Resources.resw | 20 --- .../ColorPicker/Strings/vi-VN/Resources.resw | 20 --- .../Strings/zh-Hans/Resources.resw | 20 --- .../Strings/zh-Hant/Resources.resw | 20 --- .../Strings/af-ZA/Resources.resw | 140 ++++++++++++++++++ .../Strings/am-ET/Resources.resw | 140 ++++++++++++++++++ .../Strings/ar-SA/Resources.resw | 140 ++++++++++++++++++ .../Strings/as-IN/Resources.resw | 140 ++++++++++++++++++ .../Strings/az-Latn-AZ/Resources.resw | 140 ++++++++++++++++++ .../Strings/bg-BG/Resources.resw | 140 ++++++++++++++++++ .../Strings/bn-IN/Resources.resw | 140 ++++++++++++++++++ .../Strings/bs-Latn-BA/Resources.resw | 140 ++++++++++++++++++ .../Strings/ca-ES/Resources.resw | 140 ++++++++++++++++++ .../Strings/cs-CZ/Resources.resw | 140 ++++++++++++++++++ .../Strings/cy-GB/Resources.resw | 140 ++++++++++++++++++ .../Strings/da-DK/Resources.resw | 140 ++++++++++++++++++ .../Strings/de-DE/Resources.resw | 140 ++++++++++++++++++ .../Strings/el-GR/Resources.resw | 140 ++++++++++++++++++ .../Strings/en-GB/Resources.resw | 140 ++++++++++++++++++ .../Strings/en-us/Resources.resw | 140 ++++++++++++++++++ .../Strings/es-ES/Resources.resw | 140 ++++++++++++++++++ .../Strings/es-MX/Resources.resw | 140 ++++++++++++++++++ .../Strings/et-EE/Resources.resw | 140 ++++++++++++++++++ .../Strings/eu-ES/Resources.resw | 140 ++++++++++++++++++ .../Strings/fa-IR/Resources.resw | 140 ++++++++++++++++++ .../Strings/fi-FI/Resources.resw | 140 ++++++++++++++++++ .../Strings/fil-PH/Resources.resw | 140 ++++++++++++++++++ .../Strings/fr-CA/Resources.resw | 140 ++++++++++++++++++ .../Strings/fr-FR/Resources.resw | 140 ++++++++++++++++++ .../Strings/ga-IE/Resources.resw | 140 ++++++++++++++++++ .../Strings/gd-gb/Resources.resw | 140 ++++++++++++++++++ .../Strings/gl-ES/Resources.resw | 140 ++++++++++++++++++ .../Strings/gu-IN/Resources.resw | 140 ++++++++++++++++++ .../Strings/he-IL/Resources.resw | 140 ++++++++++++++++++ .../Strings/hi-IN/Resources.resw | 140 ++++++++++++++++++ .../Strings/hr-HR/Resources.resw | 140 ++++++++++++++++++ .../Strings/hu-HU/Resources.resw | 140 ++++++++++++++++++ .../Strings/hy-AM/Resources.resw | 140 ++++++++++++++++++ .../Strings/id-ID/Resources.resw | 140 ++++++++++++++++++ .../Strings/is-IS/Resources.resw | 140 ++++++++++++++++++ .../Strings/it-IT/Resources.resw | 140 ++++++++++++++++++ .../Strings/ja-JP/Resources.resw | 140 ++++++++++++++++++ .../Strings/ka-GE/Resources.resw | 140 ++++++++++++++++++ .../Strings/kk-KZ/Resources.resw | 140 ++++++++++++++++++ .../Strings/km-KH/Resources.resw | 140 ++++++++++++++++++ .../Strings/kn-IN/Resources.resw | 140 ++++++++++++++++++ .../Strings/ko-KR/Resources.resw | 140 ++++++++++++++++++ .../Strings/kok-IN/Resources.resw | 140 ++++++++++++++++++ .../Strings/lb-LU/Resources.resw | 140 ++++++++++++++++++ .../Strings/lo-LA/Resources.resw | 140 ++++++++++++++++++ .../Strings/lt-LT/Resources.resw | 140 ++++++++++++++++++ .../Strings/lv-LV/Resources.resw | 140 ++++++++++++++++++ .../Strings/mi-NZ/Resources.resw | 140 ++++++++++++++++++ .../Strings/mk-MK/Resources.resw | 140 ++++++++++++++++++ .../Strings/ml-IN/Resources.resw | 140 ++++++++++++++++++ .../Strings/mr-IN/Resources.resw | 140 ++++++++++++++++++ .../Strings/ms-MY/Resources.resw | 140 ++++++++++++++++++ .../Strings/mt-MT/Resources.resw | 140 ++++++++++++++++++ .../Strings/nb-NO/Resources.resw | 140 ++++++++++++++++++ .../Strings/ne-NP/Resources.resw | 140 ++++++++++++++++++ .../Strings/nl-NL/Resources.resw | 140 ++++++++++++++++++ .../Strings/nn-NO/Resources.resw | 140 ++++++++++++++++++ .../Strings/or-IN/Resources.resw | 140 ++++++++++++++++++ .../ColorSpectrum/Strings/pa/Resources.resw | 140 ++++++++++++++++++ .../Strings/pl-PL/Resources.resw | 140 ++++++++++++++++++ .../Strings/pt-BR/Resources.resw | 140 ++++++++++++++++++ .../Strings/pt-PT/Resources.resw | 140 ++++++++++++++++++ .../Strings/ro-RO/Resources.resw | 140 ++++++++++++++++++ .../Strings/ru-RU/Resources.resw | 140 ++++++++++++++++++ .../Strings/sk-SK/Resources.resw | 140 ++++++++++++++++++ .../Strings/sl-SI/Resources.resw | 140 ++++++++++++++++++ .../Strings/sq-AL/Resources.resw | 140 ++++++++++++++++++ .../Strings/sr-Cyrl-BA/Resources.resw | 140 ++++++++++++++++++ .../Strings/sr-Cyrl-RS/Resources.resw | 140 ++++++++++++++++++ .../Strings/sr-Latn-RS/Resources.resw | 140 ++++++++++++++++++ .../Strings/sv-SE/Resources.resw | 140 ++++++++++++++++++ .../Strings/ta-IN/Resources.resw | 140 ++++++++++++++++++ .../Strings/te-IN/Resources.resw | 140 ++++++++++++++++++ .../Strings/th-TH/Resources.resw | 140 ++++++++++++++++++ .../Strings/tr-TR/Resources.resw | 140 ++++++++++++++++++ .../Strings/tt-RU/Resources.resw | 140 ++++++++++++++++++ .../Strings/ug-CN/Resources.resw | 140 ++++++++++++++++++ .../Strings/uk-UA/Resources.resw | 140 ++++++++++++++++++ .../ColorSpectrum/Strings/ur/Resources.resw | 140 ++++++++++++++++++ .../Strings/uz-Latn-UZ/Resources.resw | 140 ++++++++++++++++++ .../Strings/vi-VN/Resources.resw | 140 ++++++++++++++++++ .../Strings/zh-Hans/Resources.resw | 140 ++++++++++++++++++ .../Strings/zh-Hant/Resources.resw | 140 ++++++++++++++++++ 168 files changed, 11760 insertions(+), 1680 deletions(-) create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/af-ZA/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/am-ET/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ar-SA/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/as-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/az-Latn-AZ/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bg-BG/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bn-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bs-Latn-BA/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ca-ES/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/cs-CZ/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/cy-GB/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/da-DK/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/de-DE/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/el-GR/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/en-GB/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/en-us/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/es-ES/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/es-MX/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/et-EE/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/eu-ES/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fa-IR/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fi-FI/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fil-PH/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fr-CA/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fr-FR/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ga-IE/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gd-gb/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gl-ES/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gu-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/he-IL/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hi-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hr-HR/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hu-HU/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hy-AM/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/id-ID/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/is-IS/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/it-IT/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ja-JP/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ka-GE/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kk-KZ/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/km-KH/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kn-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ko-KR/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kok-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lb-LU/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lo-LA/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lt-LT/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lv-LV/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mi-NZ/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mk-MK/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ml-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mr-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ms-MY/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mt-MT/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nb-NO/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ne-NP/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nl-NL/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nn-NO/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/or-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pa/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pl-PL/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pt-BR/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pt-PT/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ro-RO/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ru-RU/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sk-SK/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sl-SI/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sq-AL/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Cyrl-BA/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Cyrl-RS/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Latn-RS/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sv-SE/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ta-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/te-IN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/th-TH/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/tr-TR/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/tt-RU/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ug-CN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/uk-UA/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ur/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/uz-Latn-UZ/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/vi-VN/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/zh-Hans/Resources.resw create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/zh-Hant/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/af-ZA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/af-ZA/Resources.resw index b37fe89c2ef2..f2212cecfe47 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/af-ZA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/af-ZA/Resources.resw @@ -153,10 +153,6 @@ Kleurmodel The automation name for the color model selection combo box. - - Kleurkieser - The automation name for the ColorSpectrum control. - Groen The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Groen The automation name for the text box to edit the green component of the current RGB color. - - 2D-navigasie met pyltjiesleutels - The help text associated with ColorSpectrum. - RGB-hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Tint The automation name for the text box to edit the hue component of the current HSV color. - - 2D-glyer - The string to provide as the localized control type of the ColorSpectrum. - Rooi The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Waarde The label for the text box to edit the value component of the current HSV color. - - %1!s!, Tint %2!u!, Versadiging %3!u!, Waarde %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Tint %1!u!, Versadiging %2!u!, Waarde %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/am-ET/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/am-ET/Resources.resw index 07db4f609a49..d3304bf573ee 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/am-ET/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/am-ET/Resources.resw @@ -153,10 +153,6 @@ የቀለም ሞዴል The automation name for the color model selection combo box. - - ቀለም መራጭ - The automation name for the ColorSpectrum control. - አረንጓዴ The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ አረንጓዴ The automation name for the text box to edit the green component of the current RGB color. - - 2D ዳሰሳ ከቀስት ቁልፎች ጋር - The help text associated with ColorSpectrum. - RGB ስድስትዮሽ The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ መሰረታዊ ቀለም The automation name for the text box to edit the hue component of the current HSV color. - - 2D አንሸራታች - The string to provide as the localized control type of the ColorSpectrum. - ቀይ The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ እሴት The label for the text box to edit the value component of the current HSV color. - - %1!s!፣ መሰረታዊ ቀለም %2!u!፣ የቀለም ሙሌት %3!u!, Value %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - መሰረታዊ ቀለም %1!u!፣ የቀለም ሙሌት %2!u!፣ እሴት %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!፣ %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ar-SA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ar-SA/Resources.resw index 2874f04cc606..2ff7db86962f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ar-SA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ar-SA/Resources.resw @@ -153,10 +153,6 @@ نموذج الألوان The automation name for the color model selection combo box. - - منتقي الألوان - The automation name for the ColorSpectrum control. - أخضر The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ أخضر The automation name for the text box to edit the green component of the current RGB color. - - التنقل ثنائي الأبعاد باستخدام مفاتيح الأسهم - The help text associated with ColorSpectrum. - RGB hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ تدرج اللون The automation name for the text box to edit the hue component of the current HSV color. - - شريط التمرير ثنائي الأبعاد - The string to provide as the localized control type of the ColorSpectrum. - أحمر The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ القيمة The label for the text box to edit the value component of the current HSV color. - - %1!s!، تدرج اللون %2!u!، التشبع %3!u!، القيمة %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - تدرج اللون %1!u!، التشبع %2!u!، القيمة %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/as-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/as-IN/Resources.resw index 34a79100628b..98fb8e4479ab 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/as-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/as-IN/Resources.resw @@ -153,10 +153,6 @@ ৰঙৰ মডেল The automation name for the color model selection combo box. - - ৰং নিৰ্বাচক - The automation name for the ColorSpectrum control. - সেউজীয়া The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ সেউজীয়া The automation name for the text box to edit the green component of the current RGB color. - - কাঁড় কীসমূহৰ সৈতে 2D নেভিগেশ্বন - The help text associated with ColorSpectrum. - RGB হেক্স The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ বৰণ The automation name for the text box to edit the hue component of the current HSV color. - - 2D শ্লাইডাৰ - The string to provide as the localized control type of the ColorSpectrum. - ৰঙা The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ মান The label for the text box to edit the value component of the current HSV color. - - %1!s!, বৰণ %2!u!, সংপৃক্ততা %3!u!, মান %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - বৰণ %1!u!, সংপৃক্ততা %2!u!, মান %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/az-Latn-AZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/az-Latn-AZ/Resources.resw index 997177d04947..efcce8b51e75 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/az-Latn-AZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/az-Latn-AZ/Resources.resw @@ -153,10 +153,6 @@ Rəng modeli The automation name for the color model selection combo box. - - Rəng seçici - The automation name for the ColorSpectrum control. - Yaşıl The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Yaşıl The automation name for the text box to edit the green component of the current RGB color. - - Ox düymələri ilə 2D naviqasiyası - The help text associated with ColorSpectrum. - RGB onaltılıq The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Çalar The automation name for the text box to edit the hue component of the current HSV color. - - 2D sürüngəci - The string to provide as the localized control type of the ColorSpectrum. - Qırmızı The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Qiymət The label for the text box to edit the value component of the current HSV color. - - %1!s!, Çalar %2!u!, Dolğunluq %3!u!, Qiymət %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Çalar %1!u!, Dolğunluq %2!u!, Qiymət %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bg-BG/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bg-BG/Resources.resw index 8f7163142c57..3ae05f733883 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bg-BG/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bg-BG/Resources.resw @@ -153,10 +153,6 @@ Цветен модел The automation name for the color model selection combo box. - - Функция за избиране на цвят - The automation name for the ColorSpectrum control. - Зелено The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Зелено The automation name for the text box to edit the green component of the current RGB color. - - Навигация в 2D с клавиши със стрелки - The help text associated with ColorSpectrum. - Стойност по шестнайсетична бройна система на RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Оттенък The automation name for the text box to edit the hue component of the current HSV color. - - 2D плъзгач - The string to provide as the localized control type of the ColorSpectrum. - Червено The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Стойност The label for the text box to edit the value component of the current HSV color. - - %1!s!, Оттенък %2!u!, Наситеност %3!u!, Стойност %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Оттенък %1!u!, Наситеност %2!u!, Стойност %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u! %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bn-IN/Resources.resw index e206227523c8..3fc47cdf865f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bn-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bn-IN/Resources.resw @@ -153,10 +153,6 @@ রঙের মডেল The automation name for the color model selection combo box. - - রঙ বাছাইকারী - The automation name for the ColorSpectrum control. - সবুজ The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ সবুজ The automation name for the text box to edit the green component of the current RGB color. - - তীর কীগুলি সহ 2D নেভিগেশন - The help text associated with ColorSpectrum. - RGB হেক্স The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ আভা The automation name for the text box to edit the hue component of the current HSV color. - - 2D স্লাইডার - The string to provide as the localized control type of the ColorSpectrum. - লাল The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ মান The label for the text box to edit the value component of the current HSV color. - - %1!s!, আভা %2!u!, রঙের নির্দিষ্ট মাত্রা %3!u!, মান %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - আভা %1!u!, রঙের নির্দিষ্ট মাত্রা %2!u!, মান %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bs-Latn-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bs-Latn-BA/Resources.resw index 007afeca8867..d7fcf674ce6f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bs-Latn-BA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/bs-Latn-BA/Resources.resw @@ -153,10 +153,6 @@ Model boja The automation name for the color model selection combo box. - - Alat za odabir boja - The automation name for the ColorSpectrum control. - Zelena The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Zelena The automation name for the text box to edit the green component of the current RGB color. - - 2D navigacija s tipkama strelica - The help text associated with ColorSpectrum. - RGB hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Nijansa The automation name for the text box to edit the hue component of the current HSV color. - - 2D klizač - The string to provide as the localized control type of the ColorSpectrum. - Crvena The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Vrijednost The label for the text box to edit the value component of the current HSV color. - - %1!s!, nijansa %2!u!, zasićenje %3!u!, vrijednost %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Nijansa %1!u!, zasićenje %2!u!, vrijednost %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ca-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ca-ES/Resources.resw index 57c8e46cd46f..3611b23bf281 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ca-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ca-ES/Resources.resw @@ -153,10 +153,6 @@ Model de color The automation name for the color model selection combo box. - - Selector de colors - The automation name for the ColorSpectrum control. - Verd The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Verd The automation name for the text box to edit the green component of the current RGB color. - - Navegació 2D amb tecles de fletxa - The help text associated with ColorSpectrum. - RGB hexadecimal The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ To The automation name for the text box to edit the hue component of the current HSV color. - - Control lliscant 2D - The string to provide as the localized control type of the ColorSpectrum. - Vermell The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valor The label for the text box to edit the value component of the current HSV color. - - %1!s!, to %2!u!, saturació %3!u!, valor %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - To %1!u!, saturació %2!u!, valor %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/cs-CZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/cs-CZ/Resources.resw index 56994e909010..8932e4ca945c 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/cs-CZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/cs-CZ/Resources.resw @@ -153,10 +153,6 @@ Barevný model The automation name for the color model selection combo box. - - Výběr barvy - The automation name for the ColorSpectrum control. - Zelená The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Zelená The automation name for the text box to edit the green component of the current RGB color. - - 2D navigace pomocí kláves se šipkami - The help text associated with ColorSpectrum. - RGB, šestnáctkové The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Odstín The automation name for the text box to edit the hue component of the current HSV color. - - 2D posuvník - The string to provide as the localized control type of the ColorSpectrum. - Červená The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Hodnota The label for the text box to edit the value component of the current HSV color. - - %1!s!, odstín %2!u!, sytost %3!u!, hodnota %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Odstín %1!u!, sytost %2!u!, hodnota %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/cy-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/cy-GB/Resources.resw index 386dcc7a16bf..fde5c0722c1f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/cy-GB/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/cy-GB/Resources.resw @@ -153,10 +153,6 @@ Model lliw The automation name for the color model selection combo box. - - Dewisydd lliwiau - The automation name for the ColorSpectrum control. - Gwyrdd The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Gwyrdd The automation name for the text box to edit the green component of the current RGB color. - - Llywio 2D gydag allweddi saeth - The help text associated with ColorSpectrum. - Hecs RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Arlliw The automation name for the text box to edit the hue component of the current HSV color. - - Llithrydd 2D - The string to provide as the localized control type of the ColorSpectrum. - Coch The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Gwerth The label for the text box to edit the value component of the current HSV color. - - %1!s!, Arlliw %2!u!, Dirlawnder %3!u!, Gwerth %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Arlliw %1!u!, Dirlawnder %2!u!, Gwerth %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/da-DK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/da-DK/Resources.resw index 6f7a77fd18f1..a52524eb67d9 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/da-DK/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/da-DK/Resources.resw @@ -153,10 +153,6 @@ Farvemodel The automation name for the color model selection combo box. - - Farvevælger - The automation name for the ColorSpectrum control. - Grøn The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Grøn The automation name for the text box to edit the green component of the current RGB color. - - 2D-navigation med piletaster - The help text associated with ColorSpectrum. - RGB-hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Nuance The automation name for the text box to edit the hue component of the current HSV color. - - 2D-skyder - The string to provide as the localized control type of the ColorSpectrum. - Rød The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Værdi The label for the text box to edit the value component of the current HSV color. - - %1!s!, nuance %2!u!, mætning %3!u!, værdi %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Nuance %1!u!, mætning %2!u!, værdi %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/de-DE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/de-DE/Resources.resw index c9191aab0aff..6e0c796dae31 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/de-DE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/de-DE/Resources.resw @@ -153,10 +153,6 @@ Farbmodell The automation name for the color model selection combo box. - - Farbwähler - The automation name for the ColorSpectrum control. - Grün The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Grün The automation name for the text box to edit the green component of the current RGB color. - - 2D-Navigation mit Pfeiltasten - The help text associated with ColorSpectrum. - RGB-Hex-Wert The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Farbton The automation name for the text box to edit the hue component of the current HSV color. - - 2D-Schieberegler - The string to provide as the localized control type of the ColorSpectrum. - Rot The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Wert The label for the text box to edit the value component of the current HSV color. - - %1!s!, Farbton: %2!u!, Sättigung: %3!u!, Wert: %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Farbton: %1!u!, Sättigung: %2!u!, Wert: %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/el-GR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/el-GR/Resources.resw index 4bb1ce7e2580..2bab3eefad8f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/el-GR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/el-GR/Resources.resw @@ -153,10 +153,6 @@ Μοντέλο χρώματος The automation name for the color model selection combo box. - - Επιλογέας χρώματος - The automation name for the ColorSpectrum control. - Πράσινο The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Πράσινο The automation name for the text box to edit the green component of the current RGB color. - - Περιήγηση 2Δ με τα πλήκτρα βέλους - The help text associated with ColorSpectrum. - Δεκαεξαδικό RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Απόχρωση The automation name for the text box to edit the hue component of the current HSV color. - - Ρυθμιστικό 2Δ - The string to provide as the localized control type of the ColorSpectrum. - Κόκκινο The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Τιμή The label for the text box to edit the value component of the current HSV color. - - %1!s!, Απόχρωση %2!u!, Κορεσμός %3!u!, Τιμή %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Απόχρωση %1!u!, Κορεσμός %2!u!, Τιμή %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/en-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/en-GB/Resources.resw index c6a35c07b6d4..85d3881116e7 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/en-GB/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/en-GB/Resources.resw @@ -153,10 +153,6 @@ Colour model The automation name for the color model selection combo box. - - Colour picker - The automation name for the ColorSpectrum control. - Green The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Green The automation name for the text box to edit the green component of the current RGB color. - - 2D navigation with arrow keys - The help text associated with ColorSpectrum. - RGB hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Hue The automation name for the text box to edit the hue component of the current HSV color. - - 2D slider - The string to provide as the localized control type of the ColorSpectrum. - Red The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Value The label for the text box to edit the value component of the current HSV color. - - %1!s!, Hue %2!u!, Saturation %3!u!, Value %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Hue %1!u!, Saturation %2!u!, Value %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/en-us/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/en-us/Resources.resw index 1685f9fd6376..17d47a406c5a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/en-us/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/en-us/Resources.resw @@ -153,10 +153,6 @@ Color model The automation name for the color model selection combo box. - - Color picker - The automation name for the ColorSpectrum control. - Green The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Green The automation name for the text box to edit the green component of the current RGB color. - - 2D navigation with arrow keys - The help text associated with ColorSpectrum. - RGB hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Hue The automation name for the text box to edit the hue component of the current HSV color. - - 2D slider - The string to provide as the localized control type of the ColorSpectrum. - Red The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Value The label for the text box to edit the value component of the current HSV color. - - %1!s!, Hue %2!u!, Saturation %3!u!, Value %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Hue %1!u!, Saturation %2!u!, Value %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/es-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/es-ES/Resources.resw index 7e7278b58587..7d9370f68981 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/es-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/es-ES/Resources.resw @@ -153,10 +153,6 @@ Modelo de color The automation name for the color model selection combo box. - - Selector de colores - The automation name for the ColorSpectrum control. - Verde The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Verde The automation name for the text box to edit the green component of the current RGB color. - - Navegación en 2D con las flechas de dirección - The help text associated with ColorSpectrum. - RGB hexa The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Matiz The automation name for the text box to edit the hue component of the current HSV color. - - Control deslizante 2D - The string to provide as the localized control type of the ColorSpectrum. - Rojo The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valor The label for the text box to edit the value component of the current HSV color. - - %1!s!, Matiz %2!u!, Saturación %3!u!, Valor %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Matiz %1!u!, Saturación %2!u!, Valor %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/es-MX/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/es-MX/Resources.resw index 7505eebed6fc..f900d8cf6476 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/es-MX/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/es-MX/Resources.resw @@ -153,10 +153,6 @@ Modelo de color The automation name for the color model selection combo box. - - Selector de colores - The automation name for the ColorSpectrum control. - Verde The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Verde The automation name for the text box to edit the green component of the current RGB color. - - Navegación 2D con teclas de flecha - The help text associated with ColorSpectrum. - RGB hexa The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Matiz The automation name for the text box to edit the hue component of the current HSV color. - - Control deslizante 2D - The string to provide as the localized control type of the ColorSpectrum. - Rojo The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valor The label for the text box to edit the value component of the current HSV color. - - %1!s!, Matiz: %2!u!, Saturación: %3!u!, Valor: %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Matiz: %1!u!, Saturación: %2!u!, Valor: %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/et-EE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/et-EE/Resources.resw index 983f95d747d5..d6fbcc43d383 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/et-EE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/et-EE/Resources.resw @@ -153,10 +153,6 @@ Värvimudel The automation name for the color model selection combo box. - - Värvivalija - The automation name for the ColorSpectrum control. - Roheline The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Roheline The automation name for the text box to edit the green component of the current RGB color. - - Tasapinnaline navigeerimine nooleklahvidega - The help text associated with ColorSpectrum. - RGB kuueteistkümnendväärtus The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Värvitoon The automation name for the text box to edit the hue component of the current HSV color. - - Tasapinnaline liugur - The string to provide as the localized control type of the ColorSpectrum. - Punane The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Väärtus The label for the text box to edit the value component of the current HSV color. - - %1!s!, värvitoon %2!u!, küllastus %3!u!, väärtus %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Värvitoon %1!u!, küllastus %2!u!, väärtus %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/eu-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/eu-ES/Resources.resw index 344c5f8f2ecd..78d04e1c5082 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/eu-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/eu-ES/Resources.resw @@ -153,10 +153,6 @@ Kolore-modeloa The automation name for the color model selection combo box. - - Kolore-hautatzailea - The automation name for the ColorSpectrum control. - Berdea The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Berdea The automation name for the text box to edit the green component of the current RGB color. - - 2D nabigazioa geziekin - The help text associated with ColorSpectrum. - GBU hamaseitarra The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Tonua The automation name for the text box to edit the hue component of the current HSV color. - - 2D graduatzailea - The string to provide as the localized control type of the ColorSpectrum. - Gorria The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Balioa The label for the text box to edit the value component of the current HSV color. - - %1!s!, Tonua: %2!u!, Saturazioa: %3!u!., Balioa: %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Tonua: %1!u!. Saturazioa: %2!u!. Balioa: %3!u!. - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fa-IR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fa-IR/Resources.resw index 0156477eb2f4..5fbd328348ec 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fa-IR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fa-IR/Resources.resw @@ -153,10 +153,6 @@ مدل رنگ The automation name for the color model selection combo box. - - انتخاب رنگ - The automation name for the ColorSpectrum control. - سبز The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ سبز The automation name for the text box to edit the green component of the current RGB color. - - پیمایش ۲ بعدی با کلیدهای پیکان - The help text associated with ColorSpectrum. - هگزا RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ رنگمایه The automation name for the text box to edit the hue component of the current HSV color. - - لغزنده ۲ بعدی - The string to provide as the localized control type of the ColorSpectrum. - قرمز The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ مقدار The label for the text box to edit the value component of the current HSV color. - - %1!s!، رنگمایه %2!u!، اشباع رنگ %3!u!، مقدار %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - رنگمایه %1!u!، اشباع رنگ %2!u!، روشنایی %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fi-FI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fi-FI/Resources.resw index 7b8ac99312ec..bded15916790 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fi-FI/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fi-FI/Resources.resw @@ -153,10 +153,6 @@ Värimalli The automation name for the color model selection combo box. - - Värinvalitsin - The automation name for the ColorSpectrum control. - Vihreä The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Vihreä The automation name for the text box to edit the green component of the current RGB color. - - 2D-siirtyminen nuolinäppäimillä - The help text associated with ColorSpectrum. - RGB-heksa The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Värisävy The automation name for the text box to edit the hue component of the current HSV color. - - 2D-liukusäädin - The string to provide as the localized control type of the ColorSpectrum. - Punainen The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Arvo The label for the text box to edit the value component of the current HSV color. - - %1!s!, värisävy %2!u!, kylläisyys %3!u!, arvo %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Värisävy %1!u!, kylläisyys %2!u!, arvo %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fil-PH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fil-PH/Resources.resw index 459af5112aa0..1b7f04470769 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fil-PH/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fil-PH/Resources.resw @@ -153,10 +153,6 @@ Modelo ng kulay The automation name for the color model selection combo box. - - Tagapili ng kulay - The automation name for the ColorSpectrum control. - Berde The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Berde The automation name for the text box to edit the green component of the current RGB color. - - 2D navigation gamit ang mga arrow key - The help text associated with ColorSpectrum. - RGB hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Hue The automation name for the text box to edit the hue component of the current HSV color. - - 2D na slider - The string to provide as the localized control type of the ColorSpectrum. - Pula The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Value The label for the text box to edit the value component of the current HSV color. - - %1!s!, Hue %2!u!, Saturation %3!u!, Value %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Hue %1!u!, Saturation %2!u!, Value %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fr-CA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fr-CA/Resources.resw index 42f81e9ad25c..e8da53b70f37 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fr-CA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fr-CA/Resources.resw @@ -153,10 +153,6 @@ Modèle de couleur The automation name for the color model selection combo box. - - Sélecteur de couleurs - The automation name for the ColorSpectrum control. - Vert The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Vert The automation name for the text box to edit the green component of the current RGB color. - - Navigation en 2D avec les touches de direction - The help text associated with ColorSpectrum. - Valeur RVB hexadécimale The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Teinte The automation name for the text box to edit the hue component of the current HSV color. - - Curseur 2D - The string to provide as the localized control type of the ColorSpectrum. - Rouge The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valeur The label for the text box to edit the value component of the current HSV color. - - %1!s!, Teinte %2!u!, Saturation %3!u!, Valeur %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Teinte %1!u!, Saturation %2!u!, Valeur %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fr-FR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fr-FR/Resources.resw index 07507ee0d49b..2a628d78f160 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fr-FR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/fr-FR/Resources.resw @@ -153,10 +153,6 @@ Modèle de couleur The automation name for the color model selection combo box. - - Sélecteur de couleur - The automation name for the ColorSpectrum control. - Vert The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Vert The automation name for the text box to edit the green component of the current RGB color. - - Navigation 2D avec les touches de direction - The help text associated with ColorSpectrum. - Hexadécimal RVB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Teinte The automation name for the text box to edit the hue component of the current HSV color. - - Curseur 2D - The string to provide as the localized control type of the ColorSpectrum. - Rouge The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valeur The label for the text box to edit the value component of the current HSV color. - - %1!s!, Teinte %2!u!, Saturation %3!u!, Valeur %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Teinte %1!u!, Saturation %2!u!, Valeur %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ga-IE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ga-IE/Resources.resw index b0bb650562e1..cc0b84893bf9 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ga-IE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ga-IE/Resources.resw @@ -153,10 +153,6 @@ Samhail datha The automation name for the color model selection combo box. - - Roghnóir datha - The automation name for the ColorSpectrum control. - Glas The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Glas The automation name for the text box to edit the green component of the current RGB color. - - Nascleanúint 2T le saigheadeochracha - The help text associated with ColorSpectrum. - Heics RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ The automation name for the text box to edit the hue component of the current HSV color. - - Barra sleamhnáin 2T - The string to provide as the localized control type of the ColorSpectrum. - Dearg The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Luach The label for the text box to edit the value component of the current HSV color. - - %1!s!, Lí %2!u!, Sáithiú %3!u!, Luach %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Lí %1!u!, Sáithiú %2!u!, Gile %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gd-gb/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gd-gb/Resources.resw index c17d255442a8..d4271d179254 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gd-gb/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gd-gb/Resources.resw @@ -153,10 +153,6 @@ Modail nan dath The automation name for the color model selection combo box. - - Roghnaichear nan dathan - The automation name for the ColorSpectrum control. - Uaine The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Uaine The automation name for the text box to edit the green component of the current RGB color. - - Seòladaireachd 2D leis na h-iuchraichean saighde - The help text associated with ColorSpectrum. - RGB hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Tuar The automation name for the text box to edit the hue component of the current HSV color. - - Sleamhnaiche 2D - The string to provide as the localized control type of the ColorSpectrum. - Dearg The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Luach The label for the text box to edit the value component of the current HSV color. - - %1!s!, tuar %2!u!, sàthachd %3!u!, luach %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Tuar %1!u!, sàthachd %2!u!, luach %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gl-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gl-ES/Resources.resw index 1037fa9a9fa2..31ee89c3119a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gl-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gl-ES/Resources.resw @@ -153,10 +153,6 @@ Modelo de cor The automation name for the color model selection combo box. - - Selector de cor - The automation name for the ColorSpectrum control. - Verde The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Verde The automation name for the text box to edit the green component of the current RGB color. - - Navegación 2D con teclas de frecha - The help text associated with ColorSpectrum. - RGB hexadecimal The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Matiz The automation name for the text box to edit the hue component of the current HSV color. - - Cursor da barra de desprazamento 2D - The string to provide as the localized control type of the ColorSpectrum. - Vermello The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valor The label for the text box to edit the value component of the current HSV color. - - %1!s!, matiz %2!u!, saturación %3!u!, valor %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Matiz %1!u!, saturación %2!u!, valor %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gu-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gu-IN/Resources.resw index 87795f2400c0..cb3a1d8a1719 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gu-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/gu-IN/Resources.resw @@ -153,10 +153,6 @@ રંગ મૉડલ The automation name for the color model selection combo box. - - રંગ પસંદ કરનાર - The automation name for the ColorSpectrum control. - લીલો The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ લીલો The automation name for the text box to edit the green component of the current RGB color. - - તીર કી વડે 2D નેવિગેશન - The help text associated with ColorSpectrum. - RGB હેક્સ The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ ઝાંય The automation name for the text box to edit the hue component of the current HSV color. - - 2D સ્લાઇડર - The string to provide as the localized control type of the ColorSpectrum. - લાલ The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ મૂલ્ય The label for the text box to edit the value component of the current HSV color. - - %1!s!, ઝાંય %2!u!, સંતૃપ્તિ %3!u!, મૂલ્ય %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - ઝાંય %1!u!, સંતૃપ્તિ %2!u!, મૂલ્ય %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/he-IL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/he-IL/Resources.resw index e0f50f272457..abd51a673cab 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/he-IL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/he-IL/Resources.resw @@ -153,10 +153,6 @@ מודל צבע The automation name for the color model selection combo box. - - בורר הצבעים - The automation name for the ColorSpectrum control. - ירוק The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ ירוק The automation name for the text box to edit the green component of the current RGB color. - - ניווט דו-ממדי עם מקשי חצים - The help text associated with ColorSpectrum. - ערך הקסדצימאלי של RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ גוון The automation name for the text box to edit the hue component of the current HSV color. - - מחוון דו-ממדי - The string to provide as the localized control type of the ColorSpectrum. - אדום The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ ערך The label for the text box to edit the value component of the current HSV color. - - %1!s!, גוון %2!u!, רוויה %3!u!, ערך %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - גוון %1!u!, רוויה %2!u!, ערך %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hi-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hi-IN/Resources.resw index 08730aff527c..1b028e5998c7 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hi-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hi-IN/Resources.resw @@ -153,10 +153,6 @@ रंग मॉडल The automation name for the color model selection combo box. - - कलर पिकर - The automation name for the ColorSpectrum control. - हरा The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ हरा The automation name for the text box to edit the green component of the current RGB color. - - तीर कुंजियों के साथ 2D नेविगेशन - The help text associated with ColorSpectrum. - RGB हेक्स The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ ह्यू The automation name for the text box to edit the hue component of the current HSV color. - - 2D स्लाइडर - The string to provide as the localized control type of the ColorSpectrum. - लाल The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ मान The label for the text box to edit the value component of the current HSV color. - - %1!s!, छटा %2!u!, परिपूर्णता %3!u!, मान %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - छटा %1!u!, परिपूर्णता %2!u!, मान %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hr-HR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hr-HR/Resources.resw index 4cedc268b2a8..9cbb18fdba91 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hr-HR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hr-HR/Resources.resw @@ -153,10 +153,6 @@ Model boje The automation name for the color model selection combo box. - - Birač boje - The automation name for the ColorSpectrum control. - Zelena The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Zelena The automation name for the text box to edit the green component of the current RGB color. - - 2D navigacija pomoću tipki sa strelicama - The help text associated with ColorSpectrum. - RGB heksadekadski The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Nijansa The automation name for the text box to edit the hue component of the current HSV color. - - 2D klizač - The string to provide as the localized control type of the ColorSpectrum. - crvena The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Vrijednost The label for the text box to edit the value component of the current HSV color. - - %1!s!, nijansa %2!u!, zasićenje %3!u!, vrijednost %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Nijansa: %1!u!, zasićenje: %2!u!, vrijednost: %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hu-HU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hu-HU/Resources.resw index ace8e783a909..6ad032f5ef88 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hu-HU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hu-HU/Resources.resw @@ -153,10 +153,6 @@ Színmodell The automation name for the color model selection combo box. - - Színválasztó - The automation name for the ColorSpectrum control. - Zöld The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Zöld The automation name for the text box to edit the green component of the current RGB color. - - 2D navigáció a nyílbillentyűkkel - The help text associated with ColorSpectrum. - RGB hexa The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Árnyalat The automation name for the text box to edit the hue component of the current HSV color. - - 2D csúszka - The string to provide as the localized control type of the ColorSpectrum. - Piros The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Érték The label for the text box to edit the value component of the current HSV color. - - %1!s!, Árnyalat: %2!u!, Telítettség: %3!u!, Érték: %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Árnyalat: %1!u!, Telítettség: %2!u!, Érték: %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - árnyalatérték: %1!u!, szín: %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hy-AM/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hy-AM/Resources.resw index a410e6a44371..54ed13911b4f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hy-AM/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/hy-AM/Resources.resw @@ -153,10 +153,6 @@ Գունային մոդել The automation name for the color model selection combo box. - - Գույն ընտրող - The automation name for the ColorSpectrum control. - Կանաչ The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Կանաչ The automation name for the text box to edit the green component of the current RGB color. - - 2D նավարկում սլաքի ստեղներեվ - The help text associated with ColorSpectrum. - RGB վեցանկյուն The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Նրբերանգ The automation name for the text box to edit the hue component of the current HSV color. - - 2D սահիչ - The string to provide as the localized control type of the ColorSpectrum. - Կարմիր The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Արժեք The label for the text box to edit the value component of the current HSV color. - - %1!s!, Նրբերանգ %2!u!, Հագեցվածություն %3!u!, Արժեք %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Նրբերանգ %1!u!, Հագեցվածություն %2!u!, Արժեք %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/id-ID/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/id-ID/Resources.resw index 0db3afc55966..4459029dc691 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/id-ID/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/id-ID/Resources.resw @@ -153,10 +153,6 @@ Model warna The automation name for the color model selection combo box. - - Pemilih warna - The automation name for the ColorSpectrum control. - Hijau The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Hijau The automation name for the text box to edit the green component of the current RGB color. - - Navigasi 2D dengan tombol panah - The help text associated with ColorSpectrum. - Heks RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Rona The automation name for the text box to edit the hue component of the current HSV color. - - Penggeser 2D - The string to provide as the localized control type of the ColorSpectrum. - Merah The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Nilai The label for the text box to edit the value component of the current HSV color. - - %1!s!, Rona %2!u!, Saturasi %3!u!, Nilai %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Rona %1!u!, Saturasi %2!u!, Nilai %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/is-IS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/is-IS/Resources.resw index df88ec7aced3..0c6b9146a533 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/is-IS/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/is-IS/Resources.resw @@ -153,10 +153,6 @@ Litalíkan The automation name for the color model selection combo box. - - Litaval - The automation name for the ColorSpectrum control. - Grænn The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Grænn The automation name for the text box to edit the green component of the current RGB color. - - Tvívíddaryfirlit með örvatökkum - The help text associated with ColorSpectrum. - RGB-sextándakerfi The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Litblær The automation name for the text box to edit the hue component of the current HSV color. - - Tvívíddarsleði - The string to provide as the localized control type of the ColorSpectrum. - Rauður The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Gildi The label for the text box to edit the value component of the current HSV color. - - %1!s!, litblær %2!u!, mettun %3!u!, gildi %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Litblær %1!u!, mettun %2!u!, gildi %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/it-IT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/it-IT/Resources.resw index 140760c6d80f..075cfb13bd54 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/it-IT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/it-IT/Resources.resw @@ -153,10 +153,6 @@ Modello colori The automation name for the color model selection combo box. - - Selezione colori - The automation name for the ColorSpectrum control. - Verde The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Verde The automation name for the text box to edit the green component of the current RGB color. - - Spostamento 2D con tasti di direzione - The help text associated with ColorSpectrum. - Hex RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Tonalità The automation name for the text box to edit the hue component of the current HSV color. - - Dispositivo di scorrimento 2D - The string to provide as the localized control type of the ColorSpectrum. - Rosso The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valore The label for the text box to edit the value component of the current HSV color. - - %1!s!, Tonalità %2!u!, Saturazione %3!u!, Valore %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Tonalità %1!u!, Saturazione %2!u!, Valore %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ja-JP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ja-JP/Resources.resw index ba49f7559346..1d106c35f491 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ja-JP/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ja-JP/Resources.resw @@ -153,10 +153,6 @@ カラー モデル The automation name for the color model selection combo box. - - カラー ピッカー - The automation name for the ColorSpectrum control. - The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ The automation name for the text box to edit the green component of the current RGB color. - - 矢印キーを使用した 2D ナビゲーション - The help text associated with ColorSpectrum. - RGB 16 進数 The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ 色合い The automation name for the text box to edit the hue component of the current HSV color. - - 2D スライダー - The string to provide as the localized control type of the ColorSpectrum. - The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ The label for the text box to edit the value component of the current HSV color. - - %1!s!、色合い %2!u!、彩度 %3!u!、値 %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - 色合い %1!u!、彩度 %2!u!、値 %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!、%2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ka-GE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ka-GE/Resources.resw index 4132af635e87..fed251db122d 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ka-GE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ka-GE/Resources.resw @@ -153,10 +153,6 @@ ფერის მოდელი The automation name for the color model selection combo box. - - ფერის ამრჩევი - The automation name for the ColorSpectrum control. - მწვანე The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ მწვანე The automation name for the text box to edit the green component of the current RGB color. - - 2D ნავიგაცია ისრებით - The help text associated with ColorSpectrum. - თექვსმეტობითი RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ ელფერი The automation name for the text box to edit the hue component of the current HSV color. - - 2D ცოცია - The string to provide as the localized control type of the ColorSpectrum. - წითელი The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ ფასი The label for the text box to edit the value component of the current HSV color. - - %1!s!, ელფერი %2!u!, გაჯერება %3!u!, მნიშვნელობა %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - ელფერი %1!u!, გაჯერება %2!u!, მნიშნველობა %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kk-KZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kk-KZ/Resources.resw index cc760f573474..8c373ae8c459 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kk-KZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kk-KZ/Resources.resw @@ -153,10 +153,6 @@ Түс үлгісі The automation name for the color model selection combo box. - - Түс таңдау құралы - The automation name for the ColorSpectrum control. - Жасыл The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Жасыл The automation name for the text box to edit the green component of the current RGB color. - - Көрсеткі пернелері бар 2D шарлауы - The help text associated with ColorSpectrum. - RGB оналтылық The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Реңк The automation name for the text box to edit the hue component of the current HSV color. - - 2D жүгірткісі - The string to provide as the localized control type of the ColorSpectrum. - Қызыл The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Мән The label for the text box to edit the value component of the current HSV color. - - %1!s!, Реңк: %2!u!, Қанықтық: %3!u!, Мән: %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Реңк: %1!u!, Қанықтық: %2!u!, Мән: %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/km-KH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/km-KH/Resources.resw index 1ddf9033956c..1c6b50f3f79b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/km-KH/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/km-KH/Resources.resw @@ -153,10 +153,6 @@ ម៉ូដែល​ពណ៌ The automation name for the color model selection combo box. - - អង្គ​រើស​ពណ៌ - The automation name for the ColorSpectrum control. - បៃតង The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ បៃតង The automation name for the text box to edit the green component of the current RGB color. - - ការ​ប្រាប់​ទិស 2D ជាមួយ​នឹង​ឃី​សញ្ញា​ព្រួញ - The help text associated with ColorSpectrum. - RGB ជា​តម្លៃ​គោល​ដប់​ប្រាំ​មួយ The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ ល្បាយ​ពណ៌ The automation name for the text box to edit the hue component of the current HSV color. - - របារ​រំកិល​កម្រិត 2D - The string to provide as the localized control type of the ColorSpectrum. - ក្រហម The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ តម្លៃ The label for the text box to edit the value component of the current HSV color. - - %1!s!, ស្រមោលពណ៌ %2!u!, បញ្ជោកពណ៌ %3!u!, តម្លៃ %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - ស្រមោលពណ៌ %1!u!, បញ្ជោកពណ៌ %2!u!, តម្លៃ %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kn-IN/Resources.resw index 520fb2c150d2..3dc040ff3bb3 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kn-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kn-IN/Resources.resw @@ -153,10 +153,6 @@ ಬಣ್ಣದ ಮಾದರಿ The automation name for the color model selection combo box. - - ಬಣ್ಣದ ಪಿಕ್ಕರ್ - The automation name for the ColorSpectrum control. - ಹಸಿರು The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ ಹಸಿರು The automation name for the text box to edit the green component of the current RGB color. - - ಬಾಣದ ಕೀಲಿಗಳೊಂದಿಗೆ 2D ನ್ಯಾವಿಗೇಶನ್ - The help text associated with ColorSpectrum. - RGB ಹೆಕ್ಸ್ The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ ವರ್ಣ The automation name for the text box to edit the hue component of the current HSV color. - - 2D ಸ್ಲೈಡರ್ - The string to provide as the localized control type of the ColorSpectrum. - ಕೆಂಪು The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ ಮೌಲ್ಯ The label for the text box to edit the value component of the current HSV color. - - %1!s!, ವರ್ಣ %2!u!, ಶುದ್ಧತ್ವ %3!u!, ಮೌಲ್ಯ %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - ವರ್ಣ %1!u!, ಶುದ್ಧತ್ವ %2!u!, ಮೌಲ್ಯ %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ko-KR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ko-KR/Resources.resw index 248ac8af9269..f33ed8d29f6c 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ko-KR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ko-KR/Resources.resw @@ -153,10 +153,6 @@ 색 모델 The automation name for the color model selection combo box. - - 색 선택 - The automation name for the ColorSpectrum control. - 녹색 The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ 녹색 The automation name for the text box to edit the green component of the current RGB color. - - 화살표 키를 사용하여 2D 탐색 - The help text associated with ColorSpectrum. - RGB 16진수 The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ 색상 The automation name for the text box to edit the hue component of the current HSV color. - - 2D 슬라이더 - The string to provide as the localized control type of the ColorSpectrum. - 빨강 The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ The label for the text box to edit the value component of the current HSV color. - - %1!s!, 색상 %2!u!, 채도 %3!u!, 값 %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - 색상 %1!u!, 채도 %2!u!, 값 %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kok-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kok-IN/Resources.resw index 11c812306c82..cfe5a7d15ab0 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kok-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/kok-IN/Resources.resw @@ -153,10 +153,6 @@ रंगाचो मोदेल The automation name for the color model selection combo box. - - रंग पिकर - The automation name for the ColorSpectrum control. - पाचवो The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ पाचवो The automation name for the text box to edit the green component of the current RGB color. - - बाण बटणा वरवीं 2D नॅविगेशन - The help text associated with ColorSpectrum. - RGB hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ रंगछटा The automation name for the text box to edit the hue component of the current HSV color. - - 2D स्लायडर - The string to provide as the localized control type of the ColorSpectrum. - तांबडो The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ मान The label for the text box to edit the value component of the current HSV color. - - %1!s!, रंगछटा %2!u!, परिपूर्णता %3!u!, मान %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - रंगछटा %1!u!, परिपूर्णता %2!u!, मान %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lb-LU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lb-LU/Resources.resw index a3fcf4d57284..a243bd99e28c 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lb-LU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lb-LU/Resources.resw @@ -153,10 +153,6 @@ Faarfmodell The automation name for the color model selection combo box. - - Faarfauswiel - The automation name for the ColorSpectrum control. - Gréng The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Gréng The automation name for the text box to edit the green component of the current RGB color. - - 2D-Navigatioun mat Feiltasten - The help text associated with ColorSpectrum. - RGB hexadezimal The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Faarfnuance The automation name for the text box to edit the hue component of the current HSV color. - - 2D-Reegler - The string to provide as the localized control type of the ColorSpectrum. - Rout The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Wäert The label for the text box to edit the value component of the current HSV color. - - %1!s!, Faarfnuance %2!u!, Siedegung %3!u!, Wäert %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Faarfnuance %1!u!, Siedegung %2!u!, Wäert %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lo-LA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lo-LA/Resources.resw index b9be8366e76f..2c8ae65e1a8d 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lo-LA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lo-LA/Resources.resw @@ -153,10 +153,6 @@ ໂໝດສີ The automation name for the color model selection combo box. - - ຕົວເລືອກສີ - The automation name for the ColorSpectrum control. - ສີຂຽວ The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ ສີຂຽວ The automation name for the text box to edit the green component of the current RGB color. - - ການເລື່ອນໄປມາແບບ 2D ດ້ວຍປຸ່ມລູກສອນ - The help text associated with ColorSpectrum. - RGB ຖານສິບຫົກ The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ ສີສັນ The automation name for the text box to edit the hue component of the current HSV color. - - ຕົວເລື່ອນ 2D - The string to provide as the localized control type of the ColorSpectrum. - ສີແດງ The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ ຄ່າ The label for the text box to edit the value component of the current HSV color. - - %1!s!, ສີສັນ %2!u!, ຄວາມເຂັ້ມ %3!u!, ຄ່າ %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - ສີສັນ %1!u!, ຄວາມເຂັ້ມ %2!u!, ຄ່າ %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lt-LT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lt-LT/Resources.resw index 8e230cf77013..73b9164c04c8 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lt-LT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lt-LT/Resources.resw @@ -153,10 +153,6 @@ Spalvų modelis The automation name for the color model selection combo box. - - Spalvų parinkiklis - The automation name for the ColorSpectrum control. - Žalia The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Žalia The automation name for the text box to edit the green component of the current RGB color. - - 2D naršymas naudojant rodyklių klavišus - The help text associated with ColorSpectrum. - RGB šešioliktainis The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Atspalvis The automation name for the text box to edit the hue component of the current HSV color. - - 2D slankiklis - The string to provide as the localized control type of the ColorSpectrum. - Raudona The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Reikšmė The label for the text box to edit the value component of the current HSV color. - - %1!s!, atspalvis %2!u!, grynis %3!u!, reikšmė %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Atspalvis %1!u!, grynis %2!u!, reikšmė %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lv-LV/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lv-LV/Resources.resw index 77f8df0c71d9..3a9a92f68fe4 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lv-LV/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/lv-LV/Resources.resw @@ -153,10 +153,6 @@ Krāsu modelis The automation name for the color model selection combo box. - - Krāsu atlasītājs - The automation name for the ColorSpectrum control. - Zaļa The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Zaļa The automation name for the text box to edit the green component of the current RGB color. - - Navigācija plaknē, izmantojot bulttaustiņus - The help text associated with ColorSpectrum. - RGB krāsu modelis (heksadecimāla vērtība) The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Nokrāsa The automation name for the text box to edit the hue component of the current HSV color. - - Plaknes slīdnis - The string to provide as the localized control type of the ColorSpectrum. - Sarkana The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Vērtība The label for the text box to edit the value component of the current HSV color. - - %1!s!, nokrāsa: %2!u!, piesātinājums: %3!u!, vērtība: %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Nokrāsa: %1!u!, piesātinājums: %2!u!, vērtība: %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mi-NZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mi-NZ/Resources.resw index f3294db6ccc0..b75f1aaf590a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mi-NZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mi-NZ/Resources.resw @@ -153,10 +153,6 @@ Tauira Tae The automation name for the color model selection combo box. - - Pūwhiri tae - The automation name for the ColorSpectrum control. - Kākāriki The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Kākāriki The automation name for the text box to edit the green component of the current RGB color. - - Whakaterenga Ahu2 me ngā Pātuhi pere - The help text associated with ColorSpectrum. - ira-a-ono RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Hākano The automation name for the text box to edit the hue component of the current HSV color. - - Rēreti Ahu2 - The string to provide as the localized control type of the ColorSpectrum. - Whero The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Uara The label for the text box to edit the value component of the current HSV color. - - %1!s!, Hākano %2!u!, Kohuratanga %3!u!, Uara %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Hākano %1!u!, Kohuratanga %2!u!, Uara %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mk-MK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mk-MK/Resources.resw index 6f51498f0623..f7c8519b455b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mk-MK/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mk-MK/Resources.resw @@ -153,10 +153,6 @@ Модел на боја The automation name for the color model selection combo box. - - Избирач на бои - The automation name for the ColorSpectrum control. - Зелена The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Зелена The automation name for the text box to edit the green component of the current RGB color. - - 2Д-навигација со копчињата со стрелки - The help text associated with ColorSpectrum. - РГБ хексадецимално The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Нијанса The automation name for the text box to edit the hue component of the current HSV color. - - 2Д-лизгач - The string to provide as the localized control type of the ColorSpectrum. - Црвена The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Вредност The label for the text box to edit the value component of the current HSV color. - - %1!s!, нијанса %2!u!, заситеност %3!u!, вредност %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Нијанса %1!u!, заситеност %2!u!, осветленост %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ml-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ml-IN/Resources.resw index 92385cde769d..3e87e14c3a56 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ml-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ml-IN/Resources.resw @@ -153,10 +153,6 @@ വർണ്ണ മോഡൽ The automation name for the color model selection combo box. - - വർണ്ണ പിക്കർ - The automation name for the ColorSpectrum control. - പച്ച The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ പച്ച The automation name for the text box to edit the green component of the current RGB color. - - അമ്പടയാള കീകളുള്ള 2D നാവിഗേഷൻ - The help text associated with ColorSpectrum. - RGB ഹെക്‌സ് The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ ഹ്യൂ The automation name for the text box to edit the hue component of the current HSV color. - - 2D സ്ലൈഡർ - The string to provide as the localized control type of the ColorSpectrum. - ചുവപ്പ് The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ മൂല്യം The label for the text box to edit the value component of the current HSV color. - - %1!s!, നിറം %2!u!, വ്യാപനം %3!u!, മൂല്യം %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - നിറം %1!u!, വ്യാപനം %2!u!, മൂല്യം %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mr-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mr-IN/Resources.resw index 4414b77f13a7..f504951eaa08 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mr-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mr-IN/Resources.resw @@ -153,10 +153,6 @@ रंग मॉडेल The automation name for the color model selection combo box. - - रंग निवडक - The automation name for the ColorSpectrum control. - हिरवा The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ हिरवा The automation name for the text box to edit the green component of the current RGB color. - - बाण कळांसह 2D नेव्हिगेशन - The help text associated with ColorSpectrum. - RGB हेक्स The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ छटा The automation name for the text box to edit the hue component of the current HSV color. - - 2D स्लायडर - The string to provide as the localized control type of the ColorSpectrum. - लाल The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ मूल्य The label for the text box to edit the value component of the current HSV color. - - %1!s!, रंगाची छटा %2!u!, Sसंपृक्तता %3!u!, मूल्य %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - रंगाची छटा %1!u!, संपृक्तता %2!u!, प्रखरता %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ms-MY/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ms-MY/Resources.resw index 45dab6f202a1..7fc77ed8e39f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ms-MY/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ms-MY/Resources.resw @@ -153,10 +153,6 @@ Model warna The automation name for the color model selection combo box. - - Pemungut warna - The automation name for the ColorSpectrum control. - Hijau The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Hijau The automation name for the text box to edit the green component of the current RGB color. - - Navigasi 2D dengan kekunci anak panah - The help text associated with ColorSpectrum. - Heks RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Rona The automation name for the text box to edit the hue component of the current HSV color. - - Penggelongsor 2D - The string to provide as the localized control type of the ColorSpectrum. - Merah The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Nilai The label for the text box to edit the value component of the current HSV color. - - %1!s!, Rona %2!u!, Ketepuan %3!u!, Nilai %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Rona %1!u!, Ketepuan %2!u!, Nilai %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mt-MT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mt-MT/Resources.resw index 1e48291be03b..ae88b2231f3b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mt-MT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/mt-MT/Resources.resw @@ -153,10 +153,6 @@ Mudell tal-kulur The automation name for the color model selection combo box. - - Selettur tal-kuluri - The automation name for the ColorSpectrum control. - Aħdar The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Aħdar The automation name for the text box to edit the green component of the current RGB color. - - Navigazzjoni 2D b'tasti tal-vleġeġ - The help text associated with ColorSpectrum. - RGB hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Tonalità The automation name for the text box to edit the hue component of the current HSV color. - - Slajder 2D - The string to provide as the localized control type of the ColorSpectrum. - Aħmar The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valur The label for the text box to edit the value component of the current HSV color. - - %1!s!, Tonalità %2!u!, Saturazzjoni %3!u!, Valur %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Tonalità %1!u!, Saturazzjoni %2!u!, Valur %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nb-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nb-NO/Resources.resw index df033e95906b..5da5e5b2814d 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nb-NO/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nb-NO/Resources.resw @@ -153,10 +153,6 @@ Fargemodell The automation name for the color model selection combo box. - - Fargevelger - The automation name for the ColorSpectrum control. - Grønn The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Grønn The automation name for the text box to edit the green component of the current RGB color. - - 2D-navigasjon med piltaster - The help text associated with ColorSpectrum. - RGB-heks The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Nyanse The automation name for the text box to edit the hue component of the current HSV color. - - 2D-glidebryter - The string to provide as the localized control type of the ColorSpectrum. - Rød The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Verdi The label for the text box to edit the value component of the current HSV color. - - %1!s!, %2!u! nyanse, %3!u! metning, %4!u! lysstyrke - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - %1!u! nyanse, %2!u! metning, %3!u! lysstyrke - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ne-NP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ne-NP/Resources.resw index 4b05814379cc..897eedc39719 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ne-NP/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ne-NP/Resources.resw @@ -153,10 +153,6 @@ रङ मोडेल The automation name for the color model selection combo box. - - रङ चयनकर्ता - The automation name for the ColorSpectrum control. - हरियो The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ हरियो The automation name for the text box to edit the green component of the current RGB color. - - बाण कुञ्जीहरू सहितको 2D नेभिगेसन - The help text associated with ColorSpectrum. - RGB हेक्स The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ ह्यु The automation name for the text box to edit the hue component of the current HSV color. - - 2D स्लाइडर - The string to provide as the localized control type of the ColorSpectrum. - रातो The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ मान The label for the text box to edit the value component of the current HSV color. - - %1!s!, ह्यु %2!u!, संतृप्ति %3!u!, मान %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - ह्यु %1!u!, संतृप्ति %2!u!, मान %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nl-NL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nl-NL/Resources.resw index fcbc8d2c09c4..9b94b4916328 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nl-NL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nl-NL/Resources.resw @@ -153,10 +153,6 @@ Kleurenmodel The automation name for the color model selection combo box. - - Kleurenkiezer - The automation name for the ColorSpectrum control. - Groen The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Groen The automation name for the text box to edit the green component of the current RGB color. - - 2D-navigatie met pijltoetsen - The help text associated with ColorSpectrum. - RGB-hexadecimaal The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Tint The automation name for the text box to edit the hue component of the current HSV color. - - 2D-schuifregelaar - The string to provide as the localized control type of the ColorSpectrum. - Rood The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Waarde The label for the text box to edit the value component of the current HSV color. - - %1!s!, tint %2!u!, intensiteit %3!u!, waarde %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Tint %1!u!, intensiteit %2!u!, waarde %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nn-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nn-NO/Resources.resw index 94c035e06af4..717e8be9f02a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nn-NO/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/nn-NO/Resources.resw @@ -153,10 +153,6 @@ Fargemodell The automation name for the color model selection combo box. - - Fargeveljar - The automation name for the ColorSpectrum control. - Grøn The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Grøn The automation name for the text box to edit the green component of the current RGB color. - - 2D-navigasjon med piltastar - The help text associated with ColorSpectrum. - RGB-heks The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Nyanse The automation name for the text box to edit the hue component of the current HSV color. - - 2D-glidebrytar - The string to provide as the localized control type of the ColorSpectrum. - Raud The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Verdi The label for the text box to edit the value component of the current HSV color. - - %1!s!, nyanse %2!u!, metting %3!u!, verdi %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Nyanse %1!u!, metting %2!u!, verdi %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/or-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/or-IN/Resources.resw index ca4f05a96681..f68043ae6147 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/or-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/or-IN/Resources.resw @@ -153,10 +153,6 @@ ରଙ୍ଗ ମଡେଲ The automation name for the color model selection combo box. - - ରଙ୍ଗ ପିକର୍ - The automation name for the ColorSpectrum control. - ସବୁଜ The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ ସବୁଜ The automation name for the text box to edit the green component of the current RGB color. - - 2D ନେଭିଗେସନ ସହିତ ଏରୋ କୀ - The help text associated with ColorSpectrum. - RGB ହେକ୍ସ The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ ହୁଏ The automation name for the text box to edit the hue component of the current HSV color. - - 2D ସ୍ଲାଇଡର୍ - The string to provide as the localized control type of the ColorSpectrum. - ଲାଲ୍ The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ ମୂଲ୍ୟ The label for the text box to edit the value component of the current HSV color. - - %1!s!, ହୁଏ %2!u!, ସାଚୁରେସନ୍ %3!u!, ମୂଲ୍ୟ %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - ରଙ୍ଗ %1!u!, ସାଚୁରେସନ୍ %2!u!, ଔଜଲ୍ୟତା %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pa/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pa/Resources.resw index b51a6227dbc4..90be30fd0a72 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pa/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pa/Resources.resw @@ -153,10 +153,6 @@ ਰੰਗ ਮੋਡਲ The automation name for the color model selection combo box. - - ਰੰਗ ਚੋਣਕਾਰ - The automation name for the ColorSpectrum control. - ਹਰਾ The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ ਹਰਾ The automation name for the text box to edit the green component of the current RGB color. - - ਤੀਰ ਕੁੰਜੀਆਂ ਦੇ ਨਾਲ 2D ਨੈਵੀਗੇਸ਼ਨ - The help text associated with ColorSpectrum. - RGB ਹੈਕਸ The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ ਹਿਉ The automation name for the text box to edit the hue component of the current HSV color. - - 2D ਸਲਾਇਡਰ - The string to provide as the localized control type of the ColorSpectrum. - ਲਾਲ The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ ਮਾਨ The label for the text box to edit the value component of the current HSV color. - - %1!s!, ਹਿਉ %2!u!, ਸੰਤ੍ਰਿਪਤੀ %3!u!, ਮਾਨ %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - ਹਿਉ %1!u!, ਸੰਤ੍ਰਿਪਤੀ %2!u!, ਮਾਨ %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pl-PL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pl-PL/Resources.resw index cf0327d2e2da..7c14c5cca061 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pl-PL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pl-PL/Resources.resw @@ -153,10 +153,6 @@ Model kolorów The automation name for the color model selection combo box. - - Selektor kolorów - The automation name for the ColorSpectrum control. - Zielony The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Zielony The automation name for the text box to edit the green component of the current RGB color. - - Nawigacja 2D klawiszami strzałek - The help text associated with ColorSpectrum. - RGB szesnastkowy The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Odcień The automation name for the text box to edit the hue component of the current HSV color. - - Suwak 2D - The string to provide as the localized control type of the ColorSpectrum. - Czerwony The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Wartość The label for the text box to edit the value component of the current HSV color. - - %1!s!, Odcień %2!u!, Nasycenie %3!u!, Wartość %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Odcień %1!u!, Nasycenie %2!u!, Wartość %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pt-BR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pt-BR/Resources.resw index f553e88ce995..aa44f4596926 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pt-BR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pt-BR/Resources.resw @@ -153,10 +153,6 @@ Modelo de cor The automation name for the color model selection combo box. - - Seletor de cores - The automation name for the ColorSpectrum control. - Verde The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Verde The automation name for the text box to edit the green component of the current RGB color. - - Navegação 2D com as teclas de seta - The help text associated with ColorSpectrum. - RGB hexa The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Matiz The automation name for the text box to edit the hue component of the current HSV color. - - Controle deslizante 2D - The string to provide as the localized control type of the ColorSpectrum. - Vermelho The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valor The label for the text box to edit the value component of the current HSV color. - - %1!s!, Matiz %2!u!, Saturação %3!u!, Brilho %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Matiz %1!u!, Saturação %2!u!, Brilho %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pt-PT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pt-PT/Resources.resw index 0448c687cb57..a148998f7afe 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pt-PT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/pt-PT/Resources.resw @@ -153,10 +153,6 @@ Modelo de cores The automation name for the color model selection combo box. - - Seletor de cores - The automation name for the ColorSpectrum control. - Verde The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Verde The automation name for the text box to edit the green component of the current RGB color. - - Navegação 2D com teclas de seta - The help text associated with ColorSpectrum. - RGB Hexa The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Matiz The automation name for the text box to edit the hue component of the current HSV color. - - Controlo de deslize 2D - The string to provide as the localized control type of the ColorSpectrum. - Vermelho The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valor The label for the text box to edit the value component of the current HSV color. - - %1!s!, Matiz %2!u!, Saturação %3!u!, Valor %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Matiz %1!u!, Saturação %2!u!, Valor %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ro-RO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ro-RO/Resources.resw index 0479ca5d417f..0a6eddeee36b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ro-RO/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ro-RO/Resources.resw @@ -153,10 +153,6 @@ Model de culoare The automation name for the color model selection combo box. - - Selector de culori - The automation name for the ColorSpectrum control. - Verde The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Verde The automation name for the text box to edit the green component of the current RGB color. - - Navigare 2D cu tastele săgeți - The help text associated with ColorSpectrum. - RGB hexadecimal The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Nuanță The automation name for the text box to edit the hue component of the current HSV color. - - Glisor 2D - The string to provide as the localized control type of the ColorSpectrum. - Roșu The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Valoare The label for the text box to edit the value component of the current HSV color. - - %1!s!, Nuanță %2!u!, Saturație %3!u!, Valoare %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Nuanță %1!u!, Saturație %2!u!, Valoare %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ru-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ru-RU/Resources.resw index 374f433ecb79..e27e7b3cb2b9 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ru-RU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ru-RU/Resources.resw @@ -153,10 +153,6 @@ Цветовая модель The automation name for the color model selection combo box. - - Палитра - The automation name for the ColorSpectrum control. - Зеленый The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Зеленый The automation name for the text box to edit the green component of the current RGB color. - - Двухмерная навигация с помощью клавиш со стрелками - The help text associated with ColorSpectrum. - Шестнадцатеричный формат RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Оттенок The automation name for the text box to edit the hue component of the current HSV color. - - Двухмерный ползунок - The string to provide as the localized control type of the ColorSpectrum. - Красный The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Значение The label for the text box to edit the value component of the current HSV color. - - %1!s!, оттенок %2!u!, насыщенность %3!u!, значение %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Оттенок, %1!u!, насыщенность %2!u!, значение %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sk-SK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sk-SK/Resources.resw index 931dd5c54089..24d5bf470511 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sk-SK/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sk-SK/Resources.resw @@ -153,10 +153,6 @@ Model farieb The automation name for the color model selection combo box. - - Výber farby - The automation name for the ColorSpectrum control. - Zelená The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Zelená The automation name for the text box to edit the green component of the current RGB color. - - 2D navigácia pomocou klávesov so šípkami - The help text associated with ColorSpectrum. - RGB hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Odtieň The automation name for the text box to edit the hue component of the current HSV color. - - 2D jazdec - The string to provide as the localized control type of the ColorSpectrum. - Červená The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Hodnota The label for the text box to edit the value component of the current HSV color. - - %1!s!, odtieň: %2!u!, sýtosť: %3!u!, hodnota: %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Odtieň: %1!u!, sýtosť: %2!u!, hodnota: %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sl-SI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sl-SI/Resources.resw index 1c8a950275fd..51697d64551a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sl-SI/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sl-SI/Resources.resw @@ -153,10 +153,6 @@ Barvni model The automation name for the color model selection combo box. - - Izbirnik barve - The automation name for the ColorSpectrum control. - Zelena The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Zelena The automation name for the text box to edit the green component of the current RGB color. - - 2D-krmarjenje s puščičnimi tipkami - The help text associated with ColorSpectrum. - Šestnajstiška RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Odtenek The automation name for the text box to edit the hue component of the current HSV color. - - 2D-drsnik - The string to provide as the localized control type of the ColorSpectrum. - Rdeča The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Vrednost The label for the text box to edit the value component of the current HSV color. - - %1!s!, odtenek %2!u!, nasičenje %3!u!, vrednost %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Odtenek %1!u!, nasičenje %2!u!, vrednost %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sq-AL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sq-AL/Resources.resw index fefedde6e92c..7bcf6898ac84 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sq-AL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sq-AL/Resources.resw @@ -153,10 +153,6 @@ Modeli i ngjyrës The automation name for the color model selection combo box. - - Zgjedhësi i ngjyrës - The automation name for the ColorSpectrum control. - E gjelbër The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ E gjelbër The automation name for the text box to edit the green component of the current RGB color. - - Navigimi në 2D me tastet e shigjetave - The help text associated with ColorSpectrum. - RGB hekzadecimale The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Nuanca The automation name for the text box to edit the hue component of the current HSV color. - - Rrëshqitësi 2D - The string to provide as the localized control type of the ColorSpectrum. - E kuqe The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Vlera The label for the text box to edit the value component of the current HSV color. - - %1!s!, nuanca %2!u!, ngopja %3!u!, vlera %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Nuanca %1!u!, ngopja %2!u!, vlera %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Cyrl-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Cyrl-BA/Resources.resw index 83d73ed846fa..c062451f9576 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Cyrl-BA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Cyrl-BA/Resources.resw @@ -153,10 +153,6 @@ Модел боје The automation name for the color model selection combo box. - - Бирач боја - The automation name for the ColorSpectrum control. - Зелена The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Зелена The automation name for the text box to edit the green component of the current RGB color. - - 2D навигација помоћу тастера са стрелицама - The help text associated with ColorSpectrum. - RGB хексадецимална вриједност The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Нијанса The automation name for the text box to edit the hue component of the current HSV color. - - 2D клизач - The string to provide as the localized control type of the ColorSpectrum. - Црвена The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Вриједност The label for the text box to edit the value component of the current HSV color. - - %1!s!, нијанса %2!u!, засићење %3!u!, вриједност %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Нијанса %1!u!, засићење %2!u!, вриједност %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Cyrl-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Cyrl-RS/Resources.resw index d9844e40dbe8..1c2a6e52c00e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Cyrl-RS/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Cyrl-RS/Resources.resw @@ -153,10 +153,6 @@ Модел боје The automation name for the color model selection combo box. - - Бирач боја - The automation name for the ColorSpectrum control. - Зелена The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Зелена The automation name for the text box to edit the green component of the current RGB color. - - 2D навигација помоћу тастера са стрелицама - The help text associated with ColorSpectrum. - RGB хексадецимална вредност The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Нијанса The automation name for the text box to edit the hue component of the current HSV color. - - 2D клизач - The string to provide as the localized control type of the ColorSpectrum. - црвена The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Вредност The label for the text box to edit the value component of the current HSV color. - - %1!s!, нијанса: %2!u!, засићење: %3!u!, вредност: %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Нијанса: %1!u!, засићење: %2!u!, вредност: %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Latn-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Latn-RS/Resources.resw index 73590ede8e7f..492467bfbcd0 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Latn-RS/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sr-Latn-RS/Resources.resw @@ -153,10 +153,6 @@ Model boje The automation name for the color model selection combo box. - - Birač boja - The automation name for the ColorSpectrum control. - Zelena The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Zelena The automation name for the text box to edit the green component of the current RGB color. - - 2D navigacija pomoću tastera sa strelicama - The help text associated with ColorSpectrum. - RGB heksadecimalni The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Nijansa The automation name for the text box to edit the hue component of the current HSV color. - - 2D klizač - The string to provide as the localized control type of the ColorSpectrum. - Crvena The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Vrednost The label for the text box to edit the value component of the current HSV color. - - %1!s!, nijansa: %2!u!, zasićenje: %3!u!, vrednost: %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Nijansa %1!u!, zasićenje %2!u!, vrednost %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - Nijansa %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sv-SE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sv-SE/Resources.resw index e52a6b6a3b9d..5ed14c7078e7 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sv-SE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/sv-SE/Resources.resw @@ -153,10 +153,6 @@ Färgmodell The automation name for the color model selection combo box. - - Färgväljare - The automation name for the ColorSpectrum control. - Grön The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Grön The automation name for the text box to edit the green component of the current RGB color. - - 2D-navigering med piltangenter - The help text associated with ColorSpectrum. - RGB-hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Nyans The automation name for the text box to edit the hue component of the current HSV color. - - 2D-reglage - The string to provide as the localized control type of the ColorSpectrum. - Röd The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Värde The label for the text box to edit the value component of the current HSV color. - - %1!s!, Nyans %2!u!, Mättnad %3!u!, Värde %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Nyans %1!u!, Mättnad %2!u!, Värde %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ta-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ta-IN/Resources.resw index ff9b6fbad556..f3ded7583e9f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ta-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ta-IN/Resources.resw @@ -153,10 +153,6 @@ வண்ண மாதிரி The automation name for the color model selection combo box. - - வண்ணத் தேர்வு - The automation name for the ColorSpectrum control. - பச்சை The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ பச்சை The automation name for the text box to edit the green component of the current RGB color. - - அம்புவிசைகளுடன் 2D வழிகாட்டல் - The help text associated with ColorSpectrum. - RGB ஹெக்ஸ் The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ சாயல் The automation name for the text box to edit the hue component of the current HSV color. - - 2D நகர்வுகோல் - The string to provide as the localized control type of the ColorSpectrum. - சிவப்பு The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ மதிப்பு The label for the text box to edit the value component of the current HSV color. - - %1!s!, வர்ணம் %2!u!, செறிவுநிலை %3!u!, மதிப்பு %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - வர்ணம் %1!u!, செறிவுநிலை %2!u!, மதிப்பு %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/te-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/te-IN/Resources.resw index b59fa37f3484..2ba3d05f236a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/te-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/te-IN/Resources.resw @@ -153,10 +153,6 @@ రంగు మోడల్ The automation name for the color model selection combo box. - - రంగు ఎంపిక సాధనం - The automation name for the ColorSpectrum control. - ఆకుపచ్చ The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ ఆకుపచ్చ The automation name for the text box to edit the green component of the current RGB color. - - బాణం కీలతో 2D నావిగేషన్ - The help text associated with ColorSpectrum. - RGB హెక్స్ The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ వర్ణం The automation name for the text box to edit the hue component of the current HSV color. - - 2D స్లయిడర్ - The string to provide as the localized control type of the ColorSpectrum. - ఎరుపు The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ విలువ The label for the text box to edit the value component of the current HSV color. - - %1!s!, రంగు %2!u!, సంతృప్తత %3!u!, విలువ %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - రంగు %1!u!, సంతృప్తత %2!u!, విలువ %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/th-TH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/th-TH/Resources.resw index 3cd124875601..54590b86db34 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/th-TH/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/th-TH/Resources.resw @@ -153,10 +153,6 @@ รูปแบบสี The automation name for the color model selection combo box. - - ตัวเลือกสี - The automation name for the ColorSpectrum control. - เขียว The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ เขียว The automation name for the text box to edit the green component of the current RGB color. - - การนำทาง 2 มิติที่มีปุ่มลูกศร - The help text associated with ColorSpectrum. - ฐานสิบหกของ RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ สีสัน The automation name for the text box to edit the hue component of the current HSV color. - - แถบเลื่อน 2 มิติ - The string to provide as the localized control type of the ColorSpectrum. - แดง The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ ค่า The label for the text box to edit the value component of the current HSV color. - - %1!s!, สีสัน %2!u!, ความเข้ม %3!u!, ค่า %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - สีสัน %1!u!, ความเข้ม %2!u!, ค่า %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/tr-TR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/tr-TR/Resources.resw index a55a63899c13..95dd7b51e2c4 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/tr-TR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/tr-TR/Resources.resw @@ -153,10 +153,6 @@ Renk modeli The automation name for the color model selection combo box. - - Renk seçici - The automation name for the ColorSpectrum control. - Yeşil The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Yeşil The automation name for the text box to edit the green component of the current RGB color. - - Ok tuşlarıyla 2B gezinti - The help text associated with ColorSpectrum. - RGB onaltılık The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Ton The automation name for the text box to edit the hue component of the current HSV color. - - 2B kaydırıcı - The string to provide as the localized control type of the ColorSpectrum. - Kırmızı The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Değer The label for the text box to edit the value component of the current HSV color. - - %1!s!, Ton %2!u!, Doygunluk %3!u!, Değer %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Ton %1!u!, Doygunluk %2!u!, Değer %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/tt-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/tt-RU/Resources.resw index edc5a572286b..1318f1d948c3 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/tt-RU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/tt-RU/Resources.resw @@ -153,10 +153,6 @@ Төс моделе The automation name for the color model selection combo box. - - Төсләр гаммасы - The automation name for the ColorSpectrum control. - Яшел The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Яшел The automation name for the text box to edit the green component of the current RGB color. - - Ук төймәләре белән 2D күчеш гамәлләре - The help text associated with ColorSpectrum. - RGB уналтынчы The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Төсмер The automation name for the text box to edit the hue component of the current HSV color. - - 2D шудырма - The string to provide as the localized control type of the ColorSpectrum. - Кызыл The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Кыйммәт The label for the text box to edit the value component of the current HSV color. - - %1!s!, Төсмер %2!u!, Куелык %3!u!, Кыйммәт %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Төсмер %1!u!, Куелык %2!u!, Кыйммәт %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ug-CN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ug-CN/Resources.resw index a7e39acb0a4f..5231e33fe06e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ug-CN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ug-CN/Resources.resw @@ -153,10 +153,6 @@ رەڭلىك ئۈلگە The automation name for the color model selection combo box. - - رەڭ تاللىغۇچ - The automation name for the ColorSpectrum control. - يېشىل The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ يېشىل The automation name for the text box to edit the green component of the current RGB color. - - كۆرسەتكۈچ كۇنۇپكا ئارقىلىق 2D لىق يېتەكلەش - The help text associated with ColorSpectrum. - RGB ئون ئالتە خانىلىق The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ رەڭ تۈسى The automation name for the text box to edit the hue component of the current HSV color. - - 2D سىيرىگۈچ - The string to provide as the localized control type of the ColorSpectrum. - قىزىل The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ قىممەت The label for the text box to edit the value component of the current HSV color. - - %1!s!، رەڭ تۈسى %2!u!، رەڭ توقلۇق دەرىجىسى %3!u!، قىممىتى %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - رەڭ تۈسى %1!u!، رەڭ توقلۇق دەرىجىسى %2!u!، قىممىتى %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!، %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/uk-UA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/uk-UA/Resources.resw index 3d6c0246aca2..67216f03cfa2 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/uk-UA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/uk-UA/Resources.resw @@ -153,10 +153,6 @@ Кольорова модель The automation name for the color model selection combo box. - - Вибір кольору - The automation name for the ColorSpectrum control. - Зелений The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Зелений The automation name for the text box to edit the green component of the current RGB color. - - Двовимірна навігація за допомогою клавіш зі стрілками - The help text associated with ColorSpectrum. - Шістнадцятковий формат RGB The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Відтінок The automation name for the text box to edit the hue component of the current HSV color. - - Двовимірний повзунок - The string to provide as the localized control type of the ColorSpectrum. - Червоний The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Значення The label for the text box to edit the value component of the current HSV color. - - %1!s!, відтінок %2!u!, насиченість %3!u!, значення %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Відтінок %1!u!, насиченість %2!u!, яскравість %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ur/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ur/Resources.resw index b9793493047b..22fbb478f22e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ur/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/ur/Resources.resw @@ -153,10 +153,6 @@ رنگ کا ماڈل The automation name for the color model selection combo box. - - رنگ چنندہ - The automation name for the ColorSpectrum control. - گرین The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ گرین The automation name for the text box to edit the green component of the current RGB color. - - تیر کلیدوں کے ساتھ 2D گشت - The help text associated with ColorSpectrum. - RGB hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ رنگت The automation name for the text box to edit the hue component of the current HSV color. - - 2D سلائیڈر - The string to provide as the localized control type of the ColorSpectrum. - سرخ The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ قدر The label for the text box to edit the value component of the current HSV color. - - %1!s!، رنگت %2!u!، لبریزی %3!u!، قدر %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - رنگت %1!u!، لبریزی %2!u!، قدر %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!، %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/uz-Latn-UZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/uz-Latn-UZ/Resources.resw index ca2b0d5324ae..b104e08e3b45 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/uz-Latn-UZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/uz-Latn-UZ/Resources.resw @@ -153,10 +153,6 @@ Rangli maket The automation name for the color model selection combo box. - - Palitra - The automation name for the ColorSpectrum control. - Yashil The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Yashil The automation name for the text box to edit the green component of the current RGB color. - - Mil tugmalari yordamida 2D navigatsiya - The help text associated with ColorSpectrum. - RGB oltiburchak The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Rangi The automation name for the text box to edit the hue component of the current HSV color. - - 2D slayder - The string to provide as the localized control type of the ColorSpectrum. - Qizil The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Qiymat The label for the text box to edit the value component of the current HSV color. - - %1!s!, rangi: %2!u!, toʻyinganligi: %3!u!, qiymati: %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Rangi: %1!u!, toʻyinganligi: %2!u!, qiymati: %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/vi-VN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/vi-VN/Resources.resw index fb864a969be9..1eccdf13751c 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/vi-VN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/vi-VN/Resources.resw @@ -153,10 +153,6 @@ Mẫu màu The automation name for the color model selection combo box. - - Bộ chọn màu - The automation name for the ColorSpectrum control. - Xanh lục The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ Xanh lục The automation name for the text box to edit the green component of the current RGB color. - - Điều hướng 2D bằng phím mũi tên - The help text associated with ColorSpectrum. - RGB - số hex The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ Sắc độ The automation name for the text box to edit the hue component of the current HSV color. - - Thanh trượt 2D - The string to provide as the localized control type of the ColorSpectrum. - Đỏ The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ Giá trị The label for the text box to edit the value component of the current HSV color. - - %1!s!, Sắc độ %2!u!, Độ bão hòa %3!u!, Giá trị %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - Sắc độ %1!u!, Độ bão hòa %2!u!, Giá trị %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!, %2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/zh-Hans/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/zh-Hans/Resources.resw index 4d277ee5686b..8f4007e63276 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/zh-Hans/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/zh-Hans/Resources.resw @@ -153,10 +153,6 @@ 颜色模型 The automation name for the color model selection combo box. - - 颜色选取器 - The automation name for the ColorSpectrum control. - 绿色 The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ 绿色 The automation name for the text box to edit the green component of the current RGB color. - - 带有箭头键的 2D 导航 - The help text associated with ColorSpectrum. - RGB 十六进制 The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ 色调 The automation name for the text box to edit the hue component of the current HSV color. - - 2D 滑块 - The string to provide as the localized control type of the ColorSpectrum. - 红色 The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ The label for the text box to edit the value component of the current HSV color. - - %1!s!,色调 %2!u!,饱和度 %3!u!,亮度 %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - 色调 %1!u!,饱和度 %2!u!,亮度 %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!,%2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/zh-Hant/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/zh-Hant/Resources.resw index 3fe56c4f900c..0e698af8cdd8 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/zh-Hant/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ColorPicker/Strings/zh-Hant/Resources.resw @@ -153,10 +153,6 @@ 色彩模型 The automation name for the color model selection combo box. - - 色彩選擇器 - The automation name for the ColorSpectrum control. - 綠色 The label for the text box to edit the green component of the current RGB color. @@ -165,10 +161,6 @@ 綠色 The automation name for the text box to edit the green component of the current RGB color. - - 使用方向鍵進行 2D 瀏覽 - The help text associated with ColorSpectrum. - RGB 十六進位 The automation name for the text box to edit the current RGB color as a hex value. @@ -185,10 +177,6 @@ 色調 The automation name for the text box to edit the hue component of the current HSV color. - - 2D 滑桿 - The string to provide as the localized control type of the ColorSpectrum. - 紅色 The label for the text box to edit the red component of the current RGB color. @@ -213,14 +201,6 @@ The label for the text box to edit the value component of the current HSV color. - - %1!s!,色調 %2!u!,彩度 %3!u!,值 %4!u! - The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - - - 色調 %1!u!,彩度 %2!u!,值 %3!u! - The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). - %1!u!,%2!s! The string to provide as the UIA value of the third-dimension slider when it's controlling hue and we're including the friendly color name. %1 is the hue value between 0 and 359; %2 is the friendly color. diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/af-ZA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/af-ZA/Resources.resw new file mode 100644 index 000000000000..54e7d699274f --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/af-ZA/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Kleurkieser + The automation name for the ColorSpectrum control. + + + 2D-navigasie met pyltjiesleutels + The help text associated with ColorSpectrum. + + + 2D-glyer + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Tint %2!u!, Versadiging %3!u!, Waarde %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Tint %1!u!, Versadiging %2!u!, Waarde %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/am-ET/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/am-ET/Resources.resw new file mode 100644 index 000000000000..840ae4bf7adf --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/am-ET/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ቀለም መራጭ + The automation name for the ColorSpectrum control. + + + 2D ዳሰሳ ከቀስት ቁልፎች ጋር + The help text associated with ColorSpectrum. + + + 2D አንሸራታች + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!፣ መሰረታዊ ቀለም %2!u!፣ የቀለም ሙሌት %3!u!, Value %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + መሰረታዊ ቀለም %1!u!፣ የቀለም ሙሌት %2!u!፣ እሴት %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ar-SA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ar-SA/Resources.resw new file mode 100644 index 000000000000..1ddbbb710157 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ar-SA/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + منتقي الألوان + The automation name for the ColorSpectrum control. + + + التنقل ثنائي الأبعاد باستخدام مفاتيح الأسهم + The help text associated with ColorSpectrum. + + + شريط التمرير ثنائي الأبعاد + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!، تدرج اللون %2!u!، التشبع %3!u!، القيمة %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + تدرج اللون %1!u!، التشبع %2!u!، القيمة %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/as-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/as-IN/Resources.resw new file mode 100644 index 000000000000..bda8bf51b622 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/as-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ৰং নিৰ্বাচক + The automation name for the ColorSpectrum control. + + + কাঁড় কীসমূহৰ সৈতে 2D নেভিগেশ্বন + The help text associated with ColorSpectrum. + + + 2D শ্লাইডাৰ + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, বৰণ %2!u!, সংপৃক্ততা %3!u!, মান %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + বৰণ %1!u!, সংপৃক্ততা %2!u!, মান %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/az-Latn-AZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/az-Latn-AZ/Resources.resw new file mode 100644 index 000000000000..8888ef2df7a9 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/az-Latn-AZ/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Rəng seçici + The automation name for the ColorSpectrum control. + + + Ox düymələri ilə 2D naviqasiyası + The help text associated with ColorSpectrum. + + + 2D sürüngəci + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Çalar %2!u!, Dolğunluq %3!u!, Qiymət %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Çalar %1!u!, Dolğunluq %2!u!, Qiymət %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bg-BG/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bg-BG/Resources.resw new file mode 100644 index 000000000000..48dafdaa29c5 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bg-BG/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Функция за избиране на цвят + The automation name for the ColorSpectrum control. + + + Навигация в 2D с клавиши със стрелки + The help text associated with ColorSpectrum. + + + 2D плъзгач + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Оттенък %2!u!, Наситеност %3!u!, Стойност %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Оттенък %1!u!, Наситеност %2!u!, Стойност %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bn-IN/Resources.resw new file mode 100644 index 000000000000..a5a0adc12e54 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bn-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + রঙ বাছাইকারী + The automation name for the ColorSpectrum control. + + + তীর কীগুলি সহ 2D নেভিগেশন + The help text associated with ColorSpectrum. + + + 2D স্লাইডার + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, আভা %2!u!, রঙের নির্দিষ্ট মাত্রা %3!u!, মান %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + আভা %1!u!, রঙের নির্দিষ্ট মাত্রা %2!u!, মান %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bs-Latn-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bs-Latn-BA/Resources.resw new file mode 100644 index 000000000000..f6b5d197f5a5 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/bs-Latn-BA/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Alat za odabir boja + The automation name for the ColorSpectrum control. + + + 2D navigacija s tipkama strelica + The help text associated with ColorSpectrum. + + + 2D klizač + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, nijansa %2!u!, zasićenje %3!u!, vrijednost %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Nijansa %1!u!, zasićenje %2!u!, vrijednost %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ca-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ca-ES/Resources.resw new file mode 100644 index 000000000000..2fae3c35e583 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ca-ES/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Selector de colors + The automation name for the ColorSpectrum control. + + + Navegació 2D amb tecles de fletxa + The help text associated with ColorSpectrum. + + + Control lliscant 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, to %2!u!, saturació %3!u!, valor %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + To %1!u!, saturació %2!u!, valor %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/cs-CZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/cs-CZ/Resources.resw new file mode 100644 index 000000000000..2a202f0d100a --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/cs-CZ/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Výběr barvy + The automation name for the ColorSpectrum control. + + + 2D navigace pomocí kláves se šipkami + The help text associated with ColorSpectrum. + + + 2D posuvník + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, odstín %2!u!, sytost %3!u!, hodnota %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Odstín %1!u!, sytost %2!u!, hodnota %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/cy-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/cy-GB/Resources.resw new file mode 100644 index 000000000000..ebe3d53cc4ab --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/cy-GB/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Dewisydd lliwiau + The automation name for the ColorSpectrum control. + + + Llywio 2D gydag allweddi saeth + The help text associated with ColorSpectrum. + + + Llithrydd 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Arlliw %2!u!, Dirlawnder %3!u!, Gwerth %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Arlliw %1!u!, Dirlawnder %2!u!, Gwerth %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/da-DK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/da-DK/Resources.resw new file mode 100644 index 000000000000..489fc8355b0c --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/da-DK/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Farvevælger + The automation name for the ColorSpectrum control. + + + 2D-navigation med piletaster + The help text associated with ColorSpectrum. + + + 2D-skyder + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, nuance %2!u!, mætning %3!u!, værdi %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Nuance %1!u!, mætning %2!u!, værdi %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/de-DE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/de-DE/Resources.resw new file mode 100644 index 000000000000..a3a922cef0a9 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/de-DE/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Farbwähler + The automation name for the ColorSpectrum control. + + + 2D-Navigation mit Pfeiltasten + The help text associated with ColorSpectrum. + + + 2D-Schieberegler + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Farbton: %2!u!, Sättigung: %3!u!, Wert: %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Farbton: %1!u!, Sättigung: %2!u!, Wert: %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/el-GR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/el-GR/Resources.resw new file mode 100644 index 000000000000..8915dc856c71 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/el-GR/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Επιλογέας χρώματος + The automation name for the ColorSpectrum control. + + + Περιήγηση 2Δ με τα πλήκτρα βέλους + The help text associated with ColorSpectrum. + + + Ρυθμιστικό 2Δ + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Απόχρωση %2!u!, Κορεσμός %3!u!, Τιμή %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Απόχρωση %1!u!, Κορεσμός %2!u!, Τιμή %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/en-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/en-GB/Resources.resw new file mode 100644 index 000000000000..ef1c09c7104b --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/en-GB/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Colour picker + The automation name for the ColorSpectrum control. + + + 2D navigation with arrow keys + The help text associated with ColorSpectrum. + + + 2D slider + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Hue %2!u!, Saturation %3!u!, Value %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Hue %1!u!, Saturation %2!u!, Value %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/en-us/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/en-us/Resources.resw new file mode 100644 index 000000000000..0e04e8787c5c --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/en-us/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Color picker + The automation name for the ColorSpectrum control. + + + 2D navigation with arrow keys + The help text associated with ColorSpectrum. + + + 2D slider + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Hue %2!u!, Saturation %3!u!, Value %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Hue %1!u!, Saturation %2!u!, Value %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/es-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/es-ES/Resources.resw new file mode 100644 index 000000000000..7b045506510a --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/es-ES/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Selector de colores + The automation name for the ColorSpectrum control. + + + Navegación en 2D con las flechas de dirección + The help text associated with ColorSpectrum. + + + Control deslizante 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Matiz %2!u!, Saturación %3!u!, Valor %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Matiz %1!u!, Saturación %2!u!, Valor %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/es-MX/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/es-MX/Resources.resw new file mode 100644 index 000000000000..d19bd0fd160d --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/es-MX/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Selector de colores + The automation name for the ColorSpectrum control. + + + Navegación 2D con teclas de flecha + The help text associated with ColorSpectrum. + + + Control deslizante 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Matiz: %2!u!, Saturación: %3!u!, Valor: %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Matiz: %1!u!, Saturación: %2!u!, Valor: %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/et-EE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/et-EE/Resources.resw new file mode 100644 index 000000000000..8465786706c0 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/et-EE/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Värvivalija + The automation name for the ColorSpectrum control. + + + Tasapinnaline navigeerimine nooleklahvidega + The help text associated with ColorSpectrum. + + + Tasapinnaline liugur + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, värvitoon %2!u!, küllastus %3!u!, väärtus %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Värvitoon %1!u!, küllastus %2!u!, väärtus %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/eu-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/eu-ES/Resources.resw new file mode 100644 index 000000000000..af235f9c792d --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/eu-ES/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Kolore-hautatzailea + The automation name for the ColorSpectrum control. + + + 2D nabigazioa geziekin + The help text associated with ColorSpectrum. + + + 2D graduatzailea + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Tonua: %2!u!, Saturazioa: %3!u!., Balioa: %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Tonua: %1!u!. Saturazioa: %2!u!. Balioa: %3!u!. + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fa-IR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fa-IR/Resources.resw new file mode 100644 index 000000000000..02210bfe0f13 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fa-IR/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + انتخاب رنگ + The automation name for the ColorSpectrum control. + + + پیمایش ۲ بعدی با کلیدهای پیکان + The help text associated with ColorSpectrum. + + + لغزنده ۲ بعدی + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!، رنگمایه %2!u!، اشباع رنگ %3!u!، مقدار %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + رنگمایه %1!u!، اشباع رنگ %2!u!، روشنایی %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fi-FI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fi-FI/Resources.resw new file mode 100644 index 000000000000..795c0dce5ee7 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fi-FI/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Värinvalitsin + The automation name for the ColorSpectrum control. + + + 2D-siirtyminen nuolinäppäimillä + The help text associated with ColorSpectrum. + + + 2D-liukusäädin + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, värisävy %2!u!, kylläisyys %3!u!, arvo %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Värisävy %1!u!, kylläisyys %2!u!, arvo %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fil-PH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fil-PH/Resources.resw new file mode 100644 index 000000000000..3406c8abbc68 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fil-PH/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Tagapili ng kulay + The automation name for the ColorSpectrum control. + + + 2D navigation gamit ang mga arrow key + The help text associated with ColorSpectrum. + + + 2D na slider + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Hue %2!u!, Saturation %3!u!, Value %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Hue %1!u!, Saturation %2!u!, Value %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fr-CA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fr-CA/Resources.resw new file mode 100644 index 000000000000..491c4f610a7d --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fr-CA/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Sélecteur de couleurs + The automation name for the ColorSpectrum control. + + + Navigation en 2D avec les touches de direction + The help text associated with ColorSpectrum. + + + Curseur 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Teinte %2!u!, Saturation %3!u!, Valeur %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Teinte %1!u!, Saturation %2!u!, Valeur %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fr-FR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fr-FR/Resources.resw new file mode 100644 index 000000000000..ac8ed5031709 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/fr-FR/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Sélecteur de couleur + The automation name for the ColorSpectrum control. + + + Navigation 2D avec les touches de direction + The help text associated with ColorSpectrum. + + + Curseur 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Teinte %2!u!, Saturation %3!u!, Valeur %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Teinte %1!u!, Saturation %2!u!, Valeur %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ga-IE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ga-IE/Resources.resw new file mode 100644 index 000000000000..276fb410ef0c --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ga-IE/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Roghnóir datha + The automation name for the ColorSpectrum control. + + + Nascleanúint 2T le saigheadeochracha + The help text associated with ColorSpectrum. + + + Barra sleamhnáin 2T + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Lí %2!u!, Sáithiú %3!u!, Luach %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Lí %1!u!, Sáithiú %2!u!, Gile %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gd-gb/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gd-gb/Resources.resw new file mode 100644 index 000000000000..c68bc7ed6728 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gd-gb/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Roghnaichear nan dathan + The automation name for the ColorSpectrum control. + + + Seòladaireachd 2D leis na h-iuchraichean saighde + The help text associated with ColorSpectrum. + + + Sleamhnaiche 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, tuar %2!u!, sàthachd %3!u!, luach %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Tuar %1!u!, sàthachd %2!u!, luach %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gl-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gl-ES/Resources.resw new file mode 100644 index 000000000000..7e456369c51a --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gl-ES/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Selector de cor + The automation name for the ColorSpectrum control. + + + Navegación 2D con teclas de frecha + The help text associated with ColorSpectrum. + + + Cursor da barra de desprazamento 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, matiz %2!u!, saturación %3!u!, valor %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Matiz %1!u!, saturación %2!u!, valor %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gu-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gu-IN/Resources.resw new file mode 100644 index 000000000000..1346a4f4b332 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/gu-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + રંગ પસંદ કરનાર + The automation name for the ColorSpectrum control. + + + તીર કી વડે 2D નેવિગેશન + The help text associated with ColorSpectrum. + + + 2D સ્લાઇડર + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, ઝાંય %2!u!, સંતૃપ્તિ %3!u!, મૂલ્ય %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + ઝાંય %1!u!, સંતૃપ્તિ %2!u!, મૂલ્ય %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/he-IL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/he-IL/Resources.resw new file mode 100644 index 000000000000..5b91be59a716 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/he-IL/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + בורר הצבעים + The automation name for the ColorSpectrum control. + + + ניווט דו-ממדי עם מקשי חצים + The help text associated with ColorSpectrum. + + + מחוון דו-ממדי + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, גוון %2!u!, רוויה %3!u!, ערך %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + גוון %1!u!, רוויה %2!u!, ערך %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hi-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hi-IN/Resources.resw new file mode 100644 index 000000000000..28b848b522f1 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hi-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + कलर पिकर + The automation name for the ColorSpectrum control. + + + तीर कुंजियों के साथ 2D नेविगेशन + The help text associated with ColorSpectrum. + + + 2D स्लाइडर + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, छटा %2!u!, परिपूर्णता %3!u!, मान %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + छटा %1!u!, परिपूर्णता %2!u!, मान %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hr-HR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hr-HR/Resources.resw new file mode 100644 index 000000000000..471f8ed5184e --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hr-HR/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Birač boje + The automation name for the ColorSpectrum control. + + + 2D navigacija pomoću tipki sa strelicama + The help text associated with ColorSpectrum. + + + 2D klizač + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, nijansa %2!u!, zasićenje %3!u!, vrijednost %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Nijansa: %1!u!, zasićenje: %2!u!, vrijednost: %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hu-HU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hu-HU/Resources.resw new file mode 100644 index 000000000000..4d37420faf36 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hu-HU/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Színválasztó + The automation name for the ColorSpectrum control. + + + 2D navigáció a nyílbillentyűkkel + The help text associated with ColorSpectrum. + + + 2D csúszka + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Árnyalat: %2!u!, Telítettség: %3!u!, Érték: %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Árnyalat: %1!u!, Telítettség: %2!u!, Érték: %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hy-AM/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hy-AM/Resources.resw new file mode 100644 index 000000000000..d933fc3b573f --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/hy-AM/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Գույն ընտրող + The automation name for the ColorSpectrum control. + + + 2D նավարկում սլաքի ստեղներեվ + The help text associated with ColorSpectrum. + + + 2D սահիչ + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Նրբերանգ %2!u!, Հագեցվածություն %3!u!, Արժեք %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Նրբերանգ %1!u!, Հագեցվածություն %2!u!, Արժեք %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/id-ID/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/id-ID/Resources.resw new file mode 100644 index 000000000000..6b6a85355686 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/id-ID/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Pemilih warna + The automation name for the ColorSpectrum control. + + + Navigasi 2D dengan tombol panah + The help text associated with ColorSpectrum. + + + Penggeser 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Rona %2!u!, Saturasi %3!u!, Nilai %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Rona %1!u!, Saturasi %2!u!, Nilai %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/is-IS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/is-IS/Resources.resw new file mode 100644 index 000000000000..c01881a1bc2e --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/is-IS/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Litaval + The automation name for the ColorSpectrum control. + + + Tvívíddaryfirlit með örvatökkum + The help text associated with ColorSpectrum. + + + Tvívíddarsleði + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, litblær %2!u!, mettun %3!u!, gildi %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Litblær %1!u!, mettun %2!u!, gildi %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/it-IT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/it-IT/Resources.resw new file mode 100644 index 000000000000..e34a08509bdb --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/it-IT/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Selezione colori + The automation name for the ColorSpectrum control. + + + Spostamento 2D con tasti di direzione + The help text associated with ColorSpectrum. + + + Dispositivo di scorrimento 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Tonalità %2!u!, Saturazione %3!u!, Valore %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Tonalità %1!u!, Saturazione %2!u!, Valore %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ja-JP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ja-JP/Resources.resw new file mode 100644 index 000000000000..db19764a3e39 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ja-JP/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + カラー ピッカー + The automation name for the ColorSpectrum control. + + + 矢印キーを使用した 2D ナビゲーション + The help text associated with ColorSpectrum. + + + 2D スライダー + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!、色合い %2!u!、彩度 %3!u!、値 %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + 色合い %1!u!、彩度 %2!u!、値 %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ka-GE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ka-GE/Resources.resw new file mode 100644 index 000000000000..b39f0f6ff93e --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ka-GE/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ფერის ამრჩევი + The automation name for the ColorSpectrum control. + + + 2D ნავიგაცია ისრებით + The help text associated with ColorSpectrum. + + + 2D ცოცია + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, ელფერი %2!u!, გაჯერება %3!u!, მნიშვნელობა %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + ელფერი %1!u!, გაჯერება %2!u!, მნიშნველობა %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kk-KZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kk-KZ/Resources.resw new file mode 100644 index 000000000000..1d20ee725dfc --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kk-KZ/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Түс таңдау құралы + The automation name for the ColorSpectrum control. + + + Көрсеткі пернелері бар 2D шарлауы + The help text associated with ColorSpectrum. + + + 2D жүгірткісі + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Реңк: %2!u!, Қанықтық: %3!u!, Мән: %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Реңк: %1!u!, Қанықтық: %2!u!, Мән: %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/km-KH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/km-KH/Resources.resw new file mode 100644 index 000000000000..7201dc350c50 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/km-KH/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + អង្គ​រើស​ពណ៌ + The automation name for the ColorSpectrum control. + + + ការ​ប្រាប់​ទិស 2D ជាមួយ​នឹង​ឃី​សញ្ញា​ព្រួញ + The help text associated with ColorSpectrum. + + + របារ​រំកិល​កម្រិត 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, ស្រមោលពណ៌ %2!u!, បញ្ជោកពណ៌ %3!u!, តម្លៃ %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + ស្រមោលពណ៌ %1!u!, បញ្ជោកពណ៌ %2!u!, តម្លៃ %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kn-IN/Resources.resw new file mode 100644 index 000000000000..e0bbf803fab2 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kn-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ಬಣ್ಣದ ಪಿಕ್ಕರ್ + The automation name for the ColorSpectrum control. + + + ಬಾಣದ ಕೀಲಿಗಳೊಂದಿಗೆ 2D ನ್ಯಾವಿಗೇಶನ್ + The help text associated with ColorSpectrum. + + + 2D ಸ್ಲೈಡರ್ + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, ವರ್ಣ %2!u!, ಶುದ್ಧತ್ವ %3!u!, ಮೌಲ್ಯ %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + ವರ್ಣ %1!u!, ಶುದ್ಧತ್ವ %2!u!, ಮೌಲ್ಯ %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ko-KR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ko-KR/Resources.resw new file mode 100644 index 000000000000..bab948d6ea1e --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ko-KR/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 색 선택 + The automation name for the ColorSpectrum control. + + + 화살표 키를 사용하여 2D 탐색 + The help text associated with ColorSpectrum. + + + 2D 슬라이더 + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, 색상 %2!u!, 채도 %3!u!, 값 %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + 색상 %1!u!, 채도 %2!u!, 값 %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kok-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kok-IN/Resources.resw new file mode 100644 index 000000000000..2797c16a7c81 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/kok-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + रंग पिकर + The automation name for the ColorSpectrum control. + + + बाण बटणा वरवीं 2D नॅविगेशन + The help text associated with ColorSpectrum. + + + 2D स्लायडर + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, रंगछटा %2!u!, परिपूर्णता %3!u!, मान %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + रंगछटा %1!u!, परिपूर्णता %2!u!, मान %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lb-LU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lb-LU/Resources.resw new file mode 100644 index 000000000000..88a67f1b1d72 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lb-LU/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Faarfauswiel + The automation name for the ColorSpectrum control. + + + 2D-Navigatioun mat Feiltasten + The help text associated with ColorSpectrum. + + + 2D-Reegler + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Faarfnuance %2!u!, Siedegung %3!u!, Wäert %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Faarfnuance %1!u!, Siedegung %2!u!, Wäert %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lo-LA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lo-LA/Resources.resw new file mode 100644 index 000000000000..2f22c64d3f1c --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lo-LA/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ຕົວເລືອກສີ + The automation name for the ColorSpectrum control. + + + ການເລື່ອນໄປມາແບບ 2D ດ້ວຍປຸ່ມລູກສອນ + The help text associated with ColorSpectrum. + + + ຕົວເລື່ອນ 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, ສີສັນ %2!u!, ຄວາມເຂັ້ມ %3!u!, ຄ່າ %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + ສີສັນ %1!u!, ຄວາມເຂັ້ມ %2!u!, ຄ່າ %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lt-LT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lt-LT/Resources.resw new file mode 100644 index 000000000000..a453e2715155 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lt-LT/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Spalvų parinkiklis + The automation name for the ColorSpectrum control. + + + 2D naršymas naudojant rodyklių klavišus + The help text associated with ColorSpectrum. + + + 2D slankiklis + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, atspalvis %2!u!, grynis %3!u!, reikšmė %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Atspalvis %1!u!, grynis %2!u!, reikšmė %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lv-LV/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lv-LV/Resources.resw new file mode 100644 index 000000000000..b7e1de5745cf --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/lv-LV/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Krāsu atlasītājs + The automation name for the ColorSpectrum control. + + + Navigācija plaknē, izmantojot bulttaustiņus + The help text associated with ColorSpectrum. + + + Plaknes slīdnis + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, nokrāsa: %2!u!, piesātinājums: %3!u!, vērtība: %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Nokrāsa: %1!u!, piesātinājums: %2!u!, vērtība: %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mi-NZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mi-NZ/Resources.resw new file mode 100644 index 000000000000..007efdece63d --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mi-NZ/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Pūwhiri tae + The automation name for the ColorSpectrum control. + + + Whakaterenga Ahu2 me ngā Pātuhi pere + The help text associated with ColorSpectrum. + + + Rēreti Ahu2 + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Hākano %2!u!, Kohuratanga %3!u!, Uara %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Hākano %1!u!, Kohuratanga %2!u!, Uara %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mk-MK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mk-MK/Resources.resw new file mode 100644 index 000000000000..87fd853087e3 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mk-MK/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Избирач на бои + The automation name for the ColorSpectrum control. + + + 2Д-навигација со копчињата со стрелки + The help text associated with ColorSpectrum. + + + 2Д-лизгач + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, нијанса %2!u!, заситеност %3!u!, вредност %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Нијанса %1!u!, заситеност %2!u!, осветленост %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ml-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ml-IN/Resources.resw new file mode 100644 index 000000000000..ec4109f4c0da --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ml-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + വർണ്ണ പിക്കർ + The automation name for the ColorSpectrum control. + + + അമ്പടയാള കീകളുള്ള 2D നാവിഗേഷൻ + The help text associated with ColorSpectrum. + + + 2D സ്ലൈഡർ + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, നിറം %2!u!, വ്യാപനം %3!u!, മൂല്യം %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + നിറം %1!u!, വ്യാപനം %2!u!, മൂല്യം %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mr-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mr-IN/Resources.resw new file mode 100644 index 000000000000..4cc93006cbc3 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mr-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + रंग निवडक + The automation name for the ColorSpectrum control. + + + बाण कळांसह 2D नेव्हिगेशन + The help text associated with ColorSpectrum. + + + 2D स्लायडर + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, रंगाची छटा %2!u!, Sसंपृक्तता %3!u!, मूल्य %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + रंगाची छटा %1!u!, संपृक्तता %2!u!, प्रखरता %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ms-MY/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ms-MY/Resources.resw new file mode 100644 index 000000000000..538554ca68f0 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ms-MY/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Pemungut warna + The automation name for the ColorSpectrum control. + + + Navigasi 2D dengan kekunci anak panah + The help text associated with ColorSpectrum. + + + Penggelongsor 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Rona %2!u!, Ketepuan %3!u!, Nilai %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Rona %1!u!, Ketepuan %2!u!, Nilai %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mt-MT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mt-MT/Resources.resw new file mode 100644 index 000000000000..279ac7b2dd76 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/mt-MT/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Selettur tal-kuluri + The automation name for the ColorSpectrum control. + + + Navigazzjoni 2D b'tasti tal-vleġeġ + The help text associated with ColorSpectrum. + + + Slajder 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Tonalità %2!u!, Saturazzjoni %3!u!, Valur %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Tonalità %1!u!, Saturazzjoni %2!u!, Valur %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nb-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nb-NO/Resources.resw new file mode 100644 index 000000000000..bc20142d33dc --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nb-NO/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Fargevelger + The automation name for the ColorSpectrum control. + + + 2D-navigasjon med piltaster + The help text associated with ColorSpectrum. + + + 2D-glidebryter + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, %2!u! nyanse, %3!u! metning, %4!u! lysstyrke + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + %1!u! nyanse, %2!u! metning, %3!u! lysstyrke + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ne-NP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ne-NP/Resources.resw new file mode 100644 index 000000000000..0e2f1efba442 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ne-NP/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + रङ चयनकर्ता + The automation name for the ColorSpectrum control. + + + बाण कुञ्जीहरू सहितको 2D नेभिगेसन + The help text associated with ColorSpectrum. + + + 2D स्लाइडर + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, ह्यु %2!u!, संतृप्ति %3!u!, मान %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + ह्यु %1!u!, संतृप्ति %2!u!, मान %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nl-NL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nl-NL/Resources.resw new file mode 100644 index 000000000000..c392bc183ced --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nl-NL/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Kleurenkiezer + The automation name for the ColorSpectrum control. + + + 2D-navigatie met pijltoetsen + The help text associated with ColorSpectrum. + + + 2D-schuifregelaar + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, tint %2!u!, intensiteit %3!u!, waarde %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Tint %1!u!, intensiteit %2!u!, waarde %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nn-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nn-NO/Resources.resw new file mode 100644 index 000000000000..b7b6c6a5f9fa --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/nn-NO/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Fargeveljar + The automation name for the ColorSpectrum control. + + + 2D-navigasjon med piltastar + The help text associated with ColorSpectrum. + + + 2D-glidebrytar + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, nyanse %2!u!, metting %3!u!, verdi %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Nyanse %1!u!, metting %2!u!, verdi %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/or-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/or-IN/Resources.resw new file mode 100644 index 000000000000..d60694e9c64c --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/or-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ରଙ୍ଗ ପିକର୍ + The automation name for the ColorSpectrum control. + + + 2D ନେଭିଗେସନ ସହିତ ଏରୋ କୀ + The help text associated with ColorSpectrum. + + + 2D ସ୍ଲାଇଡର୍ + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, ହୁଏ %2!u!, ସାଚୁରେସନ୍ %3!u!, ମୂଲ୍ୟ %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + ରଙ୍ଗ %1!u!, ସାଚୁରେସନ୍ %2!u!, ଔଜଲ୍ୟତା %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pa/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pa/Resources.resw new file mode 100644 index 000000000000..51c47bd25821 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pa/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ਰੰਗ ਚੋਣਕਾਰ + The automation name for the ColorSpectrum control. + + + ਤੀਰ ਕੁੰਜੀਆਂ ਦੇ ਨਾਲ 2D ਨੈਵੀਗੇਸ਼ਨ + The help text associated with ColorSpectrum. + + + 2D ਸਲਾਇਡਰ + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, ਹਿਉ %2!u!, ਸੰਤ੍ਰਿਪਤੀ %3!u!, ਮਾਨ %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + ਹਿਉ %1!u!, ਸੰਤ੍ਰਿਪਤੀ %2!u!, ਮਾਨ %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pl-PL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pl-PL/Resources.resw new file mode 100644 index 000000000000..4c8e662dcaec --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pl-PL/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Selektor kolorów + The automation name for the ColorSpectrum control. + + + Nawigacja 2D klawiszami strzałek + The help text associated with ColorSpectrum. + + + Suwak 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Odcień %2!u!, Nasycenie %3!u!, Wartość %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Odcień %1!u!, Nasycenie %2!u!, Wartość %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pt-BR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pt-BR/Resources.resw new file mode 100644 index 000000000000..3a997c902297 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pt-BR/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Seletor de cores + The automation name for the ColorSpectrum control. + + + Navegação 2D com as teclas de seta + The help text associated with ColorSpectrum. + + + Controle deslizante 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Matiz %2!u!, Saturação %3!u!, Brilho %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Matiz %1!u!, Saturação %2!u!, Brilho %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pt-PT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pt-PT/Resources.resw new file mode 100644 index 000000000000..efc14bc9ea61 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/pt-PT/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Seletor de cores + The automation name for the ColorSpectrum control. + + + Navegação 2D com teclas de seta + The help text associated with ColorSpectrum. + + + Controlo de deslize 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Matiz %2!u!, Saturação %3!u!, Valor %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Matiz %1!u!, Saturação %2!u!, Valor %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ro-RO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ro-RO/Resources.resw new file mode 100644 index 000000000000..04dd51e52ea0 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ro-RO/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Selector de culori + The automation name for the ColorSpectrum control. + + + Navigare 2D cu tastele săgeți + The help text associated with ColorSpectrum. + + + Glisor 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Nuanță %2!u!, Saturație %3!u!, Valoare %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Nuanță %1!u!, Saturație %2!u!, Valoare %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ru-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ru-RU/Resources.resw new file mode 100644 index 000000000000..ab64313a01fb --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ru-RU/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Палитра + The automation name for the ColorSpectrum control. + + + Двухмерная навигация с помощью клавиш со стрелками + The help text associated with ColorSpectrum. + + + Двухмерный ползунок + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, оттенок %2!u!, насыщенность %3!u!, значение %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Оттенок, %1!u!, насыщенность %2!u!, значение %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sk-SK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sk-SK/Resources.resw new file mode 100644 index 000000000000..6964bfac4a20 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sk-SK/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Výber farby + The automation name for the ColorSpectrum control. + + + 2D navigácia pomocou klávesov so šípkami + The help text associated with ColorSpectrum. + + + 2D jazdec + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, odtieň: %2!u!, sýtosť: %3!u!, hodnota: %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Odtieň: %1!u!, sýtosť: %2!u!, hodnota: %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sl-SI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sl-SI/Resources.resw new file mode 100644 index 000000000000..83b4d87e0f64 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sl-SI/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Izbirnik barve + The automation name for the ColorSpectrum control. + + + 2D-krmarjenje s puščičnimi tipkami + The help text associated with ColorSpectrum. + + + 2D-drsnik + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, odtenek %2!u!, nasičenje %3!u!, vrednost %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Odtenek %1!u!, nasičenje %2!u!, vrednost %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sq-AL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sq-AL/Resources.resw new file mode 100644 index 000000000000..d51e298938d2 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sq-AL/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Zgjedhësi i ngjyrës + The automation name for the ColorSpectrum control. + + + Navigimi në 2D me tastet e shigjetave + The help text associated with ColorSpectrum. + + + Rrëshqitësi 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, nuanca %2!u!, ngopja %3!u!, vlera %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Nuanca %1!u!, ngopja %2!u!, vlera %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Cyrl-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Cyrl-BA/Resources.resw new file mode 100644 index 000000000000..cb4a1568ca78 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Cyrl-BA/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Бирач боја + The automation name for the ColorSpectrum control. + + + 2D навигација помоћу тастера са стрелицама + The help text associated with ColorSpectrum. + + + 2D клизач + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, нијанса %2!u!, засићење %3!u!, вриједност %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Нијанса %1!u!, засићење %2!u!, вриједност %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Cyrl-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Cyrl-RS/Resources.resw new file mode 100644 index 000000000000..6056703a78be --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Cyrl-RS/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Бирач боја + The automation name for the ColorSpectrum control. + + + 2D навигација помоћу тастера са стрелицама + The help text associated with ColorSpectrum. + + + 2D клизач + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, нијанса: %2!u!, засићење: %3!u!, вредност: %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Нијанса: %1!u!, засићење: %2!u!, вредност: %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Latn-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Latn-RS/Resources.resw new file mode 100644 index 000000000000..9efabadb5e59 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sr-Latn-RS/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Birač boja + The automation name for the ColorSpectrum control. + + + 2D navigacija pomoću tastera sa strelicama + The help text associated with ColorSpectrum. + + + 2D klizač + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, nijansa: %2!u!, zasićenje: %3!u!, vrednost: %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Nijansa %1!u!, zasićenje %2!u!, vrednost %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sv-SE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sv-SE/Resources.resw new file mode 100644 index 000000000000..6bbb1d89cb7d --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/sv-SE/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Färgväljare + The automation name for the ColorSpectrum control. + + + 2D-navigering med piltangenter + The help text associated with ColorSpectrum. + + + 2D-reglage + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Nyans %2!u!, Mättnad %3!u!, Värde %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Nyans %1!u!, Mättnad %2!u!, Värde %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ta-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ta-IN/Resources.resw new file mode 100644 index 000000000000..96544f278079 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ta-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + வண்ணத் தேர்வு + The automation name for the ColorSpectrum control. + + + அம்புவிசைகளுடன் 2D வழிகாட்டல் + The help text associated with ColorSpectrum. + + + 2D நகர்வுகோல் + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, வர்ணம் %2!u!, செறிவுநிலை %3!u!, மதிப்பு %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + வர்ணம் %1!u!, செறிவுநிலை %2!u!, மதிப்பு %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/te-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/te-IN/Resources.resw new file mode 100644 index 000000000000..0928ac1437db --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/te-IN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + రంగు ఎంపిక సాధనం + The automation name for the ColorSpectrum control. + + + బాణం కీలతో 2D నావిగేషన్ + The help text associated with ColorSpectrum. + + + 2D స్లయిడర్ + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, రంగు %2!u!, సంతృప్తత %3!u!, విలువ %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + రంగు %1!u!, సంతృప్తత %2!u!, విలువ %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/th-TH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/th-TH/Resources.resw new file mode 100644 index 000000000000..0209a6b995de --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/th-TH/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ตัวเลือกสี + The automation name for the ColorSpectrum control. + + + การนำทาง 2 มิติที่มีปุ่มลูกศร + The help text associated with ColorSpectrum. + + + แถบเลื่อน 2 มิติ + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, สีสัน %2!u!, ความเข้ม %3!u!, ค่า %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + สีสัน %1!u!, ความเข้ม %2!u!, ค่า %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/tr-TR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/tr-TR/Resources.resw new file mode 100644 index 000000000000..077230de7e55 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/tr-TR/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Renk seçici + The automation name for the ColorSpectrum control. + + + Ok tuşlarıyla 2B gezinti + The help text associated with ColorSpectrum. + + + 2B kaydırıcı + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Ton %2!u!, Doygunluk %3!u!, Değer %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Ton %1!u!, Doygunluk %2!u!, Değer %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/tt-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/tt-RU/Resources.resw new file mode 100644 index 000000000000..dbb69bef775b --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/tt-RU/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Төсләр гаммасы + The automation name for the ColorSpectrum control. + + + Ук төймәләре белән 2D күчеш гамәлләре + The help text associated with ColorSpectrum. + + + 2D шудырма + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Төсмер %2!u!, Куелык %3!u!, Кыйммәт %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Төсмер %1!u!, Куелык %2!u!, Кыйммәт %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ug-CN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ug-CN/Resources.resw new file mode 100644 index 000000000000..09e931ce60ab --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ug-CN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + رەڭ تاللىغۇچ + The automation name for the ColorSpectrum control. + + + كۆرسەتكۈچ كۇنۇپكا ئارقىلىق 2D لىق يېتەكلەش + The help text associated with ColorSpectrum. + + + 2D سىيرىگۈچ + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!، رەڭ تۈسى %2!u!، رەڭ توقلۇق دەرىجىسى %3!u!، قىممىتى %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + رەڭ تۈسى %1!u!، رەڭ توقلۇق دەرىجىسى %2!u!، قىممىتى %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/uk-UA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/uk-UA/Resources.resw new file mode 100644 index 000000000000..8be469730f49 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/uk-UA/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Вибір кольору + The automation name for the ColorSpectrum control. + + + Двовимірна навігація за допомогою клавіш зі стрілками + The help text associated with ColorSpectrum. + + + Двовимірний повзунок + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, відтінок %2!u!, насиченість %3!u!, значення %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Відтінок %1!u!, насиченість %2!u!, яскравість %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ur/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ur/Resources.resw new file mode 100644 index 000000000000..8f103b81cf73 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/ur/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + رنگ چنندہ + The automation name for the ColorSpectrum control. + + + تیر کلیدوں کے ساتھ 2D گشت + The help text associated with ColorSpectrum. + + + 2D سلائیڈر + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!، رنگت %2!u!، لبریزی %3!u!، قدر %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + رنگت %1!u!، لبریزی %2!u!، قدر %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/uz-Latn-UZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/uz-Latn-UZ/Resources.resw new file mode 100644 index 000000000000..716eab5a4cce --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/uz-Latn-UZ/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Palitra + The automation name for the ColorSpectrum control. + + + Mil tugmalari yordamida 2D navigatsiya + The help text associated with ColorSpectrum. + + + 2D slayder + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, rangi: %2!u!, toʻyinganligi: %3!u!, qiymati: %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Rangi: %1!u!, toʻyinganligi: %2!u!, qiymati: %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/vi-VN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/vi-VN/Resources.resw new file mode 100644 index 000000000000..dcf9e49d967c --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/vi-VN/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Bộ chọn màu + The automation name for the ColorSpectrum control. + + + Điều hướng 2D bằng phím mũi tên + The help text associated with ColorSpectrum. + + + Thanh trượt 2D + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!, Sắc độ %2!u!, Độ bão hòa %3!u!, Giá trị %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + Sắc độ %1!u!, Độ bão hòa %2!u!, Giá trị %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/zh-Hans/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/zh-Hans/Resources.resw new file mode 100644 index 000000000000..e002437b2cba --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/zh-Hans/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 颜色选取器 + The automation name for the ColorSpectrum control. + + + 带有箭头键的 2D 导航 + The help text associated with ColorSpectrum. + + + 2D 滑块 + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!,色调 %2!u!,饱和度 %3!u!,亮度 %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + 色调 %1!u!,饱和度 %2!u!,亮度 %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/zh-Hant/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/zh-Hant/Resources.resw new file mode 100644 index 000000000000..8355eddfbe95 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/Primitives/ColorSpectrum/Strings/zh-Hant/Resources.resw @@ -0,0 +1,140 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 色彩選擇器 + The automation name for the ColorSpectrum control. + + + 使用方向鍵進行 2D 瀏覽 + The help text associated with ColorSpectrum. + + + 2D 滑桿 + The string to provide as the localized control type of the ColorSpectrum. + + + %1!s!,色調 %2!u!,彩度 %3!u!,值 %4!u! + The string to provide as the UIA value of the ColorSpectrum when we're including the friendly color name. %1 is the friendly name of the color; %2, %3, and %4 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + + 色調 %1!u!,彩度 %2!u!,值 %3!u! + The string to provide as the UIA value of the ColorSpectrum when we aren't including the friendly color name. %1, %2, and %3 are the HSV values for the color between 0 and 359 (for hue) or 0 and 100 (for saturation or value). + + \ No newline at end of file From f4ade3281a5c6e253dd293b580df70933373155a Mon Sep 17 00:00:00 2001 From: Ramez Ragaa Date: Wed, 13 Nov 2024 22:57:49 +0200 Subject: [PATCH 549/664] fix(image): clipping images on WASM was not working --- src/Uno.UI/UI/Xaml/Controls/Image/Image.wasm.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Uno.UI/UI/Xaml/Controls/Image/Image.wasm.cs b/src/Uno.UI/UI/Xaml/Controls/Image/Image.wasm.cs index 0cf0b59aa758..3d3bd5e36687 100644 --- a/src/Uno.UI/UI/Xaml/Controls/Image/Image.wasm.cs +++ b/src/Uno.UI/UI/Xaml/Controls/Image/Image.wasm.cs @@ -181,7 +181,7 @@ protected override Size ArrangeOverride(Size finalSize) // Calculate the position of the image to follow stretch and alignment requirements var finalPosition = this.ArrangeSource(finalSize, containerSize); - _htmlImage.ArrangeVisual(finalPosition, clipRect: null); + _htmlImage.ArrangeVisual(finalPosition, clipRect: new Rect(new Point(-finalPosition.Left, -finalPosition.Top), finalSize)); if (this.Log().IsEnabled(LogLevel.Debug)) { From 949be3eca482643818ba0f62572e3967ee4dd2d6 Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Wed, 13 Nov 2024 16:15:57 -0500 Subject: [PATCH 550/664] chore: Move StandardUICommand string resources --- .../Strings/af-ZA/Resources.resw | 210 +++++++++++++ .../Strings/am-ET/Resources.resw | 210 +++++++++++++ .../Strings/ar-SA/Resources.resw | 210 +++++++++++++ .../Strings/as-IN/Resources.resw | 210 +++++++++++++ .../Strings/az-Latn-AZ/Resources.resw | 210 +++++++++++++ .../Strings/bg-BG/Resources.resw | 210 +++++++++++++ .../Strings/bn-IN/Resources.resw | 210 +++++++++++++ .../Strings/bs-Latn-BA/Resources.resw | 210 +++++++++++++ .../Strings/ca-ES/Resources.resw | 210 +++++++++++++ .../Strings/cs-CZ/Resources.resw | 210 +++++++++++++ .../Strings/cy-GB/Resources.resw | 210 +++++++++++++ .../Strings/da-DK/Resources.resw | 210 +++++++++++++ .../Strings/de-DE/Resources.resw | 210 +++++++++++++ .../Strings/el-GR/Resources.resw | 210 +++++++++++++ .../Strings/en-GB/Resources.resw | 270 +++++++++++++++++ .../Strings/en-US/Resources.resw | 282 ++++++++++++++++++ .../Strings/es-ES/Resources.resw | 210 +++++++++++++ .../Strings/es-MX/Resources.resw | 210 +++++++++++++ .../Strings/et-EE/Resources.resw | 210 +++++++++++++ .../Strings/eu-ES/Resources.resw | 210 +++++++++++++ .../Strings/fa-IR/Resources.resw | 210 +++++++++++++ .../Strings/fi-FI/Resources.resw | 210 +++++++++++++ .../Strings/fil-PH/Resources.resw | 210 +++++++++++++ .../Strings/fr-CA/Resources.resw | 210 +++++++++++++ .../Strings/fr-FR/Resources.resw | 210 +++++++++++++ .../Strings/ga-IE/Resources.resw | 210 +++++++++++++ .../Strings/gd-GB/Resources.resw | 210 +++++++++++++ .../Strings/gl-ES/Resources.resw | 210 +++++++++++++ .../Strings/gu-IN/Resources.resw | 210 +++++++++++++ .../Strings/he-IL/Resources.resw | 210 +++++++++++++ .../Strings/hi-IN/Resources.resw | 210 +++++++++++++ .../Strings/hr-HR/Resources.resw | 210 +++++++++++++ .../Strings/hu-HU/Resources.resw | 210 +++++++++++++ .../Strings/hy-AM/Resources.resw | 210 +++++++++++++ .../Strings/id-ID/Resources.resw | 210 +++++++++++++ .../Strings/is-IS/Resources.resw | 210 +++++++++++++ .../Strings/it-IT/Resources.resw | 210 +++++++++++++ .../Strings/ja-JP/Resources.resw | 210 +++++++++++++ .../Strings/ka-GE/Resources.resw | 210 +++++++++++++ .../Strings/kk-KZ/Resources.resw | 210 +++++++++++++ .../Strings/km-KH/Resources.resw | 210 +++++++++++++ .../Strings/kn-IN/Resources.resw | 210 +++++++++++++ .../Strings/ko-KR/Resources.resw | 210 +++++++++++++ .../Strings/kok-IN/Resources.resw | 210 +++++++++++++ .../Strings/lb-LU/Resources.resw | 210 +++++++++++++ .../Strings/lo-LA/Resources.resw | 210 +++++++++++++ .../Strings/lt-LT/Resources.resw | 210 +++++++++++++ .../Strings/lv-LV/Resources.resw | 210 +++++++++++++ .../Strings/mi-NZ/Resources.resw | 210 +++++++++++++ .../Strings/mk-MK/Resources.resw | 210 +++++++++++++ .../Strings/ml-IN/Resources.resw | 210 +++++++++++++ .../Strings/mr-IN/Resources.resw | 210 +++++++++++++ .../Strings/ms-MY/Resources.resw | 210 +++++++++++++ .../Strings/mt-MT/Resources.resw | 210 +++++++++++++ .../Strings/nb-NO/Resources.resw | 210 +++++++++++++ .../Strings/ne-NP/Resources.resw | 210 +++++++++++++ .../Strings/nl-NL/Resources.resw | 210 +++++++++++++ .../Strings/nn-NO/Resources.resw | 210 +++++++++++++ .../Strings/or-IN/Resources.resw | 210 +++++++++++++ .../Strings/pa/Resources.resw | 210 +++++++++++++ .../Strings/pl-PL/Resources.resw | 210 +++++++++++++ .../Strings/pt-BR/Resources.resw | 210 +++++++++++++ .../Strings/pt-PT/Resources.resw | 210 +++++++++++++ .../Strings/ro-RO/Resources.resw | 210 +++++++++++++ .../Strings/ru-RU/Resources.resw | 210 +++++++++++++ .../Strings/sk-SK/Resources.resw | 210 +++++++++++++ .../Strings/sl-SI/Resources.resw | 210 +++++++++++++ .../Strings/sq-AL/Resources.resw | 210 +++++++++++++ .../Strings/sr-Cyrl-BA/Resources.resw | 210 +++++++++++++ .../Strings/sr-Cyrl-RS/Resources.resw | 210 +++++++++++++ .../Strings/sr-Latn-RS/Resources.resw | 210 +++++++++++++ .../Strings/sv-SE/Resources.resw | 210 +++++++++++++ .../Strings/ta-IN/Resources.resw | 210 +++++++++++++ .../Strings/te-IN/Resources.resw | 210 +++++++++++++ .../Strings/th-TH/Resources.resw | 210 +++++++++++++ .../Strings/tr-TR/Resources.resw | 210 +++++++++++++ .../Strings/tt-RU/Resources.resw | 210 +++++++++++++ .../Strings/ug-CN/Resources.resw | 210 +++++++++++++ .../Strings/uk-UA/Resources.resw | 210 +++++++++++++ .../Strings/ur/Resources.resw | 210 +++++++++++++ .../Strings/uz-Latn-UZ/Resources.resw | 210 +++++++++++++ .../Strings/vi-VN/Resources.resw | 210 +++++++++++++ .../Strings/zh-Hans/Resources.resw | 210 +++++++++++++ .../Strings/zh-Hant/Resources.resw | 210 +++++++++++++ 84 files changed, 17772 insertions(+) create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/af-ZA/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/am-ET/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ar-SA/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/as-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/az-Latn-AZ/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bg-BG/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bn-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bs-Latn-BA/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ca-ES/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/cs-CZ/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/cy-GB/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/da-DK/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/de-DE/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/el-GR/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/en-GB/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/en-US/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/es-ES/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/es-MX/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/et-EE/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/eu-ES/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fa-IR/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fi-FI/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fil-PH/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fr-CA/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fr-FR/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ga-IE/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gd-GB/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gl-ES/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gu-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/he-IL/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hi-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hr-HR/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hu-HU/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hy-AM/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/id-ID/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/is-IS/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/it-IT/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ja-JP/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ka-GE/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kk-KZ/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/km-KH/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kn-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ko-KR/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kok-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lb-LU/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lo-LA/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lt-LT/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lv-LV/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mi-NZ/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mk-MK/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ml-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mr-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ms-MY/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mt-MT/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nb-NO/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ne-NP/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nl-NL/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nn-NO/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/or-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pa/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pl-PL/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pt-BR/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pt-PT/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ro-RO/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ru-RU/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sk-SK/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sl-SI/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sq-AL/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Cyrl-BA/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Cyrl-RS/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Latn-RS/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sv-SE/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ta-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/te-IN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/th-TH/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/tr-TR/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/tt-RU/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ug-CN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/uk-UA/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ur/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/uz-Latn-UZ/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/vi-VN/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/zh-Hans/Resources.resw create mode 100644 src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/zh-Hant/Resources.resw diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/af-ZA/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/af-ZA/Resources.resw new file mode 100644 index 000000000000..e090460b647d --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/af-ZA/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Stel die geselekteerde teks in vetdruk + + + Kopieer die geselekteerde inhoud na die knipbord + + + Verwyder die geselekteerde inhoud en plaas dit op die knipbord + + + Stel die geselekteerde teks in skuinsdruk + + + Voeg die inhoud van die knipbord by die huidige ligging in + + + Herhaal die mees onlangse aksie wat ongedaan gemaak is + + + Selekteer alle inhoud + + + Onderstreep die geselekteerde teks + + + Keer die mees onlangse aksie om + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Vetdruk + + + Kopieer + + + Knip + + + Kursief + + + Plak + + + Herdoen + + + Selekteer alles + + + Onderstreep + + + Ontdoen + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/am-ET/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/am-ET/Resources.resw new file mode 100644 index 000000000000..0fa80bc2e60d --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/am-ET/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + የተመረጠውን ፅሁፍ ያድምቁ + + + የተመረጠውን ይዘት ወደ ቅንጥብ ሰሌዳ ይቅዱ + + + የተመረጠውን ይዘት ያስወግዱና በቅንጥብ ሰሌዳው ላይ ያስቀምጡ + + + የተመረጠውን ጽሁፍ ዘንባላ ያድርጉ + + + የቅንጥብ ሰሌዳውን ይዘቶች አሁን ባለው ቦታ ያስገቡ + + + በጣም በቅርቡ የተቀለበሰውን ድርጊት ይድገሙ + + + ሁሉንም ይዘት ይምረጡ + + + የተመረጠውን ጽሁፍ ከስር ያስምሩ + + + በጣም የቅርብ ጊዜ ድርጊት ይገልብጡ + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ደማቅ + + + ገልብጥ + + + ቁረጥ + + + ዘንባላ + + + ለጥፍ + + + ድገም + + + ሁሉንም ምረጥ + + + የግርጌ መስመር + + + ቀልብስ + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ar-SA/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ar-SA/Resources.resw new file mode 100644 index 000000000000..1dbd6bd04fb8 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ar-SA/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + جعل النص المحدد غامقًا + + + نسخ المحتوى المحدد إلى الحافظة + + + إزالة المحتوى المحدد ووضعه على الحافظة + + + جعل النص المحدد مائلاً + + + ادراج محتويات الحافظة في الموقع الحالي + + + تكرار الإجراء الذي تم التراجع عنه مؤخرًا + + + تحديد المحتوى بأكمله + + + تسطير النص المحدد + + + عكس أحدث الإجراءات + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + غامق + + + نسخ + + + قص + + + مائل + + + لصق + + + إعادة + + + تحديد الكل + + + مُسطّر + + + تراجع + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/as-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/as-IN/Resources.resw new file mode 100644 index 000000000000..9997404b4d22 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/as-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + চয়ন কৰা পাঠ ব'ল্ড কৰক + + + চয়ন কৰা সামগ্ৰী ক্লিপবোৰ্ডলৈ প্ৰতিলিপি কৰক + + + চয়ন কৰা সামগ্ৰী আঁতৰাওক আৰু ক্লিপবোৰ্ডত ৰাখক + + + চয়ন কৰা পাঠ ইটালিক কৰক + + + সাম্প্ৰতিক অৱস্থানত থকা ক্লিপবোৰ্ডৰ সামগ্ৰীসমূহ আন্তঃসংযোগ কৰক + + + অতি শেহতীয়াকৈ বাতিল কৰা কাৰ্য্যটো পুনৰাবৃত্তি কৰক + + + সকলো সামগ্ৰী চয়ন কৰক + + + চয়ন কৰা পাঠ আণ্ডাৰলাইন কৰক + + + আটাইতকৈ শেহতীয়া কাৰ্য বিপৰীত কৰক + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ব'ল্ড + + + প্ৰতিলিপি কৰক + + + ছেদ কৰক + + + ইটালিক + + + লেপন কৰক + + + পুনঃ কৰক + + + সকলো চয়ন কৰক + + + নিম্নৰেখাংকন + + + পূৰ্বৰ দৰে কৰক + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/az-Latn-AZ/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/az-Latn-AZ/Resources.resw new file mode 100644 index 000000000000..44b08a6d2f60 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/az-Latn-AZ/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Seçilmiş mətni qalın edin + + + Seçilmiş məzmunu mübadilə buferinə köçürün + + + Seçilmiş məzmunu silin və onu mübadilə buferinə qoyun + + + Seçilmiş mətni kursiv şriftlə ver. + + + Cari yerdə mübadilə buferinin məzmunlarını əlavə edin + + + Ən son icra olunmamış əməliyyatı təkrarlayın + + + Bütün məzmunu seçin + + + Seçilmiş mətnin altından xətt çək. + + + Ən son əməliyyatı geri qaytarın + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Qalın + + + Köçür + + + Kəs + + + Kursiv + + + Əlavə et + + + Təkrar icra et + + + Hamısını Seç + + + Altxətli + + + Qaytar + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bg-BG/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bg-BG/Resources.resw new file mode 100644 index 000000000000..9e9c79196546 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bg-BG/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Използване на получер шрифт за избрания текст + + + Копиране на избраното съдържание в клипборда + + + Премахване на избраното съдържание и поставяне в клипборда + + + Използване на курсив за избрания текст + + + Вмъкване на съдържанието на клипборда на текущото местоположение + + + Повтаряне на последното отменено действие + + + Избиране на цялото съдържание + + + Подчертаване на избрания текст + + + Връщане на последното действие + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Получер + + + Копиране + + + Изрязване + + + Курсив + + + Поставяне + + + Повтаряне + + + Избиране на всички + + + Подчертан + + + Отменяне + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bn-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bn-IN/Resources.resw new file mode 100644 index 000000000000..426ffd041e82 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bn-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + নির্বাচিত পাঠ্যটি গাঢ় করুন + + + নির্বাচিত বিষয়বস্তু ক্লিপবোর্ডে অনুলিপি করুন + + + নির্বাচিত সামগ্রীটি অপসারণ করুন এবং এটি বোর্ডে + + + নির্বাচিত পাঠ্য তির্যক করুন + + + বর্তমান অবস্থানে ক্লিপবোর্ডের সামগ্রীগুলি সন্নিবেশ করুন + + + অতি সম্প্রতি পূর্বাবস্থায় ফেরানো ক্রিয়াটি পুনরাবৃত্তি করুন + + + সমস্ত বিষয়বস্তু নির্বাচন করুন + + + নির্বাচিত পাঠ আন্ডারলাইন করুন + + + অতি সাম্প্রতিক ক্রিয়াটি বিপরীত করুন + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + গাঢ় + + + অনুলিপি করুন + + + কাটুন + + + তির্যক + + + প্রতিলেপন করুন + + + পুনরায় করুন + + + সবগুলো নির্বাচন করুন + + + নিম্নরেখা + + + পূর্বাবস্থায় নিয়ে যান + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bs-Latn-BA/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bs-Latn-BA/Resources.resw new file mode 100644 index 000000000000..7cfe7d124486 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/bs-Latn-BA/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Podebljaj izabrani tekst + + + Kopiraj izabrani sadržaj u međuspremnik + + + Ukloni izabrani sadržaj i stavi ga u međuspremnik + + + Označeni tekst ispišite kurzivom + + + Umetni sadržaj iz međuspremnika na trenutnu lokaciju + + + Ponovi posljednju poništenu radnju + + + Izaberi cjelokupan sadržaj + + + Podvucite označeni tekst. + + + Opozovi posljednju radnju + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Podebljano + + + Kopiraj + + + Izreži + + + Kurziv + + + Zalijepi + + + Ponovo uradi + + + Odaberi sve + + + Podvučeno + + + Poništi + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ca-ES/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ca-ES/Resources.resw new file mode 100644 index 000000000000..cd760acbe6aa --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ca-ES/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Converteix en negreta el text seleccionat + + + Copia el contingut seleccionat al porta-retalls + + + Suprimeix el contingut seleccionat i col·loca'l al porta-retalls + + + Converteix en cursiva el text seleccionat + + + Insereix el contingut del porta-retalls a la ubicació actual + + + Repeteix l'acció que s'ha desfet més recentment + + + Selecciona tot el contingut + + + Subratlla el text seleccionat + + + Inverteix l'acció més recent + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Negreta + + + Copia + + + Retalla + + + Cursiva + + + Enganxa + + + Refés + + + Selecciona-ho tot + + + Subratllat + + + Desfés + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/cs-CZ/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/cs-CZ/Resources.resw new file mode 100644 index 000000000000..6eaa11dbc09f --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/cs-CZ/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Naformátovat vybraný text tučně + + + Zkopírovat vybraný obsah do schránky + + + Odebrat vybraný obsah a vložit ho do schránky + + + Zvýraznit vybraný text kurzívou + + + Vložit obsah schránky na aktuální umístění + + + Zopakovat naposledy vrácenou akci + + + Vybrat všechen obsah + + + Podtrhnout vybraný text + + + Vrátit poslední akci + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Tučně + + + Kopírovat + + + Vyjmout + + + Kurzíva + + + Vložit + + + Znovu + + + Vybrat vše + + + Podtrhnout + + + Zpět + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/cy-GB/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/cy-GB/Resources.resw new file mode 100644 index 000000000000..084da43cc07e --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/cy-GB/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Troi’r testun a ddewiswyd yn drwm + + + Copïo’r cynnwys a ddewiswyd i'r clipfwrdd + + + Tynnu cynnwys dan sylw a'i roi ar y clipfwrdd + + + Troi’r testun a ddewiswyd yn italig + + + Mewnosod cynnwys y clipfwrdd yn y lleoliad presennol + + + Ailadrodd y weithred gafodd ei dad-wneud yn fwyaf diweddar + + + Dewiswch yr holl gynnwys + + + Tanlinellu’r testun a ddewiswyd + + + Gwyrdroi'r weithred fwyaf diweddar + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Trwm + + + Copïo + + + Torri + + + Italig + + + Gludo + + + Ail-wneud + + + Dewis y Cyfan + + + Tanlinellu + + + Dad-wneud + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/da-DK/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/da-DK/Resources.resw new file mode 100644 index 000000000000..2cad96c73ddc --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/da-DK/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Gør den valgte tekst fed + + + Kopiér det markerede indhold til udklipsholderen + + + Fjern det markerede indhold, og placer det i udklipsholderen + + + Sæt den markerede tekst i kursiv + + + Indsæt indholdet af udklipsholderen på den aktuelle placering + + + Gentag den senest fortrudte handling + + + Vælg alt indhold + + + Understreg den markerede tekst + + + Omgør den seneste handling + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Fed + + + Kopiér + + + Klip + + + Kursiv + + + Sæt ind + + + Annullér fortryd + + + Markér alt + + + Understregning + + + Fortryd + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/de-DE/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/de-DE/Resources.resw new file mode 100644 index 000000000000..9f645d010bff --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/de-DE/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Ausgewählten Text fett formatieren + + + Ausgewählten Inhalt in die Zwischenablage kopieren + + + Ausgewählten Inhalt entfernen und in der Zwischenablage ablegen + + + Ausgewählten Text kursiv formatieren + + + Inhalte der Zwischenablage an der aktuellen Position einfügen + + + Die zuletzt rückgängig gemachte Aktion wiederholen + + + Alle Inhalte auswählen + + + Ausgewählten Text unterstreichen + + + Die zuletzt ausgeführte Aktion rückgängig machen + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Fett + + + Kopieren + + + Ausschneiden + + + Kursiv + + + Einfügen + + + Wiederholen + + + Alles auswählen + + + Unterstreichen + + + Rückgängig machen + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/el-GR/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/el-GR/Resources.resw new file mode 100644 index 000000000000..101316072447 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/el-GR/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Εφαρμογή έντονης γραφής στο επιλεγμένο κείμενο + + + Αντιγραφή του επιλεγμένου περιεχομένου στο Πρόχειρο + + + Κατάργηση του επιλεγμένου περιεχομένου και τοποθέτησή του στο Πρόχειρο + + + Εφαρμογή πλάγιας γραφής στο επιλεγμένο κείμενο + + + Εισαγωγή των περιεχομένων του Προχείρου στην τρέχουσα θέση + + + Επανάληψη της ενέργειας που αναιρέθηκε τελευταία + + + Επιλογή του συνόλου του περιεχομένου + + + Υπογράμμιση του επιλεγμένου κειμένου + + + Αντιστροφή της τελευταίας ενέργειας + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Έντονη γραφή + + + Αντιγραφή + + + Αποκοπή + + + Πλάγια γραφή + + + Επικόλληση + + + Επανάληψη + + + Επιλογή όλων + + + Υπογράμμιση + + + Αναίρεση + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/en-GB/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/en-GB/Resources.resw new file mode 100644 index 000000000000..fb805f43e193 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/en-GB/Resources.resw @@ -0,0 +1,270 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Bold the selected text + + + Copy the selected content to the clipboard + + + Remove the selected content and put it on the clipboard + + + Italicise the selected text + + + Insert the contents of the clipboard at the current location + + + Repeat the most recently undone action + + + Select all content + + + Underline the selected text + + + Reverse the most recent action + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Bold + + + Copy + + + Cut + + + Italic + + + Paste + + + Redo + + + Select All + + + Underline + + + Undo + + + Go to the previous item + + + Close + + + Delete the selected content + + + Go to the next item + + + Open + + + Pause + + + Play + + + Save your changes + + + Share the selected content + + + Stop + + + Backward + + + Close + + + Delete + + + Forward + + + Open + + + Pause + + + Play + + + Save + + + Share + + + Stop + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/en-US/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/en-US/Resources.resw new file mode 100644 index 000000000000..5ee0ca990791 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/en-US/Resources.resw @@ -0,0 +1,282 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Bold the selected text + + + Copy the selected content to the clipboard + + + Remove the selected content and put it on the clipboard + + + Italicize the selected text + + + Insert the contents of the clipboard at the current location + + + Repeat the most recently undone action + + + Select all content + + + Underline the selected text + + + Reverse the most recent action + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Bold + + + Copy + + + Cut + + + Italic + + + Paste + + + Redo + + + Select All + + + Underline + + + Undo + + + Go to the previous item + + + Close + + + Delete the selected content + + + Go to the next item + + + Open + + + Pause + + + Play + + + Save your changes + + + Share the selected content + + + Stop + + + Backward + + + Close + + + Delete + + + Forward + + + Open + + + Pause + + + Play + + + Save + + + Share + + + Stop + + + W + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for closing - Ctrl+W. Must be unique with respect to every other keyboard accelerator in this file. + + + O + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for opening - Ctrl+O. Must be unique with respect to every other keyboard accelerator in this file. + + + S + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+S. Must be unique with respect to every other keyboard accelerator in this file. + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/es-ES/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/es-ES/Resources.resw new file mode 100644 index 000000000000..ca8c84a0e010 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/es-ES/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Escribir en negrita el texto seleccionado + + + Copiar el contenido seleccionado al portapapeles + + + Quitar el contenido seleccionado y colocarlo en el portapapeles + + + Poner el texto seleccionado en cursiva + + + Insertar el contenido del portapapeles en la ubicación actual + + + Repetir la última acción deshecha + + + Seleccionar todo el contenido + + + Subrayar el texto seleccionado + + + Invertir la última acción + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Negrita + + + Copiar + + + Cortar + + + Cursiva + + + Pegar + + + Rehacer + + + Seleccionar todo + + + Subrayado + + + Deshacer + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/es-MX/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/es-MX/Resources.resw new file mode 100644 index 000000000000..b44804d4a2b1 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/es-MX/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Poner en negrita el texto seleccionado + + + Copiar el contenido seleccionado al portapapeles + + + Quitar el contenido seleccionado y colocarlo en el Portapapeles + + + Poner en cursiva el texto seleccionado + + + Insertar el contenido del Portapapeles en la ubicación actual + + + Repetir la última acción deshecha + + + Seleccionar todo el contenido + + + Subrayar el texto seleccionado + + + Deshacer la última acción + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Negrita + + + Copiar + + + Cortar + + + Cursiva + + + Pegar + + + Rehacer + + + Seleccionar todo + + + Subrayado + + + Deshacer + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/et-EE/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/et-EE/Resources.resw new file mode 100644 index 000000000000..c706abe93e27 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/et-EE/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Muuda valitud tekst paksuks + + + Kopeeri valitud sisu lõikelauale + + + Eemalda valitud sisu ja paiguta see lõikelauale + + + Rakenda valitud tekstile kursiivvorming + + + Lisa lõikelaua sisu praegusesse asukohta + + + Korda viimati tagasi võetud toimingut + + + Vali kogu sisu + + + Kriipsuta valitud tekst alla + + + Tühista viimane toiming + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Paks + + + Kopeeri + + + Lõika + + + Kursiiv + + + Kleebi + + + Tee uuesti + + + Vali kõik + + + Allakriipsutus + + + Võta tagasi + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/eu-ES/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/eu-ES/Resources.resw new file mode 100644 index 000000000000..b2721bb9e0fd --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/eu-ES/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Ezarri letra lodiz hautatutako testua + + + Kopiatu hautatutako edukia arbelean + + + Kendu hautatutako edukia eta jarri arbelean + + + Ezarri letra etzanez hautatuko testua + + + Txertatu arbeleko edukia uneko kokalekuan + + + Errepikatu desegin den azken ekintza + + + Hautatu eduki guztia + + + Azpimarratu hautatutako testua + + + Desegin azken ekintza + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Lodia + + + Kopiatu + + + Ebaki + + + Etzana + + + Itsatsi + + + Berregin + + + Hautatu dena + + + Azpimarratu + + + Desegin + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fa-IR/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fa-IR/Resources.resw new file mode 100644 index 000000000000..d1192c527c26 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fa-IR/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + پررنگ کردن متن انتخابی + + + کپی کردن محتوای انتخابی در کلیپ‌بورد + + + حذف محتوای انتخاب‌شده و قرار دادن آن در کلیپ‌بورد + + + مورب کردن متن انتخابی + + + وارد کردن محتویات کلیپ‌بورد در مکان فعلی + + + تکرار آخرین عمل لغوشده + + + انتخاب همه محتوا + + + زیرخط‌دار کردن متن انتخابی + + + معکوس کردن آخرین عمل + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + پررنگ + + + کپی + + + برش + + + مورب + + + جایگذاری + + + انجام مجدد + + + انتخاب همه + + + زیرخط‌دار + + + لغو عمل + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fi-FI/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fi-FI/Resources.resw new file mode 100644 index 000000000000..14c60d963ccc --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fi-FI/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Lihavoi valittu teksti + + + Kopioi valittu sisältö leikepöydälle + + + Poista valittu sisältö ja sijoita se leikepöydälle + + + Kursivoi valittu teksti + + + Sijoita leikepöydän sisältö nykyiseen sijaintiin + + + Toista viimeksi kumottu toimi + + + Valitse kaikki sisältö + + + Alleviivaa valittu teksti + + + Peruuta viimeisin toiminto + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Lihavoitu + + + Kopioi + + + Leikkaa + + + Kursivoitu + + + Liitä + + + Tee uudelleen + + + Valitse kaikki + + + Alleviivaus + + + Kumoa + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fil-PH/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fil-PH/Resources.resw new file mode 100644 index 000000000000..a0522f4ae142 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fil-PH/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Gawing bold ang napiling teksto + + + Kopyahin ang napiling nilalaman sa clipboard + + + Tanggalin ang napiling nilalaman at ilagay ito sa clipboard + + + I-italicize ang napiling teksto + + + Isingit ang mga nilalaman ng clipboard sa kasalukuyang lokasyon + + + Ulitin ang pinakakamakailang pagkilos na pag-undo + + + Piliin ang lahat ng nilalaman + + + Salungguhitan ang napiling teksto + + + Baligtarin ang pinakakamakailang pagkilos + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Bold + + + Kopyahin + + + I-cut + + + Italic + + + I-paste + + + I-redo + + + Piliin Lahat + + + Salungguhitan + + + I-undo + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fr-CA/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fr-CA/Resources.resw new file mode 100644 index 000000000000..d99eb8bf3062 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fr-CA/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Mettre en gras le texte sélectionné + + + Copier le contenu sélectionné dans le Presse-papiers + + + Supprimer le contenu sélectionné et le coller dans le Presse-papiers + + + Mettre en italique le texte sélectionné + + + Insérer le contenu du Presse-papiers à l’emplacement actuel + + + Répéter l'action annulée la plus récente + + + Sélectionner tout le contenu + + + Souligner le texte sélectionné + + + Rétablir l'action la plus récente + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Gras + + + Copier + + + Couper + + + Italique + + + Coller + + + Rétablir + + + Sélectionner tout + + + Souligné + + + Annuler + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fr-FR/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fr-FR/Resources.resw new file mode 100644 index 000000000000..3cf609c7dd06 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/fr-FR/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Mettre en gras le texte sélectionné + + + Copier le contenu sélectionné dans le Presse-papiers + + + Supprimer le contenu sélectionné et le coller dans le Presse-papiers. + + + Mettre le texte sélectionné en italique + + + Insérer le contenu du Presse-papiers à l’emplacement actuel + + + Répéter l'action annulée la plus récente + + + Sélectionner tout le contenu + + + Souligner le texte sélectionné + + + Rétablir l'action la plus récente + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Gras + + + Copier + + + Couper + + + Italique + + + Coller + + + Rétablir + + + Sélectionner tout + + + Soulignement + + + Annuler + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ga-IE/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ga-IE/Resources.resw new file mode 100644 index 000000000000..de3e02b78860 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ga-IE/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cuir cló trom ar an téacs roghnaithe + + + Cóipeáil an t-inneachar roghnaithe chuig an ngearrthaisce + + + Bain an t-inneachar roghnaithe agus cuir ar an ngearrthaisce é + + + Cuir cló iodálach ar an téacs roghnaithe + + + Ionsáigh inneachar na gearrthaisce ag an suíomh reatha + + + Athdhéan an gníomh is déanaí a cealaíodh + + + Roghnaigh an t-inneachar ar fad + + + Cuir líne faoin téacs roghnaithe + + + Aisiompaigh an gníomh is déanaí + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Cló trom + + + Cóipeáil + + + Gearr + + + Iodálach + + + Greamaigh + + + Athdhéan + + + Roghnaigh gach rud + + + Líne faoi + + + Cealaigh + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gd-GB/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gd-GB/Resources.resw new file mode 100644 index 000000000000..40920c0753e1 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gd-GB/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Nì trom an teacsa a thagh thu + + + Cuir lethbhreac dhen t-susbaint a thagh thu dhan stòr-bhòrd + + + Thoir air falbh an t-susbaint a thagh thu agus cuir air an stòr-bhòrd e + + + Nì teacsa Eadailteach dhe na thagh thu + + + Cuiridh seo ann na tha air an stòr-bhòrd a-steach far a bheil thu an-dràsta + + + Ath-dhèan an gnìomh mu dheireadh a chaidh a neo-dhèanamh + + + Tagh an t-susbaint air fad + + + Cuir loidhne fon teacsa a thagh thu + + + Neo-dhèan an gnìomh mu dheireadh + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Trom + + + Lethbhreac + + + Geàrr + + + Eadailteach + + + Cuir ann + + + Ath-dhèan + + + Tagh na h-uile + + + Loidhne foidhe + + + Neo-dhèan + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gl-ES/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gl-ES/Resources.resw new file mode 100644 index 000000000000..274ef00e9d7c --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gl-ES/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Pór en negra o texto seleccionado + + + Copiar o contido seleccionado no portapapeis + + + Eliminar o contido seleccionado e colocalo no portapapeis + + + Pór en cursiva o texto seleccionado + + + Inserir o contido do portapapeis na localización actual + + + Repetir a última acción que se desfixo + + + Seleccionar todo o contido + + + Subliñar o texto seleccionado + + + Inverter a acción máis recente + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Negra + + + Copiar + + + Cortar + + + Cursiva + + + Pegar + + + Refacer + + + Seleccionar todo + + + Subliñado + + + Desfacer + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gu-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gu-IN/Resources.resw new file mode 100644 index 000000000000..46ba92b39253 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/gu-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + પસંદ કરેલ ટેક્સ્ટને બોલ્ડ કરે છે + + + પસંદ કરેલ સામગ્રી ક્લિપબોર્ડ પર કૉપિ કરો + + + પસંદ કરેલી સામગ્રી દૂર કરો અને તેને ક્લિપબોર્ડ પર મૂકો + + + પસંદ કરેલ ટેક્સ્ટને ઇટાલિક કરો + + + વર્તમાન સ્થાન પર ક્લિપબોર્ડની સામગ્રીઓ સામેલ કરો + + + સૌથી તાજેતરમાં પૂર્વવત્ કરેલ ક્રિયાનું પુનરાવર્તન કરો + + + બધી સામગ્રી પસંદ કરો + + + પસંદ કરેલ ટેક્સ્ટને રેખાંકિત કરો + + + સૌથી તાજેતરની ક્રિયાને ઉલટાવો + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + બોલ્ડ + + + કૉપિ કરો + + + કાપો + + + ઇટાલિક + + + ચોંટાડો + + + ફરીથી કરો + + + બધું પસંદ કરો + + + રેખાંકિત કરો + + + પૂર્વવત્ કરો + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/he-IL/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/he-IL/Resources.resw new file mode 100644 index 000000000000..d452c4d2e639 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/he-IL/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + הדגש את הטקסט שנבחר + + + העתק את התוכן שנבחר ללוח + + + הסר את התוכן שנבחר והצב אותו בלוח + + + הפוך את הטקסט הנבחר לנטוי + + + הוסף את תוכן הלוח במיקום הנוכחי + + + חזור על הפעולה האחרונה שבוטלה + + + בחר את כל התוכן + + + מתח קו תחתון תחת הטקסט הנבחר + + + בטל את הפעולה האחרונה + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + מודגש + + + העתק + + + גזור + + + נטוי + + + הדבק + + + בצע שוב + + + בחר הכל + + + קו תחתון + + + בטל + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hi-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hi-IN/Resources.resw new file mode 100644 index 000000000000..0166ae3b9247 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hi-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + चयनित पाठ को बोल्ड करें + + + क्लिपबोर्ड पर चयनित सामग्री की प्रतिलिपि बनाएँ + + + चयनित सामग्री निकालें और उसे क्लिपबोर्ड पर रखें + + + चयनित पाठ को इटैलिक करें + + + वर्तमान स्थान पर क्लिपबोर्ड की सामग्री सम्मिलित करें + + + हाल ही में पूर्ववत की गई क्रिया दोहराएं + + + सभी सामग्री का चयन करें + + + चयनित पाठ को रेखांकित करें + + + सबसे हाल ही की कार्रवाई को उलट दें + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + बोल्ड + + + प्रतिलिपि बनाएँ + + + काटें + + + इटैलिक + + + चिपकाएँ + + + फिर से करें + + + सभी का चयन करें + + + रेखांकित + + + पूर्ववत् करें + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hr-HR/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hr-HR/Resources.resw new file mode 100644 index 000000000000..7553d5d52103 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hr-HR/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Podebljaj odabrani tekst + + + Kopiraj odabrani sadržaj u međuspremnik + + + Uklonite odabrani sadržaj i stavite ga u međuspremnik + + + Postavljanje odabranog teksta u kurziv + + + Umetnite sadržaj međuspremnika na trenutačno mjesto + + + Ponovi posljednju akciju poništavanja + + + Odaberi sav sadržaj + + + Podcrtavanje odabranog teksta + + + Poništi posljednju akciju + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Podebljano + + + Kopiraj + + + Izreži + + + Kurziv + + + Zalijepi + + + Ponovi + + + Odaberi sve + + + Podcrtano + + + Poništi + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hu-HU/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hu-HU/Resources.resw new file mode 100644 index 000000000000..b1d4d2d75430 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hu-HU/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + A kijelölt szöveg félkövérré alakítása + + + A kijelölt tartalom másolása a vágólapra + + + A kijelölt tartalom eltávolítása és elhelyezése a vágólapon + + + A kijelölt szöveg dőltté formázása + + + A vágólap tartalmának beszúrása az aktuális helyre + + + A legutóbb visszavont művelet megismétlése + + + Az összes tartalom kijelölése + + + A kijelölt szöveg aláhúzása + + + A legutóbbi művelet visszavonása + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Félkövér + + + Másolás + + + Kivágás + + + Dőlt + + + Beillesztés + + + Mégis + + + Az összes kijelölése + + + Aláhúzás + + + Visszavonás + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hy-AM/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hy-AM/Resources.resw new file mode 100644 index 000000000000..e3471386c9df --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/hy-AM/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Ընտրված գրվածքը դարձնել թավ + + + Պատճենել ընտրված բովանդակությունը սեղմատախտակին + + + Հեռացնել ընտրված բովանդակությունը և դնել այն սեղմատախտակին + + + Ընտրված գրվածքը նշել շեղով + + + Զետեղել սեղմատախտակի բովանդակությունը ընթացիկ տեղադրությունում + + + Կրկնել ամենավերջին հետարկման գործողությունը + + + Ընտրել ամբողջ բովանդակությունը + + + Ընտրված գրվածքը ընդգծել + + + Հետադարձել ամենավերջին գործողությունը + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Թավ + + + Պատճենել + + + Կտրել + + + Շեղ + + + Կպցնել + + + Վերարկել + + + Ընտրել բոլորը + + + Ընդգծել + + + Հետարկել, համարել անվավեր + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/id-ID/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/id-ID/Resources.resw new file mode 100644 index 000000000000..6bb8ceed5c0e --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/id-ID/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Tebalkan teks yang dipilih + + + Salin konten yang dipilih ke clipboard + + + Hapus konten yang dipilih dan tempatkan di clipboard + + + Miringkan teks yang dipilih + + + Sisipkan isi clipboard di lokasi saat ini + + + Mengulangi tindakan yang terakhir dibatalkan + + + Pilih semua konten + + + Garisbawahi teks yang dipilih + + + Balikkan tindakan terakhir + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Tebalkan + + + Salin + + + Potong + + + Miringkan + + + Tempel + + + Ulangi + + + Pilih Semua + + + Garisbawahi + + + Batalkan + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/is-IS/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/is-IS/Resources.resw new file mode 100644 index 000000000000..140f0394d699 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/is-IS/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Feitletra valinn texta + + + Afrita valið efni á klippiborðið + + + Fjarlægja valið efni og setja það á klippiborðið + + + Skáletra valinn texta + + + Setja efnið á klippiborðinu inn á núverandi staðsetningu + + + Endurtaka síðustu aðgerð sem var afturkölluð + + + Velja allt efni + + + Undirstrika valinn texta + + + Afturkalla síðustu aðgerð + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Feitletrað + + + Afrita + + + Klippa + + + Skáletur + + + Líma + + + Endurgera + + + Velja allt + + + Undirstrikun + + + Afturkalla + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/it-IT/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/it-IT/Resources.resw new file mode 100644 index 000000000000..948fa93faca2 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/it-IT/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Applica il grassetto al testo selezionato + + + Copia il contenuto selezionato negli Appunti + + + Rimuovi il contenuto selezionato e inseriscilo negli Appunti + + + Applica il corsivo al testo selezionato + + + Inserisci il contenuto degli Appunti nel percorso corrente + + + Ripeti l'azione annullata più di recente + + + Seleziona tutto il contenuto + + + Sottolinea il testo selezionato + + + Annulla l'azione più recente + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Grassetto + + + Copia + + + Taglia + + + Corsivo + + + Incolla + + + Ripeti + + + Seleziona tutto + + + Sottolineato + + + Annulla + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ja-JP/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ja-JP/Resources.resw new file mode 100644 index 000000000000..071563e72cec --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ja-JP/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 選択したテキストを太字にする + + + 選択したコンテンツをクリップボードにコピー + + + 選択したコンテンツを削除してクリップボードに保存 + + + 選択したテキストを斜体にする + + + クリップボードのコンテンツを現在の場所に挿入 + + + 直前に取り消した操作を繰り返す + + + すべてのコンテンツを選択 + + + 選択した文字列に下線を引きます + + + 直前の操作を元に戻す + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + 太字 + + + コピー + + + 切り取り + + + 斜体 + + + 貼り付け + + + やり直し + + + すべて選択 + + + 下線 + + + 元に戻す + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ka-GE/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ka-GE/Resources.resw new file mode 100644 index 000000000000..d5200af7952c --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ka-GE/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + მონიშნული ტექსტის გამუქება + + + არჩეული შიგთავსის კოპირება გაცვლის ბუფერში + + + არჩეული შიგთავსისთვის ამოღება და მისი მოთავსება გაცვლის ბუფერში + + + მონიშნული ტექსტის დახრა + + + მიმდინარე მდებარეობაზე გაცვლის ბუფერის შიგთავსის ჩასმა + + + ყველაზე ბოლო გაუქმებული მოქმედების გამეორება + + + ყველა შიგთავსის არჩევა + + + მონიშნული ტექსტის ხაზგასმა + + + ყველაზე ბოლო მოქმედების გაუქმება + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + მუქი + + + კოპირება + + + ამოჭრა + + + დახრილი + + + ჩასმა + + + გამეორება + + + ყველას არჩევა + + + ხაზგასმა + + + მოქმედების გაუქმება + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kk-KZ/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kk-KZ/Resources.resw new file mode 100644 index 000000000000..525a428c4e62 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kk-KZ/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Бөлектелген мәтінге қалың мәнерді қолдану + + + Бөлектелген мазмұнды аралық сақтағышқа көшіру + + + Бөлектелген мазмұнды жойып, оны аралық сақтағышқа қою + + + Бөлектелген мәтін қарпін көлбеу ету + + + Ағымдағы орында аралық сақтағыш мазмұнын кірістіру + + + Ең соңғы қайтарылған әрекетті қайталау + + + Барлық мазмұнды бөлектеу + + + Бөлектелген мәтіннің астын сызу + + + Ең соңғы әрекетті қайтару + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Қалың + + + Көшіру + + + Қиып алу + + + Көлбеу + + + Қою + + + Қайталау + + + Барлығын таңдау + + + Асты сызылған + + + Болдырмау + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/km-KH/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/km-KH/Resources.resw new file mode 100644 index 000000000000..a421b32d06a6 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/km-KH/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ធ្វើឱ្យដិតលើអត្ថបទដែលបានជ្រើសរើស + + + ចម្លងខ្លឹមសារដែលបានជ្រើសរើសទៅឃ្លីបបត + + + ដកខ្លឹមសារដែលបានជ្រើសរើសចេញ ហើយដាក់វានៅលើឃ្លីបបត + + + ធ្វើឲ្យទ្រេតលើអត្ថបទដែលបានជ្រើសរើស + + + បញ្ចូលខ្លឹមសារនៃឃ្លីបបតនៅទីតាំងបច្ចុប្បន្ន + + + ធ្វើសកម្មភាពដែលមិនទាន់បញ្ចប់ថ្មីៗ បំផុតឡើងវិញ + + + ជ្រើសរើសខ្លឹមសារទាំងអស់ + + + គូសបន្ទាត់ពីក្រោមអត្ថបទដែលបានជ្រើសរើស + + + បញ្ច្រាសសកម្មភាពថ្មីៗ បំផុត + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ដិត + + + ចម្លង + + + កាត់ + + + អក្សរទ្រេត + + + បិទភ្ជាប់ + + + ធ្វើឡើងវិញ + + + ជ្រើសទាំងអស់ + + + បន្ទាត់ពីក្រោម + + + មិនធ្វើវិញ + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kn-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kn-IN/Resources.resw new file mode 100644 index 000000000000..520575c15d34 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kn-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ಆಯ್ಕೆ ಮಾಡಲಾದ ಪಠ್ಯವನ್ನು ಬೋಲ್ಡ್ ಮಾಡಿ + + + ಆಯ್ಕೆಮಾಡಿದ ವಿಷಯವನ್ನು ಕ್ಲಿಪ್ ಬೋರ್ಡ್‍ಗೆ ನಕಲಿಸಿ + + + ಆಯ್ದ ಕಂಟೆಂಟ್ ಅನ್ನು ತೆಗೆಯಿರಿ ಮತ್ತು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ನಲ್ಲಿ ಇಡಿ + + + ಆಯ್ಕೆಮಾಡಿದ ಪಠ್ಯವನ್ನು ಓರೆಯಾಗಿಸಿ + + + ಪ್ರಸಕ್ತ ಸ್ಥಾನದಲ್ಲಿ ಕ್ಲಿಪ್ ಬೋರ್ಡ್ ನ ವಿಷಯಗಳನ್ನು ಸೇರಿಸಿ + + + ತೀರಾ ಇತ್ತೀಚೆಗೆ ರದ್ದುಗೊಳಿಸಿದ ಕ್ರಿಯೆಯನ್ನು ಪುನರಾವರ್ತಿಸಿ + + + ಎಲ್ಲಾ ವಿಷಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ + + + ಆಯ್ಕೆಮಾಡಿದ ಪಠ್ಯವನ್ನು ಅಂಡರ್ಲೈನ್ ಮಾಡಿ + + + ತೀರಾ ಇತ್ತೀಚಿನ ಕ್ರಿಯೆಯನ್ನು ತಿರುಗಿಸಿ + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ದಪ್ಪ + + + ನಕಲಿಸಿ + + + ಕತ್ತರಿಸು + + + ಇಟಾಲಿಕ್ + + + ಅಂಟಿಸು + + + ಮತ್ತೆ ಮಾಡು + + + ಎಲ್ಲವನ್ನು ಆಯ್ಕೆಮಾಡಿ + + + ಅಡಿಗೆರೆ + + + ರದ್ದುಮಾಡು + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ko-KR/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ko-KR/Resources.resw new file mode 100644 index 000000000000..ba73b3bb6806 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ko-KR/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 선택한 텍스트를 볼드 표시합니다. + + + 선택한 콘텐츠를 클립보드에 복사합니다. + + + 선택한 콘텐츠를 제거하고 클립보드에 넣습니다. + + + 선택한 텍스트를 기울임꼴로 표시합니다. + + + 클립보드의 콘텐츠를 현재 위치에 삽입합니다. + + + 가장 최근에 실행 취소한 작업을 반복합니다. + + + 모든 콘텐츠 선택 + + + 선택한 텍스트에 밑줄을 표시합니다. + + + 가장 최근의 작업을 반대로 수행합니다. + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + 굵게 + + + 복사 + + + 잘라내기 + + + 기울임꼴 + + + 붙여넣기 + + + 다시 실행 + + + 모두 선택 + + + 밑줄 + + + 실행 취소 + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kok-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kok-IN/Resources.resw new file mode 100644 index 000000000000..44935d9f4088 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/kok-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + वेंचिल्लो मजकूर ठळक करचो + + + वेंचिल्लो मजकूर क्लिपबोर्डाचेर नक्कल करचो + + + वेंचिल्ली सामुग्री काडची आनी ती क्लिपबोर्डाचेर घालची + + + वेंचिल्लो मजकूर पालसो करचो + + + सध्याच्या ठिकाणाचेर क्लिपबोर्डाची सामुग्री रिगोवची + + + सामकी हालींची परत करूंक नाशिल्ली कृती परतून करची + + + सगळो मजकूर वेंच्चो + + + वेंचिल्लो मजकूर अधोरेखांकीत करचो + + + सामकी हालींची कृती परतुची + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ठळक + + + नक्कल करचें + + + कापचें + + + पालशें + + + दसोवचें + + + परतून करचें + + + सगळें वेंच्चें + + + अधोरेखांकीत करचें + + + पूर्ववत करचें + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lb-LU/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lb-LU/Resources.resw new file mode 100644 index 000000000000..5ad488a4adde --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lb-LU/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Den ausgewielten Text fett formatéieren + + + Den ausgewielten Inhalt op de Clipboard kopéieren + + + Den ausgewielten Inhalt ewechhuelen an en op de Clipboard setzem + + + Den ausgewielten Text kursiv formatéieren + + + Den Inhalt vum Clipboard op déi aktuell Plaz setzen + + + Déi lescht réckgängeg gemaachten Aktioun widderhuelen + + + All Inhalter auswielen + + + Den ausgewielten Text ënnersträichen + + + Déi lescht Aktioun réckgängeg maachen + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Fett + + + Kopéieren + + + Schneiden + + + Kursiv + + + Apechen + + + Widderhuelen + + + Alles auswielen + + + Ënnersträichen + + + Réckgängeg maachen + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lo-LA/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lo-LA/Resources.resw new file mode 100644 index 000000000000..5bebb4281da3 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lo-LA/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ເຮັດໃຫ້ຂໍ້ຄວາມເລືອກໄວ້ເປັນໂຕໜາ + + + ກັອບປີ້ເນື້ອໃນທີ່ເລືອກໃສ່ຄລິບບອດ + + + ຖອນເນື້ອໃນທີ່ເລືອກແລະເອົາມັນໃສ່ໃນ ຄລິບບອດ + + + ເຮັດໃຫ້ຂໍ້ຄວາມເລືອກໄວ້ເປັນໂຕອຽງ + + + ປ້ອນເນື້ອໃນຂອງ ຄລິບບອດທີ່ ຈຸດທີ່ຕັ້ງປະຈຸບັນ + + + ເຮັດຊ້ຳຄືນການກະທຳທີ່ບໍ່ສຳເລັດຫຼ້າສຸດ + + + ເລືອກເນື້ອໃນທັງໝົດ + + + ຂີດກ້ອງຂໍ້ຄວາມທີ່ເລືອກ + + + ເອົາກັບຄືນການກະທຳຫຼ້າສຸດ + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ຕົວເນັ້ນ + + + ສຳເນົາ + + + ຕັດ + + + ຕົວອຽງ + + + ວາງ + + + ເຮັດຄືນໃໝ່ + + + ເລືອກທັງໝົດ + + + ຂີດກ້ອງ + + + ຍົກເລີກຄຳສັ່ງສຸດທ້າຍ + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lt-LT/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lt-LT/Resources.resw new file mode 100644 index 000000000000..73f706aae19e --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lt-LT/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Paryškinti pažymėtą tekstą + + + Kopijuoti pažymėtą turinį į mainų sritį + + + Pašalinti pažymėtą turinį ir padėti jį į mainų sritį + + + Pažymėtą tekstą rašyti pasviruoju šriftu + + + Įterpti mainų srities turinį šioje vietoje + + + Kartoti paskutinį anuliuotą veiksmą + + + Pasirinkti visą turinį + + + Pabraukti pažymėtą tekstą + + + Atšaukti paskutinį veiksmą + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + P + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Paryškintasis + + + Kopijuoti + + + Iškirpti + + + Pasvirasis + + + Įklijuoti + + + Perdaryti + + + Pasirinkti viską + + + Pabrauktasis + + + Anuliuoti + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lv-LV/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lv-LV/Resources.resw new file mode 100644 index 000000000000..982682976665 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/lv-LV/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Izcelt atlasīto tekstu treknrakstā + + + Kopēt atlasīto saturu starpliktuvē + + + Noņemt atlasīto saturu un ievietot to starpliktuvē + + + Pārveidot atlasīto tekstu slīprakstā + + + Ievietot starpliktuves saturu pašreizējā atrašanās vietā + + + Atkārtot pēdējo atsaukšanas darbību + + + Atlasīt visu saturu + + + Pasvītrot atlasīto tekstu + + + Atsaukt pēdējo darbību + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Treknraksts + + + Kopēt + + + Izgriezt + + + Slīpraksts + + + Ielīmēt + + + Atcelt atsaukšanu + + + Atlasīt visu + + + Pasvītrojums + + + Atsaukt + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mi-NZ/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mi-NZ/Resources.resw new file mode 100644 index 000000000000..f4716ad416d1 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mi-NZ/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Whakataekahatia te kuputuhi i tīpakona ai + + + Tāruatia ngā kai tīpako ki te papatopenga + + + Tīpakona te kai i tīpakona ka mea ai ki te papatopenga + + + Whakatītahaia te kuputuhi i tīpakona ai + + + Kōkuhuna ngā kai o te papatopenga ki te tauwāhi o nāianei + + + Tukuruatia te hohenga kātahi anō ka wetekina + + + Tīpakona ngā kai katoa + + + Tārarohia te kuputuhi i tīpakona ai + + + Ka wewete i te hohenga tino hōu + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Taekaha + + + Tāruatia + + + Tapahi + + + Tītaha + + + Whakapiria + + + Mahianōtia + + + Tīpako Katoa + + + Tāraro + + + Wetekina + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mk-MK/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mk-MK/Resources.resw new file mode 100644 index 000000000000..378e2d357f3d --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mk-MK/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Направи го избраниот текст болд + + + Копирај ја избраната содржина во складот + + + Отстранете ја избраната содржина и ставете ја на складот + + + Направи го избраниот текст италик + + + Вметнете ја содржината на складот на тековната локација + + + Повтори го последното вратено дејство + + + Избери ја целата содржина + + + Подвлечи го избраниот текст + + + Врати го последното дејство + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Болд + + + Копирај + + + Отсечи + + + Италик + + + Залепи + + + Повтори + + + Избери ги сите + + + Подвлечи + + + Врати + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ml-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ml-IN/Resources.resw new file mode 100644 index 000000000000..0515f9ed735c --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ml-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + തിരഞ്ഞെടുത്ത വാചകം ബോൾഡ് ചെയ്യുക + + + തിരഞ്ഞെടുത്ത ഉള്ളടക്കം ക്ലിപ്ബോർഡിലേക്ക് പകർത്തുക + + + തിരഞ്ഞെടുത്ത ഉള്ളടക്കം നീക്കം ചെയ്ത് അത് ക്ലിപ്പ് ബോര് ഡില് ഇടുകയും + + + തിരഞ്ഞെടുത്ത ടെക്സ്റ്റ് ചെരിച്ചെഴുതുക + + + നിലവിലുള്ള സ്ഥാനത്തേക്ക് പകര് പ്പിടത്തിലെ ഉള്ളടക്കങ്ങള് ചേര് ക്കുക + + + ഏറ്റവും സമീപകാലത്ത് പൂർവ്വാവസ്ഥയിലാക്കിയ പ്രവർത്തനം ആവർത്തിക്കുക + + + എല്ലാ ഉള്ളടക്കവും തിരഞ്ഞെടുക്കുക + + + തിരഞ്ഞെടുത്ത ടെക്സ്റ്റിന് അടിവരയിടുക + + + ഏറ്റവും സമീപകാലത്തെ ക്രിയ വിപരീതമാക്കുക + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ബോൾഡ് + + + പകർത്തുക + + + മുറിക്കുക + + + ചെരിച്ചെഴുത്ത് + + + ഒട്ടിക്കുക + + + വീണ്ടും ചെയ്യുക + + + എല്ലാം തിരഞ്ഞെടുക്കുക + + + അടിവര + + + പൂർവ്വാവസ്ഥയിലാക്കുക + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mr-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mr-IN/Resources.resw new file mode 100644 index 000000000000..85a93a569dcc --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mr-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + निवडलेला मजकूर ठळक करा + + + निवडलेली सामुग्री क्लिपबोर्डवर प्रतिलिपी करा + + + निवडलेली सामग्री हटवा आणि ती क्लिपबोर्डवर ठेवा + + + निवडलेला मजकूर तिर्यक करा + + + क्लिपबोर्डवरील मजकूर सध्याच्या स्थानावर समाविष्ट करा + + + सर्वात अलीकडे पूर्ववत केलेली क्रिया पुन्हा करा + + + सर्व सामुग्री निवडा + + + निवडलेला मजकूर अधोरेखित करा + + + सर्वात अलीकडील क्रिया उलट करा + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ठळक + + + प्रतिलिपी करा + + + कापा + + + तिर्यक + + + चिकटवा + + + पुन्हा करा + + + सर्व निवडा + + + अधोरेखित करा + + + पूर्ववत करा + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ms-MY/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ms-MY/Resources.resw new file mode 100644 index 000000000000..90f7c49c9c6e --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ms-MY/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Tebalkan teks yang dipilih + + + Salin kandungan yang dipilih kepada papan klip + + + Alih keluar kandungan yang dipilih dan letakkannya pada papan klip + + + Jadikan teks yang dipilih italik + + + Masukkan kandungan papan klip di lokasi semasa + + + Ulang tindakan dibuat asal baru-baru ini + + + Pilih semua kandungan + + + Lukis garis bawah pada teks yang dipilih + + + Buat asal tindakan yang terbaru + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Tebal + + + Salin + + + Potong + + + Italic + + + Tampal + + + Buat semula + + + Pilih Semua + + + Garis bawah + + + Buat asal + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mt-MT/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mt-MT/Resources.resw new file mode 100644 index 000000000000..2c531229a49f --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/mt-MT/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Itfa' t-test il-magħżul fil-grassett + + + Ikkopja l-kontenut magħżul fil-klibbord + + + Neħħi l-kontenut magħżul u poġġiha fil-klibbord + + + Itfa' t-test il-magħżul fil-korsiv + + + Daħħal il-kontenut tal-klibbord fil-post attwali + + + Irrepeti l-aktar azzjoni riċenti li treġġgħet lura + + + Agħżel il-kontenut kollu + + + Issottolinja t-test magħżul + + + Reġġa' lura l-azzjoni l-aktar riċenti + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Bold + + + Ikkopja + + + Aqta’ + + + Korsiv + + + Ippejstja + + + Irrestawra + + + Agħżel Kollox + + + Issottolinja + + + Erġa’ lura + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nb-NO/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nb-NO/Resources.resw new file mode 100644 index 000000000000..fdce92a257b8 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nb-NO/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Gjør merket tekst fet + + + Kopier det merkede innholdet til utklippstavlen + + + Fjern det merkede området og plasser det på utklippstavlen + + + Bruker kursiv skrift på den merkede teksten + + + Sett inn innholdet på utklippstavlen på gjeldende plassering + + + Gjenta den siste handlingen du angret + + + Merk alt innhold + + + Understreker den merkede teksten + + + Reverser den siste handlingen + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Fet + + + Kopier + + + Klipp ut + + + Kursiv + + + Lim inn + + + Gjør om + + + Merk alt + + + Understrek + + + Angre + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ne-NP/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ne-NP/Resources.resw new file mode 100644 index 000000000000..db977bb5aa64 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ne-NP/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + चयन गरिएको पाठ बोल्ड गर्नुहोस् + + + चयन गरिएको सामग्रीलाई क्लिपबोर्डमा प्रतिलिपि बनाउनुहोस् + + + चयन गरिएको सामग्री हटाउनुहोस् र यसलाई क्लिपबोर्डमा राख्नुहोस् + + + चयन गरिएको पाठ छड्के बनाउनुहोस् + + + क्लिपबोर्डका सामग्रीहरू हालको स्थानमा घुसाउनुहोस् + + + भर्खरै पूर्वस्थितिमा फर्काइएको कार्य दोहोर्‍याउनुहोस् + + + सबै सामग्री चयन गर्नुहोस् + + + चयन गरिएका पाठ रेखाङ्कन गर्नुहोस् + + + सबैभन्दा हालको कार्यलाई उल्टाउनुहोस् + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + बोल्ड गर्नुहोस् + + + प्रतिलिपि बनाउनुहोस् + + + काट्नुहोस् + + + छड्के बनाउनुहोस् + + + टाँस्नुहोस् + + + फेरि गर्नुहोस् + + + सबै चयन गर्नुहोस् + + + रेखाङ्कन गर्नुहोस् + + + पूर्वस्थितिमा फर्काउनुहोस् + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nl-NL/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nl-NL/Resources.resw new file mode 100644 index 000000000000..674941c4d98e --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nl-NL/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + De geselecteerde tekst vet maken + + + De geselecteerde inhoud naar het klembord kopiëren + + + De geselecteerde inhoud verwijderen en deze naar het klembord kopiëren + + + De geselecteerde tekst cursief maken + + + De inhoud van het klembord invoegen op de huidige locatie + + + De meest recente ongedaan gemaakte actie herhalen + + + Alle inhoud selecteren + + + De geselecteerde tekst onderstrepen + + + De meest recente actie omkeren + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Vet + + + Kopiëren + + + Knippen + + + Cursief + + + Plakken + + + Opnieuw + + + Alles selecteren + + + Onderstrepen + + + Ongedaan maken + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nn-NO/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nn-NO/Resources.resw new file mode 100644 index 000000000000..8ec69f9892eb --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/nn-NO/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Uthev merkt tekst + + + Kopier det merkte innhaldet til utklippstavla + + + Fjern det merkte innhaldet og plasser det på utklippstavla + + + Sett merkt tekst i kursiv + + + Sett inn innhaldet frå utklippstavla på gjeldande plassering + + + Gjenta siste angra handling + + + Vel alt innhaldet + + + Understrek merkt tekst + + + Reverser siste handling + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Utheva + + + Kopier + + + Klipp ut + + + Kursiv + + + Lim inn + + + Gjer om + + + Merk alt + + + Understreking + + + Angre + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/or-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/or-IN/Resources.resw new file mode 100644 index 000000000000..11c3a12f85bd --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/or-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ଚୟନ କରାଯାଇଥିବା ପାଠ୍ୟକୁ ବୋଲ୍ଡ୍ କରନ୍ତୁ + + + କ୍ଲିପ୍‍‍ବୋର୍ଡକୁ ଚୟନ କରିଥିବା ବିଷୟବସ୍ତୁ କପି କରନ୍ତୁ + + + ନିର୍ବାଚିତ ବିଷୟ ଅପସାରଣ କରନ୍ତୁ ଏବଂ ଏହାକୁ କ୍ଲିପ୍ ବୋର୍ଡରେ ରଖନ୍ତୁ + + + ନିର୍ବାଚିତ ପାଠ୍ୟକୁ ଇଟାଲିକ୍ କରନ୍ତୁ + + + ସାଂପ୍ରତିକ ଅବସ୍ଥାନରେ କ୍ଲିପ୍‌ ବୋର୍ଡ୍ ର ସୂଚୀ ଭର୍ତ୍ତି କରନ୍ତୁ + + + ସର୍ବାଧିକ ନିକଟ ଅତୀତରେ କରାଯାଇନଥିବା କାର୍ଯ୍ୟ ପୁନରାବୃତ୍ତି କରନ୍ତୁ + + + ସମସ୍ତ ବିଷୟବସ୍ତୁ ଚୟନ କରନ୍ତୁ + + + ଚୟନ ପାଠ୍ୟକୁ ରେଖାଙ୍କନ କରନ୍ତୁ + + + ସମ୍ପ୍ରତି କ୍ରିୟା ବୀପରିତ କରନ୍ତୁ + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ବୋଲ୍ଡ + + + କପି କରନ୍ତୁ + + + କଟ୍ କରନ୍ତୁ + + + ଇଟାଲିକ୍ + + + ଲେପନ କରନ୍ତୁ + + + ପୁନଃକରଣ କରନ୍ତୁ + + + ସମସ୍ତ ଚୟନ କରନ୍ତୁ + + + ରେଖାଙ୍କିତ + + + ପୂର୍ବବତ୍ କରନ୍ତୁ + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pa/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pa/Resources.resw new file mode 100644 index 000000000000..548ec5d25311 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pa/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ਚੁਣੇ ਹੋਏ ਟੈਕਸਟ ਨੂੰ ਬੋਲਡ ਕਰੋ + + + ਚੁਣੀ ਗਈ ਸਮੱਗਰੀ ਨੂੰ ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਪ੍ਰਤਿਲਿਪਿਤ ਬਣਾਓ + + + ਚੁਣੀ ਸਮੱਗਰੀ ਹਟਾਓ ਅਤੇ ਇਸ ਨੂੰ ਕਲਿੱਪਬੋਰਡ ਤੇ ਰੱਖੋ + + + ਚੁਣੇ ਗਏ ਟੈਕਸਟ ਨੂੰ ਇਟੈਲਿਕ ਕਰੋ + + + ਕਲਿੱਪਬੋਰਡ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਮੌਜੂਦਾ ਸਥਾਨ 'ਤੇ ਪਾਓ + + + ਸਭ ਤੋਂ ਹਾਲੀਆ ਪਹਿਲੇ ਵਰਗੀ ਕੀਤੀ ਕਾਰਵਾਈ ਨੂੰ ਦੁਹਰਾਓ + + + ਸਾਰੀ ਸਮੱਗਰੀ ਚੁਣੋ + + + ਚੁਣੇ ਹੋਏ ਟੈਕਸਟ ਨੂੰ ਅੰਡਰਲਾਈਨ ਕਰੋ + + + ਸਭ ਤੋਂ ਹਾਲੀਆ ਕਾਰਵਾਈ ਨੂੰ ਉਲਟਾਓ + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ਬੋਲਡ + + + ਪ੍ਰਤਿਲਿਪਿਤ ਬਣਾਓ + + + ਕੱਟੋ + + + ਇਟੈਲਿਕ + + + ਚਿਪਕਾਓ + + + ਦੁਬਾਰਾ ਕਰੋ + + + ਸਾਰੇ ਚੁਣੋ + + + ਅੰਡਰਲਾਈਨ + + + ਪਹਿਲੇ ਵਰਗਾ ਕਰੋ + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pl-PL/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pl-PL/Resources.resw new file mode 100644 index 000000000000..4d56701e921f --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pl-PL/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Pogrub zaznaczony tekst + + + Kopiuj zaznaczoną zawartość do schowka + + + Usuń zaznaczoną zawartość i umieść ją w schowku + + + Zastosuj kursywę do zaznaczonego tekstu + + + Wklej zawartość schowka w bieżącej lokalizacji + + + Wykonaj ponownie ostatnio wycofaną akcję + + + Zaznacz całą zawartość + + + Podkreśl zaznaczony tekst + + + Wycofaj ostatnią akcję + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Pogrubienie + + + Kopiuj + + + Wytnij + + + Kursywa + + + Wklej + + + Wykonaj ponownie + + + Zaznacz wszystko + + + Podkreślenie + + + Cofnij + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pt-BR/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pt-BR/Resources.resw new file mode 100644 index 000000000000..ae792e6c02c6 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pt-BR/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Coloque o texto selecionado em negrito + + + Copiar o conteúdo selecionado para a área de transferência + + + Remover o conteúdo selecionado e colocá-lo na área de transferência + + + Coloque o texto selecionado em itálico + + + Inserir o conteúdo da área de transferência no local atual + + + Repita a ação mais recente + + + Selecione todo o conteúdo + + + Sublinhe o texto selecionado + + + Reverta a ação mais recente + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Negrito + + + Copiar + + + Recortar + + + Itálico + + + Colar + + + Refazer + + + Selecionar Tudo + + + Sublinhar + + + Desfazer + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pt-PT/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pt-PT/Resources.resw new file mode 100644 index 000000000000..250082a200b4 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/pt-PT/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Colocar o texto selecionado a negrito + + + Copiar o conteúdo selecionado para a área de transferência + + + Remover o conteúdo selecionado e colocá-lo na área de transferência + + + Colocar em itálico o texto selecionado + + + Inserir os conteúdos da área de transferência na localização atual + + + Repetir a ação anulada mais recente + + + Selecionar todo o conteúdo + + + Sublinhar o texto selecionado + + + Reverter a ação mais recente + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + P + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Negrito + + + Copiar + + + Cortar + + + Itálico + + + Colar + + + Refazer + + + Selecionar Tudo + + + Sublinhar + + + Desfazer + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ro-RO/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ro-RO/Resources.resw new file mode 100644 index 000000000000..f23088ec1cae --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ro-RO/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Textul selectat devine aldin + + + Copiați conținutul selectat în clipboard + + + Eliminați conținutul selectat și puneți-l în clipboard + + + Textul selectat devine cursiv + + + Inserați conținutul din clipboard în locația curentă + + + Repetați cea mai recentă acțiune anulată + + + Selectați tot conținutul + + + Se subliniază textul selectat + + + Inversați acțiunea cea mai recentă + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Aldin + + + Copiere + + + Decupare + + + Cursiv + + + Lipire + + + Refacere + + + Selectați tot + + + Subliniere + + + Anulare + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ru-RU/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ru-RU/Resources.resw new file mode 100644 index 000000000000..fb4369cd3e0b --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ru-RU/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Выделить полужирным выбранный текст + + + Скопировать выделенное содержимое в буфер обмена + + + Удалить выделенное содержимое и поместить его в буфер обмена + + + Выделить курсивом выбранный текст + + + Вставка содержимого буфера обмена в текущем местоположении + + + Повторить последнее отмененное действие + + + Выбрать все содержимое + + + Подчеркнуть выделенный текст + + + Отменить последнее действие + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Полужирный + + + Копировать + + + Вырезать + + + Курсив + + + Вставить + + + Вернуть + + + Выбрать все + + + Подчеркнутый + + + Отменить + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sk-SK/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sk-SK/Resources.resw new file mode 100644 index 000000000000..55af830fb719 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sk-SK/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Nastaviť vybratý text ako tučný + + + Skopírovať vybratý obsah do Schránky + + + Odstrániť vybratý obsah a vložiť ho do Schránky + + + Nastaviť vybratý text ako kurzívu + + + Vložiť obsah schránky na aktuálne miesto + + + Zopakovať naposledy zrušenú akciu + + + Vybrať celý obsah + + + Nastaviť vybratý text ako podčiarknutý + + + Vrátiť poslednú vykonanú akciu + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Tučné + + + Kopírovať + + + Vystrihnúť + + + Kurzíva + + + Prilepiť + + + Znova + + + Vybrať všetko + + + Podčiarknuté + + + Vrátiť späť + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sl-SI/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sl-SI/Resources.resw new file mode 100644 index 000000000000..ac7bdf45e994 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sl-SI/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Oblikuj izbrano besedilo kot krepko + + + Kopiraj izbrano vsebino v odložišče. + + + Odstrani izbrano vsebino in jo postavi v odložišče + + + Oblikuj izbrano besedilo kot ležeče + + + Vstavi vsebino odložišča na trenutno mesto + + + Ponovi zadnje razveljavljeno dejanje + + + Izberi vso vsebino + + + Podčrtaj izbrano besedilo + + + Obratno izvedi zadnje dejanje + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Krepko + + + Kopiraj + + + Izreži + + + Ležeče + + + Prilepi + + + Uveljavi + + + Izberi vse + + + Podčrtaj + + + Razveljavi + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sq-AL/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sq-AL/Resources.resw new file mode 100644 index 000000000000..d84752f3f62b --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sq-AL/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Bëje të trashësuar tekstin e përzgjedhur + + + Kopjo përmbajtjen e përzgjedhur në kujtesën e fragmenteve + + + Hiq përmbajtjen e përzgjedhur dhe vëre në kujtesën e fragmenteve + + + Bëje kursiv tekstin e përzgjedhur + + + Fut përmbajtjet e kujtesës së fragmenteve në vendndodhjen aktuale + + + Përsërit veprimin e zhbërë më së fundi + + + Përzgjidh të gjithë përmbajtjen + + + Nënvizo tekstin e përzgjedhur + + + Kthe mbrapsht veprimin më të fundit + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + I trashësuar + + + Kopjo + + + Prit + + + Kursiv + + + Ngjit + + + Ribëj + + + Përzgjidh të gjitha + + + I nënvizuar + + + Zhbëj + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Cyrl-BA/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Cyrl-BA/Resources.resw new file mode 100644 index 000000000000..0cb45300d177 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Cyrl-BA/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Подебљај изабрани текст + + + Копирајте изабрани садржај у међуспремник + + + Уклоните изабрани садржај и ставите га у међуспремник. + + + Означите курзивом изабрани текст + + + Уметните садржај из међуспремника на тренутну локацију + + + Понови посљедњу опозвану радњу + + + Изабери сав садржај + + + Подвуци изабрани текст + + + Опозови најновију радњу + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Подебљано + + + Копирај + + + Исијеци + + + Курзив + + + Залијепи + + + Понови радњу + + + Изабери све + + + Подвучено + + + Опозови радњу + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Cyrl-RS/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Cyrl-RS/Resources.resw new file mode 100644 index 000000000000..00d4f76b7c32 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Cyrl-RS/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Подебљај изабрани текст + + + Копирај изабрани садржај у оставу + + + Уклони изабрани садржај и стави га у оставу + + + Примени курзив на изабрани текст + + + Уметни садржај оставе на тренутну локацију + + + Понови последњу опозвану радњу + + + Изаберите целокупан садржај + + + Подвуци изабрани текст + + + Преокрени најновију радњу + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Подебљано + + + Копирај + + + Исеци + + + Курзив + + + Налепи + + + Понови радњу + + + Изабери све + + + Подвучено + + + Опозови радњу + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Latn-RS/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Latn-RS/Resources.resw new file mode 100644 index 000000000000..86b093474cec --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sr-Latn-RS/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Podebljaj izabrani tekst + + + Kopiraj izabrani sadržaj u ostavu + + + Ukloni izabrani sadržaj i stavi ga u ostavu + + + Prebacite izabrani tekst u kurziv + + + Umetni sadržaj ostave na trenutnu lokaciju + + + Ponovi poslednju opozvanu radnju + + + Izaberi celokupan sadržaj + + + Podvucite izabrani tekst + + + Preokreni najnoviju radnju + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + O + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Podebljano + + + Kopiranje + + + Isecanje + + + Kurziv + + + Nalepi + + + Ponovi radnju + + + Izaberi sve + + + Podvučeno + + + Opozovi radnju + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sv-SE/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sv-SE/Resources.resw new file mode 100644 index 000000000000..c5daec433bf9 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/sv-SE/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Gör den markerade texten fet + + + Kopiera det markerade innehållet till Urklipp + + + Ta bort det markerade innehållet och placera det i Urklipp + + + Kursivera den markerade texten + + + Infoga innehållet från Urklipp i den aktuella platsen + + + Upprepa den senast ångrade åtgärden + + + Markera allt innehåll + + + Stryk under den markerade texten + + + Ångra den senaste åtgärden + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + L + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Fet + + + Kopiera + + + Klipp ut + + + Kursiv + + + Klistra in + + + Gör om + + + Markera allt + + + Understruken + + + Ångra + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ta-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ta-IN/Resources.resw new file mode 100644 index 000000000000..453f35b2192b --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ta-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + தேர்ந்தெடுத்த உரையைத் தடிமனாக்கு + + + தேர்ந்தெடுத்த உள்ளடக்கத்தை நகலகத்திற்கு நகலெடுக்கவும் + + + தேர்ந்தெடுத்த உள்ளடக்கத்தை அகற்றி, அதனை நகலகத்தில் வைக்கவும் + + + தேர்ந்தெடுத்த உரையைச் சாய்வாக்கு + + + நடப்பு இருப்பிடத்தில் நகலகத்தில் உள்ள உள்ளடக்கத்தைச் செருகவும் + + + மிகவும் சமீபத்திய செயல்தவிர் செயல்பாட்டை மீண்டும் செய் + + + அனைத்து உள்ளடக்கத்தையும் தேர்ந்தெடுக்கவும் + + + தேர்ந்தெடுத்த உரையில் அடிக்கோடிடு + + + மிகவும் சமீபத்திய செயல்பாட்டை மீட்டமை + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + தடிமனாக்கு + + + நகலெடு + + + வெட்டு + + + சாய்வாக்கு + + + ஒட்டு + + + மீண்டும்செய் + + + எல்லாம் தேர்ந்தெடு + + + அடிக்கோடிடு + + + செயல்தவிர் + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/te-IN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/te-IN/Resources.resw new file mode 100644 index 000000000000..4be543188035 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/te-IN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ఎంచుకున్న వచనాన్ని బోల్డ్ చేస్తుంది + + + ఎంచుకున్న కంటెంట్‌ను క్లిప్ బోర్డ్ కి కాపీ చేస్తుంది + + + ఎంపిక చేసిన కంటెంట్ ని తొలగించి, క్లిప్ బోర్డ్ మీద ఉంచండి. + + + ఎంచుకున్న వచనాన్ని ఇటాలిక్ చేస్తుంది + + + క్లిప్ బోర్డ్ లో ఉంచిన కంటెంట్ ని ప్రస్తుతం సూచించిన లొకేషన్ కి మార్చండి. + + + ఇటీవల రద్దుచేసిన చర్యను మళ్లీ చేస్తుంది + + + మొత్తం కంటెంట్ ను ఎంచుకోండి + + + ఎంచుకున్న వచనాన్ని అండర్‌లైన్ చేస్తుంది + + + అత్యంత ఇటీవలి చర్యను రివర్స్ చేస్తుంది + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + పెద్దగా + + + కాపీ + + + కత్తిరించు + + + ఇటాలిక్ + + + అతికించు + + + చర్య పునరావృతం + + + అన్నింటినీ ఎంచుకోండి + + + అండర్‌లైన్ + + + చర్య రద్దు + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/th-TH/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/th-TH/Resources.resw new file mode 100644 index 000000000000..61ead6d009d3 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/th-TH/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + ทำตัวหนาข้อความที่เลือก + + + คัดลอกเนื้อหาที่เลือกไปยังคลิปบอร์ด + + + ลบเนื้อหาที่เลือกและวางลงในคลิปบอร์ด + + + ทำตัวเอียงข้อความที่เลือก + + + ใส่เนื้อหาของคลิปบอร์ดในตำแหน่งที่ตั้งปัจจุบัน + + + ทำซ้ำการดำเนินการที่ยกเลิกการทำล่าสุด + + + เลือกเนื้อหาทั้งหมด + + + ขีดเส้นใต้ข้อความที่เลือก + + + ย้อนกลับการดำเนินการล่าสุด + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + ตัวหนา + + + คัดลอก + + + ตัด + + + ตัวเอียง + + + วาง + + + ทำซ้ำ + + + เลือกทั้งหมด + + + ขีดเส้นใต้ + + + เลิกทำ + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/tr-TR/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/tr-TR/Resources.resw new file mode 100644 index 000000000000..ece19313101d --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/tr-TR/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Seçili metni kalın yapın + + + Seçili içeriği panoya kopyalayın + + + Seçili içeriği kaldırın ve panoya yerleştirin + + + Seçilen metni italik yapın + + + Panonun içeriğini geçerli konuma ekle + + + En son geri alınan eylemi yineleyin + + + Tüm içeriği seçin + + + Seçilen metnin altını çizin + + + En son eylemi geri çevirin + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Kalın + + + Kopyala + + + Kes + + + İtalik + + + Yapıştır + + + Yinele + + + Tümünü Seç + + + Altı çizili + + + Geri Al + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/tt-RU/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/tt-RU/Resources.resw new file mode 100644 index 000000000000..c19e890a635c --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/tt-RU/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Тамгаланган текстны калынайту + + + Тамгаланган эчтәлекне алмашу буферына күчереп алу + + + Сайланган эчтәлекне бетереп алмашу буферына урнаштыру + + + Тамгаланган текстка курсив куллану + + + Алмашу буферы эчтәлеген гамәлдәге урында кертү + + + Соңгы баш тартылган гамәлне кабатлау + + + Бөтен эчтәлекне тамгалау + + + Тамгаланган текстның астына сызу + + + Соңгы гамәлдән баш тарту + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Калын + + + Күчереп алу + + + Кисеп алу + + + Курсив + + + Өстәү + + + Кабатлау + + + Барысын да тамгалау + + + Ассызыклау + + + Кире кагу + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ug-CN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ug-CN/Resources.resw new file mode 100644 index 000000000000..cee0e7155ef4 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ug-CN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + تاللىغان تېكىستنى توم قىلىش + + + تاللىغان مەزمۇننى كېسىش تاختىسىغا كۆچۈرۈش + + + تاللىغان مەزمۇننى چىقىرىۋېتىپ كېسىش تاختىسىغا قويۇش + + + تاللىغان تېكىستنى يانتۇلاشتۇرۇش + + + كېسىش تاختىسىدىكى مەزمۇننى نۆۋەتتىكى ئورۇنغا قىستۇرۇش + + + يېقىنقى يانغان مەشغۇلاتنى قايتىلاش + + + بارلىق مەزمۇننى تاللاش + + + تاللىغان تېكىستنىڭ ئاستىغا سىزىش + + + يېقىنقى مەشغۇلاتنى قايتۇرۇش + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + توم + + + كۆچۈرۈش + + + كېسىش + + + يانتۇ + + + چاپلاش + + + تەكرارلاش + + + ھەممىنى تاللاش + + + ئاستى سىزىق + + + يېنىۋېلىش + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/uk-UA/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/uk-UA/Resources.resw new file mode 100644 index 000000000000..9b3c1ae0f2f2 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/uk-UA/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Виділити вибраний текст жирним + + + Копіювати виділений вміст до буфера обміну + + + Видалити виділений вміст і вставити його в буфер обміну + + + Виділити вибраний текст курсивом + + + Вставити вміст буфера обміну в поточне розташування + + + Повторити останню скасовану дію + + + Вибрати весь вміст + + + Підкреслити виділений текст + + + Скасувати останню дію + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Жирний + + + Копіювати + + + Вирізати + + + Курсив + + + Вставити + + + Повторити + + + Виділити все + + + Підкреслити + + + Скасувати + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ur/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ur/Resources.resw new file mode 100644 index 000000000000..1c168a77ed68 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/ur/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + منتخب متن کو جلی کریں + + + منتخب کردہ متن کو تختہ تراشہ پر کاپی کریں + + + منتخب کردہ مشمول کو ہٹائیں اور اسے تختہ تراشہ پر رکھیں + + + منتخب متن کو اٹالک کریں + + + تختہ تراشہ کے مشمولات کو حاليہ مقام پر داخل کریں + + + وہ اقدام دہرائیں جسے حال ہی میں کالعدم کیا تھا + + + پورا مشمول منتخب کریں + + + منتخب متن کو خط کشیدہ کریں + + + تازہ ترین اقدام کو کالعدم کریں + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + جلی + + + کاپی کریں + + + کاٹيں + + + اٹالک + + + پیسٹ کریں + + + پچھلا اقدام پھر سے کریں + + + سب کو منتخب کریں + + + خط کشيدہ + + + کالعدم کریں + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/uz-Latn-UZ/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/uz-Latn-UZ/Resources.resw new file mode 100644 index 000000000000..a197961327a0 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/uz-Latn-UZ/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Belgilangan matnni qalinlashtirish + + + Belgilangan kontentni vaqtinchalik xotiraga nusxalash + + + Belgilangan kontentni olib tashlash va buferga joylash + + + Belgilangan matnni qiya qilish + + + Shu joyga buferdagi kontentni joylash + + + Oxirgi bekor qilingan amalni takrorlash + + + Barcha kontentni belgilash + + + Belgilangan matnning tagiga chizish + + + Eng oxirgi amalni bekor qilish + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Qalin + + + Nusxa olish + + + Qirqib olish + + + Qiya + + + Joylash + + + Qaytarish + + + Hammasini belgilash + + + Tagiga chizilgan + + + Bekor qilish + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/vi-VN/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/vi-VN/Resources.resw new file mode 100644 index 000000000000..42ca18a41278 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/vi-VN/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Tô đậm văn bản đã chọn + + + Sao chép nội dung đã chọn vào bảng tạm + + + Xóa nội dung đã chọn và đưa nội dung đó vào bảng tạm + + + In nghiêng văn bản đã chọn + + + Chèn nội dung của bảng tạm ở vị trí hiện tại + + + Lặp lại hành động hoàn tác gần đây nhất + + + Chọn tất cả nội dung + + + Gạch dưới văn bản đã chọn + + + Đảo ngược hành động gần đây nhất + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + Tô đậm + + + Sao chép + + + Cắt + + + In Nghiêng + + + Dán + + + Làm lại + + + Chọn Tất cả + + + Gạch chân + + + Hoàn tác + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/zh-Hans/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/zh-Hans/Resources.resw new file mode 100644 index 000000000000..5bb2410728a9 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/zh-Hans/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 加粗所选的文本 + + + 将所选内容复制到剪贴板 + + + 移除所选内容并放入剪贴板 + + + 将所选文字设置为倾斜 + + + 在当前位置插入剪贴板内容 + + + 重复最近的撤消操作 + + + 选择所有内容 + + + 给所选文字加下划线 + + + 撤消最近操作 + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + 粗体 + + + 复制 + + + 剪切 + + + 斜体 + + + 粘贴 + + + 恢复 + + + 全选 + + + 下划线 + + + 撤消 + + \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/zh-Hant/Resources.resw b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/zh-Hant/Resources.resw new file mode 100644 index 000000000000..34b92eaf78e1 --- /dev/null +++ b/src/Uno.UI/UI/Xaml/Input/StandardUICommand/Strings/zh-Hant/Resources.resw @@ -0,0 +1,210 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + 將選取的文字以粗體顯示 + + + 將選取的內容複製到剪貼簿 + + + 移除選取的內容並將其放在剪貼簿上 + + + 將選取的文字以斜體顯示 + + + 在目前的位置插入剪貼簿內容 + + + 重複最近復原的動作 + + + 選取所有內容 + + + 將選取的文字加上底線 + + + 反轉最近的動作 + + + B + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. + + + C + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. + + + X + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. + + + I + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. + + + V + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. + + + Y + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. + + + A + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. + + + U + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. + + + Z + {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. + + + 粗體 + + + 複製 + + + 剪下 + + + 斜體 + + + 貼上 + + + 重做 + + + 全選 + + + 底線 + + + 復原 + + \ No newline at end of file From 08e1da0e12d5de301d9fa2676f873c2fc29408df Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Wed, 13 Nov 2024 16:22:44 -0500 Subject: [PATCH 551/664] chore: Remove unused CommandBarFlyout string resources --- .../Strings/af-ZA/Resources.resw | 226 ------------- .../Strings/am-ET/Resources.resw | 226 ------------- .../Strings/ar-SA/Resources.resw | 226 ------------- .../Strings/as-IN/Resources.resw | 226 ------------- .../Strings/az-Latn-AZ/Resources.resw | 226 ------------- .../Strings/bg-BG/Resources.resw | 226 ------------- .../Strings/bn-IN/Resources.resw | 226 ------------- .../Strings/bs-Latn-BA/Resources.resw | 226 ------------- .../Strings/ca-ES/Resources.resw | 226 ------------- .../ca-Es-VALENCIA/Resources.resw_ignored | 226 ------------- .../Strings/cs-CZ/Resources.resw | 226 ------------- .../Strings/cy-GB/Resources.resw | 226 ------------- .../Strings/da-DK/Resources.resw | 226 ------------- .../Strings/de-DE/Resources.resw | 226 ------------- .../Strings/el-GR/Resources.resw | 226 ------------- .../Strings/en-GB/Resources.resw | 286 ----------------- .../Strings/en-US/Resources.resw | 298 ------------------ .../Strings/es-ES/Resources.resw | 226 ------------- .../Strings/es-MX/Resources.resw | 226 ------------- .../Strings/et-EE/Resources.resw | 226 ------------- .../Strings/eu-ES/Resources.resw | 226 ------------- .../Strings/fa-IR/Resources.resw | 226 ------------- .../Strings/fi-FI/Resources.resw | 226 ------------- .../Strings/fil-PH/Resources.resw | 226 ------------- .../Strings/fr-CA/Resources.resw | 226 ------------- .../Strings/fr-FR/Resources.resw | 226 ------------- .../Strings/ga-IE/Resources.resw | 226 ------------- .../Strings/gd-GB/Resources.resw | 226 ------------- .../Strings/gl-ES/Resources.resw | 226 ------------- .../Strings/gu-IN/Resources.resw | 226 ------------- .../Strings/he-IL/Resources.resw | 226 ------------- .../Strings/hi-IN/Resources.resw | 226 ------------- .../Strings/hr-HR/Resources.resw | 226 ------------- .../Strings/hu-HU/Resources.resw | 226 ------------- .../Strings/hy-AM/Resources.resw | 226 ------------- .../Strings/id-ID/Resources.resw | 226 ------------- .../Strings/is-IS/Resources.resw | 226 ------------- .../Strings/it-IT/Resources.resw | 226 ------------- .../Strings/ja-JP/Resources.resw | 226 ------------- .../Strings/ka-GE/Resources.resw | 226 ------------- .../Strings/kk-KZ/Resources.resw | 226 ------------- .../Strings/km-KH/Resources.resw | 226 ------------- .../Strings/kn-IN/Resources.resw | 226 ------------- .../Strings/ko-KR/Resources.resw | 226 ------------- .../Strings/kok-IN/Resources.resw | 226 ------------- .../Strings/lb-LU/Resources.resw | 226 ------------- .../Strings/lo-LA/Resources.resw | 226 ------------- .../Strings/lt-LT/Resources.resw | 226 ------------- .../Strings/lv-LV/Resources.resw | 226 ------------- .../Strings/mi-NZ/Resources.resw | 226 ------------- .../Strings/mk-MK/Resources.resw | 226 ------------- .../Strings/ml-IN/Resources.resw | 226 ------------- .../Strings/mr-IN/Resources.resw | 226 ------------- .../Strings/ms-MY/Resources.resw | 226 ------------- .../Strings/mt-MT/Resources.resw | 226 ------------- .../Strings/nb-NO/Resources.resw | 226 ------------- .../Strings/ne-NP/Resources.resw | 226 ------------- .../Strings/nl-NL/Resources.resw | 226 ------------- .../Strings/nn-NO/Resources.resw | 226 ------------- .../Strings/or-IN/Resources.resw | 226 ------------- .../Strings/pa/Resources.resw | 226 ------------- .../Strings/pl-PL/Resources.resw | 226 ------------- .../Strings/pt-BR/Resources.resw | 226 ------------- .../Strings/pt-PT/Resources.resw | 226 ------------- .../Strings/quz-PE/Resources.resw_ignored | 226 ------------- .../Strings/ro-RO/Resources.resw | 226 ------------- .../Strings/ru-RU/Resources.resw | 226 ------------- .../Strings/sk-SK/Resources.resw | 226 ------------- .../Strings/sl-SI/Resources.resw | 226 ------------- .../Strings/sq-AL/Resources.resw | 226 ------------- .../Strings/sr-Cyrl-BA/Resources.resw | 226 ------------- .../Strings/sr-Cyrl-RS/Resources.resw | 226 ------------- .../Strings/sr-Latn-RS/Resources.resw | 226 ------------- .../Strings/sv-SE/Resources.resw | 226 ------------- .../Strings/ta-IN/Resources.resw | 226 ------------- .../Strings/te-IN/Resources.resw | 226 ------------- .../Strings/th-TH/Resources.resw | 226 ------------- .../Strings/tr-TR/Resources.resw | 226 ------------- .../Strings/tt-RU/Resources.resw | 226 ------------- .../Strings/ug-CN/Resources.resw | 226 ------------- .../Strings/uk-UA/Resources.resw | 226 ------------- .../Strings/ur/Resources.resw | 226 ------------- .../Strings/uz-Latn-UZ/Resources.resw | 226 ------------- .../Strings/vi-VN/Resources.resw | 226 ------------- .../Strings/zh-Hans/Resources.resw | 226 ------------- .../Strings/zh-Hant/Resources.resw | 226 ------------- 86 files changed, 19568 deletions(-) delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/af-ZA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/am-ET/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ar-SA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/as-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/az-Latn-AZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bg-BG/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bn-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bs-Latn-BA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ca-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ca-Es-VALENCIA/Resources.resw_ignored delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/cs-CZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/cy-GB/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/da-DK/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/de-DE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/el-GR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/en-GB/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/en-US/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/es-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/es-MX/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/et-EE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/eu-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fa-IR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fi-FI/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fil-PH/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fr-CA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fr-FR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ga-IE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gd-GB/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gl-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gu-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/he-IL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hi-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hr-HR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hu-HU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hy-AM/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/id-ID/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/is-IS/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/it-IT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ja-JP/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ka-GE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kk-KZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/km-KH/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kn-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ko-KR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kok-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lb-LU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lo-LA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lt-LT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lv-LV/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mi-NZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mk-MK/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ml-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mr-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ms-MY/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mt-MT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nb-NO/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ne-NP/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nl-NL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nn-NO/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/or-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pa/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pl-PL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pt-BR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pt-PT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/quz-PE/Resources.resw_ignored delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ro-RO/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ru-RU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sk-SK/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sl-SI/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sq-AL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Cyrl-BA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Cyrl-RS/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Latn-RS/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sv-SE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ta-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/te-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/th-TH/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/tr-TR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/tt-RU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ug-CN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/uk-UA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ur/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/uz-Latn-UZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/vi-VN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/zh-Hans/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/zh-Hant/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/af-ZA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/af-ZA/Resources.resw deleted file mode 100644 index c668ac884c6e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/af-ZA/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - kieslys - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - kieslysitem - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - kieslysitem - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Proeflees - The label for the text command bar flyout menu item that provides the proofing menu. - - - Stel die geselekteerde teks in vetdruk - - - Kopieer die geselekteerde inhoud na die knipbord - - - Verwyder die geselekteerde inhoud en plaas dit op die knipbord - - - Stel die geselekteerde teks in skuinsdruk - - - Voeg die inhoud van die knipbord by die huidige ligging in - - - Herhaal die mees onlangse aksie wat ongedaan gemaak is - - - Selekteer alle inhoud - - - Onderstreep die geselekteerde teks - - - Keer die mees onlangse aksie om - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Vetdruk - - - Kopieer - - - Knip - - - Kursief - - - Plak - - - Herdoen - - - Selekteer alles - - - Onderstreep - - - Ontdoen - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/am-ET/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/am-ET/Resources.resw deleted file mode 100644 index 3ce2468a2132..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/am-ET/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ምናሌ - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - የምናሌ ንጥል ነገር - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - የምናሌ ንጥል ነገር - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ማረም - The label for the text command bar flyout menu item that provides the proofing menu. - - - የተመረጠውን ፅሁፍ ያድምቁ - - - የተመረጠውን ይዘት ወደ ቅንጥብ ሰሌዳ ይቅዱ - - - የተመረጠውን ይዘት ያስወግዱና በቅንጥብ ሰሌዳው ላይ ያስቀምጡ - - - የተመረጠውን ጽሁፍ ዘንባላ ያድርጉ - - - የቅንጥብ ሰሌዳውን ይዘቶች አሁን ባለው ቦታ ያስገቡ - - - በጣም በቅርቡ የተቀለበሰውን ድርጊት ይድገሙ - - - ሁሉንም ይዘት ይምረጡ - - - የተመረጠውን ጽሁፍ ከስር ያስምሩ - - - በጣም የቅርብ ጊዜ ድርጊት ይገልብጡ - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ደማቅ - - - ገልብጥ - - - ቁረጥ - - - ዘንባላ - - - ለጥፍ - - - ድገም - - - ሁሉንም ምረጥ - - - የግርጌ መስመር - - - ቀልብስ - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ar-SA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ar-SA/Resources.resw deleted file mode 100644 index 778c6f295ad0..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ar-SA/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - القائمة - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - عنصر القائمة - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - عنصر القائمة - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - تدقيق - The label for the text command bar flyout menu item that provides the proofing menu. - - - جعل النص المحدد غامقًا - - - نسخ المحتوى المحدد إلى الحافظة - - - إزالة المحتوى المحدد ووضعه على الحافظة - - - جعل النص المحدد مائلاً - - - ادراج محتويات الحافظة في الموقع الحالي - - - تكرار الإجراء الذي تم التراجع عنه مؤخرًا - - - تحديد المحتوى بأكمله - - - تسطير النص المحدد - - - عكس أحدث الإجراءات - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - غامق - - - نسخ - - - قص - - - مائل - - - لصق - - - إعادة - - - تحديد الكل - - - مُسطّر - - - تراجع - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/as-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/as-IN/Resources.resw deleted file mode 100644 index 01fd34e48f08..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/as-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - মেনু - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - মেনু আইটেম - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - মেনু আইটেম - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - প্ৰুফিং - The label for the text command bar flyout menu item that provides the proofing menu. - - - চয়ন কৰা পাঠ ব'ল্ড কৰক - - - চয়ন কৰা সামগ্ৰী ক্লিপবোৰ্ডলৈ প্ৰতিলিপি কৰক - - - চয়ন কৰা সামগ্ৰী আঁতৰাওক আৰু ক্লিপবোৰ্ডত ৰাখক - - - চয়ন কৰা পাঠ ইটালিক কৰক - - - সাম্প্ৰতিক অৱস্থানত থকা ক্লিপবোৰ্ডৰ সামগ্ৰীসমূহ আন্তঃসংযোগ কৰক - - - অতি শেহতীয়াকৈ বাতিল কৰা কাৰ্য্যটো পুনৰাবৃত্তি কৰক - - - সকলো সামগ্ৰী চয়ন কৰক - - - চয়ন কৰা পাঠ আণ্ডাৰলাইন কৰক - - - আটাইতকৈ শেহতীয়া কাৰ্য বিপৰীত কৰক - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ব'ল্ড - - - প্ৰতিলিপি কৰক - - - ছেদ কৰক - - - ইটালিক - - - লেপন কৰক - - - পুনঃ কৰক - - - সকলো চয়ন কৰক - - - নিম্নৰেখাংকন - - - পূৰ্বৰ দৰে কৰক - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/az-Latn-AZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/az-Latn-AZ/Resources.resw deleted file mode 100644 index f8c82cf5adaa..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/az-Latn-AZ/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menyu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menyu elementi - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menyu elementi - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Yoxlama - The label for the text command bar flyout menu item that provides the proofing menu. - - - Seçilmiş mətni qalın edin - - - Seçilmiş məzmunu mübadilə buferinə köçürün - - - Seçilmiş məzmunu silin və onu mübadilə buferinə qoyun - - - Seçilmiş mətni kursiv şriftlə ver. - - - Cari yerdə mübadilə buferinin məzmunlarını əlavə edin - - - Ən son icra olunmamış əməliyyatı təkrarlayın - - - Bütün məzmunu seçin - - - Seçilmiş mətnin altından xətt çək. - - - Ən son əməliyyatı geri qaytarın - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Qalın - - - Köçür - - - Kəs - - - Kursiv - - - Əlavə et - - - Təkrar icra et - - - Hamısını Seç - - - Altxətli - - - Qaytar - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bg-BG/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bg-BG/Resources.resw deleted file mode 100644 index df22fe0c0e7e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bg-BG/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - меню - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - елемент от меню - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - елемент от меню - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Проверка - The label for the text command bar flyout menu item that provides the proofing menu. - - - Използване на получер шрифт за избрания текст - - - Копиране на избраното съдържание в клипборда - - - Премахване на избраното съдържание и поставяне в клипборда - - - Използване на курсив за избрания текст - - - Вмъкване на съдържанието на клипборда на текущото местоположение - - - Повтаряне на последното отменено действие - - - Избиране на цялото съдържание - - - Подчертаване на избрания текст - - - Връщане на последното действие - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Получер - - - Копиране - - - Изрязване - - - Курсив - - - Поставяне - - - Повтаряне - - - Избиране на всички - - - Подчертан - - - Отменяне - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bn-IN/Resources.resw deleted file mode 100644 index 67ab7149bc38..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bn-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - মেনু - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - মেনুর আইটেম - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - মেনুর আইটেম - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - সংশোধন করা হচ্ছে - The label for the text command bar flyout menu item that provides the proofing menu. - - - নির্বাচিত পাঠ্যটি গাঢ় করুন - - - নির্বাচিত বিষয়বস্তু ক্লিপবোর্ডে অনুলিপি করুন - - - নির্বাচিত সামগ্রীটি অপসারণ করুন এবং এটি বোর্ডে - - - নির্বাচিত পাঠ্য তির্যক করুন - - - বর্তমান অবস্থানে ক্লিপবোর্ডের সামগ্রীগুলি সন্নিবেশ করুন - - - অতি সম্প্রতি পূর্বাবস্থায় ফেরানো ক্রিয়াটি পুনরাবৃত্তি করুন - - - সমস্ত বিষয়বস্তু নির্বাচন করুন - - - নির্বাচিত পাঠ আন্ডারলাইন করুন - - - অতি সাম্প্রতিক ক্রিয়াটি বিপরীত করুন - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - গাঢ় - - - অনুলিপি করুন - - - কাটুন - - - তির্যক - - - প্রতিলেপন করুন - - - পুনরায় করুন - - - সবগুলো নির্বাচন করুন - - - নিম্নরেখা - - - পূর্বাবস্থায় নিয়ে যান - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bs-Latn-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bs-Latn-BA/Resources.resw deleted file mode 100644 index 5425251e6442..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/bs-Latn-BA/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - meni - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - stavka menija - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - stavka menija - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Korekcija - The label for the text command bar flyout menu item that provides the proofing menu. - - - Podebljaj izabrani tekst - - - Kopiraj izabrani sadržaj u međuspremnik - - - Ukloni izabrani sadržaj i stavi ga u međuspremnik - - - Označeni tekst ispišite kurzivom - - - Umetni sadržaj iz međuspremnika na trenutnu lokaciju - - - Ponovi posljednju poništenu radnju - - - Izaberi cjelokupan sadržaj - - - Podvucite označeni tekst. - - - Opozovi posljednju radnju - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Podebljano - - - Kopiraj - - - Izreži - - - Kurziv - - - Zalijepi - - - Ponovo uradi - - - Odaberi sve - - - Podvučeno - - - Poništi - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ca-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ca-ES/Resources.resw deleted file mode 100644 index 5c8ae2841196..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ca-ES/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menú - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - element de menú - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - element de menú - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Correcció - The label for the text command bar flyout menu item that provides the proofing menu. - - - Converteix en negreta el text seleccionat - - - Copia el contingut seleccionat al porta-retalls - - - Suprimeix el contingut seleccionat i col·loca'l al porta-retalls - - - Converteix en cursiva el text seleccionat - - - Insereix el contingut del porta-retalls a la ubicació actual - - - Repeteix l'acció que s'ha desfet més recentment - - - Selecciona tot el contingut - - - Subratlla el text seleccionat - - - Inverteix l'acció més recent - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Negreta - - - Copia - - - Retalla - - - Cursiva - - - Enganxa - - - Refés - - - Selecciona-ho tot - - - Subratllat - - - Desfés - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ca-Es-VALENCIA/Resources.resw_ignored b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ca-Es-VALENCIA/Resources.resw_ignored deleted file mode 100644 index bde8b7df711a..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ca-Es-VALENCIA/Resources.resw_ignored +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menú - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - element de menú - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - element de menú - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Correcció - The label for the text command bar flyout menu item that provides the proofing menu. - - - Posa en negreta el text seleccionat - - - Copia el contingut seleccionat al Porta-retalls - - - Suprimeix el contingut seleccionat i col·loca'l al Porta-retalls - - - Posa en cursiva el text seleccionat - - - Insereix el contingut del Porta-retalls a la ubicació actual - - - Repeteix l'acció que heu desfet més recentment - - - Selecciona tot el contingut - - - Subratlla el text seleccionat - - - Inverteix l'acció més recent - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Negreta - - - Copia - - - Retalla - - - Cursiva - - - Apega - - - Refés - - - Selecciona-ho tot - - - Subratllat - - - Desfés - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/cs-CZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/cs-CZ/Resources.resw deleted file mode 100644 index 31249263eb2b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/cs-CZ/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - nabídka - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - položka nabídky - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - položka nabídky - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Kontrola pravopisu - The label for the text command bar flyout menu item that provides the proofing menu. - - - Naformátovat vybraný text tučně - - - Zkopírovat vybraný obsah do schránky - - - Odebrat vybraný obsah a vložit ho do schránky - - - Zvýraznit vybraný text kurzívou - - - Vložit obsah schránky na aktuální umístění - - - Zopakovat naposledy vrácenou akci - - - Vybrat všechen obsah - - - Podtrhnout vybraný text - - - Vrátit poslední akci - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Tučně - - - Kopírovat - - - Vyjmout - - - Kurzíva - - - Vložit - - - Znovu - - - Vybrat vše - - - Podtrhnout - - - Zpět - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/cy-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/cy-GB/Resources.resw deleted file mode 100644 index 35333dc0814b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/cy-GB/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - dewislen - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - eitem dewislen - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - eitem dewislen - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Prawfddarllen - The label for the text command bar flyout menu item that provides the proofing menu. - - - Troi’r testun a ddewiswyd yn drwm - - - Copïo’r cynnwys a ddewiswyd i'r clipfwrdd - - - Tynnu cynnwys dan sylw a'i roi ar y clipfwrdd - - - Troi’r testun a ddewiswyd yn italig - - - Mewnosod cynnwys y clipfwrdd yn y lleoliad presennol - - - Ailadrodd y weithred gafodd ei dad-wneud yn fwyaf diweddar - - - Dewiswch yr holl gynnwys - - - Tanlinellu’r testun a ddewiswyd - - - Gwyrdroi'r weithred fwyaf diweddar - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Trwm - - - Copïo - - - Torri - - - Italig - - - Gludo - - - Ail-wneud - - - Dewis y Cyfan - - - Tanlinellu - - - Dad-wneud - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/da-DK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/da-DK/Resources.resw deleted file mode 100644 index d744199d569b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/da-DK/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menupunkt - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menupunkt - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Korrektur - The label for the text command bar flyout menu item that provides the proofing menu. - - - Gør den valgte tekst fed - - - Kopiér det markerede indhold til udklipsholderen - - - Fjern det markerede indhold, og placer det i udklipsholderen - - - Sæt den markerede tekst i kursiv - - - Indsæt indholdet af udklipsholderen på den aktuelle placering - - - Gentag den senest fortrudte handling - - - Vælg alt indhold - - - Understreg den markerede tekst - - - Omgør den seneste handling - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Fed - - - Kopiér - - - Klip - - - Kursiv - - - Sæt ind - - - Annullér fortryd - - - Markér alt - - - Understregning - - - Fortryd - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/de-DE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/de-DE/Resources.resw deleted file mode 100644 index 0f9885c2136b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/de-DE/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Menü - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - Menüelement - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Menüelement - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Dokumentprüfung - The label for the text command bar flyout menu item that provides the proofing menu. - - - Ausgewählten Text fett formatieren - - - Ausgewählten Inhalt in die Zwischenablage kopieren - - - Ausgewählten Inhalt entfernen und in der Zwischenablage ablegen - - - Ausgewählten Text kursiv formatieren - - - Inhalte der Zwischenablage an der aktuellen Position einfügen - - - Die zuletzt rückgängig gemachte Aktion wiederholen - - - Alle Inhalte auswählen - - - Ausgewählten Text unterstreichen - - - Die zuletzt ausgeführte Aktion rückgängig machen - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Fett - - - Kopieren - - - Ausschneiden - - - Kursiv - - - Einfügen - - - Wiederholen - - - Alles auswählen - - - Unterstreichen - - - Rückgängig machen - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/el-GR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/el-GR/Resources.resw deleted file mode 100644 index 3e9b9bc0de60..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/el-GR/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - μενού - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - στοιχείο μενού - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - στοιχείο μενού - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Γλωσσικός έλεγχος - The label for the text command bar flyout menu item that provides the proofing menu. - - - Εφαρμογή έντονης γραφής στο επιλεγμένο κείμενο - - - Αντιγραφή του επιλεγμένου περιεχομένου στο Πρόχειρο - - - Κατάργηση του επιλεγμένου περιεχομένου και τοποθέτησή του στο Πρόχειρο - - - Εφαρμογή πλάγιας γραφής στο επιλεγμένο κείμενο - - - Εισαγωγή των περιεχομένων του Προχείρου στην τρέχουσα θέση - - - Επανάληψη της ενέργειας που αναιρέθηκε τελευταία - - - Επιλογή του συνόλου του περιεχομένου - - - Υπογράμμιση του επιλεγμένου κειμένου - - - Αντιστροφή της τελευταίας ενέργειας - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Έντονη γραφή - - - Αντιγραφή - - - Αποκοπή - - - Πλάγια γραφή - - - Επικόλληση - - - Επανάληψη - - - Επιλογή όλων - - - Υπογράμμιση - - - Αναίρεση - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/en-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/en-GB/Resources.resw deleted file mode 100644 index abc9d442ec82..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/en-GB/Resources.resw +++ /dev/null @@ -1,286 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menu item - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menu item - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Proofing - The label for the text command bar flyout menu item that provides the proofing menu. - - - Bold the selected text - - - Copy the selected content to the clipboard - - - Remove the selected content and put it on the clipboard - - - Italicise the selected text - - - Insert the contents of the clipboard at the current location - - - Repeat the most recently undone action - - - Select all content - - - Underline the selected text - - - Reverse the most recent action - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Bold - - - Copy - - - Cut - - - Italic - - - Paste - - - Redo - - - Select All - - - Underline - - - Undo - - - Go to the previous item - - - Close - - - Delete the selected content - - - Go to the next item - - - Open - - - Pause - - - Play - - - Save your changes - - - Share the selected content - - - Stop - - - Backward - - - Close - - - Delete - - - Forward - - - Open - - - Pause - - - Play - - - Save - - - Share - - - Stop - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/en-US/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/en-US/Resources.resw deleted file mode 100644 index 0e15fac673c6..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/en-US/Resources.resw +++ /dev/null @@ -1,298 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menu item - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menu item - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Proofing - The label for the text command bar flyout menu item that provides the proofing menu. - - - Bold the selected text - - - Copy the selected content to the clipboard - - - Remove the selected content and put it on the clipboard - - - Italicize the selected text - - - Insert the contents of the clipboard at the current location - - - Repeat the most recently undone action - - - Select all content - - - Underline the selected text - - - Reverse the most recent action - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Bold - - - Copy - - - Cut - - - Italic - - - Paste - - - Redo - - - Select All - - - Underline - - - Undo - - - Go to the previous item - - - Close - - - Delete the selected content - - - Go to the next item - - - Open - - - Pause - - - Play - - - Save your changes - - - Share the selected content - - - Stop - - - Backward - - - Close - - - Delete - - - Forward - - - Open - - - Pause - - - Play - - - Save - - - Share - - - Stop - - - W - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for closing - Ctrl+W. Must be unique with respect to every other keyboard accelerator in this file. - - - O - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for opening - Ctrl+O. Must be unique with respect to every other keyboard accelerator in this file. - - - S - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+S. Must be unique with respect to every other keyboard accelerator in this file. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/es-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/es-ES/Resources.resw deleted file mode 100644 index 8dffa5ea69b0..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/es-ES/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menú - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - elemento de menú - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - elemento de menú - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Revisión - The label for the text command bar flyout menu item that provides the proofing menu. - - - Escribir en negrita el texto seleccionado - - - Copiar el contenido seleccionado al portapapeles - - - Quitar el contenido seleccionado y colocarlo en el portapapeles - - - Poner el texto seleccionado en cursiva - - - Insertar el contenido del portapapeles en la ubicación actual - - - Repetir la última acción deshecha - - - Seleccionar todo el contenido - - - Subrayar el texto seleccionado - - - Invertir la última acción - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Negrita - - - Copiar - - - Cortar - - - Cursiva - - - Pegar - - - Rehacer - - - Seleccionar todo - - - Subrayado - - - Deshacer - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/es-MX/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/es-MX/Resources.resw deleted file mode 100644 index 79961d346934..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/es-MX/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menú - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - elemento de menú - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - elemento de menú - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Revisión - The label for the text command bar flyout menu item that provides the proofing menu. - - - Poner en negrita el texto seleccionado - - - Copiar el contenido seleccionado al portapapeles - - - Quitar el contenido seleccionado y colocarlo en el Portapapeles - - - Poner en cursiva el texto seleccionado - - - Insertar el contenido del Portapapeles en la ubicación actual - - - Repetir la última acción deshecha - - - Seleccionar todo el contenido - - - Subrayar el texto seleccionado - - - Deshacer la última acción - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Negrita - - - Copiar - - - Cortar - - - Cursiva - - - Pegar - - - Rehacer - - - Seleccionar todo - - - Subrayado - - - Deshacer - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/et-EE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/et-EE/Resources.resw deleted file mode 100644 index 2e1906237f76..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/et-EE/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menüü - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menüükäsk - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menüükäsk - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Õigekeelsuskontroll - The label for the text command bar flyout menu item that provides the proofing menu. - - - Muuda valitud tekst paksuks - - - Kopeeri valitud sisu lõikelauale - - - Eemalda valitud sisu ja paiguta see lõikelauale - - - Rakenda valitud tekstile kursiivvorming - - - Lisa lõikelaua sisu praegusesse asukohta - - - Korda viimati tagasi võetud toimingut - - - Vali kogu sisu - - - Kriipsuta valitud tekst alla - - - Tühista viimane toiming - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Paks - - - Kopeeri - - - Lõika - - - Kursiiv - - - Kleebi - - - Tee uuesti - - - Vali kõik - - - Allakriipsutus - - - Võta tagasi - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/eu-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/eu-ES/Resources.resw deleted file mode 100644 index bc3793914ebb..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/eu-ES/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menua - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menuko elementua - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menuko elementua - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Zuzenketa - The label for the text command bar flyout menu item that provides the proofing menu. - - - Ezarri letra lodiz hautatutako testua - - - Kopiatu hautatutako edukia arbelean - - - Kendu hautatutako edukia eta jarri arbelean - - - Ezarri letra etzanez hautatuko testua - - - Txertatu arbeleko edukia uneko kokalekuan - - - Errepikatu desegin den azken ekintza - - - Hautatu eduki guztia - - - Azpimarratu hautatutako testua - - - Desegin azken ekintza - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Lodia - - - Kopiatu - - - Ebaki - - - Etzana - - - Itsatsi - - - Berregin - - - Hautatu dena - - - Azpimarratu - - - Desegin - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fa-IR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fa-IR/Resources.resw deleted file mode 100644 index cae050160946..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fa-IR/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - منو - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - مورد منو - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - مورد منو - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - تصحیح - The label for the text command bar flyout menu item that provides the proofing menu. - - - پررنگ کردن متن انتخابی - - - کپی کردن محتوای انتخابی در کلیپ‌بورد - - - حذف محتوای انتخاب‌شده و قرار دادن آن در کلیپ‌بورد - - - مورب کردن متن انتخابی - - - وارد کردن محتویات کلیپ‌بورد در مکان فعلی - - - تکرار آخرین عمل لغوشده - - - انتخاب همه محتوا - - - زیرخط‌دار کردن متن انتخابی - - - معکوس کردن آخرین عمل - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - پررنگ - - - کپی - - - برش - - - مورب - - - جایگذاری - - - انجام مجدد - - - انتخاب همه - - - زیرخط‌دار - - - لغو عمل - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fi-FI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fi-FI/Resources.resw deleted file mode 100644 index 6466e12cc825..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fi-FI/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - valikko - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - valikkokohde - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - valikkokohde - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Tarkistus - The label for the text command bar flyout menu item that provides the proofing menu. - - - Lihavoi valittu teksti - - - Kopioi valittu sisältö leikepöydälle - - - Poista valittu sisältö ja sijoita se leikepöydälle - - - Kursivoi valittu teksti - - - Sijoita leikepöydän sisältö nykyiseen sijaintiin - - - Toista viimeksi kumottu toimi - - - Valitse kaikki sisältö - - - Alleviivaa valittu teksti - - - Peruuta viimeisin toiminto - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Lihavoitu - - - Kopioi - - - Leikkaa - - - Kursivoitu - - - Liitä - - - Tee uudelleen - - - Valitse kaikki - - - Alleviivaus - - - Kumoa - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fil-PH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fil-PH/Resources.resw deleted file mode 100644 index f4bc2e6e97ec..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fil-PH/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - item ng menu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - item ng menu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Pagpapatunay - The label for the text command bar flyout menu item that provides the proofing menu. - - - Gawing bold ang napiling teksto - - - Kopyahin ang napiling nilalaman sa clipboard - - - Tanggalin ang napiling nilalaman at ilagay ito sa clipboard - - - I-italicize ang napiling teksto - - - Isingit ang mga nilalaman ng clipboard sa kasalukuyang lokasyon - - - Ulitin ang pinakakamakailang pagkilos na pag-undo - - - Piliin ang lahat ng nilalaman - - - Salungguhitan ang napiling teksto - - - Baligtarin ang pinakakamakailang pagkilos - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Bold - - - Kopyahin - - - I-cut - - - Italic - - - I-paste - - - I-redo - - - Piliin Lahat - - - Salungguhitan - - - I-undo - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fr-CA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fr-CA/Resources.resw deleted file mode 100644 index 8bc42adab87c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fr-CA/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - élément du menu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - élément du menu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Vérification - The label for the text command bar flyout menu item that provides the proofing menu. - - - Mettre en gras le texte sélectionné - - - Copier le contenu sélectionné dans le Presse-papiers - - - Supprimer le contenu sélectionné et le coller dans le Presse-papiers - - - Mettre en italique le texte sélectionné - - - Insérer le contenu du Presse-papiers à l’emplacement actuel - - - Répéter l'action annulée la plus récente - - - Sélectionner tout le contenu - - - Souligner le texte sélectionné - - - Rétablir l'action la plus récente - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Gras - - - Copier - - - Couper - - - Italique - - - Coller - - - Rétablir - - - Sélectionner tout - - - Souligné - - - Annuler - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fr-FR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fr-FR/Resources.resw deleted file mode 100644 index 502c133841a4..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/fr-FR/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - élément de menu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - élément de menu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Correction - The label for the text command bar flyout menu item that provides the proofing menu. - - - Mettre en gras le texte sélectionné - - - Copier le contenu sélectionné dans le Presse-papiers - - - Supprimer le contenu sélectionné et le coller dans le Presse-papiers. - - - Mettre le texte sélectionné en italique - - - Insérer le contenu du Presse-papiers à l’emplacement actuel - - - Répéter l'action annulée la plus récente - - - Sélectionner tout le contenu - - - Souligner le texte sélectionné - - - Rétablir l'action la plus récente - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Gras - - - Copier - - - Couper - - - Italique - - - Coller - - - Rétablir - - - Sélectionner tout - - - Soulignement - - - Annuler - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ga-IE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ga-IE/Resources.resw deleted file mode 100644 index 22052bf25abe..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ga-IE/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - roghchlár - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - mír roghchláir - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - mír roghchláir - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Profáil - The label for the text command bar flyout menu item that provides the proofing menu. - - - Cuir cló trom ar an téacs roghnaithe - - - Cóipeáil an t-inneachar roghnaithe chuig an ngearrthaisce - - - Bain an t-inneachar roghnaithe agus cuir ar an ngearrthaisce é - - - Cuir cló iodálach ar an téacs roghnaithe - - - Ionsáigh inneachar na gearrthaisce ag an suíomh reatha - - - Athdhéan an gníomh is déanaí a cealaíodh - - - Roghnaigh an t-inneachar ar fad - - - Cuir líne faoin téacs roghnaithe - - - Aisiompaigh an gníomh is déanaí - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Cló trom - - - Cóipeáil - - - Gearr - - - Iodálach - - - Greamaigh - - - Athdhéan - - - Roghnaigh gach rud - - - Líne faoi - - - Cealaigh - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gd-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gd-GB/Resources.resw deleted file mode 100644 index a7256e06bf34..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gd-GB/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - clàr-taice - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - ball a’ chlàir-thaice - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ball a’ chlàir-thaice - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Dearbhadh - The label for the text command bar flyout menu item that provides the proofing menu. - - - Nì trom an teacsa a thagh thu - - - Cuir lethbhreac dhen t-susbaint a thagh thu dhan stòr-bhòrd - - - Thoir air falbh an t-susbaint a thagh thu agus cuir air an stòr-bhòrd e - - - Nì teacsa Eadailteach dhe na thagh thu - - - Cuiridh seo ann na tha air an stòr-bhòrd a-steach far a bheil thu an-dràsta - - - Ath-dhèan an gnìomh mu dheireadh a chaidh a neo-dhèanamh - - - Tagh an t-susbaint air fad - - - Cuir loidhne fon teacsa a thagh thu - - - Neo-dhèan an gnìomh mu dheireadh - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Trom - - - Lethbhreac - - - Geàrr - - - Eadailteach - - - Cuir ann - - - Ath-dhèan - - - Tagh na h-uile - - - Loidhne foidhe - - - Neo-dhèan - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gl-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gl-ES/Resources.resw deleted file mode 100644 index f0ca5cf31b63..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gl-ES/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menú - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - elemento de menú - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - elemento de menú - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Verificación - The label for the text command bar flyout menu item that provides the proofing menu. - - - Pór en negra o texto seleccionado - - - Copiar o contido seleccionado no portapapeis - - - Eliminar o contido seleccionado e colocalo no portapapeis - - - Pór en cursiva o texto seleccionado - - - Inserir o contido do portapapeis na localización actual - - - Repetir a última acción que se desfixo - - - Seleccionar todo o contido - - - Subliñar o texto seleccionado - - - Inverter a acción máis recente - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Negra - - - Copiar - - - Cortar - - - Cursiva - - - Pegar - - - Refacer - - - Seleccionar todo - - - Subliñado - - - Desfacer - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gu-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gu-IN/Resources.resw deleted file mode 100644 index 03fbcfb5b963..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/gu-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - મેનૂ - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - મેનૂ આઇટમ - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - મેનૂ આઇટમ - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - અશુદ્ધિ તપાસ - The label for the text command bar flyout menu item that provides the proofing menu. - - - પસંદ કરેલ ટેક્સ્ટને બોલ્ડ કરે છે - - - પસંદ કરેલ સામગ્રી ક્લિપબોર્ડ પર કૉપિ કરો - - - પસંદ કરેલી સામગ્રી દૂર કરો અને તેને ક્લિપબોર્ડ પર મૂકો - - - પસંદ કરેલ ટેક્સ્ટને ઇટાલિક કરો - - - વર્તમાન સ્થાન પર ક્લિપબોર્ડની સામગ્રીઓ સામેલ કરો - - - સૌથી તાજેતરમાં પૂર્વવત્ કરેલ ક્રિયાનું પુનરાવર્તન કરો - - - બધી સામગ્રી પસંદ કરો - - - પસંદ કરેલ ટેક્સ્ટને રેખાંકિત કરો - - - સૌથી તાજેતરની ક્રિયાને ઉલટાવો - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - બોલ્ડ - - - કૉપિ કરો - - - કાપો - - - ઇટાલિક - - - ચોંટાડો - - - ફરીથી કરો - - - બધું પસંદ કરો - - - રેખાંકિત કરો - - - પૂર્વવત્ કરો - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/he-IL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/he-IL/Resources.resw deleted file mode 100644 index 80ac9246af41..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/he-IL/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - תפריט - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - פריט תפריט - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - פריט תפריט - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - הגהה - The label for the text command bar flyout menu item that provides the proofing menu. - - - הדגש את הטקסט שנבחר - - - העתק את התוכן שנבחר ללוח - - - הסר את התוכן שנבחר והצב אותו בלוח - - - הפוך את הטקסט הנבחר לנטוי - - - הוסף את תוכן הלוח במיקום הנוכחי - - - חזור על הפעולה האחרונה שבוטלה - - - בחר את כל התוכן - - - מתח קו תחתון תחת הטקסט הנבחר - - - בטל את הפעולה האחרונה - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - מודגש - - - העתק - - - גזור - - - נטוי - - - הדבק - - - בצע שוב - - - בחר הכל - - - קו תחתון - - - בטל - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hi-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hi-IN/Resources.resw deleted file mode 100644 index 126712ec72ad..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hi-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - मेनू - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - मेनू आइटम - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - मेनू आइटम - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - प्रूफिंग - The label for the text command bar flyout menu item that provides the proofing menu. - - - चयनित पाठ को बोल्ड करें - - - क्लिपबोर्ड पर चयनित सामग्री की प्रतिलिपि बनाएँ - - - चयनित सामग्री निकालें और उसे क्लिपबोर्ड पर रखें - - - चयनित पाठ को इटैलिक करें - - - वर्तमान स्थान पर क्लिपबोर्ड की सामग्री सम्मिलित करें - - - हाल ही में पूर्ववत की गई क्रिया दोहराएं - - - सभी सामग्री का चयन करें - - - चयनित पाठ को रेखांकित करें - - - सबसे हाल ही की कार्रवाई को उलट दें - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - बोल्ड - - - प्रतिलिपि बनाएँ - - - काटें - - - इटैलिक - - - चिपकाएँ - - - फिर से करें - - - सभी का चयन करें - - - रेखांकित - - - पूर्ववत् करें - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hr-HR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hr-HR/Resources.resw deleted file mode 100644 index 539ba703aac8..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hr-HR/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - izbornik - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - stavka izbornika - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - stavka izbornika - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Provjera - The label for the text command bar flyout menu item that provides the proofing menu. - - - Podebljaj odabrani tekst - - - Kopiraj odabrani sadržaj u međuspremnik - - - Uklonite odabrani sadržaj i stavite ga u međuspremnik - - - Postavljanje odabranog teksta u kurziv - - - Umetnite sadržaj međuspremnika na trenutačno mjesto - - - Ponovi posljednju akciju poništavanja - - - Odaberi sav sadržaj - - - Podcrtavanje odabranog teksta - - - Poništi posljednju akciju - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Podebljano - - - Kopiraj - - - Izreži - - - Kurziv - - - Zalijepi - - - Ponovi - - - Odaberi sve - - - Podcrtano - - - Poništi - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hu-HU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hu-HU/Resources.resw deleted file mode 100644 index dab9ee59adfa..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hu-HU/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menü - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menüelem - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menüelem - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Nyelvi ellenőrzés - The label for the text command bar flyout menu item that provides the proofing menu. - - - A kijelölt szöveg félkövérré alakítása - - - A kijelölt tartalom másolása a vágólapra - - - A kijelölt tartalom eltávolítása és elhelyezése a vágólapon - - - A kijelölt szöveg dőltté formázása - - - A vágólap tartalmának beszúrása az aktuális helyre - - - A legutóbb visszavont művelet megismétlése - - - Az összes tartalom kijelölése - - - A kijelölt szöveg aláhúzása - - - A legutóbbi művelet visszavonása - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Félkövér - - - Másolás - - - Kivágás - - - Dőlt - - - Beillesztés - - - Mégis - - - Az összes kijelölése - - - Aláhúzás - - - Visszavonás - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hy-AM/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hy-AM/Resources.resw deleted file mode 100644 index c8798da645c5..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/hy-AM/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ցանկ - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - ցանկի միավոր - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ցանկի միավոր - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Սրբագրում - The label for the text command bar flyout menu item that provides the proofing menu. - - - Ընտրված գրվածքը դարձնել թավ - - - Պատճենել ընտրված բովանդակությունը սեղմատախտակին - - - Հեռացնել ընտրված բովանդակությունը և դնել այն սեղմատախտակին - - - Ընտրված գրվածքը նշել շեղով - - - Զետեղել սեղմատախտակի բովանդակությունը ընթացիկ տեղադրությունում - - - Կրկնել ամենավերջին հետարկման գործողությունը - - - Ընտրել ամբողջ բովանդակությունը - - - Ընտրված գրվածքը ընդգծել - - - Հետադարձել ամենավերջին գործողությունը - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Թավ - - - Պատճենել - - - Կտրել - - - Շեղ - - - Կպցնել - - - Վերարկել - - - Ընտրել բոլորը - - - Ընդգծել - - - Հետարկել, համարել անվավեր - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/id-ID/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/id-ID/Resources.resw deleted file mode 100644 index dbdde51c764f..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/id-ID/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - item menu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - item menu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Pemeriksaan - The label for the text command bar flyout menu item that provides the proofing menu. - - - Tebalkan teks yang dipilih - - - Salin konten yang dipilih ke clipboard - - - Hapus konten yang dipilih dan tempatkan di clipboard - - - Miringkan teks yang dipilih - - - Sisipkan isi clipboard di lokasi saat ini - - - Mengulangi tindakan yang terakhir dibatalkan - - - Pilih semua konten - - - Garisbawahi teks yang dipilih - - - Balikkan tindakan terakhir - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Tebalkan - - - Salin - - - Potong - - - Miringkan - - - Tempel - - - Ulangi - - - Pilih Semua - - - Garisbawahi - - - Batalkan - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/is-IS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/is-IS/Resources.resw deleted file mode 100644 index 35c6106203ce..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/is-IS/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - valmynd - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - valmyndaratriði - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - valmyndaratriði - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Leiðréttingar - The label for the text command bar flyout menu item that provides the proofing menu. - - - Feitletra valinn texta - - - Afrita valið efni á klippiborðið - - - Fjarlægja valið efni og setja það á klippiborðið - - - Skáletra valinn texta - - - Setja efnið á klippiborðinu inn á núverandi staðsetningu - - - Endurtaka síðustu aðgerð sem var afturkölluð - - - Velja allt efni - - - Undirstrika valinn texta - - - Afturkalla síðustu aðgerð - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Feitletrað - - - Afrita - - - Klippa - - - Skáletur - - - Líma - - - Endurgera - - - Velja allt - - - Undirstrikun - - - Afturkalla - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/it-IT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/it-IT/Resources.resw deleted file mode 100644 index f91ea7780b40..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/it-IT/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - voce di menu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - voce di menu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Controllo ortografico - The label for the text command bar flyout menu item that provides the proofing menu. - - - Applica il grassetto al testo selezionato - - - Copia il contenuto selezionato negli Appunti - - - Rimuovi il contenuto selezionato e inseriscilo negli Appunti - - - Applica il corsivo al testo selezionato - - - Inserisci il contenuto degli Appunti nel percorso corrente - - - Ripeti l'azione annullata più di recente - - - Seleziona tutto il contenuto - - - Sottolinea il testo selezionato - - - Annulla l'azione più recente - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Grassetto - - - Copia - - - Taglia - - - Corsivo - - - Incolla - - - Ripeti - - - Seleziona tutto - - - Sottolineato - - - Annulla - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ja-JP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ja-JP/Resources.resw deleted file mode 100644 index feccd0fff8c3..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ja-JP/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - メニュー - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - メニュー項目 - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - メニュー項目 - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - 校正 - The label for the text command bar flyout menu item that provides the proofing menu. - - - 選択したテキストを太字にする - - - 選択したコンテンツをクリップボードにコピー - - - 選択したコンテンツを削除してクリップボードに保存 - - - 選択したテキストを斜体にする - - - クリップボードのコンテンツを現在の場所に挿入 - - - 直前に取り消した操作を繰り返す - - - すべてのコンテンツを選択 - - - 選択した文字列に下線を引きます - - - 直前の操作を元に戻す - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - 太字 - - - コピー - - - 切り取り - - - 斜体 - - - 貼り付け - - - やり直し - - - すべて選択 - - - 下線 - - - 元に戻す - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ka-GE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ka-GE/Resources.resw deleted file mode 100644 index 65490f075470..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ka-GE/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - მენიუ - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - მენიუს ელემენტი - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - მენიუს ელემენტი - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - მართლწერის შემოწმება - The label for the text command bar flyout menu item that provides the proofing menu. - - - მონიშნული ტექსტის გამუქება - - - არჩეული შიგთავსის კოპირება გაცვლის ბუფერში - - - არჩეული შიგთავსისთვის ამოღება და მისი მოთავსება გაცვლის ბუფერში - - - მონიშნული ტექსტის დახრა - - - მიმდინარე მდებარეობაზე გაცვლის ბუფერის შიგთავსის ჩასმა - - - ყველაზე ბოლო გაუქმებული მოქმედების გამეორება - - - ყველა შიგთავსის არჩევა - - - მონიშნული ტექსტის ხაზგასმა - - - ყველაზე ბოლო მოქმედების გაუქმება - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - მუქი - - - კოპირება - - - ამოჭრა - - - დახრილი - - - ჩასმა - - - გამეორება - - - ყველას არჩევა - - - ხაზგასმა - - - მოქმედების გაუქმება - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kk-KZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kk-KZ/Resources.resw deleted file mode 100644 index 896a2c5997c8..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kk-KZ/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - мәзір - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - мәзір элементі - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - мәзір элементі - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Дұрыс жазылуын тексеру - The label for the text command bar flyout menu item that provides the proofing menu. - - - Бөлектелген мәтінге қалың мәнерді қолдану - - - Бөлектелген мазмұнды аралық сақтағышқа көшіру - - - Бөлектелген мазмұнды жойып, оны аралық сақтағышқа қою - - - Бөлектелген мәтін қарпін көлбеу ету - - - Ағымдағы орында аралық сақтағыш мазмұнын кірістіру - - - Ең соңғы қайтарылған әрекетті қайталау - - - Барлық мазмұнды бөлектеу - - - Бөлектелген мәтіннің астын сызу - - - Ең соңғы әрекетті қайтару - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Қалың - - - Көшіру - - - Қиып алу - - - Көлбеу - - - Қою - - - Қайталау - - - Барлығын таңдау - - - Асты сызылған - - - Болдырмау - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/km-KH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/km-KH/Resources.resw deleted file mode 100644 index 4903acc213da..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/km-KH/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - មឺនុយ - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - ធាតុមឺនុយ - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ធាតុមឺនុយ - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ការមើលកែតម្រូវ - The label for the text command bar flyout menu item that provides the proofing menu. - - - ធ្វើឱ្យដិតលើអត្ថបទដែលបានជ្រើសរើស - - - ចម្លងខ្លឹមសារដែលបានជ្រើសរើសទៅឃ្លីបបត - - - ដកខ្លឹមសារដែលបានជ្រើសរើសចេញ ហើយដាក់វានៅលើឃ្លីបបត - - - ធ្វើឲ្យទ្រេតលើអត្ថបទដែលបានជ្រើសរើស - - - បញ្ចូលខ្លឹមសារនៃឃ្លីបបតនៅទីតាំងបច្ចុប្បន្ន - - - ធ្វើសកម្មភាពដែលមិនទាន់បញ្ចប់ថ្មីៗ បំផុតឡើងវិញ - - - ជ្រើសរើសខ្លឹមសារទាំងអស់ - - - គូសបន្ទាត់ពីក្រោមអត្ថបទដែលបានជ្រើសរើស - - - បញ្ច្រាសសកម្មភាពថ្មីៗ បំផុត - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ដិត - - - ចម្លង - - - កាត់ - - - អក្សរទ្រេត - - - បិទភ្ជាប់ - - - ធ្វើឡើងវិញ - - - ជ្រើសទាំងអស់ - - - បន្ទាត់ពីក្រោម - - - មិនធ្វើវិញ - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kn-IN/Resources.resw deleted file mode 100644 index d01d53572f78..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kn-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ಮೆನು - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - ಮೆನು ಐಟಂ - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ಮೆನು ಐಟಂ - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ಕರಡಚ್ಚು ಪರೀಕ್ಷಿಸಿ - The label for the text command bar flyout menu item that provides the proofing menu. - - - ಆಯ್ಕೆ ಮಾಡಲಾದ ಪಠ್ಯವನ್ನು ಬೋಲ್ಡ್ ಮಾಡಿ - - - ಆಯ್ಕೆಮಾಡಿದ ವಿಷಯವನ್ನು ಕ್ಲಿಪ್ ಬೋರ್ಡ್‍ಗೆ ನಕಲಿಸಿ - - - ಆಯ್ದ ಕಂಟೆಂಟ್ ಅನ್ನು ತೆಗೆಯಿರಿ ಮತ್ತು ಕ್ಲಿಪ್‌ಬೋರ್ಡ್‌ನಲ್ಲಿ ಇಡಿ - - - ಆಯ್ಕೆಮಾಡಿದ ಪಠ್ಯವನ್ನು ಓರೆಯಾಗಿಸಿ - - - ಪ್ರಸಕ್ತ ಸ್ಥಾನದಲ್ಲಿ ಕ್ಲಿಪ್ ಬೋರ್ಡ್ ನ ವಿಷಯಗಳನ್ನು ಸೇರಿಸಿ - - - ತೀರಾ ಇತ್ತೀಚೆಗೆ ರದ್ದುಗೊಳಿಸಿದ ಕ್ರಿಯೆಯನ್ನು ಪುನರಾವರ್ತಿಸಿ - - - ಎಲ್ಲಾ ವಿಷಯವನ್ನು ಆಯ್ಕೆಮಾಡಿ - - - ಆಯ್ಕೆಮಾಡಿದ ಪಠ್ಯವನ್ನು ಅಂಡರ್ಲೈನ್ ಮಾಡಿ - - - ತೀರಾ ಇತ್ತೀಚಿನ ಕ್ರಿಯೆಯನ್ನು ತಿರುಗಿಸಿ - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ದಪ್ಪ - - - ನಕಲಿಸಿ - - - ಕತ್ತರಿಸು - - - ಇಟಾಲಿಕ್ - - - ಅಂಟಿಸು - - - ಮತ್ತೆ ಮಾಡು - - - ಎಲ್ಲವನ್ನು ಆಯ್ಕೆಮಾಡಿ - - - ಅಡಿಗೆರೆ - - - ರದ್ದುಮಾಡು - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ko-KR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ko-KR/Resources.resw deleted file mode 100644 index c7e689f942d1..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ko-KR/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 메뉴 - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - 메뉴 항목 - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - 메뉴 항목 - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - 언어 교정 - The label for the text command bar flyout menu item that provides the proofing menu. - - - 선택한 텍스트를 볼드 표시합니다. - - - 선택한 콘텐츠를 클립보드에 복사합니다. - - - 선택한 콘텐츠를 제거하고 클립보드에 넣습니다. - - - 선택한 텍스트를 기울임꼴로 표시합니다. - - - 클립보드의 콘텐츠를 현재 위치에 삽입합니다. - - - 가장 최근에 실행 취소한 작업을 반복합니다. - - - 모든 콘텐츠 선택 - - - 선택한 텍스트에 밑줄을 표시합니다. - - - 가장 최근의 작업을 반대로 수행합니다. - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - 굵게 - - - 복사 - - - 잘라내기 - - - 기울임꼴 - - - 붙여넣기 - - - 다시 실행 - - - 모두 선택 - - - 밑줄 - - - 실행 취소 - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kok-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kok-IN/Resources.resw deleted file mode 100644 index ad23a0c72ace..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/kok-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - मेनू - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - मेनू आयटम - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - मेनू आयटम - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - प्रुफींग - The label for the text command bar flyout menu item that provides the proofing menu. - - - वेंचिल्लो मजकूर ठळक करचो - - - वेंचिल्लो मजकूर क्लिपबोर्डाचेर नक्कल करचो - - - वेंचिल्ली सामुग्री काडची आनी ती क्लिपबोर्डाचेर घालची - - - वेंचिल्लो मजकूर पालसो करचो - - - सध्याच्या ठिकाणाचेर क्लिपबोर्डाची सामुग्री रिगोवची - - - सामकी हालींची परत करूंक नाशिल्ली कृती परतून करची - - - सगळो मजकूर वेंच्चो - - - वेंचिल्लो मजकूर अधोरेखांकीत करचो - - - सामकी हालींची कृती परतुची - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ठळक - - - नक्कल करचें - - - कापचें - - - पालशें - - - दसोवचें - - - परतून करचें - - - सगळें वेंच्चें - - - अधोरेखांकीत करचें - - - पूर्ववत करचें - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lb-LU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lb-LU/Resources.resw deleted file mode 100644 index 483dbaadb1ed..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lb-LU/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - Menuelement - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Menuelement - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Korrekturhëllefen - The label for the text command bar flyout menu item that provides the proofing menu. - - - Den ausgewielten Text fett formatéieren - - - Den ausgewielten Inhalt op de Clipboard kopéieren - - - Den ausgewielten Inhalt ewechhuelen an en op de Clipboard setzem - - - Den ausgewielten Text kursiv formatéieren - - - Den Inhalt vum Clipboard op déi aktuell Plaz setzen - - - Déi lescht réckgängeg gemaachten Aktioun widderhuelen - - - All Inhalter auswielen - - - Den ausgewielten Text ënnersträichen - - - Déi lescht Aktioun réckgängeg maachen - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Fett - - - Kopéieren - - - Schneiden - - - Kursiv - - - Apechen - - - Widderhuelen - - - Alles auswielen - - - Ënnersträichen - - - Réckgängeg maachen - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lo-LA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lo-LA/Resources.resw deleted file mode 100644 index abde46f32068..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lo-LA/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ເມນູ - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - ລາຍການເມນູ - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ລາຍການເມນູ - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ກຳລັງກວດສອບ - The label for the text command bar flyout menu item that provides the proofing menu. - - - ເຮັດໃຫ້ຂໍ້ຄວາມເລືອກໄວ້ເປັນໂຕໜາ - - - ກັອບປີ້ເນື້ອໃນທີ່ເລືອກໃສ່ຄລິບບອດ - - - ຖອນເນື້ອໃນທີ່ເລືອກແລະເອົາມັນໃສ່ໃນ ຄລິບບອດ - - - ເຮັດໃຫ້ຂໍ້ຄວາມເລືອກໄວ້ເປັນໂຕອຽງ - - - ປ້ອນເນື້ອໃນຂອງ ຄລິບບອດທີ່ ຈຸດທີ່ຕັ້ງປະຈຸບັນ - - - ເຮັດຊ້ຳຄືນການກະທຳທີ່ບໍ່ສຳເລັດຫຼ້າສຸດ - - - ເລືອກເນື້ອໃນທັງໝົດ - - - ຂີດກ້ອງຂໍ້ຄວາມທີ່ເລືອກ - - - ເອົາກັບຄືນການກະທຳຫຼ້າສຸດ - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ຕົວເນັ້ນ - - - ສຳເນົາ - - - ຕັດ - - - ຕົວອຽງ - - - ວາງ - - - ເຮັດຄືນໃໝ່ - - - ເລືອກທັງໝົດ - - - ຂີດກ້ອງ - - - ຍົກເລີກຄຳສັ່ງສຸດທ້າຍ - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lt-LT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lt-LT/Resources.resw deleted file mode 100644 index 68d97c39da53..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lt-LT/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - meniu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - meniu elementas - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - meniu elementas - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Tikrinimas - The label for the text command bar flyout menu item that provides the proofing menu. - - - Paryškinti pažymėtą tekstą - - - Kopijuoti pažymėtą turinį į mainų sritį - - - Pašalinti pažymėtą turinį ir padėti jį į mainų sritį - - - Pažymėtą tekstą rašyti pasviruoju šriftu - - - Įterpti mainų srities turinį šioje vietoje - - - Kartoti paskutinį anuliuotą veiksmą - - - Pasirinkti visą turinį - - - Pabraukti pažymėtą tekstą - - - Atšaukti paskutinį veiksmą - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - P - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Paryškintasis - - - Kopijuoti - - - Iškirpti - - - Pasvirasis - - - Įklijuoti - - - Perdaryti - - - Pasirinkti viską - - - Pabrauktasis - - - Anuliuoti - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lv-LV/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lv-LV/Resources.resw deleted file mode 100644 index f5e1f78d4177..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/lv-LV/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - izvēlne - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - izvēlnes elements - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - izvēlnes elements - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Korektūra - The label for the text command bar flyout menu item that provides the proofing menu. - - - Izcelt atlasīto tekstu treknrakstā - - - Kopēt atlasīto saturu starpliktuvē - - - Noņemt atlasīto saturu un ievietot to starpliktuvē - - - Pārveidot atlasīto tekstu slīprakstā - - - Ievietot starpliktuves saturu pašreizējā atrašanās vietā - - - Atkārtot pēdējo atsaukšanas darbību - - - Atlasīt visu saturu - - - Pasvītrot atlasīto tekstu - - - Atsaukt pēdējo darbību - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Treknraksts - - - Kopēt - - - Izgriezt - - - Slīpraksts - - - Ielīmēt - - - Atcelt atsaukšanu - - - Atlasīt visu - - - Pasvītrojums - - - Atsaukt - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mi-NZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mi-NZ/Resources.resw deleted file mode 100644 index 2d34611f340c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mi-NZ/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - tahua - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - tuemi tahua - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - tuemi tahua - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Te manatoko - The label for the text command bar flyout menu item that provides the proofing menu. - - - Whakataekahatia te kuputuhi i tīpakona ai - - - Tāruatia ngā kai tīpako ki te papatopenga - - - Tīpakona te kai i tīpakona ka mea ai ki te papatopenga - - - Whakatītahaia te kuputuhi i tīpakona ai - - - Kōkuhuna ngā kai o te papatopenga ki te tauwāhi o nāianei - - - Tukuruatia te hohenga kātahi anō ka wetekina - - - Tīpakona ngā kai katoa - - - Tārarohia te kuputuhi i tīpakona ai - - - Ka wewete i te hohenga tino hōu - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Taekaha - - - Tāruatia - - - Tapahi - - - Tītaha - - - Whakapiria - - - Mahianōtia - - - Tīpako Katoa - - - Tāraro - - - Wetekina - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mk-MK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mk-MK/Resources.resw deleted file mode 100644 index 14b18a2b34dc..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mk-MK/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - мени - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - ставка на менито - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ставка на менито - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Проверка - The label for the text command bar flyout menu item that provides the proofing menu. - - - Направи го избраниот текст болд - - - Копирај ја избраната содржина во складот - - - Отстранете ја избраната содржина и ставете ја на складот - - - Направи го избраниот текст италик - - - Вметнете ја содржината на складот на тековната локација - - - Повтори го последното вратено дејство - - - Избери ја целата содржина - - - Подвлечи го избраниот текст - - - Врати го последното дејство - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Болд - - - Копирај - - - Отсечи - - - Италик - - - Залепи - - - Повтори - - - Избери ги сите - - - Подвлечи - - - Врати - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ml-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ml-IN/Resources.resw deleted file mode 100644 index 61b932d55d2c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ml-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - മെനു - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - മെനു ഇനം - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - മെനു ഇനം - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - പ്രൂഫ് ചെയ്യൽ - The label for the text command bar flyout menu item that provides the proofing menu. - - - തിരഞ്ഞെടുത്ത വാചകം ബോൾഡ് ചെയ്യുക - - - തിരഞ്ഞെടുത്ത ഉള്ളടക്കം ക്ലിപ്ബോർഡിലേക്ക് പകർത്തുക - - - തിരഞ്ഞെടുത്ത ഉള്ളടക്കം നീക്കം ചെയ്ത് അത് ക്ലിപ്പ് ബോര് ഡില് ഇടുകയും - - - തിരഞ്ഞെടുത്ത ടെക്സ്റ്റ് ചെരിച്ചെഴുതുക - - - നിലവിലുള്ള സ്ഥാനത്തേക്ക് പകര് പ്പിടത്തിലെ ഉള്ളടക്കങ്ങള് ചേര് ക്കുക - - - ഏറ്റവും സമീപകാലത്ത് പൂർവ്വാവസ്ഥയിലാക്കിയ പ്രവർത്തനം ആവർത്തിക്കുക - - - എല്ലാ ഉള്ളടക്കവും തിരഞ്ഞെടുക്കുക - - - തിരഞ്ഞെടുത്ത ടെക്സ്റ്റിന് അടിവരയിടുക - - - ഏറ്റവും സമീപകാലത്തെ ക്രിയ വിപരീതമാക്കുക - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ബോൾഡ് - - - പകർത്തുക - - - മുറിക്കുക - - - ചെരിച്ചെഴുത്ത് - - - ഒട്ടിക്കുക - - - വീണ്ടും ചെയ്യുക - - - എല്ലാം തിരഞ്ഞെടുക്കുക - - - അടിവര - - - പൂർവ്വാവസ്ഥയിലാക്കുക - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mr-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mr-IN/Resources.resw deleted file mode 100644 index 4c951a746b36..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mr-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - मेनू - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - मेनू आयटम - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - मेनू आयटम - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - लेखन शोधक - The label for the text command bar flyout menu item that provides the proofing menu. - - - निवडलेला मजकूर ठळक करा - - - निवडलेली सामुग्री क्लिपबोर्डवर प्रतिलिपी करा - - - निवडलेली सामग्री हटवा आणि ती क्लिपबोर्डवर ठेवा - - - निवडलेला मजकूर तिर्यक करा - - - क्लिपबोर्डवरील मजकूर सध्याच्या स्थानावर समाविष्ट करा - - - सर्वात अलीकडे पूर्ववत केलेली क्रिया पुन्हा करा - - - सर्व सामुग्री निवडा - - - निवडलेला मजकूर अधोरेखित करा - - - सर्वात अलीकडील क्रिया उलट करा - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ठळक - - - प्रतिलिपी करा - - - कापा - - - तिर्यक - - - चिकटवा - - - पुन्हा करा - - - सर्व निवडा - - - अधोरेखित करा - - - पूर्ववत करा - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ms-MY/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ms-MY/Resources.resw deleted file mode 100644 index 529f46b67498..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ms-MY/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - item menu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - item menu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Baca pruf - The label for the text command bar flyout menu item that provides the proofing menu. - - - Tebalkan teks yang dipilih - - - Salin kandungan yang dipilih kepada papan klip - - - Alih keluar kandungan yang dipilih dan letakkannya pada papan klip - - - Jadikan teks yang dipilih italik - - - Masukkan kandungan papan klip di lokasi semasa - - - Ulang tindakan dibuat asal baru-baru ini - - - Pilih semua kandungan - - - Lukis garis bawah pada teks yang dipilih - - - Buat asal tindakan yang terbaru - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Tebal - - - Salin - - - Potong - - - Italic - - - Tampal - - - Buat semula - - - Pilih Semua - - - Garis bawah - - - Buat asal - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mt-MT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mt-MT/Resources.resw deleted file mode 100644 index 0294d2ade5bd..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/mt-MT/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menù - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - item tal-menù - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - item tal-menù - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Korrezzjoni - The label for the text command bar flyout menu item that provides the proofing menu. - - - Itfa' t-test il-magħżul fil-grassett - - - Ikkopja l-kontenut magħżul fil-klibbord - - - Neħħi l-kontenut magħżul u poġġiha fil-klibbord - - - Itfa' t-test il-magħżul fil-korsiv - - - Daħħal il-kontenut tal-klibbord fil-post attwali - - - Irrepeti l-aktar azzjoni riċenti li treġġgħet lura - - - Agħżel il-kontenut kollu - - - Issottolinja t-test magħżul - - - Reġġa' lura l-azzjoni l-aktar riċenti - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Bold - - - Ikkopja - - - Aqta’ - - - Korsiv - - - Ippejstja - - - Irrestawra - - - Agħżel Kollox - - - Issottolinja - - - Erġa’ lura - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nb-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nb-NO/Resources.resw deleted file mode 100644 index b2a1e0374d9e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nb-NO/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - meny - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menyelement - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menyelement - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Korrektur - The label for the text command bar flyout menu item that provides the proofing menu. - - - Gjør merket tekst fet - - - Kopier det merkede innholdet til utklippstavlen - - - Fjern det merkede området og plasser det på utklippstavlen - - - Bruker kursiv skrift på den merkede teksten - - - Sett inn innholdet på utklippstavlen på gjeldende plassering - - - Gjenta den siste handlingen du angret - - - Merk alt innhold - - - Understreker den merkede teksten - - - Reverser den siste handlingen - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Fet - - - Kopier - - - Klipp ut - - - Kursiv - - - Lim inn - - - Gjør om - - - Merk alt - - - Understrek - - - Angre - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ne-NP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ne-NP/Resources.resw deleted file mode 100644 index 4073527de24e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ne-NP/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - मेनु - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - मेनु वस्तु - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - मेनु वस्तु - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - शुद्धाशुद्धि - The label for the text command bar flyout menu item that provides the proofing menu. - - - चयन गरिएको पाठ बोल्ड गर्नुहोस् - - - चयन गरिएको सामग्रीलाई क्लिपबोर्डमा प्रतिलिपि बनाउनुहोस् - - - चयन गरिएको सामग्री हटाउनुहोस् र यसलाई क्लिपबोर्डमा राख्नुहोस् - - - चयन गरिएको पाठ छड्के बनाउनुहोस् - - - क्लिपबोर्डका सामग्रीहरू हालको स्थानमा घुसाउनुहोस् - - - भर्खरै पूर्वस्थितिमा फर्काइएको कार्य दोहोर्‍याउनुहोस् - - - सबै सामग्री चयन गर्नुहोस् - - - चयन गरिएका पाठ रेखाङ्कन गर्नुहोस् - - - सबैभन्दा हालको कार्यलाई उल्टाउनुहोस् - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - बोल्ड गर्नुहोस् - - - प्रतिलिपि बनाउनुहोस् - - - काट्नुहोस् - - - छड्के बनाउनुहोस् - - - टाँस्नुहोस् - - - फेरि गर्नुहोस् - - - सबै चयन गर्नुहोस् - - - रेखाङ्कन गर्नुहोस् - - - पूर्वस्थितिमा फर्काउनुहोस् - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nl-NL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nl-NL/Resources.resw deleted file mode 100644 index ca8d980e3158..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nl-NL/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menu-item - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menu-item - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Controle - The label for the text command bar flyout menu item that provides the proofing menu. - - - De geselecteerde tekst vet maken - - - De geselecteerde inhoud naar het klembord kopiëren - - - De geselecteerde inhoud verwijderen en deze naar het klembord kopiëren - - - De geselecteerde tekst cursief maken - - - De inhoud van het klembord invoegen op de huidige locatie - - - De meest recente ongedaan gemaakte actie herhalen - - - Alle inhoud selecteren - - - De geselecteerde tekst onderstrepen - - - De meest recente actie omkeren - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Vet - - - Kopiëren - - - Knippen - - - Cursief - - - Plakken - - - Opnieuw - - - Alles selecteren - - - Onderstrepen - - - Ongedaan maken - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nn-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nn-NO/Resources.resw deleted file mode 100644 index 1107cf967732..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/nn-NO/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - meny - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menyelement - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menyelement - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Korrektur - The label for the text command bar flyout menu item that provides the proofing menu. - - - Uthev merkt tekst - - - Kopier det merkte innhaldet til utklippstavla - - - Fjern det merkte innhaldet og plasser det på utklippstavla - - - Sett merkt tekst i kursiv - - - Sett inn innhaldet frå utklippstavla på gjeldande plassering - - - Gjenta siste angra handling - - - Vel alt innhaldet - - - Understrek merkt tekst - - - Reverser siste handling - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Utheva - - - Kopier - - - Klipp ut - - - Kursiv - - - Lim inn - - - Gjer om - - - Merk alt - - - Understreking - - - Angre - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/or-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/or-IN/Resources.resw deleted file mode 100644 index 06e9d3cb464f..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/or-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ମେନୁ - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - ମେନୁ ଆଇଟମ୍ - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ମେନୁ ଆଇଟମ୍ - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ପ୍ରୁଫିଂ - The label for the text command bar flyout menu item that provides the proofing menu. - - - ଚୟନ କରାଯାଇଥିବା ପାଠ୍ୟକୁ ବୋଲ୍ଡ୍ କରନ୍ତୁ - - - କ୍ଲିପ୍‍‍ବୋର୍ଡକୁ ଚୟନ କରିଥିବା ବିଷୟବସ୍ତୁ କପି କରନ୍ତୁ - - - ନିର୍ବାଚିତ ବିଷୟ ଅପସାରଣ କରନ୍ତୁ ଏବଂ ଏହାକୁ କ୍ଲିପ୍ ବୋର୍ଡରେ ରଖନ୍ତୁ - - - ନିର୍ବାଚିତ ପାଠ୍ୟକୁ ଇଟାଲିକ୍ କରନ୍ତୁ - - - ସାଂପ୍ରତିକ ଅବସ୍ଥାନରେ କ୍ଲିପ୍‌ ବୋର୍ଡ୍ ର ସୂଚୀ ଭର୍ତ୍ତି କରନ୍ତୁ - - - ସର୍ବାଧିକ ନିକଟ ଅତୀତରେ କରାଯାଇନଥିବା କାର୍ଯ୍ୟ ପୁନରାବୃତ୍ତି କରନ୍ତୁ - - - ସମସ୍ତ ବିଷୟବସ୍ତୁ ଚୟନ କରନ୍ତୁ - - - ଚୟନ ପାଠ୍ୟକୁ ରେଖାଙ୍କନ କରନ୍ତୁ - - - ସମ୍ପ୍ରତି କ୍ରିୟା ବୀପରିତ କରନ୍ତୁ - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ବୋଲ୍ଡ - - - କପି କରନ୍ତୁ - - - କଟ୍ କରନ୍ତୁ - - - ଇଟାଲିକ୍ - - - ଲେପନ କରନ୍ତୁ - - - ପୁନଃକରଣ କରନ୍ତୁ - - - ସମସ୍ତ ଚୟନ କରନ୍ତୁ - - - ରେଖାଙ୍କିତ - - - ପୂର୍ବବତ୍ କରନ୍ତୁ - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pa/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pa/Resources.resw deleted file mode 100644 index 10a311394f45..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pa/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ਮੀਨੂ - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - ਮੀਨੂ ਆਇਟਮ - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ਮੀਨੂ ਆਇਟਮ - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ਪਰੂਫਿੰਗ - The label for the text command bar flyout menu item that provides the proofing menu. - - - ਚੁਣੇ ਹੋਏ ਟੈਕਸਟ ਨੂੰ ਬੋਲਡ ਕਰੋ - - - ਚੁਣੀ ਗਈ ਸਮੱਗਰੀ ਨੂੰ ਕਲਿੱਪਬੋਰਡ ਵਿੱਚ ਪ੍ਰਤਿਲਿਪਿਤ ਬਣਾਓ - - - ਚੁਣੀ ਸਮੱਗਰੀ ਹਟਾਓ ਅਤੇ ਇਸ ਨੂੰ ਕਲਿੱਪਬੋਰਡ ਤੇ ਰੱਖੋ - - - ਚੁਣੇ ਗਏ ਟੈਕਸਟ ਨੂੰ ਇਟੈਲਿਕ ਕਰੋ - - - ਕਲਿੱਪਬੋਰਡ ਦੀ ਸਮੱਗਰੀ ਨੂੰ ਮੌਜੂਦਾ ਸਥਾਨ 'ਤੇ ਪਾਓ - - - ਸਭ ਤੋਂ ਹਾਲੀਆ ਪਹਿਲੇ ਵਰਗੀ ਕੀਤੀ ਕਾਰਵਾਈ ਨੂੰ ਦੁਹਰਾਓ - - - ਸਾਰੀ ਸਮੱਗਰੀ ਚੁਣੋ - - - ਚੁਣੇ ਹੋਏ ਟੈਕਸਟ ਨੂੰ ਅੰਡਰਲਾਈਨ ਕਰੋ - - - ਸਭ ਤੋਂ ਹਾਲੀਆ ਕਾਰਵਾਈ ਨੂੰ ਉਲਟਾਓ - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ਬੋਲਡ - - - ਪ੍ਰਤਿਲਿਪਿਤ ਬਣਾਓ - - - ਕੱਟੋ - - - ਇਟੈਲਿਕ - - - ਚਿਪਕਾਓ - - - ਦੁਬਾਰਾ ਕਰੋ - - - ਸਾਰੇ ਚੁਣੋ - - - ਅੰਡਰਲਾਈਨ - - - ਪਹਿਲੇ ਵਰਗਾ ਕਰੋ - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pl-PL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pl-PL/Resources.resw deleted file mode 100644 index 2b671233f4da..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pl-PL/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - element menu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - element menu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Sprawdzanie - The label for the text command bar flyout menu item that provides the proofing menu. - - - Pogrub zaznaczony tekst - - - Kopiuj zaznaczoną zawartość do schowka - - - Usuń zaznaczoną zawartość i umieść ją w schowku - - - Zastosuj kursywę do zaznaczonego tekstu - - - Wklej zawartość schowka w bieżącej lokalizacji - - - Wykonaj ponownie ostatnio wycofaną akcję - - - Zaznacz całą zawartość - - - Podkreśl zaznaczony tekst - - - Wycofaj ostatnią akcję - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Pogrubienie - - - Kopiuj - - - Wytnij - - - Kursywa - - - Wklej - - - Wykonaj ponownie - - - Zaznacz wszystko - - - Podkreślenie - - - Cofnij - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pt-BR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pt-BR/Resources.resw deleted file mode 100644 index 60ee0d389090..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pt-BR/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - item do menu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - item do menu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Comprovação - The label for the text command bar flyout menu item that provides the proofing menu. - - - Coloque o texto selecionado em negrito - - - Copiar o conteúdo selecionado para a área de transferência - - - Remover o conteúdo selecionado e colocá-lo na área de transferência - - - Coloque o texto selecionado em itálico - - - Inserir o conteúdo da área de transferência no local atual - - - Repita a ação mais recente - - - Selecione todo o conteúdo - - - Sublinhe o texto selecionado - - - Reverta a ação mais recente - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Negrito - - - Copiar - - - Recortar - - - Itálico - - - Colar - - - Refazer - - - Selecionar Tudo - - - Sublinhar - - - Desfazer - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pt-PT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pt-PT/Resources.resw deleted file mode 100644 index 113a355ac067..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/pt-PT/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - item de menu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - item de menu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Verificação - The label for the text command bar flyout menu item that provides the proofing menu. - - - Colocar o texto selecionado a negrito - - - Copiar o conteúdo selecionado para a área de transferência - - - Remover o conteúdo selecionado e colocá-lo na área de transferência - - - Colocar em itálico o texto selecionado - - - Inserir os conteúdos da área de transferência na localização atual - - - Repetir a ação anulada mais recente - - - Selecionar todo o conteúdo - - - Sublinhar o texto selecionado - - - Reverter a ação mais recente - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - P - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Negrito - - - Copiar - - - Cortar - - - Itálico - - - Colar - - - Refazer - - - Selecionar Tudo - - - Sublinhar - - - Desfazer - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/quz-PE/Resources.resw_ignored b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/quz-PE/Resources.resw_ignored deleted file mode 100644 index 439757eb7947..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/quz-PE/Resources.resw_ignored +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - akllana - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - akllanapaq imakuna - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - akllanapaq imakuna - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Allichanapaq - The label for the text command bar flyout menu item that provides the proofing menu. - - - Akllasqa qillqapa yanacha - - - Rapi-apaykachaqman akllasqa winasqata mirachiy - - - Kay rapi-apaykachaqman churay chaymanta akllasqa winasqa qichuy - - - Akllasqa qillqapa wiksuchaman - - - Kunan tarikusqan rapi-apaykachaqmanta winasqata winay - - - Aswan kunanlla kutichikuy ruwana kutipay - - - Llapa winasqata akllay - - - Akllarisqa qillqata chimpuchiy - - - Aswan musuqlla ruwanata tikray - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Yanacha - - - Mirachiy - - - Kuchuy - - - Italica - - - Laqay - - - Ruwapay - - - Llapan akllay - - - Siqisqa - - - Paskay - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ro-RO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ro-RO/Resources.resw deleted file mode 100644 index 5da6666fa5ff..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ro-RO/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - meniu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - element de meniu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - element de meniu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Verificare - The label for the text command bar flyout menu item that provides the proofing menu. - - - Textul selectat devine aldin - - - Copiați conținutul selectat în clipboard - - - Eliminați conținutul selectat și puneți-l în clipboard - - - Textul selectat devine cursiv - - - Inserați conținutul din clipboard în locația curentă - - - Repetați cea mai recentă acțiune anulată - - - Selectați tot conținutul - - - Se subliniază textul selectat - - - Inversați acțiunea cea mai recentă - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Aldin - - - Copiere - - - Decupare - - - Cursiv - - - Lipire - - - Refacere - - - Selectați tot - - - Subliniere - - - Anulare - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ru-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ru-RU/Resources.resw deleted file mode 100644 index ca9b6bca9623..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ru-RU/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - меню - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - элемент меню - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - элемент меню - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Правописание - The label for the text command bar flyout menu item that provides the proofing menu. - - - Выделить полужирным выбранный текст - - - Скопировать выделенное содержимое в буфер обмена - - - Удалить выделенное содержимое и поместить его в буфер обмена - - - Выделить курсивом выбранный текст - - - Вставка содержимого буфера обмена в текущем местоположении - - - Повторить последнее отмененное действие - - - Выбрать все содержимое - - - Подчеркнуть выделенный текст - - - Отменить последнее действие - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Полужирный - - - Копировать - - - Вырезать - - - Курсив - - - Вставить - - - Вернуть - - - Выбрать все - - - Подчеркнутый - - - Отменить - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sk-SK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sk-SK/Resources.resw deleted file mode 100644 index 7a6621c5789d..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sk-SK/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ponuka - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - položka ponuky - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - položka ponuky - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Korektúra - The label for the text command bar flyout menu item that provides the proofing menu. - - - Nastaviť vybratý text ako tučný - - - Skopírovať vybratý obsah do Schránky - - - Odstrániť vybratý obsah a vložiť ho do Schránky - - - Nastaviť vybratý text ako kurzívu - - - Vložiť obsah schránky na aktuálne miesto - - - Zopakovať naposledy zrušenú akciu - - - Vybrať celý obsah - - - Nastaviť vybratý text ako podčiarknutý - - - Vrátiť poslednú vykonanú akciu - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Tučné - - - Kopírovať - - - Vystrihnúť - - - Kurzíva - - - Prilepiť - - - Znova - - - Vybrať všetko - - - Podčiarknuté - - - Vrátiť späť - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sl-SI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sl-SI/Resources.resw deleted file mode 100644 index ff5823cacf0f..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sl-SI/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - meni - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menijski element - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menijski element - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Preverjanje - The label for the text command bar flyout menu item that provides the proofing menu. - - - Oblikuj izbrano besedilo kot krepko - - - Kopiraj izbrano vsebino v odložišče. - - - Odstrani izbrano vsebino in jo postavi v odložišče - - - Oblikuj izbrano besedilo kot ležeče - - - Vstavi vsebino odložišča na trenutno mesto - - - Ponovi zadnje razveljavljeno dejanje - - - Izberi vso vsebino - - - Podčrtaj izbrano besedilo - - - Obratno izvedi zadnje dejanje - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Krepko - - - Kopiraj - - - Izreži - - - Ležeče - - - Prilepi - - - Uveljavi - - - Izberi vse - - - Podčrtaj - - - Razveljavi - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sq-AL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sq-AL/Resources.resw deleted file mode 100644 index 074b14f7bb19..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sq-AL/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - artikull menuje - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - artikull menuje - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Kontrolli gjuhësor - The label for the text command bar flyout menu item that provides the proofing menu. - - - Bëje të trashësuar tekstin e përzgjedhur - - - Kopjo përmbajtjen e përzgjedhur në kujtesën e fragmenteve - - - Hiq përmbajtjen e përzgjedhur dhe vëre në kujtesën e fragmenteve - - - Bëje kursiv tekstin e përzgjedhur - - - Fut përmbajtjet e kujtesës së fragmenteve në vendndodhjen aktuale - - - Përsërit veprimin e zhbërë më së fundi - - - Përzgjidh të gjithë përmbajtjen - - - Nënvizo tekstin e përzgjedhur - - - Kthe mbrapsht veprimin më të fundit - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - I trashësuar - - - Kopjo - - - Prit - - - Kursiv - - - Ngjit - - - Ribëj - - - Përzgjidh të gjitha - - - I nënvizuar - - - Zhbëj - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Cyrl-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Cyrl-BA/Resources.resw deleted file mode 100644 index 10ec7fb1d86c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Cyrl-BA/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - мени - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - ставка менија - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ставка менија - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Језичка провјера - The label for the text command bar flyout menu item that provides the proofing menu. - - - Подебљај изабрани текст - - - Копирајте изабрани садржај у међуспремник - - - Уклоните изабрани садржај и ставите га у међуспремник. - - - Означите курзивом изабрани текст - - - Уметните садржај из међуспремника на тренутну локацију - - - Понови посљедњу опозвану радњу - - - Изабери сав садржај - - - Подвуци изабрани текст - - - Опозови најновију радњу - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Подебљано - - - Копирај - - - Исијеци - - - Курзив - - - Залијепи - - - Понови радњу - - - Изабери све - - - Подвучено - - - Опозови радњу - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Cyrl-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Cyrl-RS/Resources.resw deleted file mode 100644 index 5f4d26113bf4..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Cyrl-RS/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - мени - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - ставка менија - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ставка менија - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Провера - The label for the text command bar flyout menu item that provides the proofing menu. - - - Подебљај изабрани текст - - - Копирај изабрани садржај у оставу - - - Уклони изабрани садржај и стави га у оставу - - - Примени курзив на изабрани текст - - - Уметни садржај оставе на тренутну локацију - - - Понови последњу опозвану радњу - - - Изаберите целокупан садржај - - - Подвуци изабрани текст - - - Преокрени најновију радњу - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Подебљано - - - Копирај - - - Исеци - - - Курзив - - - Налепи - - - Понови радњу - - - Изабери све - - - Подвучено - - - Опозови радњу - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Latn-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Latn-RS/Resources.resw deleted file mode 100644 index 3734be9a9615..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sr-Latn-RS/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - meni - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - stavka menija - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - stavka menija - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Korekcija - The label for the text command bar flyout menu item that provides the proofing menu. - - - Podebljaj izabrani tekst - - - Kopiraj izabrani sadržaj u ostavu - - - Ukloni izabrani sadržaj i stavi ga u ostavu - - - Prebacite izabrani tekst u kurziv - - - Umetni sadržaj ostave na trenutnu lokaciju - - - Ponovi poslednju opozvanu radnju - - - Izaberi celokupan sadržaj - - - Podvucite izabrani tekst - - - Preokreni najnoviju radnju - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - O - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Podebljano - - - Kopiranje - - - Isecanje - - - Kurziv - - - Nalepi - - - Ponovi radnju - - - Izaberi sve - - - Podvučeno - - - Opozovi radnju - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sv-SE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sv-SE/Resources.resw deleted file mode 100644 index b89a0aa98f5c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/sv-SE/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - meny - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menyalternativ - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menyalternativ - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Språkkontroll - The label for the text command bar flyout menu item that provides the proofing menu. - - - Gör den markerade texten fet - - - Kopiera det markerade innehållet till Urklipp - - - Ta bort det markerade innehållet och placera det i Urklipp - - - Kursivera den markerade texten - - - Infoga innehållet från Urklipp i den aktuella platsen - - - Upprepa den senast ångrade åtgärden - - - Markera allt innehåll - - - Stryk under den markerade texten - - - Ångra den senaste åtgärden - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - L - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Fet - - - Kopiera - - - Klipp ut - - - Kursiv - - - Klistra in - - - Gör om - - - Markera allt - - - Understruken - - - Ångra - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ta-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ta-IN/Resources.resw deleted file mode 100644 index 3d6229a3773a..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ta-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - மெனு - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - மெனு உருப்படி - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - மெனு உருப்படி - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - பிழைத்திருத்தல் - The label for the text command bar flyout menu item that provides the proofing menu. - - - தேர்ந்தெடுத்த உரையைத் தடிமனாக்கு - - - தேர்ந்தெடுத்த உள்ளடக்கத்தை நகலகத்திற்கு நகலெடுக்கவும் - - - தேர்ந்தெடுத்த உள்ளடக்கத்தை அகற்றி, அதனை நகலகத்தில் வைக்கவும் - - - தேர்ந்தெடுத்த உரையைச் சாய்வாக்கு - - - நடப்பு இருப்பிடத்தில் நகலகத்தில் உள்ள உள்ளடக்கத்தைச் செருகவும் - - - மிகவும் சமீபத்திய செயல்தவிர் செயல்பாட்டை மீண்டும் செய் - - - அனைத்து உள்ளடக்கத்தையும் தேர்ந்தெடுக்கவும் - - - தேர்ந்தெடுத்த உரையில் அடிக்கோடிடு - - - மிகவும் சமீபத்திய செயல்பாட்டை மீட்டமை - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - தடிமனாக்கு - - - நகலெடு - - - வெட்டு - - - சாய்வாக்கு - - - ஒட்டு - - - மீண்டும்செய் - - - எல்லாம் தேர்ந்தெடு - - - அடிக்கோடிடு - - - செயல்தவிர் - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/te-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/te-IN/Resources.resw deleted file mode 100644 index 539df6f721d0..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/te-IN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - మెను - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - మెను అంశం - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - మెను అంశం - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - ప్రూఫింగ్ - The label for the text command bar flyout menu item that provides the proofing menu. - - - ఎంచుకున్న వచనాన్ని బోల్డ్ చేస్తుంది - - - ఎంచుకున్న కంటెంట్‌ను క్లిప్ బోర్డ్ కి కాపీ చేస్తుంది - - - ఎంపిక చేసిన కంటెంట్ ని తొలగించి, క్లిప్ బోర్డ్ మీద ఉంచండి. - - - ఎంచుకున్న వచనాన్ని ఇటాలిక్ చేస్తుంది - - - క్లిప్ బోర్డ్ లో ఉంచిన కంటెంట్ ని ప్రస్తుతం సూచించిన లొకేషన్ కి మార్చండి. - - - ఇటీవల రద్దుచేసిన చర్యను మళ్లీ చేస్తుంది - - - మొత్తం కంటెంట్ ను ఎంచుకోండి - - - ఎంచుకున్న వచనాన్ని అండర్‌లైన్ చేస్తుంది - - - అత్యంత ఇటీవలి చర్యను రివర్స్ చేస్తుంది - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - పెద్దగా - - - కాపీ - - - కత్తిరించు - - - ఇటాలిక్ - - - అతికించు - - - చర్య పునరావృతం - - - అన్నింటినీ ఎంచుకోండి - - - అండర్‌లైన్ - - - చర్య రద్దు - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/th-TH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/th-TH/Resources.resw deleted file mode 100644 index 41ceeb86046d..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/th-TH/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - เมนู - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - รายการเมนู - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - รายการเมนู - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - การตรวจสอบ - The label for the text command bar flyout menu item that provides the proofing menu. - - - ทำตัวหนาข้อความที่เลือก - - - คัดลอกเนื้อหาที่เลือกไปยังคลิปบอร์ด - - - ลบเนื้อหาที่เลือกและวางลงในคลิปบอร์ด - - - ทำตัวเอียงข้อความที่เลือก - - - ใส่เนื้อหาของคลิปบอร์ดในตำแหน่งที่ตั้งปัจจุบัน - - - ทำซ้ำการดำเนินการที่ยกเลิกการทำล่าสุด - - - เลือกเนื้อหาทั้งหมด - - - ขีดเส้นใต้ข้อความที่เลือก - - - ย้อนกลับการดำเนินการล่าสุด - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - ตัวหนา - - - คัดลอก - - - ตัด - - - ตัวเอียง - - - วาง - - - ทำซ้ำ - - - เลือกทั้งหมด - - - ขีดเส้นใต้ - - - เลิกทำ - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/tr-TR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/tr-TR/Resources.resw deleted file mode 100644 index 7cabd002484e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/tr-TR/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menü - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menü ögesi - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menü ögesi - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Yazım Denetleme - The label for the text command bar flyout menu item that provides the proofing menu. - - - Seçili metni kalın yapın - - - Seçili içeriği panoya kopyalayın - - - Seçili içeriği kaldırın ve panoya yerleştirin - - - Seçilen metni italik yapın - - - Panonun içeriğini geçerli konuma ekle - - - En son geri alınan eylemi yineleyin - - - Tüm içeriği seçin - - - Seçilen metnin altını çizin - - - En son eylemi geri çevirin - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Kalın - - - Kopyala - - - Kes - - - İtalik - - - Yapıştır - - - Yinele - - - Tümünü Seç - - - Altı çizili - - - Geri Al - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/tt-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/tt-RU/Resources.resw deleted file mode 100644 index 8766a944febe..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/tt-RU/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - сайлак - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - сайлак элементы - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - сайлак элементы - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Язылышны тикшерү - The label for the text command bar flyout menu item that provides the proofing menu. - - - Тамгаланган текстны калынайту - - - Тамгаланган эчтәлекне алмашу буферына күчереп алу - - - Сайланган эчтәлекне бетереп алмашу буферына урнаштыру - - - Тамгаланган текстка курсив куллану - - - Алмашу буферы эчтәлеген гамәлдәге урында кертү - - - Соңгы баш тартылган гамәлне кабатлау - - - Бөтен эчтәлекне тамгалау - - - Тамгаланган текстның астына сызу - - - Соңгы гамәлдән баш тарту - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Калын - - - Күчереп алу - - - Кисеп алу - - - Курсив - - - Өстәү - - - Кабатлау - - - Барысын да тамгалау - - - Ассызыклау - - - Кире кагу - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ug-CN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ug-CN/Resources.resw deleted file mode 100644 index e4447191245f..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ug-CN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - تىزىملىك - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - تىزىملىك ئوبيېكتى - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - تىزىملىك ئوبيېكتى - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - تۈزىتىش - The label for the text command bar flyout menu item that provides the proofing menu. - - - تاللىغان تېكىستنى توم قىلىش - - - تاللىغان مەزمۇننى كېسىش تاختىسىغا كۆچۈرۈش - - - تاللىغان مەزمۇننى چىقىرىۋېتىپ كېسىش تاختىسىغا قويۇش - - - تاللىغان تېكىستنى يانتۇلاشتۇرۇش - - - كېسىش تاختىسىدىكى مەزمۇننى نۆۋەتتىكى ئورۇنغا قىستۇرۇش - - - يېقىنقى يانغان مەشغۇلاتنى قايتىلاش - - - بارلىق مەزمۇننى تاللاش - - - تاللىغان تېكىستنىڭ ئاستىغا سىزىش - - - يېقىنقى مەشغۇلاتنى قايتۇرۇش - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - توم - - - كۆچۈرۈش - - - كېسىش - - - يانتۇ - - - چاپلاش - - - تەكرارلاش - - - ھەممىنى تاللاش - - - ئاستى سىزىق - - - يېنىۋېلىش - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/uk-UA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/uk-UA/Resources.resw deleted file mode 100644 index 17099f79ddf7..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/uk-UA/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - меню - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - елемент меню - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - елемент меню - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Перевірка - The label for the text command bar flyout menu item that provides the proofing menu. - - - Виділити вибраний текст жирним - - - Копіювати виділений вміст до буфера обміну - - - Видалити виділений вміст і вставити його в буфер обміну - - - Виділити вибраний текст курсивом - - - Вставити вміст буфера обміну в поточне розташування - - - Повторити останню скасовану дію - - - Вибрати весь вміст - - - Підкреслити виділений текст - - - Скасувати останню дію - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Жирний - - - Копіювати - - - Вирізати - - - Курсив - - - Вставити - - - Повторити - - - Виділити все - - - Підкреслити - - - Скасувати - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ur/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ur/Resources.resw deleted file mode 100644 index a54e2b6cb43c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/ur/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - مینیو - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - مینیو آئٹم - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - مینیو آئٹم - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - پروفنگ - The label for the text command bar flyout menu item that provides the proofing menu. - - - منتخب متن کو جلی کریں - - - منتخب کردہ متن کو تختہ تراشہ پر کاپی کریں - - - منتخب کردہ مشمول کو ہٹائیں اور اسے تختہ تراشہ پر رکھیں - - - منتخب متن کو اٹالک کریں - - - تختہ تراشہ کے مشمولات کو حاليہ مقام پر داخل کریں - - - وہ اقدام دہرائیں جسے حال ہی میں کالعدم کیا تھا - - - پورا مشمول منتخب کریں - - - منتخب متن کو خط کشیدہ کریں - - - تازہ ترین اقدام کو کالعدم کریں - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - جلی - - - کاپی کریں - - - کاٹيں - - - اٹالک - - - پیسٹ کریں - - - پچھلا اقدام پھر سے کریں - - - سب کو منتخب کریں - - - خط کشيدہ - - - کالعدم کریں - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/uz-Latn-UZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/uz-Latn-UZ/Resources.resw deleted file mode 100644 index e773ef23dd43..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/uz-Latn-UZ/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menyu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - menyu elementi - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - menyu elementi - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Tekshirish - The label for the text command bar flyout menu item that provides the proofing menu. - - - Belgilangan matnni qalinlashtirish - - - Belgilangan kontentni vaqtinchalik xotiraga nusxalash - - - Belgilangan kontentni olib tashlash va buferga joylash - - - Belgilangan matnni qiya qilish - - - Shu joyga buferdagi kontentni joylash - - - Oxirgi bekor qilingan amalni takrorlash - - - Barcha kontentni belgilash - - - Belgilangan matnning tagiga chizish - - - Eng oxirgi amalni bekor qilish - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Qalin - - - Nusxa olish - - - Qirqib olish - - - Qiya - - - Joylash - - - Qaytarish - - - Hammasini belgilash - - - Tagiga chizilgan - - - Bekor qilish - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/vi-VN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/vi-VN/Resources.resw deleted file mode 100644 index 119cbd3b7dc3..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/vi-VN/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - menu - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - mục menu - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - mục menu - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - Hiệu đính - The label for the text command bar flyout menu item that provides the proofing menu. - - - Tô đậm văn bản đã chọn - - - Sao chép nội dung đã chọn vào bảng tạm - - - Xóa nội dung đã chọn và đưa nội dung đó vào bảng tạm - - - In nghiêng văn bản đã chọn - - - Chèn nội dung của bảng tạm ở vị trí hiện tại - - - Lặp lại hành động hoàn tác gần đây nhất - - - Chọn tất cả nội dung - - - Gạch dưới văn bản đã chọn - - - Đảo ngược hành động gần đây nhất - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - Tô đậm - - - Sao chép - - - Cắt - - - In Nghiêng - - - Dán - - - Làm lại - - - Chọn Tất cả - - - Gạch chân - - - Hoàn tác - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/zh-Hans/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/zh-Hans/Resources.resw deleted file mode 100644 index 47ae9d676dec..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/zh-Hans/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 菜单 - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - 菜单项 - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - 菜单项 - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - 校对 - The label for the text command bar flyout menu item that provides the proofing menu. - - - 加粗所选的文本 - - - 将所选内容复制到剪贴板 - - - 移除所选内容并放入剪贴板 - - - 将所选文字设置为倾斜 - - - 在当前位置插入剪贴板内容 - - - 重复最近的撤消操作 - - - 选择所有内容 - - - 给所选文字加下划线 - - - 撤消最近操作 - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - 粗体 - - - 复制 - - - 剪切 - - - 斜体 - - - 粘贴 - - - 恢复 - - - 全选 - - - 下划线 - - - 撤消 - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/zh-Hant/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/zh-Hant/Resources.resw deleted file mode 100644 index 39fd71f99370..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/CommandBarFlyout/Strings/zh-Hant/Resources.resw +++ /dev/null @@ -1,226 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 功能表 - The name of the control type for CommandBars inside CommandBarFlyouts to be reported to UIA clients. - - - 功能表項目 - The name of the control type for AppBarButtons inside CommandBarFlyouts to be reported to UIA clients. - - - 功能表項目 - The name of the control type for AppBarToggleButtons inside CommandBarFlyouts to be reported to UIA clients. - - - 校訂 - The label for the text command bar flyout menu item that provides the proofing menu. - - - 將選取的文字以粗體顯示 - - - 將選取的內容複製到剪貼簿 - - - 移除選取的內容並將其放在剪貼簿上 - - - 將選取的文字以斜體顯示 - - - 在目前的位置插入剪貼簿內容 - - - 重複最近復原的動作 - - - 選取所有內容 - - - 將選取的文字加上底線 - - - 反轉最近的動作 - - - B - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for bolding - Ctrl+B. Must be unique with respect to every other keyboard accelerator in this file. - - - C - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for copying - Ctrl+C. Must be unique with respect to every other keyboard accelerator in this file. - - - X - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for cutting - Ctrl+X. Must be unique with respect to every other keyboard accelerator in this file. - - - I - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for italicizing - Ctrl+I. Must be unique with respect to every other keyboard accelerator in this file. - - - V - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for pasting - Ctrl+V. Must be unique with respect to every other keyboard accelerator in this file. - - - Y - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for redoing - Ctrl+Y. Must be unique with respect to every other keyboard accelerator in this file. - - - A - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for selecting all - Ctrl+A. Must be unique with respect to every other keyboard accelerator in this file. - - - U - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for underlining - Ctrl+U. Must be unique with respect to every other keyboard accelerator in this file. - - - Z - {ValidChars="A-Z"}{MinLength=source}{MaxLength=source}Keyboard accelerator key for undoing - Ctrl+Z. Must be unique with respect to every other keyboard accelerator in this file. - - - 粗體 - - - 複製 - - - 剪下 - - - 斜體 - - - 貼上 - - - 重做 - - - 全選 - - - 底線 - - - 復原 - - \ No newline at end of file From 3277d0ffc250d63797034c8d4c6e19c24d3efd7e Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:08:05 -0500 Subject: [PATCH 552/664] chore: Move NavigationCloseButtonName to WinUIResources --- .../Strings/af-ZA/Resources.resw | 4 - .../Strings/am-ET/Resources.resw | 4 - .../Strings/ar-SA/Resources.resw | 4 - .../Strings/as-IN/Resources.resw | 4 - .../Strings/az-Latn-AZ/Resources.resw | 4 - .../Strings/bg-BG/Resources.resw | 4 - .../Strings/bn-IN/Resources.resw | 4 - .../Strings/bs-Latn-BA/Resources.resw | 4 - .../Strings/ca-ES/Resources.resw | 4 - .../Strings/cs-CZ/Resources.resw | 4 - .../Strings/cy-GB/Resources.resw | 4 - .../Strings/da-DK/Resources.resw | 4 - .../Strings/de-DE/Resources.resw | 4 - .../Strings/el-GR/Resources.resw | 4 - .../Strings/en-GB/Resources.resw | 4 - .../Strings/en-us/Resources.resw | 4 - .../Strings/es-ES/Resources.resw | 4 - .../Strings/es-MX/Resources.resw | 4 - .../Strings/et-EE/Resources.resw | 4 - .../Strings/eu-ES/Resources.resw | 4 - .../Strings/fa-IR/Resources.resw | 4 - .../Strings/fi-FI/Resources.resw | 4 - .../Strings/fil-PH/Resources.resw | 4 - .../Strings/fr-CA/Resources.resw | 4 - .../Strings/fr-FR/Resources.resw | 4 - .../Strings/ga-IE/Resources.resw | 4 - .../Strings/gd-gb/Resources.resw | 4 - .../Strings/gl-ES/Resources.resw | 4 - .../Strings/gu-IN/Resources.resw | 4 - .../Strings/he-IL/Resources.resw | 4 - .../Strings/hi-IN/Resources.resw | 4 - .../Strings/hr-HR/Resources.resw | 4 - .../Strings/hu-HU/Resources.resw | 4 - .../Strings/hy-AM/Resources.resw | 4 - .../Strings/id-ID/Resources.resw | 4 - .../Strings/is-IS/Resources.resw | 4 - .../Strings/it-IT/Resources.resw | 4 - .../Strings/ja-JP/Resources.resw | 4 - .../Strings/ka-GE/Resources.resw | 4 - .../Strings/kk-KZ/Resources.resw | 4 - .../Strings/km-KH/Resources.resw | 4 - .../Strings/kn-IN/Resources.resw | 4 - .../Strings/ko-KR/Resources.resw | 4 - .../Strings/kok-IN/Resources.resw | 4 - .../Strings/lb-LU/Resources.resw | 4 - .../Strings/lo-LA/Resources.resw | 4 - .../Strings/lt-LT/Resources.resw | 4 - .../Strings/lv-LV/Resources.resw | 4 - .../Strings/mi-NZ/Resources.resw | 4 - .../Strings/mk-MK/Resources.resw | 4 - .../Strings/ml-IN/Resources.resw | 4 - .../Strings/mr-IN/Resources.resw | 4 - .../Strings/ms-MY/Resources.resw | 4 - .../Strings/mt-MT/Resources.resw | 4 - .../Strings/nb-NO/Resources.resw | 4 - .../Strings/ne-NP/Resources.resw | 4 - .../Strings/nl-NL/Resources.resw | 4 - .../Strings/nn-NO/Resources.resw | 4 - .../Strings/or-IN/Resources.resw | 4 - .../NavigationView/Strings/pa/Resources.resw | 4 - .../Strings/pl-PL/Resources.resw | 4 - .../Strings/pt-BR/Resources.resw | 4 - .../Strings/pt-PT/Resources.resw | 4 - .../Strings/ro-RO/Resources.resw | 4 - .../Strings/ru-RU/Resources.resw | 4 - .../Strings/sk-SK/Resources.resw | 4 - .../Strings/sl-SI/Resources.resw | 4 - .../Strings/sq-AL/Resources.resw | 4 - .../Strings/sr-Cyrl-BA/Resources.resw | 4 - .../Strings/sr-Cyrl-RS/Resources.resw | 4 - .../Strings/sr-Latn-RS/Resources.resw | 4 - .../Strings/sv-SE/Resources.resw | 4 - .../Strings/ta-IN/Resources.resw | 4 - .../Strings/te-IN/Resources.resw | 4 - .../Strings/th-TH/Resources.resw | 4 - .../Strings/tr-TR/Resources.resw | 4 - .../Strings/tt-RU/Resources.resw | 4 - .../Strings/ug-CN/Resources.resw | 4 - .../Strings/uk-UA/Resources.resw | 4 - .../NavigationView/Strings/ur/Resources.resw | 4 - .../Strings/uz-Latn-UZ/Resources.resw | 4 - .../Strings/vi-VN/Resources.resw | 4 - .../Strings/zh-Hans/Resources.resw | 4 - .../Strings/zh-Hant/Resources.resw | 4 - .../WinUIResources/af-ZA/Resources.resw | 4 + .../WinUIResources/am-et/Resources.resw | 4 + .../WinUIResources/ar-SA/Resources.resw | 4 + .../WinUIResources/as-IN/Resources.resw | 4 + .../WinUIResources/az-Latn-AZ/Resources.resw | 4 + .../WinUIResources/bg-BG/Resources.resw | 4 + .../WinUIResources/bn-IN/Resources.resw | 4 + .../WinUIResources/bs-Latn-BA/Resources.resw | 4 + .../WinUIResources/ca-ES/Resources.resw | 4 + .../WinUIResources/cs-CZ/Resources.resw | 4 + .../WinUIResources/cy-GB/Resources.resw | 4 + .../WinUIResources/da-DK/Resources.resw | 4 + .../WinUIResources/de-DE/Resources.resw | 4 + .../WinUIResources/el-GR/Resources.resw | 4 + .../WinUIResources/en-GB/Resources.resw | 4 + .../WinUIResources/en-us/Resources.resw | 4 + .../WinUIResources/es-ES/Resources.resw | 124 ++++++++++++++++++ .../WinUIResources/es-MX/Resources.resw | 4 + .../WinUIResources/et-EE/Resources.resw | 4 + .../WinUIResources/eu-ES/Resources.resw | 4 + .../WinUIResources/fa-IR/Resources.resw | 4 + .../WinUIResources/fi-FI/Resources.resw | 4 + .../WinUIResources/fil-ph/Resources.resw | 4 + .../WinUIResources/fr-CA/Resources.resw | 4 + .../WinUIResources/fr-FR/Resources.resw | 4 + .../WinUIResources/ga-IE/Resources.resw | 4 + .../WinUIResources/gd-gb/Resources.resw | 4 + .../WinUIResources/gl-ES/Resources.resw | 4 + .../WinUIResources/gu-IN/Resources.resw | 4 + .../WinUIResources/he-IL/Resources.resw | 4 + .../WinUIResources/hi-IN/Resources.resw | 4 + .../WinUIResources/hr-HR/Resources.resw | 4 + .../WinUIResources/hu-HU/Resources.resw | 4 + .../WinUIResources/hy-AM/Resources.resw | 4 + .../WinUIResources/id-ID/Resources.resw | 4 + .../WinUIResources/is-IS/Resources.resw | 4 + .../WinUIResources/it-IT/Resources.resw | 4 + .../WinUIResources/ja-JP/Resources.resw | 4 + .../WinUIResources/ka-GE/Resources.resw | 4 + .../WinUIResources/kk-KZ/Resources.resw | 4 + .../WinUIResources/km-kh/Resources.resw | 4 + .../WinUIResources/kn-in/Resources.resw | 4 + .../WinUIResources/ko-KR/Resources.resw | 4 + .../WinUIResources/kok-IN/Resources.resw | 4 + .../WinUIResources/lb-LU/Resources.resw | 4 + .../WinUIResources/lo-la/Resources.resw | 4 + .../WinUIResources/lt-LT/Resources.resw | 4 + .../WinUIResources/lv-LV/Resources.resw | 4 + .../WinUIResources/mi-NZ/Resources.resw | 4 + .../WinUIResources/mk-mk/Resources.resw | 4 + .../WinUIResources/ml-in/Resources.resw | 4 + .../WinUIResources/mr-IN/Resources.resw | 4 + .../WinUIResources/ms-MY/Resources.resw | 4 + .../WinUIResources/mt-MT/Resources.resw | 4 + .../WinUIResources/nb-NO/Resources.resw | 4 + .../WinUIResources/ne-NP/Resources.resw | 4 + .../WinUIResources/nl-NL/Resources.resw | 4 + .../WinUIResources/nn-NO/Resources.resw | 4 + .../WinUIResources/or-IN/Resources.resw | 4 + .../Controls/WinUIResources/pa/Resources.resw | 6 +- .../WinUIResources/pl-PL/Resources.resw | 4 + .../WinUIResources/pt-BR/Resources.resw | 4 + .../WinUIResources/pt-PT/Resources.resw | 4 + .../WinUIResources/ro-RO/Resources.resw | 4 + .../WinUIResources/ru-RU/Resources.resw | 4 + .../WinUIResources/sk-SK/Resources.resw | 4 + .../WinUIResources/sl-SI/Resources.resw | 4 + .../WinUIResources/sq-AL/Resources.resw | 4 + .../WinUIResources/sr-Cyrl-BA/Resources.resw | 4 + .../WinUIResources/sr-Cyrl-RS/Resources.resw | 4 + .../WinUIResources/sr-Latn-RS/Resources.resw | 4 + .../WinUIResources/sv-SE/Resources.resw | 4 + .../WinUIResources/ta-in/Resources.resw | 4 + .../WinUIResources/te-in/Resources.resw | 4 + .../WinUIResources/th-TH/Resources.resw | 4 + .../WinUIResources/tr-TR/Resources.resw | 4 + .../WinUIResources/tt-RU/Resources.resw | 4 + .../WinUIResources/ug-CN/Resources.resw | 4 + .../WinUIResources/uk-UA/Resources.resw | 4 + .../Controls/WinUIResources/ur/Resources.resw | 6 +- .../WinUIResources/uz-latn-uz/Resources.resw | 4 + .../WinUIResources/vi-VN/Resources.resw | 4 + .../WinUIResources/zh-Hans/Resources.resw | 6 +- .../WinUIResources/zh-Hant/Resources.resw | 6 +- 168 files changed, 460 insertions(+), 340 deletions(-) create mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/es-ES/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/af-ZA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/af-ZA/Resources.resw index 02432153a19c..9e327c0f126c 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/af-ZA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/af-ZA/Resources.resw @@ -145,10 +145,6 @@ Terug ToolTip caption for the back button - - Sluit - Automation name for the nav view provided close button - Meer Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/am-ET/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/am-ET/Resources.resw index 767f11b4bf0f..538f30ac8407 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/am-ET/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/am-ET/Resources.resw @@ -145,10 +145,6 @@ ተመለስ ToolTip caption for the back button - - ዝጋ - Automation name for the nav view provided close button - ተጨማሪ Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ar-SA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ar-SA/Resources.resw index a34198f22e1c..77c829bd1c77 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ar-SA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ar-SA/Resources.resw @@ -145,10 +145,6 @@ الخلف ToolTip caption for the back button - - إغلاق - Automation name for the nav view provided close button - المزيد Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/as-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/as-IN/Resources.resw index c2ab4753a581..a1b94550d5be 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/as-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/as-IN/Resources.resw @@ -145,10 +145,6 @@ পাছলৈ ToolTip caption for the back button - - বন্ধ কৰক - Automation name for the nav view provided close button - অধিক Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/az-Latn-AZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/az-Latn-AZ/Resources.resw index 3949d09b2f87..8e3a4042e23e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/az-Latn-AZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/az-Latn-AZ/Resources.resw @@ -145,10 +145,6 @@ Geri ToolTip caption for the back button - - Bağla - Automation name for the nav view provided close button - Daha çox Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bg-BG/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bg-BG/Resources.resw index 69508806b715..07e16f968261 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bg-BG/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bg-BG/Resources.resw @@ -145,10 +145,6 @@ Назад ToolTip caption for the back button - - Затвори - Automation name for the nav view provided close button - Още Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bn-IN/Resources.resw index dc07868c5a26..6a583ed71dc3 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bn-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bn-IN/Resources.resw @@ -145,10 +145,6 @@ ফিরে যান ToolTip caption for the back button - - বন্ধ - Automation name for the nav view provided close button - আরও Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bs-Latn-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bs-Latn-BA/Resources.resw index 9f18f838966f..8627063ebffc 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bs-Latn-BA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/bs-Latn-BA/Resources.resw @@ -145,10 +145,6 @@ Nazad ToolTip caption for the back button - - Zatvori - Automation name for the nav view provided close button - Više Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ca-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ca-ES/Resources.resw index c6e686f64463..620e47a5b394 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ca-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ca-ES/Resources.resw @@ -145,10 +145,6 @@ Enrere ToolTip caption for the back button - - Tanca - Automation name for the nav view provided close button - Més Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/cs-CZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/cs-CZ/Resources.resw index f4a33868e76f..40d978b6776b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/cs-CZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/cs-CZ/Resources.resw @@ -145,10 +145,6 @@ Zpět ToolTip caption for the back button - - Zavřít - Automation name for the nav view provided close button - Více Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/cy-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/cy-GB/Resources.resw index 68b523d9a87c..8e074d699ce3 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/cy-GB/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/cy-GB/Resources.resw @@ -145,10 +145,6 @@ Yn ôl ToolTip caption for the back button - - Cau - Automation name for the nav view provided close button - Mwy Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/da-DK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/da-DK/Resources.resw index 7d6073bdea6b..a5b006264137 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/da-DK/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/da-DK/Resources.resw @@ -145,10 +145,6 @@ Tilbage ToolTip caption for the back button - - Luk - Automation name for the nav view provided close button - Mere Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/de-DE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/de-DE/Resources.resw index ef44991b3e47..52d162da4178 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/de-DE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/de-DE/Resources.resw @@ -145,10 +145,6 @@ Zurück ToolTip caption for the back button - - Schließen - Automation name for the nav view provided close button - Mehr Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/el-GR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/el-GR/Resources.resw index 903c7b1dc036..d2c59b6ce1a0 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/el-GR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/el-GR/Resources.resw @@ -145,10 +145,6 @@ Πίσω ToolTip caption for the back button - - Κλείσιμο - Automation name for the nav view provided close button - Περισσότερα Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/en-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/en-GB/Resources.resw index 7749245cd1e0..ace791cd009e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/en-GB/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/en-GB/Resources.resw @@ -145,10 +145,6 @@ Back ToolTip caption for the back button - - Close - Automation name for the nav view provided close button - More Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/en-us/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/en-us/Resources.resw index 7749245cd1e0..ace791cd009e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/en-us/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/en-us/Resources.resw @@ -145,10 +145,6 @@ Back ToolTip caption for the back button - - Close - Automation name for the nav view provided close button - More Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/es-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/es-ES/Resources.resw index 4d8f427b75e0..58ae2b5f7351 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/es-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/es-ES/Resources.resw @@ -145,10 +145,6 @@ Atrás ToolTip caption for the back button - - Cerrar - Automation name for the nav view provided close button - Más Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/es-MX/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/es-MX/Resources.resw index 4d8f427b75e0..58ae2b5f7351 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/es-MX/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/es-MX/Resources.resw @@ -145,10 +145,6 @@ Atrás ToolTip caption for the back button - - Cerrar - Automation name for the nav view provided close button - Más Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/et-EE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/et-EE/Resources.resw index 11a3e8d8d242..7786c75bccc9 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/et-EE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/et-EE/Resources.resw @@ -145,10 +145,6 @@ Tagasi ToolTip caption for the back button - - Sule - Automation name for the nav view provided close button - Rohkem Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/eu-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/eu-ES/Resources.resw index c4f9e6fd0b04..fd28f78a3b0b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/eu-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/eu-ES/Resources.resw @@ -145,10 +145,6 @@ Atzera ToolTip caption for the back button - - Itxi - Automation name for the nav view provided close button - Gehiago Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fa-IR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fa-IR/Resources.resw index 8e8e0b993246..a13412f27b46 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fa-IR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fa-IR/Resources.resw @@ -145,10 +145,6 @@ بازگشت ToolTip caption for the back button - - بستن - Automation name for the nav view provided close button - بیشتر Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fi-FI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fi-FI/Resources.resw index c6622f642254..d80a1272cd79 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fi-FI/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fi-FI/Resources.resw @@ -145,10 +145,6 @@ Edellinen ToolTip caption for the back button - - Sulje - Automation name for the nav view provided close button - Lisää Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fil-PH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fil-PH/Resources.resw index 776040d61b4d..a180a5dfbda8 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fil-PH/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fil-PH/Resources.resw @@ -145,10 +145,6 @@ Bumalik ToolTip caption for the back button - - Isara - Automation name for the nav view provided close button - Higit pa Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fr-CA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fr-CA/Resources.resw index a5b0738ac0b6..6f97ed2983da 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fr-CA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fr-CA/Resources.resw @@ -145,10 +145,6 @@ Retour ToolTip caption for the back button - - Fermer - Automation name for the nav view provided close button - Plus Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fr-FR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fr-FR/Resources.resw index d1193989561c..e60a0aafa34d 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fr-FR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/fr-FR/Resources.resw @@ -145,10 +145,6 @@ Retour ToolTip caption for the back button - - Fermer - Automation name for the nav view provided close button - Plus Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ga-IE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ga-IE/Resources.resw index 93a4e84ddecc..fb7982b4ab72 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ga-IE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ga-IE/Resources.resw @@ -145,10 +145,6 @@ Siar ToolTip caption for the back button - - Dún - Automation name for the nav view provided close button - Tuilleadh Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gd-gb/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gd-gb/Resources.resw index 281d2d612b08..6bb7f79f0564 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gd-gb/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gd-gb/Resources.resw @@ -145,10 +145,6 @@ Air ais ToolTip caption for the back button - - Dùin - Automation name for the nav view provided close button - Barrachd Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gl-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gl-ES/Resources.resw index 8387a8d7a025..507fca95b6dd 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gl-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gl-ES/Resources.resw @@ -145,10 +145,6 @@ Atrás ToolTip caption for the back button - - Pechar - Automation name for the nav view provided close button - Máis Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gu-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gu-IN/Resources.resw index 3dc3a1f7fada..d12920e5d2a1 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gu-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/gu-IN/Resources.resw @@ -145,10 +145,6 @@ પાછળ ToolTip caption for the back button - - બંધ કરો - Automation name for the nav view provided close button - વધુ Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/he-IL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/he-IL/Resources.resw index e7ea9f014776..d9b5f9001914 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/he-IL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/he-IL/Resources.resw @@ -145,10 +145,6 @@ הקודם ToolTip caption for the back button - - סגור - Automation name for the nav view provided close button - עוד Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hi-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hi-IN/Resources.resw index 67b83caabbf5..39a9ffdb814b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hi-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hi-IN/Resources.resw @@ -145,10 +145,6 @@ वापस ToolTip caption for the back button - - बंद करें - Automation name for the nav view provided close button - अधिक Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hr-HR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hr-HR/Resources.resw index 2d33cd8ac844..1a27e160808c 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hr-HR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hr-HR/Resources.resw @@ -145,10 +145,6 @@ Natrag ToolTip caption for the back button - - Zatvori - Automation name for the nav view provided close button - Više Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hu-HU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hu-HU/Resources.resw index 1563fd70b758..589537f2085d 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hu-HU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hu-HU/Resources.resw @@ -145,10 +145,6 @@ Vissza ToolTip caption for the back button - - Bezárás - Automation name for the nav view provided close button - Továbbiak Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hy-AM/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hy-AM/Resources.resw index 90fb951845e5..e329d603a863 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hy-AM/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/hy-AM/Resources.resw @@ -145,10 +145,6 @@ Հետ ToolTip caption for the back button - - Փակել - Automation name for the nav view provided close button - Ավելին Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/id-ID/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/id-ID/Resources.resw index 6111ea475036..bbeb02da451e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/id-ID/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/id-ID/Resources.resw @@ -145,10 +145,6 @@ Kembali ToolTip caption for the back button - - Tutup - Automation name for the nav view provided close button - Selengkapnya Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/is-IS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/is-IS/Resources.resw index f89a1c5b4afb..9d76cb4948b5 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/is-IS/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/is-IS/Resources.resw @@ -145,10 +145,6 @@ Til baka ToolTip caption for the back button - - Loka - Automation name for the nav view provided close button - Meira Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/it-IT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/it-IT/Resources.resw index dd509ec442b1..5fe701e8e0fc 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/it-IT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/it-IT/Resources.resw @@ -145,10 +145,6 @@ Indietro ToolTip caption for the back button - - Chiudi - Automation name for the nav view provided close button - Altro Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ja-JP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ja-JP/Resources.resw index ea4de3c47acf..64502400d189 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ja-JP/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ja-JP/Resources.resw @@ -145,10 +145,6 @@ 戻る ToolTip caption for the back button - - 閉じる - Automation name for the nav view provided close button - その他 Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ka-GE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ka-GE/Resources.resw index 9da00012f926..8e7e6131f651 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ka-GE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ka-GE/Resources.resw @@ -145,10 +145,6 @@ უკან ToolTip caption for the back button - - დახურვა - Automation name for the nav view provided close button - სხვა Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kk-KZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kk-KZ/Resources.resw index 8ee78e5533a8..d10e1aea92cd 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kk-KZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kk-KZ/Resources.resw @@ -145,10 +145,6 @@ Артқа ToolTip caption for the back button - - Жабу - Automation name for the nav view provided close button - Көбірек Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/km-KH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/km-KH/Resources.resw index 6d7178566c08..0126b8c29b49 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/km-KH/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/km-KH/Resources.resw @@ -145,10 +145,6 @@ ថយក្រោយ ToolTip caption for the back button - - បិទ - Automation name for the nav view provided close button - បន្ថែមទឿត Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kn-IN/Resources.resw index 14631040b848..011738f2e245 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kn-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kn-IN/Resources.resw @@ -145,10 +145,6 @@ ಹಿಂದೆ ToolTip caption for the back button - - ಮುಚ್ಚಿರಿ - Automation name for the nav view provided close button - ಮತ್ತಷ್ಟು Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ko-KR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ko-KR/Resources.resw index 2dc96263cc8a..4d48a62a076a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ko-KR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ko-KR/Resources.resw @@ -145,10 +145,6 @@ 뒤로 ToolTip caption for the back button - - 닫기 - Automation name for the nav view provided close button - 자세히 Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kok-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kok-IN/Resources.resw index 403ecc1538e9..549f9b2ca6f4 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kok-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/kok-IN/Resources.resw @@ -145,10 +145,6 @@ फाटीं ToolTip caption for the back button - - बंद करचें - Automation name for the nav view provided close button - चड Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lb-LU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lb-LU/Resources.resw index 0ffb15fc037e..5e7ca25e4898 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lb-LU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lb-LU/Resources.resw @@ -145,10 +145,6 @@ Zeréck ToolTip caption for the back button - - Zoumaachen - Automation name for the nav view provided close button - Méi Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lo-LA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lo-LA/Resources.resw index f88ada146e86..af0f36cb77e1 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lo-LA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lo-LA/Resources.resw @@ -145,10 +145,6 @@ ກັບ​ຄືນ ToolTip caption for the back button - - ປິດ - Automation name for the nav view provided close button - ເພີ່ມເຕີມ Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lt-LT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lt-LT/Resources.resw index 5ae414d1b073..0321ead5bcca 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lt-LT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lt-LT/Resources.resw @@ -145,10 +145,6 @@ Atgal ToolTip caption for the back button - - Uždaryti - Automation name for the nav view provided close button - Daugiau Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lv-LV/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lv-LV/Resources.resw index 106209960ad0..0a13f6adea44 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lv-LV/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/lv-LV/Resources.resw @@ -145,10 +145,6 @@ Atpakaļ ToolTip caption for the back button - - Aizvērt - Automation name for the nav view provided close button - Vēl Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mi-NZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mi-NZ/Resources.resw index 0d97a89c756a..ea8d428adab1 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mi-NZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mi-NZ/Resources.resw @@ -145,10 +145,6 @@ Hoki ToolTip caption for the back button - - Kati - Automation name for the nav view provided close button - Ētahi atu mea Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mk-MK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mk-MK/Resources.resw index 3bf699936e86..fe7e57c48a5a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mk-MK/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mk-MK/Resources.resw @@ -145,10 +145,6 @@ Назад ToolTip caption for the back button - - Затвори - Automation name for the nav view provided close button - Повеќе Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ml-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ml-IN/Resources.resw index f7a7d41790f5..101aff037b14 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ml-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ml-IN/Resources.resw @@ -145,10 +145,6 @@ പിന്നിലേക്ക് ToolTip caption for the back button - - അടയ്ക്കുക - Automation name for the nav view provided close button - കൂടുതല്‍ Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mr-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mr-IN/Resources.resw index f298e92dbd94..90bd5eca8e0e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mr-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mr-IN/Resources.resw @@ -145,10 +145,6 @@ मागे ToolTip caption for the back button - - बंद करा - Automation name for the nav view provided close button - अधिक Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ms-MY/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ms-MY/Resources.resw index 1327e326ef36..11db29b3718a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ms-MY/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ms-MY/Resources.resw @@ -145,10 +145,6 @@ Ke Belakang ToolTip caption for the back button - - Tutup - Automation name for the nav view provided close button - Selanjutnya Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mt-MT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mt-MT/Resources.resw index c587961c21ba..e9c53cc3675c 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mt-MT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/mt-MT/Resources.resw @@ -145,10 +145,6 @@ Lura ToolTip caption for the back button - - Agħlaq - Automation name for the nav view provided close button - Aktar Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nb-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nb-NO/Resources.resw index b6697f97ee4f..8350788f2271 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nb-NO/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nb-NO/Resources.resw @@ -145,10 +145,6 @@ Tilbake ToolTip caption for the back button - - Lukk - Automation name for the nav view provided close button - Mer Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ne-NP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ne-NP/Resources.resw index 765870043131..41b838d5fd63 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ne-NP/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ne-NP/Resources.resw @@ -145,10 +145,6 @@ पछाडि जानुहोस् ToolTip caption for the back button - - बन्द गर्नुहोस् - Automation name for the nav view provided close button - थप Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nl-NL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nl-NL/Resources.resw index afbad6c0c162..b3ab9492e5be 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nl-NL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nl-NL/Resources.resw @@ -145,10 +145,6 @@ Terug ToolTip caption for the back button - - Sluiten - Automation name for the nav view provided close button - Meer Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nn-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nn-NO/Resources.resw index 4d913b5367d0..0e71b23b0b64 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nn-NO/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/nn-NO/Resources.resw @@ -145,10 +145,6 @@ Tilbake ToolTip caption for the back button - - Lukk - Automation name for the nav view provided close button - Meir Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/or-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/or-IN/Resources.resw index 7dad47dd09a9..22c0e3eeac81 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/or-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/or-IN/Resources.resw @@ -145,10 +145,6 @@ ପଛ ToolTip caption for the back button - - ବନ୍ଦ କରନ୍ତୁ - Automation name for the nav view provided close button - ଅଧିକ Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pa/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pa/Resources.resw index 19f155843474..e7d69fa893f7 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pa/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pa/Resources.resw @@ -145,10 +145,6 @@ ਪਿੱਛੇ ਜਾਓ ToolTip caption for the back button - - ਬੰਦ ਕਰੋ - Automation name for the nav view provided close button - ਹੋਰ Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pl-PL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pl-PL/Resources.resw index cc1de45bc603..538d9a7cc339 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pl-PL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pl-PL/Resources.resw @@ -145,10 +145,6 @@ Wstecz ToolTip caption for the back button - - Zamknij - Automation name for the nav view provided close button - Więcej Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pt-BR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pt-BR/Resources.resw index bacff8febc45..0e5e931b7782 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pt-BR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pt-BR/Resources.resw @@ -145,10 +145,6 @@ Voltar ToolTip caption for the back button - - Fechar - Automation name for the nav view provided close button - Mais Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pt-PT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pt-PT/Resources.resw index f6fc756fd773..fafe10992a81 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pt-PT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/pt-PT/Resources.resw @@ -145,10 +145,6 @@ Anterior ToolTip caption for the back button - - Fechar - Automation name for the nav view provided close button - Mais Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ro-RO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ro-RO/Resources.resw index 47e97b118b86..d69d9e983b1a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ro-RO/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ro-RO/Resources.resw @@ -145,10 +145,6 @@ Înapoi ToolTip caption for the back button - - Închidere - Automation name for the nav view provided close button - Mai multe Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ru-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ru-RU/Resources.resw index e96ac2f68a86..e300a10130dd 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ru-RU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ru-RU/Resources.resw @@ -145,10 +145,6 @@ Назад ToolTip caption for the back button - - Закрыть - Automation name for the nav view provided close button - Еще Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sk-SK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sk-SK/Resources.resw index cf512d4a12c5..b19d4c17fd25 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sk-SK/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sk-SK/Resources.resw @@ -145,10 +145,6 @@ Späť ToolTip caption for the back button - - Zavrieť - Automation name for the nav view provided close button - Viac Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sl-SI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sl-SI/Resources.resw index 248ef4fa9ea6..72e99ca070ff 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sl-SI/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sl-SI/Resources.resw @@ -145,10 +145,6 @@ Nazaj ToolTip caption for the back button - - Zapri - Automation name for the nav view provided close button - Več Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sq-AL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sq-AL/Resources.resw index c98a29f53f9d..afc4c5e13057 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sq-AL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sq-AL/Resources.resw @@ -145,10 +145,6 @@ Prapa ToolTip caption for the back button - - Mbyll - Automation name for the nav view provided close button - Më shumë Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Cyrl-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Cyrl-BA/Resources.resw index 9e7a084310da..50b0cf4fe586 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Cyrl-BA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Cyrl-BA/Resources.resw @@ -145,10 +145,6 @@ Назад ToolTip caption for the back button - - Затвори - Automation name for the nav view provided close button - Још Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Cyrl-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Cyrl-RS/Resources.resw index 9e7a084310da..50b0cf4fe586 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Cyrl-RS/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Cyrl-RS/Resources.resw @@ -145,10 +145,6 @@ Назад ToolTip caption for the back button - - Затвори - Automation name for the nav view provided close button - Још Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Latn-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Latn-RS/Resources.resw index 816f9e0a0044..9c7cd6a4e0d5 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Latn-RS/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sr-Latn-RS/Resources.resw @@ -145,10 +145,6 @@ Nazad ToolTip caption for the back button - - Zatvori - Automation name for the nav view provided close button - Još Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sv-SE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sv-SE/Resources.resw index bf1b6dcd98d8..261ba76f6996 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sv-SE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/sv-SE/Resources.resw @@ -145,10 +145,6 @@ Tillbaka ToolTip caption for the back button - - Stäng - Automation name for the nav view provided close button - Mer Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ta-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ta-IN/Resources.resw index 1dfc4685559e..4f52db6054f9 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ta-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ta-IN/Resources.resw @@ -145,10 +145,6 @@ பின் ToolTip caption for the back button - - மூடு - Automation name for the nav view provided close button - மேலும் Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/te-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/te-IN/Resources.resw index be54667e7ecf..4b85b2c7a0d0 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/te-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/te-IN/Resources.resw @@ -145,10 +145,6 @@ వెనుకకు ToolTip caption for the back button - - మూసివేయి - Automation name for the nav view provided close button - మరిన్ని Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/th-TH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/th-TH/Resources.resw index 812fbe53ae38..70064eed40cc 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/th-TH/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/th-TH/Resources.resw @@ -145,10 +145,6 @@ ย้อนกลับ ToolTip caption for the back button - - ปิด - Automation name for the nav view provided close button - เพิ่มเติม Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/tr-TR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/tr-TR/Resources.resw index 9d5e428c6ddd..17f789881805 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/tr-TR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/tr-TR/Resources.resw @@ -145,10 +145,6 @@ Geri ToolTip caption for the back button - - Kapat - Automation name for the nav view provided close button - Diğer Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/tt-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/tt-RU/Resources.resw index 0fabd3c0ab37..4747f33aa2f2 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/tt-RU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/tt-RU/Resources.resw @@ -145,10 +145,6 @@ Артка ToolTip caption for the back button - - Ябу - Automation name for the nav view provided close button - Күбрәк Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ug-CN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ug-CN/Resources.resw index fdab50198ccd..ab84b66cff5b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ug-CN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ug-CN/Resources.resw @@ -145,10 +145,6 @@ ئارقىغا ToolTip caption for the back button - - يېپىش - Automation name for the nav view provided close button - كۆپرەك Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/uk-UA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/uk-UA/Resources.resw index 6442e99b32ff..9238cd428536 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/uk-UA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/uk-UA/Resources.resw @@ -145,10 +145,6 @@ Назад ToolTip caption for the back button - - Закрити - Automation name for the nav view provided close button - Додатково Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ur/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ur/Resources.resw index 7530c8698bbe..bb3730bb39c1 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ur/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/ur/Resources.resw @@ -145,10 +145,6 @@ واپس ToolTip caption for the back button - - بند کریں - Automation name for the nav view provided close button - مزید Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/uz-Latn-UZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/uz-Latn-UZ/Resources.resw index 290bc2e1cc3c..494e291466e3 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/uz-Latn-UZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/uz-Latn-UZ/Resources.resw @@ -145,10 +145,6 @@ Orqaga ToolTip caption for the back button - - Yopish - Automation name for the nav view provided close button - Yana Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/vi-VN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/vi-VN/Resources.resw index 5ecdc011afb4..41c4141cd19e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/vi-VN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/vi-VN/Resources.resw @@ -145,10 +145,6 @@ Lùi ToolTip caption for the back button - - Đóng - Automation name for the nav view provided close button - Xem thêm Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/zh-Hans/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/zh-Hans/Resources.resw index b78c23c61a53..5e5bac4df6f6 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/zh-Hans/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/zh-Hans/Resources.resw @@ -145,10 +145,6 @@ 返回 ToolTip caption for the back button - - 关闭 - Automation name for the nav view provided close button - 更多 Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/zh-Hant/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/zh-Hant/Resources.resw index c51c9386e2dc..496fa801d244 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/zh-Hant/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/NavigationView/Strings/zh-Hant/Resources.resw @@ -145,10 +145,6 @@ 上一步 ToolTip caption for the back button - - 關閉 - Automation name for the nav view provided close button - 更多 Automation name for the nav view more button when panel is on top diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/af-ZA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/af-ZA/Resources.resw index 8f7fcec91918..355651ffa5c6 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/af-ZA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/af-ZA/Resources.resw @@ -1521,4 +1521,8 @@ Pruim + + Sluit + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/am-et/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/am-et/Resources.resw index 99e61ede272f..a180dfc15063 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/am-et/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/am-et/Resources.resw @@ -1521,4 +1521,8 @@ ፕለም + + ዝጋ + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ar-SA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ar-SA/Resources.resw index e65a4cbb2f52..f90399be7341 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ar-SA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ar-SA/Resources.resw @@ -1521,4 +1521,8 @@ أرجواني مائل للزرقة + + إغلاق + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/as-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/as-IN/Resources.resw index 40f887e63348..32514c1eb9a4 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/as-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/as-IN/Resources.resw @@ -1521,4 +1521,8 @@ প্লাম + + বন্ধ কৰক + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/az-Latn-AZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/az-Latn-AZ/Resources.resw index 453c4e068853..750cce6fe462 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/az-Latn-AZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/az-Latn-AZ/Resources.resw @@ -1521,4 +1521,8 @@ Bənövşəyi rəng + + Bağla + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bg-BG/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bg-BG/Resources.resw index 22a63ee0e6a7..e0f851e2cfaa 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bg-BG/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bg-BG/Resources.resw @@ -1521,4 +1521,8 @@ Синя слива + + Затвори + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bn-IN/Resources.resw index b06d23194d32..56cc4e265b05 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bn-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bn-IN/Resources.resw @@ -1521,4 +1521,8 @@ তালের মতো রঙ + + বন্ধ + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bs-Latn-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bs-Latn-BA/Resources.resw index a3340c1f895d..3261d868261b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bs-Latn-BA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/bs-Latn-BA/Resources.resw @@ -1521,4 +1521,8 @@ Šljiva + + Zatvori + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ca-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ca-ES/Resources.resw index 280d49b59aab..58dda02d36a3 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ca-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ca-ES/Resources.resw @@ -1521,4 +1521,8 @@ Pruna + + Tanca + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/cs-CZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/cs-CZ/Resources.resw index ba8309e7c1e5..d1d75522af7c 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/cs-CZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/cs-CZ/Resources.resw @@ -1521,4 +1521,8 @@ Švestková + + Zavřít + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/cy-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/cy-GB/Resources.resw index bbf58fb3ebb5..7e3ef2e78364 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/cy-GB/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/cy-GB/Resources.resw @@ -1521,4 +1521,8 @@ Eirin + + Cau + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/da-DK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/da-DK/Resources.resw index 8fb1c0808e6e..61abebee14c8 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/da-DK/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/da-DK/Resources.resw @@ -1521,4 +1521,8 @@ Blomme + + Luk + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/de-DE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/de-DE/Resources.resw index 27266a49090c..b152cc6d8107 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/de-DE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/de-DE/Resources.resw @@ -1521,4 +1521,8 @@ Pflaume + + Schließen + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/el-GR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/el-GR/Resources.resw index e8c07bf0f4f9..250816ce8594 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/el-GR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/el-GR/Resources.resw @@ -1521,4 +1521,8 @@ Δαμασκηνί + + Κλείσιμο + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/en-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/en-GB/Resources.resw index 15395221e663..9d2533be7721 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/en-GB/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/en-GB/Resources.resw @@ -1521,4 +1521,8 @@ Plum + + Close + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/en-us/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/en-us/Resources.resw index 980a10fd921a..9958b2d35042 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/en-us/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/en-us/Resources.resw @@ -1509,4 +1509,8 @@ Plum + + Close + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/es-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/es-ES/Resources.resw new file mode 100644 index 000000000000..17b5a1702b93 --- /dev/null +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/es-ES/Resources.resw @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + Cerrar + Automation name for the nav view provided close button + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/es-MX/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/es-MX/Resources.resw index f8d8dab64d8b..32a36dd6c82c 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/es-MX/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/es-MX/Resources.resw @@ -1521,4 +1521,8 @@ Ciruela + + Cerrar + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/et-EE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/et-EE/Resources.resw index 34cabf7b4024..fb9f7279177d 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/et-EE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/et-EE/Resources.resw @@ -1521,4 +1521,8 @@ Ploomililla + + Sule + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/eu-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/eu-ES/Resources.resw index f97498d2945e..a93158191f6c 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/eu-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/eu-ES/Resources.resw @@ -1521,4 +1521,8 @@ Aran-kolorea + + Itxi + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fa-IR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fa-IR/Resources.resw index 92fbd19c0945..1991b8274c4e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fa-IR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fa-IR/Resources.resw @@ -1521,4 +1521,8 @@ گوجه‌ای + + بستن + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fi-FI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fi-FI/Resources.resw index 197003a9d0b2..d66f84adcb8f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fi-FI/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fi-FI/Resources.resw @@ -1521,4 +1521,8 @@ Luumu + + Sulje + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fil-ph/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fil-ph/Resources.resw index f39053bc1d32..c45032fcf22e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fil-ph/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fil-ph/Resources.resw @@ -1521,4 +1521,8 @@ Plum + + Isara + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fr-CA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fr-CA/Resources.resw index dd4b082d411b..2adc9b817f02 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fr-CA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fr-CA/Resources.resw @@ -1521,4 +1521,8 @@ Prune + + Fermer + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fr-FR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fr-FR/Resources.resw index c83eaf692400..67faca967f1d 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fr-FR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/fr-FR/Resources.resw @@ -1521,4 +1521,8 @@ Prune + + Fermer + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ga-IE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ga-IE/Resources.resw index a2a14a53af79..35448ebda858 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ga-IE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ga-IE/Resources.resw @@ -1521,4 +1521,8 @@ Plumchorcra + + Dún + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gd-gb/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gd-gb/Resources.resw index a220f5f5a449..e6a2912bf756 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gd-gb/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gd-gb/Resources.resw @@ -1521,4 +1521,8 @@ Dath a’ phlumais + + Dùin + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gl-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gl-ES/Resources.resw index bb6d71fd0ce9..160727145340 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gl-ES/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gl-ES/Resources.resw @@ -1521,4 +1521,8 @@ Morado + + Pechar + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gu-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gu-IN/Resources.resw index 6c530ce2aa8a..c24c64b15e65 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gu-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/gu-IN/Resources.resw @@ -1521,4 +1521,8 @@ પ્લમ જેવો + + બંધ કરો + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/he-IL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/he-IL/Resources.resw index 17c46dda6b3e..a550d2f7de37 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/he-IL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/he-IL/Resources.resw @@ -1521,4 +1521,8 @@ סגול-שזיף + + סגור + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hi-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hi-IN/Resources.resw index a1bb3672ad7b..8a39d26a9036 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hi-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hi-IN/Resources.resw @@ -1521,4 +1521,8 @@ प्लम + + बंद करें + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hr-HR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hr-HR/Resources.resw index 55f6580ea0a5..80fafdcf3f8e 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hr-HR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hr-HR/Resources.resw @@ -1521,4 +1521,8 @@ Šljiva + + Zatvori + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hu-HU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hu-HU/Resources.resw index bcd4bb6be07c..068b31dc8ac0 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hu-HU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hu-HU/Resources.resw @@ -1521,4 +1521,8 @@ Szilvakék + + Bezárás + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hy-AM/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hy-AM/Resources.resw index b8af4e01e7e6..b37fe932d436 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hy-AM/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/hy-AM/Resources.resw @@ -1521,4 +1521,8 @@ Սալորագույն + + Փակել + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/id-ID/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/id-ID/Resources.resw index fcf09333e9db..6ce212337e51 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/id-ID/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/id-ID/Resources.resw @@ -1521,4 +1521,8 @@ Plum + + Tutup + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/is-IS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/is-IS/Resources.resw index 3f99c351fe7c..ebcca9c9925d 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/is-IS/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/is-IS/Resources.resw @@ -1521,4 +1521,8 @@ Plómulitaður + + Loka + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/it-IT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/it-IT/Resources.resw index 9b8f69c9070b..ce406c0d3276 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/it-IT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/it-IT/Resources.resw @@ -1521,4 +1521,8 @@ Prugna + + Chiudi + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ja-JP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ja-JP/Resources.resw index 5854b5b4f59a..cba873773e04 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ja-JP/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ja-JP/Resources.resw @@ -1521,4 +1521,8 @@ プラム + + 閉じる + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ka-GE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ka-GE/Resources.resw index 6f3bf626aa1b..fc7f08a23b88 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ka-GE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ka-GE/Resources.resw @@ -1521,4 +1521,8 @@ ქლიავისფერი + + დახურვა + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kk-KZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kk-KZ/Resources.resw index d1df74f8fa29..88b25dabdc92 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kk-KZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kk-KZ/Resources.resw @@ -1521,4 +1521,8 @@ Алша + + Жабу + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/km-kh/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/km-kh/Resources.resw index 53827b6a7def..4f6f36a6c763 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/km-kh/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/km-kh/Resources.resw @@ -1521,4 +1521,8 @@ ស្វាយ​ក្រហមចាស់ + + បិទ + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kn-in/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kn-in/Resources.resw index 9060e8240d7c..4c6f75c35518 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kn-in/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kn-in/Resources.resw @@ -1521,4 +1521,8 @@ ಪ್ಲಮ್ + + ಮುಚ್ಚಿರಿ + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ko-KR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ko-KR/Resources.resw index 6bd6e9d94acb..dfc103ee47a8 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ko-KR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ko-KR/Resources.resw @@ -1521,4 +1521,8 @@ 진한 보라 + + 닫기 + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kok-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kok-IN/Resources.resw index ae828154167d..0e887f879be4 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kok-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/kok-IN/Resources.resw @@ -1521,4 +1521,8 @@ खिसमीस + + बंद करचें + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lb-LU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lb-LU/Resources.resw index aa558f86dc1f..49df6de0d60a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lb-LU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lb-LU/Resources.resw @@ -1521,4 +1521,8 @@ Promm + + Zoumaachen + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lo-la/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lo-la/Resources.resw index 8aa3333397a6..cec0de9eb92f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lo-la/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lo-la/Resources.resw @@ -1521,4 +1521,8 @@ ສີມ່ວງເຂັ້ມ + + ປິດ + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lt-LT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lt-LT/Resources.resw index ad66eb9de6df..6c490d6ecf85 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lt-LT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lt-LT/Resources.resw @@ -1521,4 +1521,8 @@ Slyvinė + + Uždaryti + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lv-LV/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lv-LV/Resources.resw index aa23f962b510..49a69d0b369d 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lv-LV/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/lv-LV/Resources.resw @@ -1521,4 +1521,8 @@ Plūmju + + Aizvērt + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mi-NZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mi-NZ/Resources.resw index 081e41b4d9c6..114bb0e01023 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mi-NZ/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mi-NZ/Resources.resw @@ -1521,4 +1521,8 @@ Paramu + + Kati + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mk-mk/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mk-mk/Resources.resw index 15a89dc30d8d..d1d73962cecf 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mk-mk/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mk-mk/Resources.resw @@ -1521,4 +1521,8 @@ Темновиолетова + + Затвори + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ml-in/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ml-in/Resources.resw index 612ac5a2aa6b..d0d7bfb94126 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ml-in/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ml-in/Resources.resw @@ -1521,4 +1521,8 @@ പ്ലം + + അടയ്ക്കുക + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mr-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mr-IN/Resources.resw index 22c6b5f1ca93..4e174c4df3c8 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mr-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mr-IN/Resources.resw @@ -1521,4 +1521,8 @@ प्लम + + बंद करा + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ms-MY/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ms-MY/Resources.resw index 43c72558051b..9973ff017b70 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ms-MY/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ms-MY/Resources.resw @@ -1521,4 +1521,8 @@ Plum + + Tutup + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mt-MT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mt-MT/Resources.resw index 6e2eda1327cd..b9e4c7f5e72f 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mt-MT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/mt-MT/Resources.resw @@ -1521,4 +1521,8 @@ Vjola fil-marun + + Agħlaq + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nb-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nb-NO/Resources.resw index 68c39abee9dc..2a9392ad9519 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nb-NO/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nb-NO/Resources.resw @@ -1521,4 +1521,8 @@ Plommefarget + + Lukk + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ne-NP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ne-NP/Resources.resw index e1928205b8b4..7c6cb780c494 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ne-NP/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ne-NP/Resources.resw @@ -1521,4 +1521,8 @@ आरूबखडा + + बन्द गर्नुहोस् + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nl-NL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nl-NL/Resources.resw index 97f924f978c8..9086b29214a0 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nl-NL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nl-NL/Resources.resw @@ -1521,4 +1521,8 @@ Donkerpaars + + Sluiten + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nn-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nn-NO/Resources.resw index 980895710e17..0c032ddd145a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nn-NO/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/nn-NO/Resources.resw @@ -1521,4 +1521,8 @@ Plomme + + Lukk + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/or-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/or-IN/Resources.resw index b7f5d1a13219..5bc1a1177064 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/or-IN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/or-IN/Resources.resw @@ -1521,4 +1521,8 @@ ପ୍ଲମ୍‌ + + ବନ୍ଦ କରନ୍ତୁ + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pa/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pa/Resources.resw index ad7f1d6e2a9b..954827c50d1b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pa/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pa/Resources.resw @@ -1395,4 +1395,8 @@ IME ਬੰਦ - + + ਬੰਦ ਕਰੋ + Automation name for the nav view provided close button + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pl-PL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pl-PL/Resources.resw index 230da579698f..fed2e6623d95 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pl-PL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pl-PL/Resources.resw @@ -1521,4 +1521,8 @@ Śliwkowy + + Zamknij + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pt-BR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pt-BR/Resources.resw index 26e8cfc23e2d..938f185d2983 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pt-BR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pt-BR/Resources.resw @@ -1521,4 +1521,8 @@ Ameixa + + Fechar + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pt-PT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pt-PT/Resources.resw index 211c40f53c24..e3c042a6aa93 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pt-PT/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/pt-PT/Resources.resw @@ -1521,4 +1521,8 @@ Ameixa + + Fechar + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ro-RO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ro-RO/Resources.resw index fc28858c09bd..8e2a8ac88cf6 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ro-RO/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ro-RO/Resources.resw @@ -1521,4 +1521,8 @@ Violet prună + + Închidere + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ru-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ru-RU/Resources.resw index c3ac2fa51d5d..474c034a51a8 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ru-RU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ru-RU/Resources.resw @@ -1521,4 +1521,8 @@ Бледно-фиолетовый + + Закрыть + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sk-SK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sk-SK/Resources.resw index b4b8810cf6cf..4c398760a891 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sk-SK/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sk-SK/Resources.resw @@ -1521,4 +1521,8 @@ Slivková + + Zavrieť + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sl-SI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sl-SI/Resources.resw index f57501734414..0039dbe15632 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sl-SI/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sl-SI/Resources.resw @@ -1521,4 +1521,8 @@ Sliva + + Zapri + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sq-AL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sq-AL/Resources.resw index 54d2dced7c3b..455a7b847e46 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sq-AL/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sq-AL/Resources.resw @@ -1521,4 +1521,8 @@ Ngjyrë kumbulle + + Mbyll + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Cyrl-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Cyrl-BA/Resources.resw index 9e74e2d71f7a..632428a7bd37 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Cyrl-BA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Cyrl-BA/Resources.resw @@ -1521,4 +1521,8 @@ Тамнољубичаста + + Затвори + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Cyrl-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Cyrl-RS/Resources.resw index 282b6c57dff0..c83195af9fa7 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Cyrl-RS/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Cyrl-RS/Resources.resw @@ -1521,4 +1521,8 @@ Тамнољубичаста + + Затвори + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Latn-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Latn-RS/Resources.resw index 6cf49c1449fa..c76185898177 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Latn-RS/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sr-Latn-RS/Resources.resw @@ -1521,4 +1521,8 @@ Tamnoljubičasta + + Zatvori + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sv-SE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sv-SE/Resources.resw index e14430c7227a..aa36822027c9 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sv-SE/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/sv-SE/Resources.resw @@ -1521,4 +1521,8 @@ Plommon + + Stäng + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ta-in/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ta-in/Resources.resw index 3cd948e37447..0274ee611184 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ta-in/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ta-in/Resources.resw @@ -1521,4 +1521,8 @@ பிளம் + + மூடு + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/te-in/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/te-in/Resources.resw index bc10dcfe69ee..235dce85ede6 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/te-in/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/te-in/Resources.resw @@ -1521,4 +1521,8 @@ నేరేడు రంగు + + మూసివేయి + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/th-TH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/th-TH/Resources.resw index b2fcd231985f..019278b24e31 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/th-TH/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/th-TH/Resources.resw @@ -1521,4 +1521,8 @@ ม่วงพลัม + + ปิด + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/tr-TR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/tr-TR/Resources.resw index e6b459dfb6f4..5f4247846e8b 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/tr-TR/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/tr-TR/Resources.resw @@ -1521,4 +1521,8 @@ Erik rengi + + Kapat + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/tt-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/tt-RU/Resources.resw index e65d895bd5e8..8e88ac3e865d 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/tt-RU/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/tt-RU/Resources.resw @@ -1521,4 +1521,8 @@ Чия төсе + + Ябу + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ug-CN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ug-CN/Resources.resw index f29cbc747f48..07e6a69565ee 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ug-CN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ug-CN/Resources.resw @@ -1521,4 +1521,8 @@ قارائۆرۈك + + يېپىش + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/uk-UA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/uk-UA/Resources.resw index 4a334f082385..b90a765aea74 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/uk-UA/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/uk-UA/Resources.resw @@ -1521,4 +1521,8 @@ Сливовий + + Закрити + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ur/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ur/Resources.resw index b69c579d22b1..da9976d5b538 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ur/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/ur/Resources.resw @@ -1395,4 +1395,8 @@ IME آف - + + بند کریں + Automation name for the nav view provided close button + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/uz-latn-uz/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/uz-latn-uz/Resources.resw index 01970a0aeb48..5a186ca806bd 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/uz-latn-uz/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/uz-latn-uz/Resources.resw @@ -1521,4 +1521,8 @@ Xira binafsharang + + Yopish + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/vi-VN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/vi-VN/Resources.resw index 227823dede0d..d2331f567c5a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/vi-VN/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/vi-VN/Resources.resw @@ -1521,4 +1521,8 @@ Màu mận chín + + Đóng + Automation name for the nav view provided close button + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/zh-Hans/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/zh-Hans/Resources.resw index e2f39d392bf9..c725a66cd97a 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/zh-Hans/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/zh-Hans/Resources.resw @@ -1395,4 +1395,8 @@ 输入法关闭 - + + 关闭 + Automation name for the nav view provided close button + + \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/zh-Hant/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/zh-Hant/Resources.resw index a427d0bbbdc8..990890857793 100644 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/zh-Hant/Resources.resw +++ b/src/Uno.UI/Microsoft/UI/Xaml/Controls/WinUIResources/zh-Hant/Resources.resw @@ -1395,4 +1395,8 @@ 關閉 IME - + + 關閉 + Automation name for the nav view provided close button + + \ No newline at end of file From 12399ac03ce384ae2c7246ab3ac5b81233a079ca Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:41:57 -0500 Subject: [PATCH 553/664] chore: Remove unused ProgressBar string resources --- .../ProgressBar/Strings/af-ZA/Resources.resw | 132 ------------------ .../ProgressBar/Strings/am-ET/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ar-SA/Resources.resw | 132 ------------------ .../ProgressBar/Strings/as-IN/Resources.resw | 132 ------------------ .../Strings/az-Latn-AZ/Resources.resw | 132 ------------------ .../ProgressBar/Strings/bg-BG/Resources.resw | 132 ------------------ .../ProgressBar/Strings/bn-IN/Resources.resw | 132 ------------------ .../Strings/bs-Latn-BA/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ca-ES/Resources.resw | 132 ------------------ .../ca-Es-VALENCIA/Resources.resw_ignored | 132 ------------------ .../ProgressBar/Strings/cs-CZ/Resources.resw | 132 ------------------ .../ProgressBar/Strings/cy-GB/Resources.resw | 132 ------------------ .../ProgressBar/Strings/da-DK/Resources.resw | 132 ------------------ .../ProgressBar/Strings/de-DE/Resources.resw | 132 ------------------ .../ProgressBar/Strings/el-GR/Resources.resw | 132 ------------------ .../ProgressBar/Strings/en-GB/Resources.resw | 132 ------------------ .../ProgressBar/Strings/en-us/Resources.resw | 132 ------------------ .../ProgressBar/Strings/es-ES/Resources.resw | 132 ------------------ .../ProgressBar/Strings/es-MX/Resources.resw | 132 ------------------ .../ProgressBar/Strings/et-EE/Resources.resw | 132 ------------------ .../ProgressBar/Strings/eu-ES/Resources.resw | 132 ------------------ .../ProgressBar/Strings/fa-IR/Resources.resw | 132 ------------------ .../ProgressBar/Strings/fi-FI/Resources.resw | 132 ------------------ .../ProgressBar/Strings/fil-PH/Resources.resw | 132 ------------------ .../ProgressBar/Strings/fr-CA/Resources.resw | 132 ------------------ .../ProgressBar/Strings/fr-FR/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ga-IE/Resources.resw | 132 ------------------ .../ProgressBar/Strings/gd-gb/Resources.resw | 132 ------------------ .../ProgressBar/Strings/gl-ES/Resources.resw | 132 ------------------ .../ProgressBar/Strings/gu-IN/Resources.resw | 132 ------------------ .../ProgressBar/Strings/he-IL/Resources.resw | 132 ------------------ .../ProgressBar/Strings/hi-IN/Resources.resw | 132 ------------------ .../ProgressBar/Strings/hr-HR/Resources.resw | 132 ------------------ .../ProgressBar/Strings/hu-HU/Resources.resw | 132 ------------------ .../ProgressBar/Strings/hy-AM/Resources.resw | 132 ------------------ .../ProgressBar/Strings/id-ID/Resources.resw | 132 ------------------ .../ProgressBar/Strings/is-IS/Resources.resw | 132 ------------------ .../ProgressBar/Strings/it-IT/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ja-JP/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ka-GE/Resources.resw | 132 ------------------ .../ProgressBar/Strings/kk-KZ/Resources.resw | 132 ------------------ .../ProgressBar/Strings/km-KH/Resources.resw | 132 ------------------ .../ProgressBar/Strings/kn-IN/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ko-KR/Resources.resw | 132 ------------------ .../ProgressBar/Strings/kok-IN/Resources.resw | 132 ------------------ .../ProgressBar/Strings/lb-LU/Resources.resw | 132 ------------------ .../ProgressBar/Strings/lo-LA/Resources.resw | 132 ------------------ .../ProgressBar/Strings/lt-LT/Resources.resw | 132 ------------------ .../ProgressBar/Strings/lv-LV/Resources.resw | 132 ------------------ .../ProgressBar/Strings/mi-NZ/Resources.resw | 132 ------------------ .../ProgressBar/Strings/mk-MK/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ml-IN/Resources.resw | 132 ------------------ .../ProgressBar/Strings/mr-IN/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ms-MY/Resources.resw | 132 ------------------ .../ProgressBar/Strings/mt-MT/Resources.resw | 132 ------------------ .../ProgressBar/Strings/nb-NO/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ne-NP/Resources.resw | 132 ------------------ .../ProgressBar/Strings/nl-NL/Resources.resw | 132 ------------------ .../ProgressBar/Strings/nn-NO/Resources.resw | 132 ------------------ .../ProgressBar/Strings/or-IN/Resources.resw | 132 ------------------ .../ProgressBar/Strings/pa/Resources.resw | 132 ------------------ .../ProgressBar/Strings/pl-PL/Resources.resw | 132 ------------------ .../ProgressBar/Strings/pt-BR/Resources.resw | 132 ------------------ .../ProgressBar/Strings/pt-PT/Resources.resw | 132 ------------------ .../Strings/quz-PE/Resources.resw_ignored | 132 ------------------ .../ProgressBar/Strings/ro-RO/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ru-RU/Resources.resw | 132 ------------------ .../ProgressBar/Strings/sk-SK/Resources.resw | 132 ------------------ .../ProgressBar/Strings/sl-SI/Resources.resw | 132 ------------------ .../ProgressBar/Strings/sq-AL/Resources.resw | 132 ------------------ .../Strings/sr-Cyrl-BA/Resources.resw | 132 ------------------ .../Strings/sr-Cyrl-RS/Resources.resw | 132 ------------------ .../Strings/sr-Latn-RS/Resources.resw | 132 ------------------ .../ProgressBar/Strings/sv-SE/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ta-IN/Resources.resw | 132 ------------------ .../ProgressBar/Strings/te-IN/Resources.resw | 132 ------------------ .../ProgressBar/Strings/th-TH/Resources.resw | 132 ------------------ .../ProgressBar/Strings/tr-TR/Resources.resw | 132 ------------------ .../ProgressBar/Strings/tt-RU/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ug-CN/Resources.resw | 132 ------------------ .../ProgressBar/Strings/uk-UA/Resources.resw | 132 ------------------ .../ProgressBar/Strings/ur/Resources.resw | 132 ------------------ .../Strings/uz-Latn-UZ/Resources.resw | 132 ------------------ .../ProgressBar/Strings/vi-VN/Resources.resw | 132 ------------------ .../Strings/zh-Hans/Resources.resw | 132 ------------------ .../Strings/zh-Hant/Resources.resw | 132 ------------------ 86 files changed, 11352 deletions(-) delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/af-ZA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/am-ET/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ar-SA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/as-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/az-Latn-AZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bg-BG/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bn-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bs-Latn-BA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ca-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ca-Es-VALENCIA/Resources.resw_ignored delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/cs-CZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/cy-GB/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/da-DK/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/de-DE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/el-GR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/en-GB/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/en-us/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/es-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/es-MX/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/et-EE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/eu-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fa-IR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fi-FI/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fil-PH/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fr-CA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fr-FR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ga-IE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gd-gb/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gl-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gu-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/he-IL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hi-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hr-HR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hu-HU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hy-AM/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/id-ID/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/is-IS/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/it-IT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ja-JP/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ka-GE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kk-KZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/km-KH/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kn-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ko-KR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kok-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lb-LU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lo-LA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lt-LT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lv-LV/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mi-NZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mk-MK/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ml-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mr-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ms-MY/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mt-MT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nb-NO/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ne-NP/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nl-NL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nn-NO/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/or-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pa/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pl-PL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pt-BR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pt-PT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/quz-PE/Resources.resw_ignored delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ro-RO/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ru-RU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sk-SK/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sl-SI/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sq-AL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Cyrl-BA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Cyrl-RS/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Latn-RS/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sv-SE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ta-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/te-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/th-TH/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/tr-TR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/tt-RU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ug-CN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/uk-UA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ur/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/uz-Latn-UZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/vi-VN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/zh-Hans/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/zh-Hant/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/af-ZA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/af-ZA/Resources.resw deleted file mode 100644 index 0d9266551459..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/af-ZA/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fout - This is used to announce Error state. - - - Besig - This is used to announce Indeterminate state. - - - Onderbreek - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/am-ET/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/am-ET/Resources.resw deleted file mode 100644 index e09976309cf9..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/am-ET/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ስህተት - This is used to announce Error state. - - - ባተሌ - This is used to announce Indeterminate state. - - - ላፍታ ቆሟል - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ar-SA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ar-SA/Resources.resw deleted file mode 100644 index 0e2f350c7c49..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ar-SA/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - خطأ - This is used to announce Error state. - - - مشغول - This is used to announce Indeterminate state. - - - متوقف مؤقتًا - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/as-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/as-IN/Resources.resw deleted file mode 100644 index 75d402c28c84..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/as-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ত্ৰুটি - This is used to announce Error state. - - - ব্যস্ত - This is used to announce Indeterminate state. - - - বিৰাম দিয়া হৈছে - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/az-Latn-AZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/az-Latn-AZ/Resources.resw deleted file mode 100644 index 2beb3fb7364c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/az-Latn-AZ/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Səhv - This is used to announce Error state. - - - Məşğuldur - This is used to announce Indeterminate state. - - - Fasilə verilib - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bg-BG/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bg-BG/Resources.resw deleted file mode 100644 index 97cd2df0d044..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bg-BG/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Грешка - This is used to announce Error state. - - - Зает/а - This is used to announce Indeterminate state. - - - На пауза - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bn-IN/Resources.resw deleted file mode 100644 index 316305f9f4a3..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bn-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ত্রুটি - This is used to announce Error state. - - - ব্যস্ত - This is used to announce Indeterminate state. - - - বিরতি দেওয়া হয়েছে - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bs-Latn-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bs-Latn-BA/Resources.resw deleted file mode 100644 index cabe51c6df5a..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/bs-Latn-BA/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Greška - This is used to announce Error state. - - - Zauzet - This is used to announce Indeterminate state. - - - Pauzirano - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ca-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ca-ES/Resources.resw deleted file mode 100644 index d63cf6d2e8db..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ca-ES/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Error - This is used to announce Error state. - - - Ocupat - This is used to announce Indeterminate state. - - - En pausa - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ca-Es-VALENCIA/Resources.resw_ignored b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ca-Es-VALENCIA/Resources.resw_ignored deleted file mode 100644 index 45a2ee3df41b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ca-Es-VALENCIA/Resources.resw_ignored +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Error - This is used to announce Error state. - - - Ocupat/Ocupada - This is used to announce Indeterminate state. - - - En pausa - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/cs-CZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/cs-CZ/Resources.resw deleted file mode 100644 index 8a7be351994e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/cs-CZ/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Chyba - This is used to announce Error state. - - - Zaneprázdněn - This is used to announce Indeterminate state. - - - Pozastaveno - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/cy-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/cy-GB/Resources.resw deleted file mode 100644 index a7838f38715b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/cy-GB/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Gwall - This is used to announce Error state. - - - Yn brysur - This is used to announce Indeterminate state. - - - Wedi rhewi - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/da-DK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/da-DK/Resources.resw deleted file mode 100644 index 6d5a4b27fa04..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/da-DK/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fejl - This is used to announce Error state. - - - Optaget - This is used to announce Indeterminate state. - - - På pause - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/de-DE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/de-DE/Resources.resw deleted file mode 100644 index ae82901265c4..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/de-DE/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fehler - This is used to announce Error state. - - - Beschäftigt - This is used to announce Indeterminate state. - - - Angehalten - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/el-GR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/el-GR/Resources.resw deleted file mode 100644 index f26e63e0cbbf..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/el-GR/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Σφάλμα - This is used to announce Error state. - - - Απασχολημένος - This is used to announce Indeterminate state. - - - Σε παύση - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/en-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/en-GB/Resources.resw deleted file mode 100644 index 83ae0c2caf1a..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/en-GB/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Error - This is used to announce Error state. - - - Busy - This is used to announce Indeterminate state. - - - Paused - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/en-us/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/en-us/Resources.resw deleted file mode 100644 index 83ae0c2caf1a..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/en-us/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Error - This is used to announce Error state. - - - Busy - This is used to announce Indeterminate state. - - - Paused - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/es-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/es-ES/Resources.resw deleted file mode 100644 index 8192146314fc..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/es-ES/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Error - This is used to announce Error state. - - - Ocupado - This is used to announce Indeterminate state. - - - En pausa - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/es-MX/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/es-MX/Resources.resw deleted file mode 100644 index dc0cb915d36b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/es-MX/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Error - This is used to announce Error state. - - - Ocupado - This is used to announce Indeterminate state. - - - Pausado - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/et-EE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/et-EE/Resources.resw deleted file mode 100644 index 2bd911246878..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/et-EE/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tõrge - This is used to announce Error state. - - - Hõivatud - This is used to announce Indeterminate state. - - - Peatatud - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/eu-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/eu-ES/Resources.resw deleted file mode 100644 index 067729e62919..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/eu-ES/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Errorea - This is used to announce Error state. - - - Lanpetuta - This is used to announce Indeterminate state. - - - Pausatuta - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fa-IR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fa-IR/Resources.resw deleted file mode 100644 index 78de23db10e2..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fa-IR/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - خطا - This is used to announce Error state. - - - مشغول - This is used to announce Indeterminate state. - - - مکث شده - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fi-FI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fi-FI/Resources.resw deleted file mode 100644 index a662f3f5863e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fi-FI/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Virhe - This is used to announce Error state. - - - Varattu - This is used to announce Indeterminate state. - - - Keskeytetty - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fil-PH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fil-PH/Resources.resw deleted file mode 100644 index 0b6e5f01e7c2..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fil-PH/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Error - This is used to announce Error state. - - - Abala - This is used to announce Indeterminate state. - - - Naka-pause - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fr-CA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fr-CA/Resources.resw deleted file mode 100644 index 643fa28dc9ef..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fr-CA/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Erreur - This is used to announce Error state. - - - Occupé(e) - This is used to announce Indeterminate state. - - - En pause - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fr-FR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fr-FR/Resources.resw deleted file mode 100644 index 643fa28dc9ef..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/fr-FR/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Erreur - This is used to announce Error state. - - - Occupé(e) - This is used to announce Indeterminate state. - - - En pause - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ga-IE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ga-IE/Resources.resw deleted file mode 100644 index 53055c6a5526..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ga-IE/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Earráid - This is used to announce Error state. - - - Gnóthach - This is used to announce Indeterminate state. - - - Ar sos - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gd-gb/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gd-gb/Resources.resw deleted file mode 100644 index 58be0faf5944..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gd-gb/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Mearachd - This is used to announce Error state. - - - Trang - This is used to announce Indeterminate state. - - - Na stad - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gl-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gl-ES/Resources.resw deleted file mode 100644 index d2083e09cf7e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gl-ES/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Erro - This is used to announce Error state. - - - Ocupado - This is used to announce Indeterminate state. - - - En pausa - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gu-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gu-IN/Resources.resw deleted file mode 100644 index 20da17754fe2..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/gu-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ભૂલ - This is used to announce Error state. - - - વ્યસ્ત - This is used to announce Indeterminate state. - - - થોભાવ્યું - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/he-IL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/he-IL/Resources.resw deleted file mode 100644 index 2dddb973aef2..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/he-IL/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - שגיאה - This is used to announce Error state. - - - עסוק/ה - This is used to announce Indeterminate state. - - - מושהה - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hi-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hi-IN/Resources.resw deleted file mode 100644 index 48eedf0ff466..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hi-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - त्रुटि - This is used to announce Error state. - - - व्यस्त - This is used to announce Indeterminate state. - - - विराम दिया गया - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hr-HR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hr-HR/Resources.resw deleted file mode 100644 index a9d14933882f..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hr-HR/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Pogreška - This is used to announce Error state. - - - Zauzet - This is used to announce Indeterminate state. - - - Pauzirano - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hu-HU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hu-HU/Resources.resw deleted file mode 100644 index af9a46a64723..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hu-HU/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Hiba - This is used to announce Error state. - - - Elfoglalt - This is used to announce Indeterminate state. - - - Felfüggesztve - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hy-AM/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hy-AM/Resources.resw deleted file mode 100644 index 08b2910352a2..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/hy-AM/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Սխալ - This is used to announce Error state. - - - Զբաղված է - This is used to announce Indeterminate state. - - - Դադարեցված է - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/id-ID/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/id-ID/Resources.resw deleted file mode 100644 index 05ed86ccbd6e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/id-ID/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Kesalahan - This is used to announce Error state. - - - Sibuk - This is used to announce Indeterminate state. - - - Dijeda - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/is-IS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/is-IS/Resources.resw deleted file mode 100644 index 4d8b6565690e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/is-IS/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Villa - This is used to announce Error state. - - - Upptekin(n) - This is used to announce Indeterminate state. - - - í bið - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/it-IT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/it-IT/Resources.resw deleted file mode 100644 index 682cb2849cba..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/it-IT/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Errore - This is used to announce Error state. - - - Occupato - This is used to announce Indeterminate state. - - - In pausa - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ja-JP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ja-JP/Resources.resw deleted file mode 100644 index 5e5b538cc20c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ja-JP/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - エラー - This is used to announce Error state. - - - 取り込み中 - This is used to announce Indeterminate state. - - - 一時停止 - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ka-GE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ka-GE/Resources.resw deleted file mode 100644 index e03385d52270..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ka-GE/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - შეცდომა - This is used to announce Error state. - - - დაკავებულია - This is used to announce Indeterminate state. - - - დაპაუზებული - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kk-KZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kk-KZ/Resources.resw deleted file mode 100644 index 868635ec2c00..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kk-KZ/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Қате - This is used to announce Error state. - - - Бос емес - This is used to announce Indeterminate state. - - - Кідіртілді - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/km-KH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/km-KH/Resources.resw deleted file mode 100644 index f1bf26ab0af7..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/km-KH/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - កំហុស - This is used to announce Error state. - - - ជាប់រវល់ - This is used to announce Indeterminate state. - - - ផ្អាក - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kn-IN/Resources.resw deleted file mode 100644 index 8df8c5bd36b8..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kn-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ದೋಷ - This is used to announce Error state. - - - ನಿರತ - This is used to announce Indeterminate state. - - - ವಿರಾಮಗೊಳಿಸಿದೆ - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ko-KR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ko-KR/Resources.resw deleted file mode 100644 index 7801a3c0addb..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ko-KR/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 오류 - This is used to announce Error state. - - - 다른 용무 중 - This is used to announce Indeterminate state. - - - 일시 중지됨 - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kok-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kok-IN/Resources.resw deleted file mode 100644 index c29485a19f2b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/kok-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - त्रुटी - This is used to announce Error state. - - - व्यस्त - This is used to announce Indeterminate state. - - - थांबयलां - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lb-LU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lb-LU/Resources.resw deleted file mode 100644 index 463b1d6f2e5a..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lb-LU/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Feeler - This is used to announce Error state. - - - Besat - This is used to announce Indeterminate state. - - - Op Paus gestallt - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lo-LA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lo-LA/Resources.resw deleted file mode 100644 index 19e6618df76c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lo-LA/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ຜິດພາດ - This is used to announce Error state. - - - ບໍ່ຫວ່າງ - This is used to announce Indeterminate state. - - - ຢຸດຊົ່ວຄາວ - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lt-LT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lt-LT/Resources.resw deleted file mode 100644 index c71832ee7a51..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lt-LT/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Klaida - This is used to announce Error state. - - - Užsiėmęs - This is used to announce Indeterminate state. - - - Pristabdyta - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lv-LV/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lv-LV/Resources.resw deleted file mode 100644 index 8e9c989027d6..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/lv-LV/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Kļūda - This is used to announce Error state. - - - Aizņemts - This is used to announce Indeterminate state. - - - Pauzēts - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mi-NZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mi-NZ/Resources.resw deleted file mode 100644 index ba13e5acabf5..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mi-NZ/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Hapa - This is used to announce Error state. - - - Arokē - This is used to announce Indeterminate state. - - - Kua tūtataritia - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mk-MK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mk-MK/Resources.resw deleted file mode 100644 index 66ff16abb660..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mk-MK/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Грешка - This is used to announce Error state. - - - Зафатено - This is used to announce Indeterminate state. - - - Паузирано - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ml-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ml-IN/Resources.resw deleted file mode 100644 index 03801fe0e0e1..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ml-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - തെറ്റ് - This is used to announce Error state. - - - തിരക്കിൽ - This is used to announce Indeterminate state. - - - അൽപം നിർത്തുക - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mr-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mr-IN/Resources.resw deleted file mode 100644 index f8867a2cadd4..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mr-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - त्रुटी - This is used to announce Error state. - - - व्यस्त - This is used to announce Indeterminate state. - - - विराम दिला - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ms-MY/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ms-MY/Resources.resw deleted file mode 100644 index d9a1fc2fdcef..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ms-MY/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ralat - This is used to announce Error state. - - - Sibuk - This is used to announce Indeterminate state. - - - Dijeda - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mt-MT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mt-MT/Resources.resw deleted file mode 100644 index 104ebedba112..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/mt-MT/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Żball - This is used to announce Error state. - - - Okkupat - This is used to announce Indeterminate state. - - - Sospiż - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nb-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nb-NO/Resources.resw deleted file mode 100644 index bd4aadef7f03..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nb-NO/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Feil - This is used to announce Error state. - - - Opptatt - This is used to announce Indeterminate state. - - - Midlertidig stanset - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ne-NP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ne-NP/Resources.resw deleted file mode 100644 index 3c65ff766c58..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ne-NP/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - त्रुटि - This is used to announce Error state. - - - व्यस्त - This is used to announce Indeterminate state. - - - पज गरियो - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nl-NL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nl-NL/Resources.resw deleted file mode 100644 index 1bf85e3e00d9..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nl-NL/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fout - This is used to announce Error state. - - - Bezig - This is used to announce Indeterminate state. - - - Onderbroken - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nn-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nn-NO/Resources.resw deleted file mode 100644 index cbd9fc11e1ef..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/nn-NO/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Feil - This is used to announce Error state. - - - Oppteken - This is used to announce Indeterminate state. - - - Mellombels stansa - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/or-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/or-IN/Resources.resw deleted file mode 100644 index 826185c005e7..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/or-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ତ୍ରୁଟି - This is used to announce Error state. - - - ବ୍ୟସ୍ତ - This is used to announce Indeterminate state. - - - ବିରାମ କରାଯାଇଛି - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pa/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pa/Resources.resw deleted file mode 100644 index e50370528de6..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pa/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ਤਰੁਟੀ - This is used to announce Error state. - - - ਵਿਅਸਤ - This is used to announce Indeterminate state. - - - ਰੋਕਿਆ ਗਿਆ - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pl-PL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pl-PL/Resources.resw deleted file mode 100644 index 5edb19b4dc4e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pl-PL/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Błąd - This is used to announce Error state. - - - Zajęty - This is used to announce Indeterminate state. - - - Wstrzymano - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pt-BR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pt-BR/Resources.resw deleted file mode 100644 index c92f1b03e8d8..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pt-BR/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Erro - This is used to announce Error state. - - - Ocupado - This is used to announce Indeterminate state. - - - Pausado - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pt-PT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pt-PT/Resources.resw deleted file mode 100644 index c599370790d7..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/pt-PT/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Erro - This is used to announce Error state. - - - Ocupado - This is used to announce Indeterminate state. - - - Em pausa - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/quz-PE/Resources.resw_ignored b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/quz-PE/Resources.resw_ignored deleted file mode 100644 index aff588c144f8..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/quz-PE/Resources.resw_ignored +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Pantay - This is used to announce Error state. - - - Ruwanayuq - This is used to announce Indeterminate state. - - - Samachisqa - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ro-RO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ro-RO/Resources.resw deleted file mode 100644 index 59437f47619d..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ro-RO/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Eroare - This is used to announce Error state. - - - Ocupat - This is used to announce Indeterminate state. - - - În pauză - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ru-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ru-RU/Resources.resw deleted file mode 100644 index 9c7f236abddc..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ru-RU/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ошибка - This is used to announce Error state. - - - Занято - This is used to announce Indeterminate state. - - - Приостановлено - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sk-SK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sk-SK/Resources.resw deleted file mode 100644 index 4e74505b5e6e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sk-SK/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Chyba - This is used to announce Error state. - - - Nemám čas - This is used to announce Indeterminate state. - - - Pozastavené - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sl-SI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sl-SI/Resources.resw deleted file mode 100644 index 495f3919cfe6..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sl-SI/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Napaka - This is used to announce Error state. - - - Zaseden - This is used to announce Indeterminate state. - - - Začasno ustavljeno - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sq-AL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sq-AL/Resources.resw deleted file mode 100644 index 91fe660b4c18..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sq-AL/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Gabim - This is used to announce Error state. - - - I zënë - This is used to announce Indeterminate state. - - - Pezulluar - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Cyrl-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Cyrl-BA/Resources.resw deleted file mode 100644 index 946fb977db2a..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Cyrl-BA/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Грешка - This is used to announce Error state. - - - Заузето - This is used to announce Indeterminate state. - - - Паузирано - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Cyrl-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Cyrl-RS/Resources.resw deleted file mode 100644 index 200998f4f1b4..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Cyrl-RS/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Грешка - This is used to announce Error state. - - - Заузет - This is used to announce Indeterminate state. - - - Паузирано - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Latn-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Latn-RS/Resources.resw deleted file mode 100644 index b735e7faae79..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sr-Latn-RS/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Greška - This is used to announce Error state. - - - Zauzet/a - This is used to announce Indeterminate state. - - - Pauzirano - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sv-SE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sv-SE/Resources.resw deleted file mode 100644 index 15f1fe842688..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/sv-SE/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Fel - This is used to announce Error state. - - - Upptagen - This is used to announce Indeterminate state. - - - Pausad - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ta-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ta-IN/Resources.resw deleted file mode 100644 index 382f22155928..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ta-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - பிழை - This is used to announce Error state. - - - பணிமிகுதி - This is used to announce Indeterminate state. - - - இடைநிறுத்தப்பட்டது - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/te-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/te-IN/Resources.resw deleted file mode 100644 index 822302ae182d..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/te-IN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - దోషం - This is used to announce Error state. - - - బిజీగా ఉన్నారు - This is used to announce Indeterminate state. - - - నిలిపివేయబడింది - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/th-TH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/th-TH/Resources.resw deleted file mode 100644 index f07919c48878..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/th-TH/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ข้อผิดพลาด - This is used to announce Error state. - - - ไม่ว่าง - This is used to announce Indeterminate state. - - - หยุดชั่วคราว - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/tr-TR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/tr-TR/Resources.resw deleted file mode 100644 index 2c49a8447a9e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/tr-TR/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Hata - This is used to announce Error state. - - - Meşgul - This is used to announce Indeterminate state. - - - Duraklatıldı - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/tt-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/tt-RU/Resources.resw deleted file mode 100644 index d907e8461bb3..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/tt-RU/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Хата - This is used to announce Error state. - - - Буш түгел - This is used to announce Indeterminate state. - - - Туктатылып тора - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ug-CN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ug-CN/Resources.resw deleted file mode 100644 index 9ac5186e2ac0..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ug-CN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - خاتالىق - This is used to announce Error state. - - - ئالدىراش - This is used to announce Indeterminate state. - - - تورمۇزلاندى - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/uk-UA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/uk-UA/Resources.resw deleted file mode 100644 index 88a2019982d4..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/uk-UA/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Помилка - This is used to announce Error state. - - - Зайнятий - This is used to announce Indeterminate state. - - - Призупинено - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ur/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ur/Resources.resw deleted file mode 100644 index f64a31a7b7b8..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/ur/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - نقص - This is used to announce Error state. - - - مصروف - This is used to announce Indeterminate state. - - - موقوف شدہ - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/uz-Latn-UZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/uz-Latn-UZ/Resources.resw deleted file mode 100644 index a3a97228336f..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/uz-Latn-UZ/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Xato - This is used to announce Error state. - - - Band - This is used to announce Indeterminate state. - - - Pauzada - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/vi-VN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/vi-VN/Resources.resw deleted file mode 100644 index 47cc41af75c9..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/vi-VN/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Lỗi - This is used to announce Error state. - - - Bận - This is used to announce Indeterminate state. - - - Tạm dừng - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/zh-Hans/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/zh-Hans/Resources.resw deleted file mode 100644 index b9f176cba051..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/zh-Hans/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 错误 - This is used to announce Error state. - - - 忙碌 - This is used to announce Indeterminate state. - - - 已暂停 - This is used to announce Paused state. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/zh-Hant/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/zh-Hant/Resources.resw deleted file mode 100644 index 82e5fcb213ae..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressBar/Strings/zh-Hant/Resources.resw +++ /dev/null @@ -1,132 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 錯誤 - This is used to announce Error state. - - - 忙碌 - This is used to announce Indeterminate state. - - - 已暫停 - This is used to announce Paused state. - - \ No newline at end of file From e411679230d97a66e4a98d1148e399e93cbe37e4 Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Wed, 13 Nov 2024 21:50:54 -0500 Subject: [PATCH 554/664] chore: Remove unused ProgressRing string resources --- .../ProgressRing/Strings/af-ZA/Resources.resw | 128 ------------------ .../ProgressRing/Strings/am-ET/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ar-SA/Resources.resw | 128 ------------------ .../ProgressRing/Strings/as-IN/Resources.resw | 128 ------------------ .../Strings/az-Latn-AZ/Resources.resw | 128 ------------------ .../ProgressRing/Strings/bg-BG/Resources.resw | 128 ------------------ .../ProgressRing/Strings/bn-IN/Resources.resw | 128 ------------------ .../Strings/bs-Latn-BA/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ca-ES/Resources.resw | 128 ------------------ .../ca-Es-VALENCIA/Resources.resw_ignored | 128 ------------------ .../ProgressRing/Strings/cs-CZ/Resources.resw | 128 ------------------ .../ProgressRing/Strings/cy-GB/Resources.resw | 128 ------------------ .../ProgressRing/Strings/da-DK/Resources.resw | 128 ------------------ .../ProgressRing/Strings/de-DE/Resources.resw | 128 ------------------ .../ProgressRing/Strings/el-GR/Resources.resw | 128 ------------------ .../ProgressRing/Strings/en-GB/Resources.resw | 128 ------------------ .../ProgressRing/Strings/en-us/Resources.resw | 128 ------------------ .../ProgressRing/Strings/es-ES/Resources.resw | 128 ------------------ .../ProgressRing/Strings/es-MX/Resources.resw | 128 ------------------ .../ProgressRing/Strings/et-EE/Resources.resw | 128 ------------------ .../ProgressRing/Strings/eu-ES/Resources.resw | 128 ------------------ .../ProgressRing/Strings/fa-IR/Resources.resw | 128 ------------------ .../ProgressRing/Strings/fi-FI/Resources.resw | 128 ------------------ .../Strings/fil-PH/Resources.resw | 128 ------------------ .../ProgressRing/Strings/fr-CA/Resources.resw | 128 ------------------ .../ProgressRing/Strings/fr-FR/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ga-IE/Resources.resw | 128 ------------------ .../ProgressRing/Strings/gd-gb/Resources.resw | 128 ------------------ .../ProgressRing/Strings/gl-ES/Resources.resw | 128 ------------------ .../ProgressRing/Strings/gu-IN/Resources.resw | 128 ------------------ .../ProgressRing/Strings/he-IL/Resources.resw | 128 ------------------ .../ProgressRing/Strings/hi-IN/Resources.resw | 128 ------------------ .../ProgressRing/Strings/hr-HR/Resources.resw | 128 ------------------ .../ProgressRing/Strings/hu-HU/Resources.resw | 128 ------------------ .../ProgressRing/Strings/hy-AM/Resources.resw | 128 ------------------ .../ProgressRing/Strings/id-ID/Resources.resw | 128 ------------------ .../ProgressRing/Strings/is-IS/Resources.resw | 128 ------------------ .../ProgressRing/Strings/it-IT/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ja-JP/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ka-GE/Resources.resw | 128 ------------------ .../ProgressRing/Strings/kk-KZ/Resources.resw | 128 ------------------ .../ProgressRing/Strings/km-KH/Resources.resw | 128 ------------------ .../ProgressRing/Strings/kn-IN/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ko-KR/Resources.resw | 128 ------------------ .../Strings/kok-IN/Resources.resw | 128 ------------------ .../ProgressRing/Strings/lb-LU/Resources.resw | 128 ------------------ .../ProgressRing/Strings/lo-LA/Resources.resw | 128 ------------------ .../ProgressRing/Strings/lt-LT/Resources.resw | 128 ------------------ .../ProgressRing/Strings/lv-LV/Resources.resw | 128 ------------------ .../ProgressRing/Strings/mi-NZ/Resources.resw | 128 ------------------ .../ProgressRing/Strings/mk-MK/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ml-IN/Resources.resw | 128 ------------------ .../ProgressRing/Strings/mr-IN/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ms-MY/Resources.resw | 128 ------------------ .../ProgressRing/Strings/mt-MT/Resources.resw | 128 ------------------ .../ProgressRing/Strings/nb-NO/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ne-NP/Resources.resw | 128 ------------------ .../ProgressRing/Strings/nl-NL/Resources.resw | 128 ------------------ .../ProgressRing/Strings/nn-NO/Resources.resw | 128 ------------------ .../ProgressRing/Strings/or-IN/Resources.resw | 128 ------------------ .../ProgressRing/Strings/pa/Resources.resw | 128 ------------------ .../ProgressRing/Strings/pl-PL/Resources.resw | 128 ------------------ .../ProgressRing/Strings/pt-BR/Resources.resw | 128 ------------------ .../ProgressRing/Strings/pt-PT/Resources.resw | 128 ------------------ .../Strings/quz-PE/Resources.resw_ignored | 128 ------------------ .../ProgressRing/Strings/ro-RO/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ru-RU/Resources.resw | 128 ------------------ .../ProgressRing/Strings/sk-SK/Resources.resw | 128 ------------------ .../ProgressRing/Strings/sl-SI/Resources.resw | 128 ------------------ .../ProgressRing/Strings/sq-AL/Resources.resw | 128 ------------------ .../Strings/sr-Cyrl-BA/Resources.resw | 128 ------------------ .../Strings/sr-Cyrl-RS/Resources.resw | 128 ------------------ .../Strings/sr-Latn-RS/Resources.resw | 128 ------------------ .../ProgressRing/Strings/sv-SE/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ta-IN/Resources.resw | 128 ------------------ .../ProgressRing/Strings/te-IN/Resources.resw | 128 ------------------ .../ProgressRing/Strings/th-TH/Resources.resw | 128 ------------------ .../ProgressRing/Strings/tr-TR/Resources.resw | 128 ------------------ .../ProgressRing/Strings/tt-RU/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ug-CN/Resources.resw | 128 ------------------ .../ProgressRing/Strings/uk-UA/Resources.resw | 128 ------------------ .../ProgressRing/Strings/ur/Resources.resw | 128 ------------------ .../Strings/uz-Latn-UZ/Resources.resw | 128 ------------------ .../ProgressRing/Strings/vi-VN/Resources.resw | 128 ------------------ .../Strings/zh-Hans/Resources.resw | 128 ------------------ .../Strings/zh-Hant/Resources.resw | 128 ------------------ 86 files changed, 11008 deletions(-) delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/af-ZA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/am-ET/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ar-SA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/as-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/az-Latn-AZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bg-BG/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bn-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bs-Latn-BA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ca-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ca-Es-VALENCIA/Resources.resw_ignored delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/cs-CZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/cy-GB/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/da-DK/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/de-DE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/el-GR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/en-GB/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/en-us/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/es-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/es-MX/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/et-EE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/eu-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fa-IR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fi-FI/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fil-PH/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fr-CA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fr-FR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ga-IE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gd-gb/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gl-ES/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gu-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/he-IL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hi-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hr-HR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hu-HU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hy-AM/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/id-ID/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/is-IS/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/it-IT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ja-JP/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ka-GE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kk-KZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/km-KH/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kn-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ko-KR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kok-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lb-LU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lo-LA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lt-LT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lv-LV/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mi-NZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mk-MK/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ml-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mr-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ms-MY/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mt-MT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nb-NO/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ne-NP/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nl-NL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nn-NO/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/or-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pa/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pl-PL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pt-BR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pt-PT/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/quz-PE/Resources.resw_ignored delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ro-RO/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ru-RU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sk-SK/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sl-SI/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sq-AL/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Cyrl-BA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Cyrl-RS/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Latn-RS/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sv-SE/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ta-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/te-IN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/th-TH/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/tr-TR/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/tt-RU/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ug-CN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/uk-UA/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ur/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/uz-Latn-UZ/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/vi-VN/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/zh-Hans/Resources.resw delete mode 100644 src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/zh-Hant/Resources.resw diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/af-ZA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/af-ZA/Resources.resw deleted file mode 100644 index af656586190c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/af-ZA/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Besig - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/am-ET/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/am-ET/Resources.resw deleted file mode 100644 index bb84e9206e20..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/am-ET/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ባተሌ - This is used to announce Indeterminate state. - - - ፕሮግረሲንግ - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ar-SA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ar-SA/Resources.resw deleted file mode 100644 index 999c6d3d5e32..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ar-SA/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - مشغول - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/as-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/as-IN/Resources.resw deleted file mode 100644 index 85503c241b20..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/as-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ব্যস্ত - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/az-Latn-AZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/az-Latn-AZ/Resources.resw deleted file mode 100644 index ae88285dc957..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/az-Latn-AZ/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Məşğuldur - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bg-BG/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bg-BG/Resources.resw deleted file mode 100644 index 1d97925ad377..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bg-BG/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Зает/а - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bn-IN/Resources.resw deleted file mode 100644 index 1f82397899d7..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bn-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ব্যস্ত - This is used to announce Indeterminate state. - - - প্রগতি - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bs-Latn-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bs-Latn-BA/Resources.resw deleted file mode 100644 index 19f7e9c96fcd..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/bs-Latn-BA/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Zauzet - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ca-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ca-ES/Resources.resw deleted file mode 100644 index 9d2d02f28cfd..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ca-ES/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ocupat - This is used to announce Indeterminate state. - - - Cercle de progrés - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ca-Es-VALENCIA/Resources.resw_ignored b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ca-Es-VALENCIA/Resources.resw_ignored deleted file mode 100644 index d33554634a22..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ca-Es-VALENCIA/Resources.resw_ignored +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ocupat - This is used to announce Indeterminate state. - - - Anell de progrés - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/cs-CZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/cs-CZ/Resources.resw deleted file mode 100644 index eff341a815a5..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/cs-CZ/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Zaneprázdněn - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/cy-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/cy-GB/Resources.resw deleted file mode 100644 index d5581d32b3ae..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/cy-GB/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Yn brysur - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/da-DK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/da-DK/Resources.resw deleted file mode 100644 index 828f468edba0..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/da-DK/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Optaget - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/de-DE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/de-DE/Resources.resw deleted file mode 100644 index 29dd095ee053..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/de-DE/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Beschäftigt - This is used to announce Indeterminate state. - - - Statuskreis - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/el-GR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/el-GR/Resources.resw deleted file mode 100644 index a14b28e585fb..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/el-GR/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Απασχολημένος - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/en-GB/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/en-GB/Resources.resw deleted file mode 100644 index 7a097e1d732b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/en-GB/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Busy - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/en-us/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/en-us/Resources.resw deleted file mode 100644 index 7a097e1d732b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/en-us/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Busy - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/es-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/es-ES/Resources.resw deleted file mode 100644 index 25051d9f915e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/es-ES/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ocupado - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/es-MX/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/es-MX/Resources.resw deleted file mode 100644 index 25051d9f915e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/es-MX/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ocupado - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/et-EE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/et-EE/Resources.resw deleted file mode 100644 index f6b6f107bf6f..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/et-EE/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Hõivatud - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/eu-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/eu-ES/Resources.resw deleted file mode 100644 index 090d858bc886..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/eu-ES/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Lanpetuta - This is used to announce Indeterminate state. - - - Aurrerapen-uztaia - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fa-IR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fa-IR/Resources.resw deleted file mode 100644 index 999c6d3d5e32..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fa-IR/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - مشغول - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fi-FI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fi-FI/Resources.resw deleted file mode 100644 index d57b1b09c8eb..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fi-FI/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Varattu - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fil-PH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fil-PH/Resources.resw deleted file mode 100644 index f9008828100f..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fil-PH/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Abala - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fr-CA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fr-CA/Resources.resw deleted file mode 100644 index 28aa57aa9db2..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fr-CA/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Occupé(e) - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fr-FR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fr-FR/Resources.resw deleted file mode 100644 index 28aa57aa9db2..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/fr-FR/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Occupé(e) - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ga-IE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ga-IE/Resources.resw deleted file mode 100644 index ca83ea98051f..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ga-IE/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Gnóthach - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gd-gb/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gd-gb/Resources.resw deleted file mode 100644 index ac8a2c18b399..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gd-gb/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Trang - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gl-ES/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gl-ES/Resources.resw deleted file mode 100644 index fb68ac52b765..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gl-ES/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ocupado - This is used to announce Indeterminate state. - - - Anel de progreso - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gu-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gu-IN/Resources.resw deleted file mode 100644 index bc16cc71f1b8..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/gu-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - વ્યસ્ત - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/he-IL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/he-IL/Resources.resw deleted file mode 100644 index 71eddbfd9fb9..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/he-IL/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - עסוק/ה - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hi-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hi-IN/Resources.resw deleted file mode 100644 index aa2c8f0ac56d..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hi-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - व्यस्त - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hr-HR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hr-HR/Resources.resw deleted file mode 100644 index b46840b03de3..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hr-HR/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Zauzet - This is used to announce Indeterminate state. - - - KrugNapretka - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hu-HU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hu-HU/Resources.resw deleted file mode 100644 index 7282a45412c8..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hu-HU/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Elfoglalt - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hy-AM/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hy-AM/Resources.resw deleted file mode 100644 index 34cdb53c2ba6..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/hy-AM/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Զբաղված է - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/id-ID/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/id-ID/Resources.resw deleted file mode 100644 index e6a0430e12e4..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/id-ID/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Sibuk - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/is-IS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/is-IS/Resources.resw deleted file mode 100644 index 8f8281b3df69..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/is-IS/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Upptekin(n) - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/it-IT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/it-IT/Resources.resw deleted file mode 100644 index c73e919474e9..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/it-IT/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Occupato - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ja-JP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ja-JP/Resources.resw deleted file mode 100644 index 39538af62cf8..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ja-JP/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 取り込み中 - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ka-GE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ka-GE/Resources.resw deleted file mode 100644 index e0ba0c16e6ff..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ka-GE/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - დაკავებულია - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kk-KZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kk-KZ/Resources.resw deleted file mode 100644 index 1165c04b33c9..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kk-KZ/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Бос емес - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/km-KH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/km-KH/Resources.resw deleted file mode 100644 index 26e6f5eecf8b..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/km-KH/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ជាប់រវល់ - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kn-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kn-IN/Resources.resw deleted file mode 100644 index ea97b009b734..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kn-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ನಿರತ - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ko-KR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ko-KR/Resources.resw deleted file mode 100644 index 77dfacfef06e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ko-KR/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 다른 용무 중 - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kok-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kok-IN/Resources.resw deleted file mode 100644 index 5196d20171e9..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/kok-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - व्यस्त - This is used to announce Indeterminate state. - - - विकासरिंग - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lb-LU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lb-LU/Resources.resw deleted file mode 100644 index b93faddc3802..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lb-LU/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Besat - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lo-LA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lo-LA/Resources.resw deleted file mode 100644 index 47c401cd4630..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lo-LA/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ບໍ່ຫວ່າງ - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lt-LT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lt-LT/Resources.resw deleted file mode 100644 index 893b11afdd18..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lt-LT/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Užsiėmęs - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lv-LV/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lv-LV/Resources.resw deleted file mode 100644 index 228b5fc0b94d..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/lv-LV/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aizņemts - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mi-NZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mi-NZ/Resources.resw deleted file mode 100644 index 5ff9231d2c0a..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mi-NZ/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Arokē - This is used to announce Indeterminate state. - - - RīngiKauneke - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mk-MK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mk-MK/Resources.resw deleted file mode 100644 index 178359b150ab..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mk-MK/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Зафатено - This is used to announce Indeterminate state. - - - Прстен за напредок - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ml-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ml-IN/Resources.resw deleted file mode 100644 index 2621ed373f41..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ml-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - തിരക്കിൽ - This is used to announce Indeterminate state. - - - പ്രോഗ്രസ് റിംഗ് - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mr-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mr-IN/Resources.resw deleted file mode 100644 index 9b31a9c490ab..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mr-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - व्यस्त आहे - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ms-MY/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ms-MY/Resources.resw deleted file mode 100644 index e6a0430e12e4..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ms-MY/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Sibuk - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mt-MT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mt-MT/Resources.resw deleted file mode 100644 index 5951980038a5..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/mt-MT/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Okkupat - This is used to announce Indeterminate state. - - - Ċirku tal-Progress - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nb-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nb-NO/Resources.resw deleted file mode 100644 index fbf61592fb34..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nb-NO/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Opptatt - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ne-NP/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ne-NP/Resources.resw deleted file mode 100644 index cb2695a78844..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ne-NP/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - व्यस्त - This is used to announce Indeterminate state. - - - प्रगति रिङ - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nl-NL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nl-NL/Resources.resw deleted file mode 100644 index 9d58bcdfd984..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nl-NL/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Bezig - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nn-NO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nn-NO/Resources.resw deleted file mode 100644 index ce8730088eb8..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/nn-NO/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Oppteken - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/or-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/or-IN/Resources.resw deleted file mode 100644 index 18842ebc41d5..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/or-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ବ୍ୟସ୍ତ - This is used to announce Indeterminate state. - - - ପ୍ରଗତିରିଂ - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pa/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pa/Resources.resw deleted file mode 100644 index 524e1c1a6726..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pa/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ਵਿਅਸਤ - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pl-PL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pl-PL/Resources.resw deleted file mode 100644 index 3f63c1aaffd4..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pl-PL/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Zajęty - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pt-BR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pt-BR/Resources.resw deleted file mode 100644 index 25051d9f915e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pt-BR/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ocupado - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pt-PT/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pt-PT/Resources.resw deleted file mode 100644 index 25051d9f915e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/pt-PT/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ocupado - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/quz-PE/Resources.resw_ignored b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/quz-PE/Resources.resw_ignored deleted file mode 100644 index 99c242ab38a6..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/quz-PE/Resources.resw_ignored +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ruwanayuq - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ro-RO/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ro-RO/Resources.resw deleted file mode 100644 index 0b120f403986..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ro-RO/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ocupat - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ru-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ru-RU/Resources.resw deleted file mode 100644 index 2f21f94b3cb2..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ru-RU/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Занято - This is used to announce Indeterminate state. - - - Кольцевой индикатор выполнения - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sk-SK/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sk-SK/Resources.resw deleted file mode 100644 index c293d59886db..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sk-SK/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Nemám čas - This is used to announce Indeterminate state. - - - Indikátor priebehu - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sl-SI/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sl-SI/Resources.resw deleted file mode 100644 index f73fa64489e5..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sl-SI/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Zaseden - This is used to announce Indeterminate state. - - - Krog za napredek - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sq-AL/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sq-AL/Resources.resw deleted file mode 100644 index 3c4ebeb21c47..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sq-AL/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - I zënë - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Cyrl-BA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Cyrl-BA/Resources.resw deleted file mode 100644 index 1b5c804a5b21..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Cyrl-BA/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Заузето - This is used to announce Indeterminate state. - - - Напредовање - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Cyrl-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Cyrl-RS/Resources.resw deleted file mode 100644 index 88ca1ae65367..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Cyrl-RS/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Заузет - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Latn-RS/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Latn-RS/Resources.resw deleted file mode 100644 index 9880978a6453..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sr-Latn-RS/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Zauzet/a - This is used to announce Indeterminate state. - - - Napredovanje - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sv-SE/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sv-SE/Resources.resw deleted file mode 100644 index a3737f3fb005..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/sv-SE/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Upptagen - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ta-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ta-IN/Resources.resw deleted file mode 100644 index 8ca9c0fa382e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ta-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - பணிமிகுதி - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/te-IN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/te-IN/Resources.resw deleted file mode 100644 index 39d284310e0d..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/te-IN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - బిజీగా ఉన్నారు - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/th-TH/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/th-TH/Resources.resw deleted file mode 100644 index ee2a5828b7f0..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/th-TH/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ไม่ว่าง - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/tr-TR/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/tr-TR/Resources.resw deleted file mode 100644 index f01d3ae2606e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/tr-TR/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Meşgul - This is used to announce Indeterminate state. - - - İlerleme Halkası - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/tt-RU/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/tt-RU/Resources.resw deleted file mode 100644 index afdfd9e4e1f7..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/tt-RU/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Буш түгел - This is used to announce Indeterminate state. - - - Эш барышы боҗрасы - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ug-CN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ug-CN/Resources.resw deleted file mode 100644 index 607b77a33cdd..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ug-CN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ئالدىراش - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/uk-UA/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/uk-UA/Resources.resw deleted file mode 100644 index a8591b50d233..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/uk-UA/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Зайнятий - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ur/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ur/Resources.resw deleted file mode 100644 index 09fafc705774..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/ur/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - مصروف - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/uz-Latn-UZ/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/uz-Latn-UZ/Resources.resw deleted file mode 100644 index ba936632861e..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/uz-Latn-UZ/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Band - This is used to announce Indeterminate state. - - - Jarayon halqasi - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/vi-VN/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/vi-VN/Resources.resw deleted file mode 100644 index cba7033b506c..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/vi-VN/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Bận - This is used to announce Indeterminate state. - - - Vòng tiến độ - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/zh-Hans/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/zh-Hans/Resources.resw deleted file mode 100644 index 874605eb19ce..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/zh-Hans/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 忙碌 - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file diff --git a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/zh-Hant/Resources.resw b/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/zh-Hant/Resources.resw deleted file mode 100644 index 874605eb19ce..000000000000 --- a/src/Uno.UI/Microsoft/UI/Xaml/Controls/ProgressRing/Strings/zh-Hant/Resources.resw +++ /dev/null @@ -1,128 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 忙碌 - This is used to announce Indeterminate state. - - - ProgressRing - This is used to announce Progress Ring Name. - - \ No newline at end of file From 610789c59a67c1ead68d92871be4b68acf04d508 Mon Sep 17 00:00:00 2001 From: Sebastien Pouliot Date: Wed, 13 Nov 2024 21:51:07 -0500 Subject: [PATCH 555/664] chore: fix UnoNativeMac.xcodeproj/project.pbxproj --- .../UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj | 8 -------- 1 file changed, 8 deletions(-) diff --git a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj index 6a5fccac38ff..0be42284d811 100644 --- a/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj +++ b/src/Uno.UI.Runtime.Skia.MacOS/UnoNativeMac/UnoNativeMac.xcodeproj/project.pbxproj @@ -9,8 +9,6 @@ /* Begin PBXBuildFile section */ D116C63E2AC79876004B975F /* UNOCursor.m in Sources */ = {isa = PBXBuildFile; fileRef = D116C63D2AC79876004B975F /* UNOCursor.m */; }; D13AB8A82B5839B200693F8E /* libSkiaSharp.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = D13AB8A72B5839B200693F8E /* libSkiaSharp.dylib */; }; - D15930D52CDEA3C0007B40FD /* UNOWebView.h in Headers */ = {isa = PBXBuildFile; fileRef = D15930D32CDEA3C0007B40FD /* UNOWebView.h */; }; - D15930D62CDEA3C0007B40FD /* UNOWebView.m in Sources */ = {isa = PBXBuildFile; fileRef = D15930D42CDEA3C0007B40FD /* UNOWebView.m */; }; D18D4FAC2C2DE804003E4BBF /* UNONative.m in Sources */ = {isa = PBXBuildFile; fileRef = D18D4FAB2C2DE804003E4BBF /* UNONative.m */; }; D1A0651E2A7066F700101BE6 /* UNOMetalViewDelegate.m in Sources */ = {isa = PBXBuildFile; fileRef = D1A0651D2A7066F700101BE6 /* UNOMetalViewDelegate.m */; }; D1A065202A8467B200101BE6 /* UNOApplication.h in Headers */ = {isa = PBXBuildFile; fileRef = D1A0651F2A8467B200101BE6 /* UNOApplication.h */; }; @@ -27,8 +25,6 @@ D116C63D2AC79876004B975F /* UNOCursor.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UNOCursor.m; sourceTree = ""; }; D13AB8A72B5839B200693F8E /* libSkiaSharp.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libSkiaSharp.dylib; path = UnoNativeMac/libSkiaSharp.dylib; sourceTree = ""; }; D13AB8AC2B58566400693F8E /* Config.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = Config.xcconfig; sourceTree = ""; }; - D15930D32CDEA3C0007B40FD /* UNOWebView.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UNOWebView.h; sourceTree = ""; }; - D15930D42CDEA3C0007B40FD /* UNOWebView.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UNOWebView.m; sourceTree = ""; }; D18D4FAA2C2DE76F003E4BBF /* UNONative.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UNONative.h; sourceTree = ""; }; D18D4FAB2C2DE804003E4BBF /* UNONative.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = UNONative.m; sourceTree = ""; }; D1A0651C2A70664A00101BE6 /* UNOMetalViewDelegate.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = UNOMetalViewDelegate.h; sourceTree = ""; }; @@ -105,8 +101,6 @@ D1FE7A2A2B75C8BB00ACFC76 /* UNOSoftView.m */, D1A065232A8AC15C00101BE6 /* UNOWindow.h */, D1A065242A8AC23800101BE6 /* UNOWindow.m */, - D15930D32CDEA3C0007B40FD /* UNOWebView.h */, - D15930D42CDEA3C0007B40FD /* UNOWebView.m */, ); path = UnoNativeMac; sourceTree = ""; @@ -118,7 +112,6 @@ isa = PBXHeadersBuildPhase; buildActionMask = 2147483647; files = ( - D15930D52CDEA3C0007B40FD /* UNOWebView.h in Headers */, D1F248A92A67288B008A609E /* UnoNativeMac.h in Headers */, D1A065202A8467B200101BE6 /* UNOApplication.h in Headers */, ); @@ -188,7 +181,6 @@ D1A065252A8AC23800101BE6 /* UNOWindow.m in Sources */, D1CC768B2AB9D464002A44F0 /* UNOClipboard.m in Sources */, D116C63E2AC79876004B975F /* UNOCursor.m in Sources */, - D15930D62CDEA3C0007B40FD /* UNOWebView.m in Sources */, D18D4FAC2C2DE804003E4BBF /* UNONative.m in Sources */, ); runOnlyForDeploymentPostprocessing = 0; From 4ae18dc7d6d876382037cca96da596fb03f0b911 Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Wed, 13 Nov 2024 22:02:47 -0500 Subject: [PATCH 556/664] chore: Cleanup ResourceKeys --- src/Uno.UI/Helpers/WinUI/ResourceAccessor.ResourceKeys.cs | 6 ------ 1 file changed, 6 deletions(-) diff --git a/src/Uno.UI/Helpers/WinUI/ResourceAccessor.ResourceKeys.cs b/src/Uno.UI/Helpers/WinUI/ResourceAccessor.ResourceKeys.cs index f7f3ee6f7661..dc4d0140a7a1 100644 --- a/src/Uno.UI/Helpers/WinUI/ResourceAccessor.ResourceKeys.cs +++ b/src/Uno.UI/Helpers/WinUI/ResourceAccessor.ResourceKeys.cs @@ -94,15 +94,9 @@ internal partial class ResourceAccessor public const string SR_PlaceAfterString = "PlaceAfterString"; public const string SR_PlaceBeforeString = "PlaceBeforeString"; public const string SR_PlaceBetweenString = "PlaceBetweenString"; - public const string SR_ProgressRingName = "ProgressRingName"; - public const string SR_ProgressRingIndeterminateStatus = "ProgressRingIndeterminateStatus"; - public const string SR_ProgressBarIndeterminateStatus = "ProgressBarIndeterminateStatus"; - public const string SR_ProgressBarPausedStatus = "ProgressBarPausedStatus"; - public const string SR_ProgressBarErrorStatus = "ProgressBarErrorStatus"; public const string SR_RatingLocalizedControlType = "RatingLocalizedControlType"; public const string SR_BreadcrumbBarItemLocalizedControlType = "BreadcrumbBarItemLocalizedControlType"; public const string SR_SplitButtonSecondaryButtonName = "SplitButtonSecondaryButtonName"; - public const string SR_ProofingMenuItemLabel = "ProofingMenuItemLabel"; public const string SR_TextCommandLabelCut = "TextCommandLabelCut"; public const string SR_TextCommandLabelCopy = "TextCommandLabelCopy"; public const string SR_TextCommandLabelPaste = "TextCommandLabelPaste"; From 35fda5688d4a8c35aa5cb86b0e9c19598bd95847 Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Wed, 13 Nov 2024 22:07:43 -0500 Subject: [PATCH 557/664] chore: Remove unused ToggleSwitch string resources --- .../ToggleSwitch/Strings/ar-SA/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/bg-BG/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/ca-ES/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/cs-CZ/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/da-DK/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/de-DE/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/el-GR/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/en-GB/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/en-us/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/es-ES/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/es-MX/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/et-EE/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/eu-ES/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/fi-FI/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/fr-CA/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/fr-FR/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/gl-ES/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/he-IL/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/hr-HR/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/hu-HU/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/id-ID/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/it-IT/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/ja-JP/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/ko-KR/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/lt-LT/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/lv-LV/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/nb-NO/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/nl-NL/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/pl-PL/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/pt-BR/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/pt-PT/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/ro-RO/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/ru-RU/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/sk-SK/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/sl-SI/Resources.resw | 67 ------------------- .../Strings/sr-Latn-RS/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/sv-SE/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/th-TH/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/tr-TR/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/uk-UA/Resources.resw | 67 ------------------- .../ToggleSwitch/Strings/vi-VN/Resources.resw | 67 ------------------- .../Strings/zh-Hans/Resources.resw | 67 ------------------- .../Strings/zh-Hant/Resources.resw | 67 ------------------- 43 files changed, 2881 deletions(-) delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ar-SA/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/bg-BG/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ca-ES/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/cs-CZ/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/da-DK/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/de-DE/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/el-GR/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/en-GB/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/en-us/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/es-ES/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/es-MX/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/et-EE/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/eu-ES/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fi-FI/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fr-CA/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fr-FR/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/gl-ES/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/he-IL/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/hr-HR/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/hu-HU/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/id-ID/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/it-IT/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ja-JP/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ko-KR/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/lt-LT/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/lv-LV/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/nb-NO/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/nl-NL/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pl-PL/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pt-BR/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pt-PT/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ro-RO/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ru-RU/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sk-SK/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sl-SI/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sr-Latn-RS/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sv-SE/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/th-TH/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/tr-TR/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/uk-UA/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/vi-VN/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/zh-Hans/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/zh-Hant/Resources.resw diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ar-SA/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ar-SA/Resources.resw deleted file mode 100644 index b4e266cc7c22..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ar-SA/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ‏‏إيقاف التشغيل - - - ‏‏تشغيل - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/bg-BG/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/bg-BG/Resources.resw deleted file mode 100644 index 212bed6a6ca7..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/bg-BG/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Изкл. - - - Вкл. - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ca-ES/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ca-ES/Resources.resw deleted file mode 100644 index 88769dedd850..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ca-ES/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Desactivat - - - Activat - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/cs-CZ/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/cs-CZ/Resources.resw deleted file mode 100644 index e9b218e9a587..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/cs-CZ/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Vypnuto - - - Zapnuto - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/da-DK/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/da-DK/Resources.resw deleted file mode 100644 index 6c80a2197c3a..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/da-DK/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Slået fra - - - Slået til - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/de-DE/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/de-DE/Resources.resw deleted file mode 100644 index 9a71336d0a2c..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/de-DE/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Aus - - - Ein - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/el-GR/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/el-GR/Resources.resw deleted file mode 100644 index 156f877657ce..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/el-GR/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ανενεργό - - - Ενεργό - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/en-GB/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/en-GB/Resources.resw deleted file mode 100644 index 92a04d968ef8..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/en-GB/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Off - - - On - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/en-us/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/en-us/Resources.resw deleted file mode 100644 index 92a04d968ef8..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/en-us/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Off - - - On - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/es-ES/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/es-ES/Resources.resw deleted file mode 100644 index 1555035ceb30..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/es-ES/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Desactivado - - - Activado - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/es-MX/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/es-MX/Resources.resw deleted file mode 100644 index 1555035ceb30..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/es-MX/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Desactivado - - - Activado - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/et-EE/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/et-EE/Resources.resw deleted file mode 100644 index e8d038bbf565..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/et-EE/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Väljas - - - Sees - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/eu-ES/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/eu-ES/Resources.resw deleted file mode 100644 index 9adf5e89fab0..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/eu-ES/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Desaktibatuta - - - Aktibatuta - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fi-FI/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fi-FI/Resources.resw deleted file mode 100644 index 608817db31d9..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fi-FI/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ei käytössä - - - Käytössä - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fr-CA/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fr-CA/Resources.resw deleted file mode 100644 index 465cfe97c2bc..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fr-CA/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Désactivé - - - Activé - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fr-FR/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fr-FR/Resources.resw deleted file mode 100644 index 465cfe97c2bc..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/fr-FR/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Désactivé - - - Activé - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/gl-ES/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/gl-ES/Resources.resw deleted file mode 100644 index 1555035ceb30..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/gl-ES/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Desactivado - - - Activado - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/he-IL/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/he-IL/Resources.resw deleted file mode 100644 index 61ba02fc58bc..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/he-IL/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ‏‏לא פעיל - - - ‏‏פעיל - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/hr-HR/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/hr-HR/Resources.resw deleted file mode 100644 index 27a4eb44799b..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/hr-HR/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Isključeno - - - Uključeno - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/hu-HU/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/hu-HU/Resources.resw deleted file mode 100644 index db168b5b12cb..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/hu-HU/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Ki - - - Be - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/id-ID/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/id-ID/Resources.resw deleted file mode 100644 index c11749c50dbd..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/id-ID/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tidak aktif - - - Aktif - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/it-IT/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/it-IT/Resources.resw deleted file mode 100644 index e1c52fd5eae5..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/it-IT/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Disattivato - - - Attivato - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ja-JP/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ja-JP/Resources.resw deleted file mode 100644 index 5ad7a19103ca..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ja-JP/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - オフ - - - オン - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ko-KR/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ko-KR/Resources.resw deleted file mode 100644 index 0529b5f96f21..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ko-KR/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - - - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/lt-LT/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/lt-LT/Resources.resw deleted file mode 100644 index 5028ca887012..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/lt-LT/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Išjungta - - - Įjungta - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/lv-LV/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/lv-LV/Resources.resw deleted file mode 100644 index a89ed7ea7a1f..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/lv-LV/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Izslēgts - - - Ieslēgts - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/nb-NO/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/nb-NO/Resources.resw deleted file mode 100644 index db3e0d675869..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/nb-NO/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Av - - - - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/nl-NL/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/nl-NL/Resources.resw deleted file mode 100644 index d3373353657f..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/nl-NL/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Uit - - - Aan - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pl-PL/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pl-PL/Resources.resw deleted file mode 100644 index d45235c3d94b..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pl-PL/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Wyłączone - - - Włączone - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pt-BR/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pt-BR/Resources.resw deleted file mode 100644 index dfe5dfd8da4e..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pt-BR/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Desativado - - - Ativado - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pt-PT/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pt-PT/Resources.resw deleted file mode 100644 index f651fd33b6a3..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/pt-PT/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Desligado - - - Ligado - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ro-RO/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ro-RO/Resources.resw deleted file mode 100644 index f7616f9b85f6..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ro-RO/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Dezactivat - - - Activat - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ru-RU/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ru-RU/Resources.resw deleted file mode 100644 index 215985d8068a..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/ru-RU/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Откл. - - - Вкл. - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sk-SK/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sk-SK/Resources.resw deleted file mode 100644 index 954b7a5eccaa..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sk-SK/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Vypnuté - - - Zapnuté - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sl-SI/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sl-SI/Resources.resw deleted file mode 100644 index 50347c4bd060..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sl-SI/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Izklopljeno - - - Vklopljeno - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sr-Latn-RS/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sr-Latn-RS/Resources.resw deleted file mode 100644 index 27a4eb44799b..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sr-Latn-RS/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Isključeno - - - Uključeno - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sv-SE/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sv-SE/Resources.resw deleted file mode 100644 index db3e0d675869..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/sv-SE/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Av - - - - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/th-TH/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/th-TH/Resources.resw deleted file mode 100644 index a8ca31c3edd5..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/th-TH/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - ปิด - - - เปิด - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/tr-TR/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/tr-TR/Resources.resw deleted file mode 100644 index 28c79927fc5b..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/tr-TR/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Kapalı - - - Açık - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/uk-UA/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/uk-UA/Resources.resw deleted file mode 100644 index 586933811f29..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/uk-UA/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Вимкнуто - - - Увімкнуто - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/vi-VN/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/vi-VN/Resources.resw deleted file mode 100644 index 812a3883112a..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/vi-VN/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - Tắt - - - Bật - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/zh-Hans/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/zh-Hans/Resources.resw deleted file mode 100644 index fb9b015d3f37..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/zh-Hans/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - - - - - - \ No newline at end of file diff --git a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/zh-Hant/Resources.resw b/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/zh-Hant/Resources.resw deleted file mode 100644 index 94692932b25e..000000000000 --- a/src/Uno.UI/UI/Xaml/Controls/ToggleSwitch/Strings/zh-Hant/Resources.resw +++ /dev/null @@ -1,67 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - text/microsoft-resx - - - 2.0 - - - System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - - - 關閉 - - - 開啟 - - \ No newline at end of file From 3fd903b3919a9c22613679c8e2afd0df86938ae9 Mon Sep 17 00:00:00 2001 From: Elie Bariche <33458222+ebariche@users.noreply.github.com> Date: Wed, 13 Nov 2024 22:17:16 -0500 Subject: [PATCH 558/664] chore: Remove unused TimePicker string resources --- .../TimePicker_TimePickerFlyoutStyle.xaml | 2 - .../TimePicker/Strings/en/Resources.resw | 126 ------------------ .../TimePicker/Strings/fr/Resources.resw | 126 ------------------ 3 files changed, 254 deletions(-) delete mode 100644 src/Uno.UI/UI/Xaml/Controls/TimePicker/Strings/en/Resources.resw delete mode 100644 src/Uno.UI/UI/Xaml/Controls/TimePicker/Strings/fr/Resources.resw diff --git a/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TimePicker/TimePicker_TimePickerFlyoutStyle.xaml b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TimePicker/TimePicker_TimePickerFlyoutStyle.xaml index 40e26a538072..fed829e045eb 100644 --- a/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TimePicker/TimePicker_TimePickerFlyoutStyle.xaml +++ b/src/SamplesApp/UITests.Shared/Windows_UI_Xaml_Controls/TimePicker/TimePicker_TimePickerFlyoutStyle.xaml @@ -57,7 +57,6 @@