From edb78693a92516bdb061ad7e1ab1f19f1dfd4787 Mon Sep 17 00:00:00 2001 From: NogFar <52389872+NogFar@users.noreply.github.com> Date: Sun, 15 Mar 2026 15:25:30 -0300 Subject: [PATCH 1/3] feat: add customizable spinner, safe-area padding, image background opacity and localization updates Consolidates SplashScreen improvements I had already implemented locally and am now contributing to the repository. add loading spinner settings and preview add safe-area padding and background image opacity controls --- .../Helpers/SpinnerGeometryBuilder.cs | 77 ++++++ .../Helpers/SplashSettingsSyncHelper.cs | 25 ++ .../SplashScreen/Localization/af_ZA.xaml | 133 +++++----- .../SplashScreen/Localization/ar_SA.xaml | 133 +++++----- .../SplashScreen/Localization/ca_ES.xaml | 133 +++++----- .../SplashScreen/Localization/cs_CZ.xaml | 133 +++++----- .../SplashScreen/Localization/da_DK.xaml | 133 +++++----- .../SplashScreen/Localization/de_DE.xaml | 133 +++++----- .../SplashScreen/Localization/en_US.xaml | 18 +- .../SplashScreen/Localization/eo_UY.xaml | 133 +++++----- .../SplashScreen/Localization/es_ES.xaml | 133 +++++----- .../SplashScreen/Localization/fa_IR.xaml | 133 +++++----- .../SplashScreen/Localization/fi_FI.xaml | 133 +++++----- .../SplashScreen/Localization/fr_FR.xaml | 133 +++++----- .../SplashScreen/Localization/gl_ES.xaml | 133 +++++----- .../SplashScreen/Localization/hr_HR.xaml | 133 +++++----- .../SplashScreen/Localization/hu_HU.xaml | 133 +++++----- .../SplashScreen/Localization/it_IT.xaml | 133 +++++----- .../SplashScreen/Localization/ja_JP.xaml | 133 +++++----- .../SplashScreen/Localization/ko_KR.xaml | 133 +++++----- .../SplashScreen/Localization/nl_NL.xaml | 133 +++++----- .../SplashScreen/Localization/no_NO.xaml | 133 +++++----- .../SplashScreen/Localization/pl_PL.xaml | 133 +++++----- .../SplashScreen/Localization/pt_BR.xaml | 133 +++++----- .../SplashScreen/Localization/pt_PT.xaml | 133 +++++----- .../SplashScreen/Localization/ru_RU.xaml | 133 +++++----- .../SplashScreen/Localization/sr_SP.xaml | 133 +++++----- .../SplashScreen/Localization/tr_TR.xaml | 133 +++++----- .../SplashScreen/Localization/uk_UA.xaml | 133 +++++----- .../SplashScreen/Localization/vi_VN.xaml | 133 +++++----- .../SplashScreen/Localization/zh_CN.xaml | 133 +++++----- .../SplashScreen/Localization/zh_TW.xaml | 133 +++++----- .../Models/GeneralSplashSettings.cs | 66 +++++ source/Generic/SplashScreen/SplashScreen.cs | 4 +- .../Generic/SplashScreen/SplashScreen.csproj | 9 + .../SplashScreenSettingsView.xaml | 87 +++++++ .../ViewModels/GameSettingsWindowViewModel.cs | 9 +- .../Views/GameSettingsWindow.xaml | 16 ++ .../Views/SpinnerPreviewControl.xaml | 28 ++ .../Views/SpinnerPreviewControl.xaml.cs | 246 ++++++++++++++++++ .../SplashScreen/Views/SplashScreenImage.xaml | 138 ++++++---- .../Views/SplashScreenImage.xaml.cs | 114 ++++++++ 42 files changed, 2923 insertions(+), 1771 deletions(-) create mode 100644 source/Generic/SplashScreen/Helpers/SpinnerGeometryBuilder.cs create mode 100644 source/Generic/SplashScreen/Helpers/SplashSettingsSyncHelper.cs create mode 100644 source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml create mode 100644 source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs diff --git a/source/Generic/SplashScreen/Helpers/SpinnerGeometryBuilder.cs b/source/Generic/SplashScreen/Helpers/SpinnerGeometryBuilder.cs new file mode 100644 index 0000000000..e86f7cf91f --- /dev/null +++ b/source/Generic/SplashScreen/Helpers/SpinnerGeometryBuilder.cs @@ -0,0 +1,77 @@ +using System; +using System.Windows; +using System.Windows.Media; + +namespace SplashScreen.Helpers +{ + internal static class SpinnerGeometryBuilder + { + internal static Geometry BuildDashGeometry(double spinnerSize, double thickness, double dashLengthPx, int dashCount, bool roundedDashes) + { + var clampedDashCount = Math.Max(2, Math.Min(360, dashCount)); + var innerSize = Math.Max(2.0, spinnerSize - thickness); + var radius = innerSize / 2.0; + var circumference = 2.0 * Math.PI * radius; + var slotPx = circumference / clampedDashCount; + var slotAngle = (2.0 * Math.PI) / clampedDashCount; + + var centerlineDashPx = Math.Max(0.25, dashLengthPx); + if (roundedDashes) + { + centerlineDashPx = Math.Max(0.25, centerlineDashPx - thickness); + } + + if (centerlineDashPx >= slotPx) + { + centerlineDashPx = slotPx * 0.9; + } + + var dashAngle = centerlineDashPx / radius; + var maxDashAngle = slotAngle * 0.9; + if (dashAngle > maxDashAngle) + { + dashAngle = maxDashAngle; + } + + var center = spinnerSize / 2.0; + var geometry = new PathGeometry(); + + for (var i = 0; i < clampedDashCount; i++) + { + var centerAngle = (-Math.PI / 2.0) + (i * slotAngle); + var startAngle = centerAngle - (dashAngle / 2.0); + var endAngle = centerAngle + (dashAngle / 2.0); + + var startPoint = PointOnCircle(center, radius, startAngle); + var endPoint = PointOnCircle(center, radius, endAngle); + + var figure = new PathFigure + { + StartPoint = startPoint, + IsClosed = false, + IsFilled = false + }; + + figure.Segments.Add(new ArcSegment + { + Point = endPoint, + Size = new Size(radius, radius), + IsLargeArc = false, + SweepDirection = SweepDirection.Clockwise + }); + + geometry.Figures.Add(figure); + } + + return geometry; + } + + private static Point PointOnCircle(double center, double radius, double angle) + { + return new Point( + center + (radius * Math.Cos(angle)), + center + (radius * Math.Sin(angle)) + ); + } + } +} diff --git a/source/Generic/SplashScreen/Helpers/SplashSettingsSyncHelper.cs b/source/Generic/SplashScreen/Helpers/SplashSettingsSyncHelper.cs new file mode 100644 index 0000000000..f103fde6f7 --- /dev/null +++ b/source/Generic/SplashScreen/Helpers/SplashSettingsSyncHelper.cs @@ -0,0 +1,25 @@ +using SplashScreen.Models; + +namespace SplashScreen.Helpers +{ + internal static class SplashSettingsSyncHelper + { + internal static void ApplyGlobalIndicatorSettings(GeneralSplashSettings target, GeneralSplashSettings global) + { + if (target == null || global == null) + { + return; + } + + target.EnableLoadingSpinner = global.EnableLoadingSpinner; + target.LoadingSpinnerSize = global.LoadingSpinnerSize; + target.LoadingSpinnerOpacity = global.LoadingSpinnerOpacity; + target.LoadingSpinnerThickness = global.LoadingSpinnerThickness; + target.LoadingSpinnerDashLength = global.LoadingSpinnerDashLength; + target.LoadingSpinnerDashCount = global.LoadingSpinnerDashCount; + target.LoadingSpinnerRoundedDashes = global.LoadingSpinnerRoundedDashes; + target.LoadingSpinnerRotationSeconds = global.LoadingSpinnerRotationSeconds; + target.EnableLoadingSpinnerAutoSpeed = global.EnableLoadingSpinnerAutoSpeed; + } + } +} \ No newline at end of file diff --git a/source/Generic/SplashScreen/Localization/af_ZA.xaml b/source/Generic/SplashScreen/Localization/af_ZA.xaml index 8df48f6855..4d415b18b6 100644 --- a/source/Generic/SplashScreen/Localization/af_ZA.xaml +++ b/source/Generic/SplashScreen/Localization/af_ZA.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Wys laaispinner + Spinnergrootte (pixels): + Spinner-deursigtigheid: + Spinner-spoed (sekondes per omwenteling): + Voorskou: + Voorskou-agtergrond: + Dikte van laaispinner (pixels): + Aantal strepies van laaispinner: + Lengte van spinnerstrepie (pixels): + Gebruik afgeronde strepie-eindes + Pas spinner-spoed outomaties aan volgens spinnergrootte + + Veilige area-opvulling (pixels): + Ondeursigtigheid van agtergrondbeeld: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/ar_SA.xaml b/source/Generic/SplashScreen/Localization/ar_SA.xaml index 2b99015ab9..781726fc0c 100644 --- a/source/Generic/SplashScreen/Localization/ar_SA.xaml +++ b/source/Generic/SplashScreen/Localization/ar_SA.xaml @@ -1,59 +1,74 @@ - - - مساعدة - فتح إدارة الفيديو - تعطيل الإضافة للألعاب المختارة - أعد تفعيل الإضافة للألعاب المختارة - إضافة خاصية تخطي شاشة عرض الصور إلى الألعاب المحددة - إزالة خاصية تخطي شاشة عرض الصور من الألعاب المحددة - Open "{0}" settings window - Delete Splash Screen configuration - - تم إضافة فيديو مقدمة - تم حذف فيديو المقدمة - تم اضافة "{0}" ميزة استبعاد "{1}" لعبة - تم إزالة "{0}" ميزة استبعاد "{1}" لعبة - - تفعيل الإضافة في وضع سطح المكتب - عرض صور شاشة العرض في وضع سطح المكتب - عرض فيديو المقدمة في وضع Desktop - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - تفعيل الإضافة في وضع ملء الشاشة - عرض صور شاشة العرض في وضع ملء الشاشة - عرض فيديو المقدمة في وضع Fullscreen - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - استخدام أيقونة اللعبة من بيانات التعريف كشعار - استخدام الشاشة السوداء بدلاً من صورة شاشة البداية - الموقع الأفقي للشعار: - الموقع العمودي للشعار: - اليسار - الوسط - اليمين - الأعلى - الوسط - الأسفل - استخدام تلاشي الرسوم المتحركة لصورة الشاشة - استخدام تلاشي الرسوم المتحركة لشعار الشاشة - - استخدام صورة بداية عامة لجميع الألعاب - استخدم شعار اللعبة في صورة البداية العالمية إذا كان متاحًا - تصفح... - إزالة - - إدارة الفيديو - الألعاب المختارة - المصادر - المِنصات - وضع Playnite - المجموعات: - بحث: - الفيديو غير متوفر - إضافة فيديو - إزالة الفيديو - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + مساعدة + فتح إدارة الفيديو + تعطيل الإضافة للألعاب المختارة + أعد تفعيل الإضافة للألعاب المختارة + إضافة خاصية تخطي شاشة عرض الصور إلى الألعاب المحددة + إزالة خاصية تخطي شاشة عرض الصور من الألعاب المحددة + Open "{0}" settings window + Delete Splash Screen configuration + + تم إضافة فيديو مقدمة + تم حذف فيديو المقدمة + تم اضافة "{0}" ميزة استبعاد "{1}" لعبة + تم إزالة "{0}" ميزة استبعاد "{1}" لعبة + + تفعيل الإضافة في وضع سطح المكتب + عرض صور شاشة العرض في وضع سطح المكتب + عرض فيديو المقدمة في وضع Desktop + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + تفعيل الإضافة في وضع ملء الشاشة + عرض صور شاشة العرض في وضع ملء الشاشة + عرض فيديو المقدمة في وضع Fullscreen + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + استخدام أيقونة اللعبة من بيانات التعريف كشعار + استخدام الشاشة السوداء بدلاً من صورة شاشة البداية + الموقع الأفقي للشعار: + الموقع العمودي للشعار: + اليسار + الوسط + اليمين + الأعلى + الوسط + الأسفل + استخدام تلاشي الرسوم المتحركة لصورة الشاشة + استخدام تلاشي الرسوم المتحركة لشعار الشاشة + إظهار مؤشر التحميل الدوار + حجم المؤشر الدوار (بالبكسل): + شفافية المؤشر الدوار: + سرعة المؤشر الدوار (ثوانٍ لكل دورة): + معاينة: + خلفية المعاينة: + سُمك المؤشر الدوار (بالبكسل): + عدد شرطات المؤشر الدوار: + طول شرطة المؤشر الدوار (بالبكسل): + استخدام نهايات مستديرة للشرطات + ضبط سرعة المؤشر الدوار تلقائيا حسب الحجم + + حشوة المنطقة الآمنة (بالبكسل): + شفافية صورة الخلفية: + + استخدام صورة بداية عامة لجميع الألعاب + استخدم شعار اللعبة في صورة البداية العالمية إذا كان متاحًا + تصفح... + إزالة + + إدارة الفيديو + الألعاب المختارة + المصادر + المِنصات + وضع Playnite + المجموعات: + بحث: + الفيديو غير متوفر + إضافة فيديو + إزالة الفيديو + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/ca_ES.xaml b/source/Generic/SplashScreen/Localization/ca_ES.xaml index 8df48f6855..1fa2cee706 100644 --- a/source/Generic/SplashScreen/Localization/ca_ES.xaml +++ b/source/Generic/SplashScreen/Localization/ca_ES.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Mostra l'indicador de càrrega + Mida de l'indicador (píxels): + Opacitat de l'indicador: + Velocitat de l'indicador (segons per volta): + Vista prèvia: + Fons de la previsualització: + Gruix de l'indicador (píxels): + Nombre de traços de l'indicador: + Longitud del traç de l'indicador (píxels): + Utilitza extrems arrodonits als traços + Ajusta automàticament la velocitat segons la mida de l'indicador + + Padding de l'àrea segura (píxels): + Opacitat de la imatge de fons: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/cs_CZ.xaml b/source/Generic/SplashScreen/Localization/cs_CZ.xaml index 8df48f6855..0b5f234cad 100644 --- a/source/Generic/SplashScreen/Localization/cs_CZ.xaml +++ b/source/Generic/SplashScreen/Localization/cs_CZ.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Zobrazit indikátor načítání + Velikost indikátoru (pixely): + Průhlednost indikátoru: + Rychlost indikátoru (sekundy na otáčku): + Náhled: + Pozadí náhledu: + Tloušťka indikátoru (pixely): + Počet čárek indikátoru: + Délka čárky indikátoru (pixely): + Použít zaoblené konce čárek + Automaticky upravit rychlost indikátoru podle jeho velikosti + + Odsazení bezpečné oblasti (pixely): + Průhlednost obrázku pozadí: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/da_DK.xaml b/source/Generic/SplashScreen/Localization/da_DK.xaml index 8df48f6855..ef9af47e8b 100644 --- a/source/Generic/SplashScreen/Localization/da_DK.xaml +++ b/source/Generic/SplashScreen/Localization/da_DK.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Vis indlæsningsspinner + Spinnerstørrelse (pixels): + Spinneropacitet: + Spinnerhastighed (sekunder pr. omdrejning): + Forhåndsvisning: + Forhåndsvisningsbaggrund: + Tykkelse på spinner (pixels): + Antal streger i spinner: + Længde på spinnerstreg (pixels): + Brug afrundede stregeender + Juster automatisk spinnerhastighed efter spinnerstørrelse + + Sikkerhedsafstand (pixels): + Opacitet for baggrundsbillede: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/de_DE.xaml b/source/Generic/SplashScreen/Localization/de_DE.xaml index c03487be11..2b79bef608 100644 --- a/source/Generic/SplashScreen/Localization/de_DE.xaml +++ b/source/Generic/SplashScreen/Localization/de_DE.xaml @@ -1,59 +1,74 @@ - - - Hilfe - Video-Manager öffnen - Erweiterung für ausgewählte Spiele deaktivieren - Erweiterung für die ausgewählten Spiele wieder aktivieren - Füge Bild-Splashscreen-Überspringen-Funktion ausgewählten Spielen hinzu - Entferne Bild-Splashscreen-Überspringen-Funktion von ausgewählten Spielen - Öffne "{0}" Einstellungsfenster - Splash Screen Konfiguration löschen - - Intro-Video wurde hinzugefügt - Intro-Video wurde entfernt - "{0}"-Ausschluss-Funktion zu {1} Spiel(en) hinzugefügt - "{0}"-Ausschluss-Funktion von {1} Spiel(en) entfernt - - Erweiterung im Desktop-Modus ausführen - Splashscreen-Bilder im Desktop-Modus anzeigen - Intro-Videos im Desktop-Modus anzeigen - MicroTrailer verwenden - Schließe Splashscreen automatisch im Desktop-Modus (Deaktivieren versteckt Desktop, wenn das Spiel geschlossen wird, kann aber Probleme verursachen) - Erweiterung im Vollbild-Modus ausführen - Splashscreen-Bilder im Vollbild-Modus anzeigen - Intro-Videos im Vollbild-Modus anzeigen - Schließe Splashscreen automatisch im Vollbild-Modus (Deaktivieren versteckt Desktop, wenn das Spiel geschlossen wird, kann aber Probleme verursachen) - Spiele-Logo zum Splashscreen-Bild hinzufügen, falls verfügbar - Benutze Spielsymbol aus Metadaten als Logo - Schwarzen Splashscreen anstelle des Splashscreen-Bildes verwenden - Logo horizontale Position: - Logo vertikale Position: - Links - Mitte - Rechts - Oben - Mitte - Unten - Einblendungsanimation für den Startbildschirm verwenden - Einblendungsanimation für das Logo auf dem Startbildschirm verwenden - - Ein globales Splash Bild für alle Spiele verwenden - Verwende das Spiellogo im globalen Splash Bild, falls verfügbar - Durchsuchen... - Entfernen - - Videoverwaltung - Ausgewählte Spiele - Quellen - Plattformen - Playnite-Modus - Sammlung: - Suchen: - Video nicht verfügbar - Video hinzufügen - Video entfernen - Benutzerdefiniertes Hintergrundbild verwenden - Spielspezifische Einstellungen aktivieren - Einstellungen speichern - Einstellungen gespeichert - + + + Hilfe + Video-Manager öffnen + Erweiterung für ausgewählte Spiele deaktivieren + Erweiterung für die ausgewählten Spiele wieder aktivieren + Füge Bild-Splashscreen-Überspringen-Funktion ausgewählten Spielen hinzu + Entferne Bild-Splashscreen-Überspringen-Funktion von ausgewählten Spielen + Öffne "{0}" Einstellungsfenster + Splash Screen Konfiguration löschen + + Intro-Video wurde hinzugefügt + Intro-Video wurde entfernt + "{0}"-Ausschluss-Funktion zu {1} Spiel(en) hinzugefügt + "{0}"-Ausschluss-Funktion von {1} Spiel(en) entfernt + + Erweiterung im Desktop-Modus ausführen + Splashscreen-Bilder im Desktop-Modus anzeigen + Intro-Videos im Desktop-Modus anzeigen + MicroTrailer verwenden + Schließe Splashscreen automatisch im Desktop-Modus (Deaktivieren versteckt Desktop, wenn das Spiel geschlossen wird, kann aber Probleme verursachen) + Erweiterung im Vollbild-Modus ausführen + Splashscreen-Bilder im Vollbild-Modus anzeigen + Intro-Videos im Vollbild-Modus anzeigen + Schließe Splashscreen automatisch im Vollbild-Modus (Deaktivieren versteckt Desktop, wenn das Spiel geschlossen wird, kann aber Probleme verursachen) + Spiele-Logo zum Splashscreen-Bild hinzufügen, falls verfügbar + Benutze Spielsymbol aus Metadaten als Logo + Schwarzen Splashscreen anstelle des Splashscreen-Bildes verwenden + Logo horizontale Position: + Logo vertikale Position: + Links + Mitte + Rechts + Oben + Mitte + Unten + Einblendungsanimation für den Startbildschirm verwenden + Einblendungsanimation für das Logo auf dem Startbildschirm verwenden + Ladespinner anzeigen + Spinnergröße (Pixel): + Spinner-Deckkraft: + Spinner-Geschwindigkeit (Sekunden pro Umdrehung): + Vorschau: + Vorschauhintergrund: + Dicke des Spinners (Pixel): + Anzahl der Spinner-Striche: + Länge der Spinner-Striche (Pixel): + Abgerundete Strichenden verwenden + Spinner-Geschwindigkeit automatisch an die Spinnergröße anpassen + + Sicherheitsabstand (Pixel): + Deckkraft des Hintergrundbilds: + + Ein globales Splash Bild für alle Spiele verwenden + Verwende das Spiellogo im globalen Splash Bild, falls verfügbar + Durchsuchen... + Entfernen + + Videoverwaltung + Ausgewählte Spiele + Quellen + Plattformen + Playnite-Modus + Sammlung: + Suchen: + Video nicht verfügbar + Video hinzufügen + Video entfernen + Benutzerdefiniertes Hintergrundbild verwenden + Spielspezifische Einstellungen aktivieren + Einstellungen speichern + Einstellungen gespeichert + + diff --git a/source/Generic/SplashScreen/Localization/en_US.xaml b/source/Generic/SplashScreen/Localization/en_US.xaml index bfd8bdcafd..fbc07d4773 100644 --- a/source/Generic/SplashScreen/Localization/en_US.xaml +++ b/source/Generic/SplashScreen/Localization/en_US.xaml @@ -1,4 +1,4 @@ - + Help Open video manager Disable extension for the selected games @@ -35,6 +35,20 @@ Bottom Use fade-in animation for the splash screen image Use fade-in animation for the splash screen logo + Show loading spinner + Spinner size (pixels): + Spinner opacity: + Spinner speed (seconds per turn): + Preview: + Preview background: + Spinner thickness (pixels): + Spinner dash count: + Spinner dash length (pixels): + Use rounded dash caps + Adjust spinner speed automatically based on spinner size + + Safe area padding (pixels): + Background image opacity: Use a global splash image for all games Use game logo in global splash image if it's available @@ -55,4 +69,4 @@ Enable game specific settings Save settings Settings saved - \ No newline at end of file + diff --git a/source/Generic/SplashScreen/Localization/eo_UY.xaml b/source/Generic/SplashScreen/Localization/eo_UY.xaml index 8df48f6855..2c768619fe 100644 --- a/source/Generic/SplashScreen/Localization/eo_UY.xaml +++ b/source/Generic/SplashScreen/Localization/eo_UY.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Montri ŝargan turnilon + Grandeco de turnilo (rastrumeroj): + Opakeco de turnilo: + Rapido de turnilo (sekundoj por turno): + Antaŭvido: + Fono de antaŭvido: + Dikeco de turnilo (rastrumeroj): + Nombro de streketoj de turnilo: + Longeco de streketo de turnilo (rastrumeroj): + Uzi rondigitajn finojn de streketoj + Aŭtomate adapti la rapidon de turnilo laŭ la grandeco + + Sekura marĝeno (rastrumeroj): + Opakeco de fona bildo: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/es_ES.xaml b/source/Generic/SplashScreen/Localization/es_ES.xaml index b939d61812..84fe8d7ccf 100644 --- a/source/Generic/SplashScreen/Localization/es_ES.xaml +++ b/source/Generic/SplashScreen/Localization/es_ES.xaml @@ -1,59 +1,74 @@ - - - Ayuda - Abrir gestor de vídeo - Desactivar extensión para los juegos seleccionados - Volver a habilitar la extensión para los juegos seleccionados - Añadir la característica para saltar la imágen splashscreen a los juegos seleccionados - Quitar característica de exclusión para utilizar la imágen splashscreen de los juegos seleccionados - Abrir la ventana de configuración de "{0}" - Borrar la configuración de Splash Screen - - Se ha añadido el vídeo de introducción - Se ha eliminado el vídeo de introducción - Se añadió la característica "{0}" para excluir a {1} juego(s) - Se removio la característica de exclusión "{0}" de {1} juego(s) - - Ejecutar extensión en modo de escritorio - Ver imágen splashscreen en modo escritorio - Ver videos de introducción en modo de escritorio - Usar MicroTrailers - Cerrar automáticamente la imágen splashscreen en el modo de escritorio (Desactivar oculta el escritorio cuando se cierra el juego, pero puede causar problemas) - Ejecutar extensión en modo pantalla completa - Ver imagen splashscreen en modo pantalla completa - Ver videos de introducción en modo pantalla completa - Cerrar automáticamente la imagen splashscreen en el modo pantalla completa (Desactivar esconde el escritorio cuando el juego se cierra pero puede causar problemas) - Añadir logo del juego en la imagen splashscreen si está disponible - Usar icono del juego de Metadatos como logo - Usar pantalla negra en lugar de la imagen splashscreen - Posición horizontal del logo: - Posición vertical del logo: - Izquierda - Centro - Derecha - Arriba - Centro - Abajo - Usar animación de desvanecimiento para la imagen de la ventana de SplashScreen - Usar animación de desvanecimiento para el logo de la ventana de SplashScreen - - Usar una imagen global para todos los juegos - Usa el logo del juego en la imagen global si está disponible - Examinar... - Quitar - - Gestor de vídeo - Juegos seleccionados - Fuentes - Platafomas - Modo de Playnite - Colección: - Buscar: - Video no disponible - Añadir video - Eliminar vídeo - Usar imagen de fondo personalizada - Habilitar configuración específica del juego - Guardar configuración - Configuración guardada - + + + Ayuda + Abrir gestor de vídeo + Desactivar extensión para los juegos seleccionados + Volver a habilitar la extensión para los juegos seleccionados + Añadir la característica para saltar la imágen splashscreen a los juegos seleccionados + Quitar característica de exclusión para utilizar la imágen splashscreen de los juegos seleccionados + Abrir la ventana de configuración de "{0}" + Borrar la configuración de Splash Screen + + Se ha añadido el vídeo de introducción + Se ha eliminado el vídeo de introducción + Se añadió la característica "{0}" para excluir a {1} juego(s) + Se removio la característica de exclusión "{0}" de {1} juego(s) + + Ejecutar extensión en modo de escritorio + Ver imágen splashscreen en modo escritorio + Ver videos de introducción en modo de escritorio + Usar MicroTrailers + Cerrar automáticamente la imágen splashscreen en el modo de escritorio (Desactivar oculta el escritorio cuando se cierra el juego, pero puede causar problemas) + Ejecutar extensión en modo pantalla completa + Ver imagen splashscreen en modo pantalla completa + Ver videos de introducción en modo pantalla completa + Cerrar automáticamente la imagen splashscreen en el modo pantalla completa (Desactivar esconde el escritorio cuando el juego se cierra pero puede causar problemas) + Añadir logo del juego en la imagen splashscreen si está disponible + Usar icono del juego de Metadatos como logo + Usar pantalla negra en lugar de la imagen splashscreen + Posición horizontal del logo: + Posición vertical del logo: + Izquierda + Centro + Derecha + Arriba + Centro + Abajo + Usar animación de desvanecimiento para la imagen de la ventana de SplashScreen + Usar animación de desvanecimiento para el logo de la ventana de SplashScreen + Mostrar indicador de carga + Tamaño del indicador (píxeles): + Opacidad del indicador: + Velocidad del indicador (segundos por vuelta): + Vista previa: + Fondo de la vista previa: + Grosor del indicador (píxeles): + Cantidad de trazos del indicador: + Longitud del trazo del indicador (píxeles): + Usar extremos redondeados en los trazos + Ajustar automáticamente la velocidad según el tamaño del indicador + + Relleno del área segura (píxeles): + Opacidad de la imagen de fondo: + + Usar una imagen global para todos los juegos + Usa el logo del juego en la imagen global si está disponible + Examinar... + Quitar + + Gestor de vídeo + Juegos seleccionados + Fuentes + Platafomas + Modo de Playnite + Colección: + Buscar: + Video no disponible + Añadir video + Eliminar vídeo + Usar imagen de fondo personalizada + Habilitar configuración específica del juego + Guardar configuración + Configuración guardada + + diff --git a/source/Generic/SplashScreen/Localization/fa_IR.xaml b/source/Generic/SplashScreen/Localization/fa_IR.xaml index 8df48f6855..b47997f1a7 100644 --- a/source/Generic/SplashScreen/Localization/fa_IR.xaml +++ b/source/Generic/SplashScreen/Localization/fa_IR.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + نمایش نشانگر بارگذاری + اندازهٔ نشانگر (پیکسل): + شفافیت نشانگر: + سرعت نشانگر (ثانیه در هر دور): + پیش‌نمایش: + پس‌زمینه پیش‌نمایش: + ضخامت نشانگر (پیکسل): + تعداد خط‌چین‌های نشانگر: + طول خط‌چین نشانگر (پیکسل): + استفاده از سرخط‌های گرد + تنظیم خودکار سرعت نشانگر بر اساس اندازهٔ آن + + فاصلهٔ ناحیهٔ امن (پیکسل): + شفافیت تصویر پس‌زمینه: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/fi_FI.xaml b/source/Generic/SplashScreen/Localization/fi_FI.xaml index 8df48f6855..3dbbbd227c 100644 --- a/source/Generic/SplashScreen/Localization/fi_FI.xaml +++ b/source/Generic/SplashScreen/Localization/fi_FI.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Näytä latausikoni + Pyörivän ilmaisimen koko (pikseleinä): + Pyörivän ilmaisimen peittävyys: + Pyörivän ilmaisimen nopeus (sekuntia/kierros): + Esikatselu: + Esikatselun tausta: + Pyörivän ilmaisimen paksuus (pikseleinä): + Pyörivän ilmaisimen viivojen määrä: + Pyörivän ilmaisimen viivan pituus (pikseleinä): + Käytä pyöristettyjä viivanpäitä + Säädä pyörivän ilmaisimen nopeutta automaattisesti koon mukaan + + Turva-alueen reunus (pikseleinä): + Taustakuvan peittävyys: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/fr_FR.xaml b/source/Generic/SplashScreen/Localization/fr_FR.xaml index 4967ff7d4b..5db6589235 100644 --- a/source/Generic/SplashScreen/Localization/fr_FR.xaml +++ b/source/Generic/SplashScreen/Localization/fr_FR.xaml @@ -1,59 +1,74 @@ - - - Aide - Ouvrir le gestionnaire de vidéos - Désactiver l'extension pour les jeux sélectionnés - Ré-activer l'extension pour les jeux sélectionnés - Ajouter la fonction ignorer l'écran de démarrage aux jeux sélectionnés - Retirer la fonction ignorer l'écran de démarrage aux jeux sélectionnés - Ouvrir la fenêtre de configuration pour "{0}" - Supprimer la configuration personnalisée - - La vidéo de démarrage a été ajoutée - La vidéo de démarrage a été supprimée - Ajout de la fonction d'exclusion "{0}" à {1} jeu(x) - Suppression de la fonction d'exclusion "{0}" à {1} jeu(x) - - Exécuter l'extension en mode bureau - Afficher les images de démarrage en mode bureau - Voir les vidéos de démarrage en mode bureau - Utiliser des micro bandes-annonces - Fermer automatiquement l'image de démarrage en mode bureau (désactiver ceci masque le bureau lorsque le jeu s’arrête mais peut causer des problèmes) - Exécuter l'extension en mode plein écran - Afficher les images de démarrage en mode plein écran - Voir les vidéos de démarrage en mode plein écran - Fermer automatiquement l'image de démarrage en mode plein écran (désactiver ceci masque le bureau lorsque le jeu s’arrête mais peut causer des problèmes) - Ajouter le logo du jeu dans l'image de démarrage si disponible - Utiliser l'icône du jeu des médias comme logo - Utiliser un écran noir de démarrage au lieu de l'image de démarrage - Position horizontale du logo: - Position verticale du logo: - Gauche - Centre - Droite - Haut - Centre - Bas - Utiliser un fondu pour l'image de démarrage - Utiliser un fondu pour le logo de démarrage - - Utiliser une image de démarrage globale pour tous les jeux - Utiliser le logo du jeu dans l'image de démarrage globale s'il est disponible - Parcourir... - Retirer - - Gestionnaire de vidéos - Jeux sélectionnés - Sources - Platformes - Mode Playnite - Collection : - Rechercher : - Vidéo non disponible - Ajouter une vidéo - Supprimer la vidéo - Utiliser une image de fond personnalisée - Activer la configuration personnalisée - Enregistrer les paramètres - Paramètres enregistrés - + + + Aide + Ouvrir le gestionnaire de vidéos + Désactiver l'extension pour les jeux sélectionnés + Ré-activer l'extension pour les jeux sélectionnés + Ajouter la fonction ignorer l'écran de démarrage aux jeux sélectionnés + Retirer la fonction ignorer l'écran de démarrage aux jeux sélectionnés + Ouvrir la fenêtre de configuration pour "{0}" + Supprimer la configuration personnalisée + + La vidéo de démarrage a été ajoutée + La vidéo de démarrage a été supprimée + Ajout de la fonction d'exclusion "{0}" à {1} jeu(x) + Suppression de la fonction d'exclusion "{0}" à {1} jeu(x) + + Exécuter l'extension en mode bureau + Afficher les images de démarrage en mode bureau + Voir les vidéos de démarrage en mode bureau + Utiliser des micro bandes-annonces + Fermer automatiquement l'image de démarrage en mode bureau (désactiver ceci masque le bureau lorsque le jeu s’arrête mais peut causer des problèmes) + Exécuter l'extension en mode plein écran + Afficher les images de démarrage en mode plein écran + Voir les vidéos de démarrage en mode plein écran + Fermer automatiquement l'image de démarrage en mode plein écran (désactiver ceci masque le bureau lorsque le jeu s’arrête mais peut causer des problèmes) + Ajouter le logo du jeu dans l'image de démarrage si disponible + Utiliser l'icône du jeu des médias comme logo + Utiliser un écran noir de démarrage au lieu de l'image de démarrage + Position horizontale du logo: + Position verticale du logo: + Gauche + Centre + Droite + Haut + Centre + Bas + Utiliser un fondu pour l'image de démarrage + Utiliser un fondu pour le logo de démarrage + Afficher l'indicateur de chargement + Taille de l'indicateur (pixels) : + Opacité de l'indicateur : + Vitesse de l'indicateur (secondes par tour) : + Aperçu : + Arriere-plan de l'aperçu : + Épaisseur de l'indicateur (pixels) : + Nombre de segments de l'indicateur : + Longueur des segments de l'indicateur (pixels) : + Utiliser des extrémités de segments arrondies + Ajuster automatiquement la vitesse selon la taille de l'indicateur + + Marge de zone sûre (pixels) : + Opacité de l'image d'arrière-plan : + + Utiliser une image de démarrage globale pour tous les jeux + Utiliser le logo du jeu dans l'image de démarrage globale s'il est disponible + Parcourir... + Retirer + + Gestionnaire de vidéos + Jeux sélectionnés + Sources + Platformes + Mode Playnite + Collection : + Rechercher : + Vidéo non disponible + Ajouter une vidéo + Supprimer la vidéo + Utiliser une image de fond personnalisée + Activer la configuration personnalisée + Enregistrer les paramètres + Paramètres enregistrés + + diff --git a/source/Generic/SplashScreen/Localization/gl_ES.xaml b/source/Generic/SplashScreen/Localization/gl_ES.xaml index 8df48f6855..9c1fbb891c 100644 --- a/source/Generic/SplashScreen/Localization/gl_ES.xaml +++ b/source/Generic/SplashScreen/Localization/gl_ES.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Mostrar indicador de carga + Tamaño do indicador (píxeles): + Opacidade do indicador: + Velocidade do indicador (segundos por volta): + Vista previa: + Fondo da vista previa: + Espesor do indicador (píxeles): + Cantidade de trazos do indicador: + Lonxitude do trazo do indicador (píxeles): + Usar extremos redondeados no trazado + Axustar automaticamente a velocidade segundo o tamaño do indicador + + Marxe da área segura (píxeles): + Opacidade da imaxe de fondo: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/hr_HR.xaml b/source/Generic/SplashScreen/Localization/hr_HR.xaml index 8df48f6855..101574ade9 100644 --- a/source/Generic/SplashScreen/Localization/hr_HR.xaml +++ b/source/Generic/SplashScreen/Localization/hr_HR.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Prikaži indikator učitavanja + Veličina indikatora (pikseli): + Neprozirnost indikatora: + Brzina indikatora (sekunde po okretu): + Pregled: + Pozadina pregleda: + Debljina indikatora (pikseli): + Broj crtica indikatora: + Duljina crtice indikatora (pikseli): + Koristi zaobljene završetke crtica + Automatski prilagodi brzinu indikatora prema veličini + + Razmak sigurnog područja (pikseli): + Neprozirnost pozadinske slike: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/hu_HU.xaml b/source/Generic/SplashScreen/Localization/hu_HU.xaml index 8df48f6855..c1a904cc55 100644 --- a/source/Generic/SplashScreen/Localization/hu_HU.xaml +++ b/source/Generic/SplashScreen/Localization/hu_HU.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Töltési jelző megjelenítése + Jelző mérete (képpont): + Jelző átlátszósága: + Jelző sebessége (másodperc/fordulat): + Előnézet: + Előnézet háttere: + Jelző vastagsága (képpont): + Jelző vonásainak száma: + Jelző vonásának hossza (képpont): + Lekerekített vonásvégek használata + A jelző sebességének automatikus igazítása a méretéhez + + Biztonsági terület margója (képpont): + Háttérkép átlátszósága: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/it_IT.xaml b/source/Generic/SplashScreen/Localization/it_IT.xaml index 7cc3141e03..b6a65f7351 100644 --- a/source/Generic/SplashScreen/Localization/it_IT.xaml +++ b/source/Generic/SplashScreen/Localization/it_IT.xaml @@ -1,59 +1,74 @@ - - - Aiuto - Apri gestore video - Disabilita l'estensione per i giochi selezionati - Riattiva l'estensione per i giochi selezionati - Aggiungi la funzionalità della schermata di avvio dell'immagine ai giochi selezionati - Rimuovi la funzionalità della schermata di avvio dell'immagine dai giochi selezionati - Apri la finestra delle impostazioni "{0}" - Elimina configurazione schermata di avvio - - Il video introduttivo è stato aggiunto - Il video introduttivo è stato rimosso - Aggiunto la funzione di esclusione "{0}" a {1} gioco(i) - Rimossa la funzione di esclusione "{0}" da {1} gioco(i) - - Esegui l'estensione in modalità desktop - Visualizza le immagini della schermata iniziale in modalità desktop - Visualizza video introduttivi in modalità desktop - Usa MicroTrailers - Chiudi automaticamente la schermata iniziale in modalità desktop (Disabilita nasconde il desktop quando il gioco si chiude ma può causare problemi) - Esegui estensione in modalità schermo intero - Visualizza le immagini della schermata iniziale in modalità schermo intero - Visualizza video introduttivi in modalità schermo intero - Chiudi automaticamente la schermata iniziale in modalità schermo intero (Disabilita nasconde il desktop quando il gioco si chiude ma può causare problemi) - Aggiungi logo di gioco nell'immagine della schermata iniziale se disponibile - Usa l'icona del gioco dai metadati come logo - Usa la schermata iniziale nera invece che l'immagine della schermata iniziale - Posizione orizzontale del logo: - Posizione verticale del logo: - Sinistra - Al centro - Destra - In alto - Al centro - In basso - Usa l'animazione di dissolvenza per l'immagine della schermata iniziale - Usa l'animazione di dissolvenza per il logo della schermata iniziale - - Usa un'immagine splash globale per tutti i giochi - Usa il logo del gioco nell'immagine splash globale se è disponibile - Sfoglia... - Rimuovi - - Gestore video - Giochi selezionati - Fonti - Piattaforme - Modalità Playnite - Collezione: - Cerca: - Video non disponibile - Aggiungi video - Rimuovi video - Usa un'immagine di sfondo personalizzata - Abilita impostazioni specifiche per il gioco - Salva impostazioni - Impostazioni salvate - + + + Aiuto + Apri gestore video + Disabilita l'estensione per i giochi selezionati + Riattiva l'estensione per i giochi selezionati + Aggiungi la funzionalità della schermata di avvio dell'immagine ai giochi selezionati + Rimuovi la funzionalità della schermata di avvio dell'immagine dai giochi selezionati + Apri la finestra delle impostazioni "{0}" + Elimina configurazione schermata di avvio + + Il video introduttivo è stato aggiunto + Il video introduttivo è stato rimosso + Aggiunto la funzione di esclusione "{0}" a {1} gioco(i) + Rimossa la funzione di esclusione "{0}" da {1} gioco(i) + + Esegui l'estensione in modalità desktop + Visualizza le immagini della schermata iniziale in modalità desktop + Visualizza video introduttivi in modalità desktop + Usa MicroTrailers + Chiudi automaticamente la schermata iniziale in modalità desktop (Disabilita nasconde il desktop quando il gioco si chiude ma può causare problemi) + Esegui estensione in modalità schermo intero + Visualizza le immagini della schermata iniziale in modalità schermo intero + Visualizza video introduttivi in modalità schermo intero + Chiudi automaticamente la schermata iniziale in modalità schermo intero (Disabilita nasconde il desktop quando il gioco si chiude ma può causare problemi) + Aggiungi logo di gioco nell'immagine della schermata iniziale se disponibile + Usa l'icona del gioco dai metadati come logo + Usa la schermata iniziale nera invece che l'immagine della schermata iniziale + Posizione orizzontale del logo: + Posizione verticale del logo: + Sinistra + Al centro + Destra + In alto + Al centro + In basso + Usa l'animazione di dissolvenza per l'immagine della schermata iniziale + Usa l'animazione di dissolvenza per il logo della schermata iniziale + Mostra indicatore di caricamento + Dimensione indicatore (pixel): + Opacità indicatore: + Velocità indicatore (secondi per giro): + Anteprima: + Sfondo anteprima: + Spessore indicatore (pixel): + Numero trattini indicatore: + Lunghezza trattino indicatore (pixel): + Usa estremità arrotondate per i trattini + Regola automaticamente la velocità in base alla dimensione dell'indicatore + + Margine area sicura (pixel): + Opacità immagine di sfondo: + + Usa un'immagine splash globale per tutti i giochi + Usa il logo del gioco nell'immagine splash globale se è disponibile + Sfoglia... + Rimuovi + + Gestore video + Giochi selezionati + Fonti + Piattaforme + Modalità Playnite + Collezione: + Cerca: + Video non disponibile + Aggiungi video + Rimuovi video + Usa un'immagine di sfondo personalizzata + Abilita impostazioni specifiche per il gioco + Salva impostazioni + Impostazioni salvate + + diff --git a/source/Generic/SplashScreen/Localization/ja_JP.xaml b/source/Generic/SplashScreen/Localization/ja_JP.xaml index 1c594a91aa..27fad4a64f 100644 --- a/source/Generic/SplashScreen/Localization/ja_JP.xaml +++ b/source/Generic/SplashScreen/Localization/ja_JP.xaml @@ -1,59 +1,74 @@ - - - ヘルプ - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - イントロ動画を追加しました - イントロ動画を削除しました - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - - 中央 - - - 中央 - - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - 参照… - 削除 - - Video manager - Selected games - ソース - プラットフォーム - Playnite Mode - コレクション: - 検索: - 動画は利用できません - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + ヘルプ + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + イントロ動画を追加しました + イントロ動画を削除しました + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + + 中央 + + + 中央 + + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + 読み込みスピナーを表示 + スピナーサイズ (ピクセル): + スピナーの不透明度: + スピナー速度 (1回転あたりの秒数): + プレビュー: + プレビュー背景: + スピナーの太さ (ピクセル): + スピナーのダッシュ数: + スピナーのダッシュ長 (ピクセル): + ダッシュ端を丸くする + スピナーサイズに応じて速度を自動調整する + + セーフエリアの余白 (ピクセル): + 背景画像の不透明度: + + Use a global splash image for all games + Use game logo in global splash image if it's available + 参照… + 削除 + + Video manager + Selected games + ソース + プラットフォーム + Playnite Mode + コレクション: + 検索: + 動画は利用できません + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/ko_KR.xaml b/source/Generic/SplashScreen/Localization/ko_KR.xaml index 8df48f6855..44073630c3 100644 --- a/source/Generic/SplashScreen/Localization/ko_KR.xaml +++ b/source/Generic/SplashScreen/Localization/ko_KR.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + 로딩 스피너 표시 + 스피너 크기(픽셀): + 스피너 불투명도: + 스피너 속도(회전당 초): + 미리 보기: + 미리 보기 배경: + 스피너 두께(픽셀): + 스피너 대시 개수: + 스피너 대시 길이(픽셀): + 둥근 대시 끝 사용 + 스피너 크기에 따라 속도를 자동으로 조정 + + 안전 영역 여백(픽셀): + 배경 이미지 불투명도: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/nl_NL.xaml b/source/Generic/SplashScreen/Localization/nl_NL.xaml index 8df48f6855..aee24d0534 100644 --- a/source/Generic/SplashScreen/Localization/nl_NL.xaml +++ b/source/Generic/SplashScreen/Localization/nl_NL.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Laadspinner weergeven + Spinnergrootte (pixels): + Spinnerdekking: + Spinnersnelheid (seconden per omwenteling): + Voorbeeld: + Voorbeeldachtergrond: + Dikte van de spinner (pixels): + Aantal streepjes van de spinner: + Lengte van spinnerstreepjes (pixels): + Afgeronde uiteinden voor streepjes gebruiken + Spinnersnelheid automatisch aanpassen op basis van de spinnergrootte + + Veilige-gebied opvulling (pixels): + Dekking van achtergrondafbeelding: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/no_NO.xaml b/source/Generic/SplashScreen/Localization/no_NO.xaml index a3f11bff97..f744c4750b 100644 --- a/source/Generic/SplashScreen/Localization/no_NO.xaml +++ b/source/Generic/SplashScreen/Localization/no_NO.xaml @@ -1,59 +1,74 @@ - - - Hjelp - Åpne video-behandler - Deaktiver utvidelse for valgte spill - Reaktiver utvidelse for valgte spill - Legg til funksjon for å hoppe over splash screen i valgte spill - Fjern funksjon for å hoppe over splash screen i valgte spill - Åpne instillinger for "{0}" - Slett konfigurasjon for oppstartsbilde - - Intro-video ble lagt til - Intro-video er fjernet - La til "{0}" ekskluder-funksjon til {1} spill - Fjernet "{0}" ekskluder-funksjon fra {1} spill - - Kjør utvidelsen i skrivebordsmodus - Vis splashscreen-bilder i skrivebordsmodus - Vis intro-videoer i skrivebordsmodus - Bruk mikrotrailere - Lukk splashscreen automatisk i skrivebordsmodus (deaktivering skjuler skrivebordet når spillet lukkes, men kan forårsake problemer) - Kjør utvidelse i fullskjermmodus - Vis splashscreen-bilder i fullskjermmodus - Vis intro-videoer i fullskjermmodus - Lukk splashscreen automatisk i fullskjermmodus (deaktivering skjuler skrivebordet når spillet lukkes, men kan forårsake problemer) - Legg til spilllogo i splashscreen-bilde hvis tilgjengelig - Bruk spillikon fra metadata som logo - Bruk svart splashscreen i stedet for splashscreen-bildet - Logoens horisontale posisjon: - Logoens vertikale posisjon: - Venstre - Midtstilt - Høyre - Øverst - Midtstilt - Nederst - Bruk inntoningsanimasjon for splash screen-bilde - Bruk inntoningsanimasjon for splash screen-logo - - Bruk et globalt bilde for alle spill - Bruk spilllogo i globalt splashscreen-bilde hvis tilgjengelig - Bla gjennom… - Fjern - - Videobehandler - Valgte spill - Kilder - Plattformer - Playnite-modus - Samling: - Søk: - Video ikke tilgjengelig - Legg til video - Fjern video - Bruk egendefinert bakgrunnsbilde - Aktiver spill-spesifikke innstillinger - Lagre innstillinger - Innstillingene er lagret - + + + Hjelp + Åpne video-behandler + Deaktiver utvidelse for valgte spill + Reaktiver utvidelse for valgte spill + Legg til funksjon for å hoppe over splash screen i valgte spill + Fjern funksjon for å hoppe over splash screen i valgte spill + Åpne instillinger for "{0}" + Slett konfigurasjon for oppstartsbilde + + Intro-video ble lagt til + Intro-video er fjernet + La til "{0}" ekskluder-funksjon til {1} spill + Fjernet "{0}" ekskluder-funksjon fra {1} spill + + Kjør utvidelsen i skrivebordsmodus + Vis splashscreen-bilder i skrivebordsmodus + Vis intro-videoer i skrivebordsmodus + Bruk mikrotrailere + Lukk splashscreen automatisk i skrivebordsmodus (deaktivering skjuler skrivebordet når spillet lukkes, men kan forårsake problemer) + Kjør utvidelse i fullskjermmodus + Vis splashscreen-bilder i fullskjermmodus + Vis intro-videoer i fullskjermmodus + Lukk splashscreen automatisk i fullskjermmodus (deaktivering skjuler skrivebordet når spillet lukkes, men kan forårsake problemer) + Legg til spilllogo i splashscreen-bilde hvis tilgjengelig + Bruk spillikon fra metadata som logo + Bruk svart splashscreen i stedet for splashscreen-bildet + Logoens horisontale posisjon: + Logoens vertikale posisjon: + Venstre + Midtstilt + Høyre + Øverst + Midtstilt + Nederst + Bruk inntoningsanimasjon for splash screen-bilde + Bruk inntoningsanimasjon for splash screen-logo + Vis lastespinner + Spinnerstørrelse (piksler): + Spinneropasitet: + Spinnerhastighet (sekunder per omdreining): + Forhåndsvisning: + Forhåndsvisningsbakgrunn: + Tykkelse på spinner (piksler): + Antall streker i spinner: + Lengde på spinnerstrek (piksler): + Bruk avrundede strekender + Juster spinnerhastigheten automatisk basert på spinnerstørrelse + + Sikkerhetsmarg (piksler): + Opasitet for bakgrunnsbilde: + + Bruk et globalt bilde for alle spill + Bruk spilllogo i globalt splashscreen-bilde hvis tilgjengelig + Bla gjennom… + Fjern + + Videobehandler + Valgte spill + Kilder + Plattformer + Playnite-modus + Samling: + Søk: + Video ikke tilgjengelig + Legg til video + Fjern video + Bruk egendefinert bakgrunnsbilde + Aktiver spill-spesifikke innstillinger + Lagre innstillinger + Innstillingene er lagret + + diff --git a/source/Generic/SplashScreen/Localization/pl_PL.xaml b/source/Generic/SplashScreen/Localization/pl_PL.xaml index 8df48f6855..f796b3f934 100644 --- a/source/Generic/SplashScreen/Localization/pl_PL.xaml +++ b/source/Generic/SplashScreen/Localization/pl_PL.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Pokaż wskaźnik ładowania + Rozmiar wskaźnika (piksele): + Przezroczystość wskaźnika: + Szybkość wskaźnika (sekundy na obrót): + Podgląd: + Tło podglądu: + Grubość wskaźnika (piksele): + Liczba kresek wskaźnika: + Długość kreski wskaźnika (piksele): + Użyj zaokrąglonych zakończeń kresek + Automatycznie dostosuj szybkość wskaźnika do jego rozmiaru + + Margines bezpiecznego obszaru (piksele): + Przezroczystość obrazu tła: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/pt_BR.xaml b/source/Generic/SplashScreen/Localization/pt_BR.xaml index 958d301078..9f5cffaf9a 100644 --- a/source/Generic/SplashScreen/Localization/pt_BR.xaml +++ b/source/Generic/SplashScreen/Localization/pt_BR.xaml @@ -1,59 +1,74 @@ - - - Ajuda - Abrir gerenciador de vídeo - Desativar extensão para os jogos selecionados - Reativar extensão para os jogos selecionados - Adicionar recurso de pular imagem da tela de abertura aos jogos selecionados - Remover recurso de pular imagem de tela inicial dos jogos selecionados - Abrir configurações de "{0}" - Excluir configuração da tela de abertura - - O vídeo de introdução foi adicionado - O vídeo de introdução foi removido - Adicionar "{0}" e excluir recurso {1} do(s) jogo(s) - Remover "{0}" e excluir recurso {1} do(s) jogo(s) - - Executar extensão no Modo Desktop - Ver telas de abertura no Modo Desktop - Ver vídeos de introdução no Modo Desktop - Usar MicroTrailers - Fechar automaticamente a tela de abertura no modo Desktop (desativar oculta a área de trabalho quando o jogo fecha, mas pode causar problemas) - Executar extensão no Modo Tela Cheia - Ver tela de abertura no modo Tela Cheia - Ver vídeos de introdução no Modo Tela Cheia - Fechar automaticamente a tela de abertura no Modo Tela Cheia (desativar oculta a área de trabalho quando o jogo fecha, mas pode causar problemas) - Adicionar o logotipo do jogo na tela de abertura, se disponível - Usar o ícone do jogo dos Metadados como logotipo - Usar uma tela de abertura preta em vez de uma imagem - Posição horizontal do logotipo: - Posição vertical do logotipo: - Esquerda - Centro - Direita - Acima - Centro - Embaixo - Usar animação esmaecer para a tela de abertura - Usar a animação esmaecer para o logotipo da tela de abertura - - Usar uma tela inicial de abertura padrão para todos os jogos - Usa o logotipo do jogo na tela inicial padrão, se estiver disponível - Procurar... - Remover - - Gerenciador de vídeos - Jogos selecionados - Fontes - Plataformas - Modo do Playnite - Coleção: - Procurar: - Vídeo indisponível - Adicionar vídeo - Remover vídeo - Usar imagem de fundo personalizada - Ativar configurações específicas de jogos - Salvar Configurações - Configurações salvas - + + + Ajuda + Abrir gerenciador de vídeo + Desativar extensão para os jogos selecionados + Reativar extensão para os jogos selecionados + Adicionar recurso de pular imagem da tela de abertura aos jogos selecionados + Remover recurso de pular imagem de tela inicial dos jogos selecionados + Abrir configurações de "{0}" + Excluir configuração da tela de abertura + + O vídeo de introdução foi adicionado + O vídeo de introdução foi removido + Adicionar "{0}" e excluir recurso {1} do(s) jogo(s) + Remover "{0}" e excluir recurso {1} do(s) jogo(s) + + Executar extensão no Modo Desktop + Ver telas de abertura no Modo Desktop + Ver vídeos de introdução no Modo Desktop + Usar MicroTrailers + Fechar automaticamente a tela de abertura no modo Desktop (desativar oculta a área de trabalho quando o jogo fecha, mas pode causar problemas) + Executar extensão no Modo Tela Cheia + Ver tela de abertura no modo Tela Cheia + Ver vídeos de introdução no Modo Tela Cheia + Fechar automaticamente a tela de abertura no Modo Tela Cheia (desativar oculta a área de trabalho quando o jogo fecha, mas pode causar problemas) + Adicionar o logotipo do jogo na tela de abertura, se disponível + Usar o ícone do jogo dos Metadados como logotipo + Usar uma tela de abertura preta em vez de uma imagem + Posição horizontal do logotipo: + Posição vertical do logotipo: + Esquerda + Centro + Direita + Acima + Centro + Embaixo + Usar animação esmaecer para a tela de abertura + Usar a animação esmaecer para o logotipo da tela de abertura + Mostrar indicador de carregamento + Tamanho do indicador (pixels): + Opacidade do indicador: + Velocidade do indicador (segundos por volta): + Pré-visualização: + Fundo da pré-visualização: + Espessura do indicador (pixels): + Quantidade de traços do indicador: + Comprimento do tracejado do indicador (pixels): + Usar extremidades arredondadas no tracejado + Ajustar automaticamente a velocidade do indicador de acordo com o tamanho + + Margem da área segura (pixels): + Opacidade da imagem de fundo: + + Usar uma tela inicial de abertura padrão para todos os jogos + Usa o logotipo do jogo na tela inicial padrão, se estiver disponível + Procurar... + Remover + + Gerenciador de vídeos + Jogos selecionados + Fontes + Plataformas + Modo do Playnite + Coleção: + Procurar: + Vídeo indisponível + Adicionar vídeo + Remover vídeo + Usar imagem de fundo personalizada + Ativar configurações específicas de jogos + Salvar Configurações + Configurações salvas + + diff --git a/source/Generic/SplashScreen/Localization/pt_PT.xaml b/source/Generic/SplashScreen/Localization/pt_PT.xaml index 8df48f6855..c5b63d8ed0 100644 --- a/source/Generic/SplashScreen/Localization/pt_PT.xaml +++ b/source/Generic/SplashScreen/Localization/pt_PT.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Mostrar indicador de carregamento + Tamanho do indicador (píxeis): + Opacidade do indicador: + Velocidade do indicador (segundos por volta): + Pré-visualização: + Fundo da pré-visualização: + Espessura do indicador (píxeis): + Quantidade de traços do indicador: + Comprimento do tracejado do indicador (píxeis): + Utilizar extremidades arredondadas no tracejado + Ajustar automaticamente a velocidade do indicador com base no tamanho + + Margem da área segura (píxeis): + Opacidade da imagem de fundo: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/ru_RU.xaml b/source/Generic/SplashScreen/Localization/ru_RU.xaml index a11f486dd3..bcc1ffa005 100644 --- a/source/Generic/SplashScreen/Localization/ru_RU.xaml +++ b/source/Generic/SplashScreen/Localization/ru_RU.xaml @@ -1,59 +1,74 @@ - - - Справка - Открыть менеджер видео - Отключить расширение для выбранных игр - Включить расширение для выбранных игр - Отключить вывод изображения для выбранных игр - Включить вывод изображения для выбранных игр - Open "{0}" settings window - Delete Splash Screen configuration - - Вступительное видео добавлено - Вступительное видео удалено - Функция "{0}" выключена для {1} игр(ы) - Функция "{0}" включена для {1} игр(ы) - - Включить расширение для обычного режима - Показывать изображения заставки в обычном режиме - Показывать вступительное видео в обычном режиме - Use MicroTrailers - Автоматически закрывать заставку в обычном режиме (отключение скрывает рабочий стол при закрытии игры, но может вызвать проблемы) - Включить расширение для полноэкранного режима - Показывать изображения заставки в полноэкранном режиме - Показывать вступительное видео в полноэкранном режиме - Автоматически закрывать заставку в полноэкранном режиме (отключение скрывает рабочий стол при закрытии игры, но может вызвать проблемы) - Добавить логотип игры на изображение заставки, если доступно - Использовать иконку игры из метаданных вместо логотипа - Использовать черный экран-заставку вместо изображения - Горизонтальное положение логотипа: - Вертикальное положение логотипа: - Слева - По центру - Справа - Сверху - По сцентру - Снизу - Использовать анимацию затухания для изображения заставки - Использовать анимацию затухания для изображения логотипа - - Использовать общее изображение заставки для всех игр - Использовать логотип на общем изображении заставки, если доступен - Обзор... - Убрать - - Менеджер видео - Выбранные игры - Источники - Платформы - Режим Playnite - Коллекция: - Поиск: - Видео недоступно - Добавить видео - Удалить видео - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Справка + Открыть менеджер видео + Отключить расширение для выбранных игр + Включить расширение для выбранных игр + Отключить вывод изображения для выбранных игр + Включить вывод изображения для выбранных игр + Open "{0}" settings window + Delete Splash Screen configuration + + Вступительное видео добавлено + Вступительное видео удалено + Функция "{0}" выключена для {1} игр(ы) + Функция "{0}" включена для {1} игр(ы) + + Включить расширение для обычного режима + Показывать изображения заставки в обычном режиме + Показывать вступительное видео в обычном режиме + Use MicroTrailers + Автоматически закрывать заставку в обычном режиме (отключение скрывает рабочий стол при закрытии игры, но может вызвать проблемы) + Включить расширение для полноэкранного режима + Показывать изображения заставки в полноэкранном режиме + Показывать вступительное видео в полноэкранном режиме + Автоматически закрывать заставку в полноэкранном режиме (отключение скрывает рабочий стол при закрытии игры, но может вызвать проблемы) + Добавить логотип игры на изображение заставки, если доступно + Использовать иконку игры из метаданных вместо логотипа + Использовать черный экран-заставку вместо изображения + Горизонтальное положение логотипа: + Вертикальное положение логотипа: + Слева + По центру + Справа + Сверху + По сцентру + Снизу + Использовать анимацию затухания для изображения заставки + Использовать анимацию затухания для изображения логотипа + Показывать индикатор загрузки + Размер индикатора (пиксели): + Непрозрачность индикатора: + Скорость индикатора (секунд за оборот): + Предпросмотр: + Фон предпросмотра: + Толщина индикатора (пиксели): + Количество штрихов индикатора: + Длина штриха индикатора (пиксели): + Использовать закругленные концы штрихов + Автоматически подстраивать скорость индикатора под его размер + + Отступ безопасной зоны (пиксели): + Непрозрачность фонового изображения: + + Использовать общее изображение заставки для всех игр + Использовать логотип на общем изображении заставки, если доступен + Обзор... + Убрать + + Менеджер видео + Выбранные игры + Источники + Платформы + Режим Playnite + Коллекция: + Поиск: + Видео недоступно + Добавить видео + Удалить видео + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/sr_SP.xaml b/source/Generic/SplashScreen/Localization/sr_SP.xaml index 8df48f6855..1ce7ae370b 100644 --- a/source/Generic/SplashScreen/Localization/sr_SP.xaml +++ b/source/Generic/SplashScreen/Localization/sr_SP.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Prikaži indikator učitavanja + Veličina indikatora (pikseli): + Providnost indikatora: + Brzina indikatora (sekundi po obrtaju): + Преглед: + Позадина прегледа: + Дебљина индикатора (пиксели): + Број цртица индикатора: + Дужина цртице индикатора (пиксели): + Користи заобљене крајеве цртица + Automatski prilagodi brzinu indikatora prema veličini + + Razmak bezbedne zone (pikseli): + Непрозирност позадинске слике: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/tr_TR.xaml b/source/Generic/SplashScreen/Localization/tr_TR.xaml index 28b9ed353c..ce481264f1 100644 --- a/source/Generic/SplashScreen/Localization/tr_TR.xaml +++ b/source/Generic/SplashScreen/Localization/tr_TR.xaml @@ -1,59 +1,74 @@ - - - Yardım - Video yöneticisini aç - Seçilen oyunlar için uzantıyı devre dışı bırak - Seçilen oyunlar için uzantıyı yeniden etkinleştirin - Seçilen oyunlara görsel açılış ekranı atlama özelliği eklendi - Seçilen oyunlardan görsel açılış ekranı atlama özelliğini kaldır - "{0}" ayarlar penceresini aç - Açılış ekranı yapılandırmasını sil - - Tanıtım videosu eklendi - Tanıtım videosu kaldırıldı - {1} oyuna "{0}" hariç tutma özelliği eklendi - "{0}" hariç tutma özelliği {1} oyundan kaldırıldı - - Uzantıyı Masaüstü Modunda yürütün - Açılış ekranı görüntülerini Masaüstü Modunda görüntüleyin - Giriş videolarını Masaüstü Modunda görüntüleyin - MicroTrailers'ı kullanın - Masaüstü Modunda açılış ekranını otomatik olarak kapat (Devre dışı bırakmak, oyun kapatıldığında masaüstünü gizler ancak sorunlara neden olabilir) - Uzantıyı Tam Ekran Modunda yürütün - Açılış ekranı görüntülerini Tam Ekran Modunda görüntüleyin - Giriş videolarını Tam Ekran Modunda görüntüleyin - Tam Ekran Modunda açılış ekranını otomatik olarak kapat (Devre dışı bırakmak, oyun kapatıldığında masaüstünü gizler ancak sorunlara neden olabilir) - Varsa açılış ekranı görüntüsüne oyun logosu ekleyin - Meta verilerdeki oyun simgesini logo olarak kullanın - Açılış ekranı görüntüsü yerine siyah açılış ekranı kullanın - Logonun yatay konumu: - Logonun dikey konumu: - Sol - Orta - Sağ - Üst - Orta - Alt - Açılış ekranı görüntüsü için yavaş yavaş beliren animasyonu kullanın - Açılış ekranı logosu için yavaş yavaş beliren animasyonu kullanın - - Tüm oyunlar için genel açılış görüntüsünü kullanın - Varsa genel açılış görselinde oyun logosunu kullanın - Göz at... - Kaldır - - Video yöneticisi - Seçilen oyunlar - Kaynaklar - Platformlar - Playnite Modu - Koleksiyon: - Arama: - Video kullanılamıyor - Video ekle - Videoyu kaldır - Özel arka plan resmini kullan - Oyuna özel ayarları etkinleştir - Ayarları kaydet - Ayarlar kaydedildi - + + + Yardım + Video yöneticisini aç + Seçilen oyunlar için uzantıyı devre dışı bırak + Seçilen oyunlar için uzantıyı yeniden etkinleştirin + Seçilen oyunlara görsel açılış ekranı atlama özelliği eklendi + Seçilen oyunlardan görsel açılış ekranı atlama özelliğini kaldır + "{0}" ayarlar penceresini aç + Açılış ekranı yapılandırmasını sil + + Tanıtım videosu eklendi + Tanıtım videosu kaldırıldı + {1} oyuna "{0}" hariç tutma özelliği eklendi + "{0}" hariç tutma özelliği {1} oyundan kaldırıldı + + Uzantıyı Masaüstü Modunda yürütün + Açılış ekranı görüntülerini Masaüstü Modunda görüntüleyin + Giriş videolarını Masaüstü Modunda görüntüleyin + MicroTrailers'ı kullanın + Masaüstü Modunda açılış ekranını otomatik olarak kapat (Devre dışı bırakmak, oyun kapatıldığında masaüstünü gizler ancak sorunlara neden olabilir) + Uzantıyı Tam Ekran Modunda yürütün + Açılış ekranı görüntülerini Tam Ekran Modunda görüntüleyin + Giriş videolarını Tam Ekran Modunda görüntüleyin + Tam Ekran Modunda açılış ekranını otomatik olarak kapat (Devre dışı bırakmak, oyun kapatıldığında masaüstünü gizler ancak sorunlara neden olabilir) + Varsa açılış ekranı görüntüsüne oyun logosu ekleyin + Meta verilerdeki oyun simgesini logo olarak kullanın + Açılış ekranı görüntüsü yerine siyah açılış ekranı kullanın + Logonun yatay konumu: + Logonun dikey konumu: + Sol + Orta + Sağ + Üst + Orta + Alt + Açılış ekranı görüntüsü için yavaş yavaş beliren animasyonu kullanın + Açılış ekranı logosu için yavaş yavaş beliren animasyonu kullanın + Yükleme göstergesini göster + Gösterge boyutu (piksel): + Gösterge opaklığı: + Gösterge hızı (tur başına saniye): + Önizleme: + Önizleme arka planı: + Gösterge kalınlığı (piksel): + Gösterge çizgi sayısı: + Gösterge çizgi uzunluğu (piksel): + Yuvarlatılmış çizgi uçlarını kullan + Gösterge hızını boyuta göre otomatik ayarla + + Güvenli alan boşluğu (piksel): + Arka plan görseli opaklığı: + + Tüm oyunlar için genel açılış görüntüsünü kullanın + Varsa genel açılış görselinde oyun logosunu kullanın + Göz at... + Kaldır + + Video yöneticisi + Seçilen oyunlar + Kaynaklar + Platformlar + Playnite Modu + Koleksiyon: + Arama: + Video kullanılamıyor + Video ekle + Videoyu kaldır + Özel arka plan resmini kullan + Oyuna özel ayarları etkinleştir + Ayarları kaydet + Ayarlar kaydedildi + + diff --git a/source/Generic/SplashScreen/Localization/uk_UA.xaml b/source/Generic/SplashScreen/Localization/uk_UA.xaml index f860c8cb74..433cf38ce7 100644 --- a/source/Generic/SplashScreen/Localization/uk_UA.xaml +++ b/source/Generic/SplashScreen/Localization/uk_UA.xaml @@ -1,59 +1,74 @@ - - - Довідка - Відкрити менеджер відео - Вимкнути розширення для вибраних ігор - Повторно увімкнути розширення для вибраних ігор - Додати особливість для пропуску екрана-заставки до вибраних ігор - Прибрати особливіть для пропуску екрана-заставки з вибраних ігор - Відкрити вікно налаштувань "{0}" - Видалити конфігурацію Splash Screen - - Вступне відео додано - Вступне відео прибрано - Додано особливіть "{0}" до {1} гри/ігор - Прибрано особливіть "{0}" до {1} гри/ігор - - Запускати розширення в режимі робочого столу - Показувати зображення екрана-заставки в режимі робочого столу - Показувати вступне відео в режимі робочого столу - Використовувати мікротрейлери - Автоматично закривати екран-заставку в режимі робочого столу (вимкнення приховає робочий стіл, коли гра закриється, але це може викликати проблеми) - Запускати розширення в повноекранному режимі - Показувати зображення екрана-заставки в повноекранному режимі - Показувати вступне відео в повноекранному режимі - Автоматично закривати екран-заставку в повноекранному режимі (вимкнення приховає робочий стіл, коли гра закриється, але це може викликати проблеми) - Додати логотип гри до екрана-заставки, якщо він наявний - Використовувати значок з метаданих як логотип - Використовувати чорний екран-заставку замість зображення екрана-заставки - Горизонтальна позиція логотипу: - Вертикальна позиція логотипу: - Зліва - По центру - Справа - Вгорі - По центру - Внизу - Використовувати анімацію появи для зображення екрана-заставки - Використовувати анімацію появи для логотипа екрана-заставки - - Використовувати глобальну екран-заставку для всіх ігор - Використовувати логотип гри на глобальному екрані-заставці при наявності - Огляд... - Вилучити - - Менеджер відео - Обрані ігри - Джерела - Платформи - Режим Playnite - Колекція: - Пошук: - Відео недоступне - Додати відео - Прибрати відео - Використовувати нетипове фонове зображення - Увімкнути налаштування для окремої гри - Зберегти налаштування - Налаштування збережено - + + + Довідка + Відкрити менеджер відео + Вимкнути розширення для вибраних ігор + Повторно увімкнути розширення для вибраних ігор + Додати особливість для пропуску екрана-заставки до вибраних ігор + Прибрати особливіть для пропуску екрана-заставки з вибраних ігор + Відкрити вікно налаштувань "{0}" + Видалити конфігурацію Splash Screen + + Вступне відео додано + Вступне відео прибрано + Додано особливіть "{0}" до {1} гри/ігор + Прибрано особливіть "{0}" до {1} гри/ігор + + Запускати розширення в режимі робочого столу + Показувати зображення екрана-заставки в режимі робочого столу + Показувати вступне відео в режимі робочого столу + Використовувати мікротрейлери + Автоматично закривати екран-заставку в режимі робочого столу (вимкнення приховає робочий стіл, коли гра закриється, але це може викликати проблеми) + Запускати розширення в повноекранному режимі + Показувати зображення екрана-заставки в повноекранному режимі + Показувати вступне відео в повноекранному режимі + Автоматично закривати екран-заставку в повноекранному режимі (вимкнення приховає робочий стіл, коли гра закриється, але це може викликати проблеми) + Додати логотип гри до екрана-заставки, якщо він наявний + Використовувати значок з метаданих як логотип + Використовувати чорний екран-заставку замість зображення екрана-заставки + Горизонтальна позиція логотипу: + Вертикальна позиція логотипу: + Зліва + По центру + Справа + Вгорі + По центру + Внизу + Використовувати анімацію появи для зображення екрана-заставки + Використовувати анімацію появи для логотипа екрана-заставки + Показувати індикатор завантаження + Розмір індикатора (пікселі): + Непрозорість індикатора: + Швидкість індикатора (секунди за оберт): + Попередній перегляд: + Тло попереднього перегляду: + Товщина індикатора (пікселі): + Кількість штрихів індикатора: + Довжина штриха індикатора (пікселі): + Використовувати заокруглені кінці штрихів + Автоматично підлаштовувати швидкість індикатора під його розмір + + Відступ безпечної зони (пікселі): + Непрозорість фонового зображення: + + Використовувати глобальну екран-заставку для всіх ігор + Використовувати логотип гри на глобальному екрані-заставці при наявності + Огляд... + Вилучити + + Менеджер відео + Обрані ігри + Джерела + Платформи + Режим Playnite + Колекція: + Пошук: + Відео недоступне + Додати відео + Прибрати відео + Використовувати нетипове фонове зображення + Увімкнути налаштування для окремої гри + Зберегти налаштування + Налаштування збережено + + diff --git a/source/Generic/SplashScreen/Localization/vi_VN.xaml b/source/Generic/SplashScreen/Localization/vi_VN.xaml index 8df48f6855..22bc0cdb98 100644 --- a/source/Generic/SplashScreen/Localization/vi_VN.xaml +++ b/source/Generic/SplashScreen/Localization/vi_VN.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + Hiển thị vòng xoay tải + Kích thước vòng xoay (pixel): + Độ mờ vòng xoay: + Tốc độ vòng xoay (giây mỗi vòng): + Xem trước: + Nền xem trước: + Độ dày vòng xoay (pixel): + Số lượng nét đứt của vòng xoay: + Độ dài nét đứt của vòng xoay (pixel): + Sử dụng đầu nét bo tròn + Tự động điều chỉnh tốc độ theo kích thước vòng xoay + + Lề vùng an toàn (pixel): + Độ mờ ảnh nền: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/zh_CN.xaml b/source/Generic/SplashScreen/Localization/zh_CN.xaml index df0572fd9d..7685426c2a 100644 --- a/source/Generic/SplashScreen/Localization/zh_CN.xaml +++ b/source/Generic/SplashScreen/Localization/zh_CN.xaml @@ -1,59 +1,74 @@ - - - 帮助 - 打开视频管理器 - 为所选游戏禁用扩展 - 为所选游戏重新启用扩展 - 为所选游戏添加图像序幕屏跳过功能 - 从所选游戏中删除图像序幕屏的跳过功能 - Open "{0}" settings window - Delete Splash Screen configuration - - 导览视频已添加 - 导览视频已移除 - 为 {1} 个游戏添加了排除的功能特色“{0}” - 为 {1} 个游戏移除了排除的功能特色“{0}” - - 在桌面模式下执行扩展 - 在桌面模式下查看序幕屏图像 - 在桌面模式下查看导览视频 - Use MicroTrailers - 桌面模式下自动关闭序幕屏(禁用则会在游戏结束时隐藏桌面,但可能导致问题) - 在全屏模式下执行扩展 - 在全屏模式下查看序幕屏图像 - 在全屏模式下查看导览视频 - 全屏模式下自动关闭序幕屏(禁用则会在游戏结束时隐藏桌面,但可能导致问题) - 如果可用,在序幕屏图像中添加游戏徽标 - 使用元数据的游戏图标作为徽标 - 使用黑色序幕屏而不是序幕屏图像 - 徽标水平位置: - 徽标竖直位置: - - - - - - - 对序幕屏图像使用淡入动画 - 对序幕屏徽标使用淡入动画 - - 为所有游戏使用一个全局的序幕图像 - 如果可用,在全局序幕图像中使用游戏徽标 - 浏览... - 移除 - - 视频管理器 - 所选游戏 - 来源 - 平台 - Playnite 模式 - 收集: - 搜索: - 视频不可用 - 添加视频 - 移除视频 - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + 帮助 + 打开视频管理器 + 为所选游戏禁用扩展 + 为所选游戏重新启用扩展 + 为所选游戏添加图像序幕屏跳过功能 + 从所选游戏中删除图像序幕屏的跳过功能 + Open "{0}" settings window + Delete Splash Screen configuration + + 导览视频已添加 + 导览视频已移除 + 为 {1} 个游戏添加了排除的功能特色“{0}” + 为 {1} 个游戏移除了排除的功能特色“{0}” + + 在桌面模式下执行扩展 + 在桌面模式下查看序幕屏图像 + 在桌面模式下查看导览视频 + Use MicroTrailers + 桌面模式下自动关闭序幕屏(禁用则会在游戏结束时隐藏桌面,但可能导致问题) + 在全屏模式下执行扩展 + 在全屏模式下查看序幕屏图像 + 在全屏模式下查看导览视频 + 全屏模式下自动关闭序幕屏(禁用则会在游戏结束时隐藏桌面,但可能导致问题) + 如果可用,在序幕屏图像中添加游戏徽标 + 使用元数据的游戏图标作为徽标 + 使用黑色序幕屏而不是序幕屏图像 + 徽标水平位置: + 徽标竖直位置: + + + + + + + 对序幕屏图像使用淡入动画 + 对序幕屏徽标使用淡入动画 + 显示加载指示器 + 指示器大小(像素): + 指示器不透明度: + 指示器速度(每圈秒数): + 预览: + 预览背景: + 指示器粗细(像素): + 指示器短划线数量: + 指示器短划线长度(像素): + 使用圆角短划线端帽 + 根据指示器大小自动调整速度 + + 安全区域边距(像素): + 背景图片不透明度: + + 为所有游戏使用一个全局的序幕图像 + 如果可用,在全局序幕图像中使用游戏徽标 + 浏览... + 移除 + + 视频管理器 + 所选游戏 + 来源 + 平台 + Playnite 模式 + 收集: + 搜索: + 视频不可用 + 添加视频 + 移除视频 + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Localization/zh_TW.xaml b/source/Generic/SplashScreen/Localization/zh_TW.xaml index 8df48f6855..9ec486dc66 100644 --- a/source/Generic/SplashScreen/Localization/zh_TW.xaml +++ b/source/Generic/SplashScreen/Localization/zh_TW.xaml @@ -1,59 +1,74 @@ - - - Help - Open video manager - Disable extension for the selected games - Re-Enable extension for the selected games - Add image splash screen skip feature to selected games - Remove image splash screen skip feature from selected games - Open "{0}" settings window - Delete Splash Screen configuration - - Intro video has been added - Intro video has been removed - Added "{0}" exclude feature to {1} game(s) - Removed "{0}" exclude feature from {1} game(s) - - Execute extension in Desktop Mode - View splashscreen images in Desktop Mode - View intro videos in Desktop Mode - Use MicroTrailers - Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) - Execute extension in Fullscreen Mode - View splashscreen images in Fullscreen Mode - View intro videos in Fullscreen Mode - Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) - Add game logo in splashscreen image if available - Use game icon from Metadata as logo - Use black splashscreen instead of the splashscreen image - Logo horizontal position: - Logo vertical position: - Left - Center - Right - Top - Center - Bottom - Use fade-in animation for the splash screen image - Use fade-in animation for the splash screen logo - - Use a global splash image for all games - Use game logo in global splash image if it's available - Browse... - Remove - - Video manager - Selected games - Sources - Platforms - Playnite Mode - Collection: - Search: - Video not available - Add video - Remove video - Use custom background image - Enable game specific settings - Save settings - Settings saved - + + + Help + Open video manager + Disable extension for the selected games + Re-Enable extension for the selected games + Add image splash screen skip feature to selected games + Remove image splash screen skip feature from selected games + Open "{0}" settings window + Delete Splash Screen configuration + + Intro video has been added + Intro video has been removed + Added "{0}" exclude feature to {1} game(s) + Removed "{0}" exclude feature from {1} game(s) + + Execute extension in Desktop Mode + View splashscreen images in Desktop Mode + View intro videos in Desktop Mode + Use MicroTrailers + Automatically close splashscreen in Desktop Mode (Disabling hides desktop when game closes but can cause issues) + Execute extension in Fullscreen Mode + View splashscreen images in Fullscreen Mode + View intro videos in Fullscreen Mode + Automatically close splashscreen in Fullscreen Mode (Disabling hides desktop when game closes but can cause issues) + Add game logo in splashscreen image if available + Use game icon from Metadata as logo + Use black splashscreen instead of the splashscreen image + Logo horizontal position: + Logo vertical position: + Left + Center + Right + Top + Center + Bottom + Use fade-in animation for the splash screen image + Use fade-in animation for the splash screen logo + 顯示載入指示器 + 指示器大小(像素): + 指示器不透明度: + 指示器速度(每圈秒數): + 預覽: + 預覽背景: + 指示器粗細(像素): + 指示器虛線數量: + 指示器虛線長度(像素): + 使用圓角虛線端點 + 根據指示器大小自動調整速度 + + 安全區域邊距(像素): + 背景圖片不透明度: + + Use a global splash image for all games + Use game logo in global splash image if it's available + Browse... + Remove + + Video manager + Selected games + Sources + Platforms + Playnite Mode + Collection: + Search: + Video not available + Add video + Remove video + Use custom background image + Enable game specific settings + Save settings + Settings saved + + diff --git a/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs b/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs index f8346c98ab..10a7420b03 100644 --- a/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs +++ b/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs @@ -68,6 +68,61 @@ public interface IGeneralSplashSettings /// Gets or sets Fullscreen Mode specific settings. /// ModeSplashSettings FullscreenModeSettings { get; set; } + + /// + /// Gets or sets whether loading spinner should be displayed. + /// + bool EnableLoadingSpinner { get; set; } + + /// + /// Gets or sets loading spinner size in pixels. + /// + int LoadingSpinnerSize { get; set; } + + /// + /// Gets or sets loading spinner opacity. + /// + double LoadingSpinnerOpacity { get; set; } + + /// + /// Gets or sets loading spinner stroke thickness in pixels. + /// + double LoadingSpinnerThickness { get; set; } + + /// + /// Gets or sets loading spinner dash length in pixels. + /// + double LoadingSpinnerDashLength { get; set; } + + /// + /// Gets or sets loading spinner dash count. + /// + int LoadingSpinnerDashCount { get; set; } + + /// + /// Gets or sets whether spinner dashes should have rounded caps. + /// + bool LoadingSpinnerRoundedDashes { get; set; } + + /// + /// Gets or sets the base spinner rotation duration in seconds. + /// + double LoadingSpinnerRotationSeconds { get; set; } + + /// + /// Gets or sets whether spinner speed should be adjusted by spinner size. + /// + bool EnableLoadingSpinnerAutoSpeed { get; set; } + + /// + /// Gets or sets the safe area padding in pixels used by logo and loading spinner. + /// + int SafeAreaPadding { get; set; } + + /// + /// Gets or sets background image opacity. + /// + double BackgroundImageOpacity { get; set; } } public class GeneralSplashSettings : IGeneralSplashSettings @@ -84,5 +139,16 @@ public class GeneralSplashSettings : IGeneralSplashSettings public VerticalAlignment LogoVerticalAlignment { get; set; } = VerticalAlignment.Bottom; public ModeSplashSettings DesktopModeSettings { get; set; } = new ModeSplashSettings(); public ModeSplashSettings FullscreenModeSettings { get; set; } = new ModeSplashSettings(); + public bool EnableLoadingSpinner { get; set; } = true; + public int LoadingSpinnerSize { get; set; } = 50; + public double LoadingSpinnerOpacity { get; set; } = 0.85; + public double LoadingSpinnerThickness { get; set; } = 2.0; + public double LoadingSpinnerDashLength { get; set; } = 4.0; + public int LoadingSpinnerDashCount { get; set; } = 16; + public bool LoadingSpinnerRoundedDashes { get; set; } = false; + public double LoadingSpinnerRotationSeconds { get; set; } = 3.0; + public bool EnableLoadingSpinnerAutoSpeed { get; set; } = true; + public int SafeAreaPadding { get; set; } = 60; + public double BackgroundImageOpacity { get; set; } = 0.60; } } \ No newline at end of file diff --git a/source/Generic/SplashScreen/SplashScreen.cs b/source/Generic/SplashScreen/SplashScreen.cs index 289773d8d9..64a341102a 100644 --- a/source/Generic/SplashScreen/SplashScreen.cs +++ b/source/Generic/SplashScreen/SplashScreen.cs @@ -5,6 +5,7 @@ using Playnite.SDK.Plugins; using PlayniteUtilitiesCommon; using PluginsCommon; +using SplashScreen.Helpers; using SplashScreen.Models; using SplashScreen.ViewModels; using SplashScreen.Views; @@ -196,6 +197,7 @@ private GeneralSplashSettings GetGeneralSplashScreenSettings(Game game) var gameSplashSettings = Serialization.FromJsonFile(gameSettingsPath); if (gameSplashSettings.EnableGameSpecificSettings) { + SplashSettingsSyncHelper.ApplyGlobalIndicatorSettings(gameSplashSettings.GeneralSplashSettings, settings.Settings.GeneralSplashSettings); return gameSplashSettings.GeneralSplashSettings; } } @@ -580,7 +582,7 @@ private void OpenSplashScreenGameConfigWindow(Game game) window.Title = "Splash Screen"; window.Content = new GameSettingsWindow(); - window.DataContext = new GameSettingsWindowViewModel(PlayniteApi, GetPluginUserDataPath(), game); + window.DataContext = new GameSettingsWindowViewModel(PlayniteApi, GetPluginUserDataPath(), game, settings.Settings.GeneralSplashSettings); window.Owner = PlayniteApi.Dialogs.GetCurrentAppWindow(); window.WindowStartupLocation = WindowStartupLocation.CenterScreen; diff --git a/source/Generic/SplashScreen/SplashScreen.csproj b/source/Generic/SplashScreen/SplashScreen.csproj index 7c8e874b10..1671be3852 100644 --- a/source/Generic/SplashScreen/SplashScreen.csproj +++ b/source/Generic/SplashScreen/SplashScreen.csproj @@ -97,6 +97,8 @@ + + @@ -111,6 +113,9 @@ GameSettingsWindow.xaml + + SpinnerPreviewControl.xaml + SplashScreenImage.xaml @@ -140,6 +145,10 @@ Designer MSBuild:Compile + + Designer + MSBuild:Compile + Designer MSBuild:Compile diff --git a/source/Generic/SplashScreen/SplashScreenSettingsView.xaml b/source/Generic/SplashScreen/SplashScreenSettingsView.xaml index a38137a523..1739ff6e08 100644 --- a/source/Generic/SplashScreen/SplashScreenSettingsView.xaml +++ b/source/Generic/SplashScreen/SplashScreenSettingsView.xaml @@ -3,6 +3,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:pcmd="clr-namespace:PluginsCommon.Commands" + xmlns:splashviews="clr-namespace:SplashScreen.Views" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" mc:Ignorable="d" d:DesignHeight="700" d:DesignWidth="600"> @@ -81,6 +82,92 @@ SelectedValuePath="Key" Margin="10,0,0,0" /> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml b/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml new file mode 100644 index 0000000000..02ccce5cb4 --- /dev/null +++ b/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml @@ -0,0 +1,28 @@ + + + + + + + + + + + + diff --git a/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs b/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs new file mode 100644 index 0000000000..147def685e --- /dev/null +++ b/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs @@ -0,0 +1,246 @@ +using System; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; +using SplashScreen.Helpers; + +namespace SplashScreen.Views +{ + public partial class SpinnerPreviewControl : UserControl + { + public static readonly DependencyProperty SpinnerSizeProperty = + DependencyProperty.Register(nameof(SpinnerSize), typeof(double), typeof(SpinnerPreviewControl), + new PropertyMetadata(50.0, OnAnimationPropertyChanged)); + + public static readonly DependencyProperty SpinnerOpacityProperty = + DependencyProperty.Register(nameof(SpinnerOpacity), typeof(double), typeof(SpinnerPreviewControl), + new PropertyMetadata(0.85)); + + public static readonly DependencyProperty PreviewBackgroundLevelProperty = + DependencyProperty.Register(nameof(PreviewBackgroundLevel), typeof(double), typeof(SpinnerPreviewControl), + new PropertyMetadata(0.5, OnAppearancePropertyChanged)); + + public static readonly DependencyProperty SpinnerThicknessProperty = + DependencyProperty.Register(nameof(SpinnerThickness), typeof(double), typeof(SpinnerPreviewControl), + new PropertyMetadata(2.0, OnAppearancePropertyChanged)); + + public static readonly DependencyProperty SpinnerDashLengthProperty = + DependencyProperty.Register(nameof(SpinnerDashLength), typeof(double), typeof(SpinnerPreviewControl), + new PropertyMetadata(4.0, OnAppearancePropertyChanged)); + + public static readonly DependencyProperty SpinnerDashCountProperty = + DependencyProperty.Register(nameof(SpinnerDashCount), typeof(int), typeof(SpinnerPreviewControl), + new PropertyMetadata(16, OnAppearancePropertyChanged)); + + public static readonly DependencyProperty RoundedDashesProperty = + DependencyProperty.Register(nameof(RoundedDashes), typeof(bool), typeof(SpinnerPreviewControl), + new PropertyMetadata(false, OnAppearancePropertyChanged)); + + public static readonly DependencyProperty RotationSecondsProperty = + DependencyProperty.Register(nameof(RotationSeconds), typeof(double), typeof(SpinnerPreviewControl), + new PropertyMetadata(3.0, OnAnimationPropertyChanged)); + + public static readonly DependencyProperty AutoSpeedProperty = + DependencyProperty.Register(nameof(AutoSpeed), typeof(bool), typeof(SpinnerPreviewControl), + new PropertyMetadata(true, OnAnimationPropertyChanged)); + + public double SpinnerSize + { + get => (double)GetValue(SpinnerSizeProperty); + set => SetValue(SpinnerSizeProperty, value); + } + + public double SpinnerOpacity + { + get => (double)GetValue(SpinnerOpacityProperty); + set => SetValue(SpinnerOpacityProperty, value); + } + + public double PreviewBackgroundLevel + { + get => (double)GetValue(PreviewBackgroundLevelProperty); + set => SetValue(PreviewBackgroundLevelProperty, value); + } + + public double SpinnerThickness + { + get => (double)GetValue(SpinnerThicknessProperty); + set => SetValue(SpinnerThicknessProperty, value); + } + + public double SpinnerDashLength + { + get => (double)GetValue(SpinnerDashLengthProperty); + set => SetValue(SpinnerDashLengthProperty, value); + } + + public int SpinnerDashCount + { + get => (int)GetValue(SpinnerDashCountProperty); + set => SetValue(SpinnerDashCountProperty, value); + } + + public bool RoundedDashes + { + get => (bool)GetValue(RoundedDashesProperty); + set => SetValue(RoundedDashesProperty, value); + } + + public double RotationSeconds + { + get => (double)GetValue(RotationSecondsProperty); + set => SetValue(RotationSecondsProperty, value); + } + + public bool AutoSpeed + { + get => (bool)GetValue(AutoSpeedProperty); + set => SetValue(AutoSpeedProperty, value); + } + + private bool _isLoaded; + + public SpinnerPreviewControl() + { + InitializeComponent(); + Loaded += (s, e) => + { + _isLoaded = true; + ApplyAppearance(); + ApplyAnimation(); + }; + } + + private static void OnAnimationPropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is SpinnerPreviewControl control && control._isLoaded) + { + control.ApplyAnimation(); + } + } + + private static void OnAppearancePropertyChanged(DependencyObject d, DependencyPropertyChangedEventArgs e) + { + if (d is SpinnerPreviewControl control && control._isLoaded) + { + control.ApplyAppearance(); + } + } + + private void ApplyAppearance() + { + if (PreviewPath == null) + { + return; + } + + var previewLevel = PreviewBackgroundLevel; + if (previewLevel < 0.0) + { + previewLevel = 0.0; + } + else if (previewLevel > 1.0) + { + previewLevel = 1.0; + } + + var channel = (byte)(previewLevel * 255.0); + if (PreviewContainer != null) + { + PreviewContainer.Background = new SolidColorBrush(Color.FromRgb(channel, channel, channel)); + } + + var thickness = SpinnerThickness; + if (thickness < 0.5) + { + thickness = 0.5; + } + + var dashLengthPx = SpinnerDashLength; + if (dashLengthPx < 0.5) + { + dashLengthPx = 0.5; + } + + var dashCount = SpinnerDashCount; + if (dashCount < 2) + { + dashCount = 2; + } + + var spinnerSize = SpinnerSize; + if (spinnerSize < 4) + { + spinnerSize = 4; + } + + var roundedDashes = RoundedDashes; + PreviewPath.StrokeThickness = thickness; + PreviewPath.StrokeDashArray = null; + PreviewPath.StrokeDashOffset = 0; + PreviewPath.StrokeDashCap = PenLineCap.Flat; + PreviewPath.StrokeStartLineCap = roundedDashes ? PenLineCap.Round : PenLineCap.Flat; + PreviewPath.StrokeEndLineCap = roundedDashes ? PenLineCap.Round : PenLineCap.Flat; + PreviewPath.Data = SpinnerGeometryBuilder.BuildDashGeometry(spinnerSize, thickness, dashLengthPx, dashCount, roundedDashes); + } + + private void ApplyAnimation() + { + if (PreviewPath == null) + { + return; + } + + ApplyAppearance(); + + if (!(PreviewPath.RenderTransform is RotateTransform rotateTransform)) + { + rotateTransform = new RotateTransform(); + PreviewPath.RenderTransform = rotateTransform; + } + + rotateTransform.BeginAnimation(RotateTransform.AngleProperty, null); + + var baseSeconds = RotationSeconds; + if (baseSeconds <= 0) + { + baseSeconds = 3.0; + } + + var durationSeconds = baseSeconds; + if (AutoSpeed) + { + var normalizedSize = SpinnerSize / 50.0; + if (normalizedSize < 0.4) + { + normalizedSize = 0.4; + } + + durationSeconds = baseSeconds * normalizedSize; + } + + if (durationSeconds < 0.25) + { + durationSeconds = 0.25; + } + + if (durationSeconds > 20.0) + { + durationSeconds = 20.0; + } + + var animation = new DoubleAnimation + { + From = 0, + To = 360, + Duration = TimeSpan.FromSeconds(durationSeconds), + RepeatBehavior = RepeatBehavior.Forever + }; + + rotateTransform.BeginAnimation(RotateTransform.AngleProperty, animation); + } + + } +} diff --git a/source/Generic/SplashScreen/Views/SplashScreenImage.xaml b/source/Generic/SplashScreen/Views/SplashScreenImage.xaml index fc77d1812f..2101eceea3 100644 --- a/source/Generic/SplashScreen/Views/SplashScreenImage.xaml +++ b/source/Generic/SplashScreen/Views/SplashScreenImage.xaml @@ -7,13 +7,9 @@ mc:Ignorable="d" d:DesignHeight="450" d:DesignWidth="800"> - - - - - - + + - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs b/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs index c8728ec4a2..0e8416f07a 100644 --- a/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs +++ b/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs @@ -11,9 +11,12 @@ using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Imaging; +using System.Windows.Media.Animation; using System.Windows.Navigation; using System.Windows.Shapes; using System.Windows.Threading; +using SplashScreen.Helpers; +using SplashScreen.ViewModels; namespace SplashScreen.Views { @@ -25,6 +28,117 @@ public partial class SplashScreenImage : UserControl public SplashScreenImage() { InitializeComponent(); + Loaded += SplashScreenImage_Loaded; + DataContextChanged += SplashScreenImage_DataContextChanged; + } + + private void SplashScreenImage_Loaded(object sender, RoutedEventArgs e) + { + ConfigureSpinnerAnimation(); + } + + private void SplashScreenImage_DataContextChanged(object sender, DependencyPropertyChangedEventArgs e) + { + ConfigureSpinnerAnimation(); + } + + private void ConfigureSpinnerAnimation() + { + if (!(DataContext is SplashScreenImageViewModel vm) || vm.Settings == null) + { + return; + } + + ConfigureSpinnerAppearance(vm.Settings); + + SpinnerPath?.BeginAnimation(UIElement.OpacityProperty, null); + + if (!(SpinnerPath.RenderTransform is RotateTransform rotateTransform)) + { + rotateTransform = new RotateTransform(); + SpinnerPath.RenderTransform = rotateTransform; + } + + rotateTransform.BeginAnimation(RotateTransform.AngleProperty, null); + + var baseSeconds = vm.Settings.LoadingSpinnerRotationSeconds; + if (baseSeconds <= 0) + { + baseSeconds = 3.0; + } + + var durationSeconds = baseSeconds; + if (vm.Settings.EnableLoadingSpinnerAutoSpeed) + { + var normalizedSize = vm.Settings.LoadingSpinnerSize / 50.0; + if (normalizedSize < 0.4) + { + normalizedSize = 0.4; + } + + durationSeconds = baseSeconds * normalizedSize; + } + + if (durationSeconds < 0.25) + { + durationSeconds = 0.25; + } + + if (durationSeconds > 20.0) + { + durationSeconds = 20.0; + } + + var animation = new DoubleAnimation + { + From = 0, + To = 360, + Duration = TimeSpan.FromSeconds(durationSeconds), + RepeatBehavior = RepeatBehavior.Forever + }; + + rotateTransform.BeginAnimation(RotateTransform.AngleProperty, animation); + } + + private void ConfigureSpinnerAppearance(Models.GeneralSplashSettings settings) + { + if (SpinnerPath == null) + { + return; + } + + var thickness = settings.LoadingSpinnerThickness; + if (thickness < 0.5) + { + thickness = 0.5; + } + + var dashLengthPx = settings.LoadingSpinnerDashLength; + if (dashLengthPx < 0.5) + { + dashLengthPx = 0.5; + } + + var dashCount = settings.LoadingSpinnerDashCount; + if (dashCount < 2) + { + dashCount = 2; + } + + var spinnerSize = settings.LoadingSpinnerSize; + if (spinnerSize < 4) + { + spinnerSize = 4; + } + + var roundedDashes = settings.LoadingSpinnerRoundedDashes; + SpinnerPath.StrokeThickness = thickness; + SpinnerPath.StrokeDashArray = null; + SpinnerPath.StrokeDashOffset = 0; + SpinnerPath.StrokeDashCap = PenLineCap.Flat; + SpinnerPath.StrokeStartLineCap = roundedDashes ? PenLineCap.Round : PenLineCap.Flat; + SpinnerPath.StrokeEndLineCap = roundedDashes ? PenLineCap.Round : PenLineCap.Flat; + SpinnerPath.Data = SpinnerGeometryBuilder.BuildDashGeometry(spinnerSize, thickness, dashLengthPx, dashCount, roundedDashes); } } } \ No newline at end of file From 075561f3c2950d21e02d1713a1889308f9975a7b Mon Sep 17 00:00:00 2001 From: NogFar <52389872+NogFar@users.noreply.github.com> Date: Sun, 15 Mar 2026 16:24:54 -0300 Subject: [PATCH 2/3] feat: spinner dash length percentage-based, support single-dash mode, and unify spinner rendering logic Changes spinner dash length semantics from pixels to percentage of each dash segment (1-100), giving consistent behavior regardless of dash count. Adds proper support for a single-dash spinner, including full-circle rendering when set to 100%. Refactors spinner appearance and animation calculations into shared helper logic to keep preview and runtime behavior consistent and reduce duplication. --- .../Helpers/SpinnerGeometryBuilder.cs | 77 +++++++++-------- .../Helpers/SpinnerRenderHelper.cs | 83 +++++++++++++++++++ .../SplashScreen/Localization/af_ZA.xaml | 2 +- .../SplashScreen/Localization/ar_SA.xaml | 2 +- .../SplashScreen/Localization/ca_ES.xaml | 2 +- .../SplashScreen/Localization/cs_CZ.xaml | 2 +- .../SplashScreen/Localization/da_DK.xaml | 2 +- .../SplashScreen/Localization/de_DE.xaml | 2 +- .../SplashScreen/Localization/en_US.xaml | 2 +- .../SplashScreen/Localization/eo_UY.xaml | 2 +- .../SplashScreen/Localization/es_ES.xaml | 2 +- .../SplashScreen/Localization/fa_IR.xaml | 2 +- .../SplashScreen/Localization/fi_FI.xaml | 2 +- .../SplashScreen/Localization/fr_FR.xaml | 2 +- .../SplashScreen/Localization/gl_ES.xaml | 2 +- .../SplashScreen/Localization/hr_HR.xaml | 2 +- .../SplashScreen/Localization/hu_HU.xaml | 2 +- .../SplashScreen/Localization/it_IT.xaml | 2 +- .../SplashScreen/Localization/ja_JP.xaml | 2 +- .../SplashScreen/Localization/ko_KR.xaml | 2 +- .../SplashScreen/Localization/nl_NL.xaml | 2 +- .../SplashScreen/Localization/no_NO.xaml | 2 +- .../SplashScreen/Localization/pl_PL.xaml | 2 +- .../SplashScreen/Localization/pt_BR.xaml | 2 +- .../SplashScreen/Localization/pt_PT.xaml | 2 +- .../SplashScreen/Localization/ru_RU.xaml | 2 +- .../SplashScreen/Localization/sr_SP.xaml | 2 +- .../SplashScreen/Localization/tr_TR.xaml | 2 +- .../SplashScreen/Localization/uk_UA.xaml | 2 +- .../SplashScreen/Localization/vi_VN.xaml | 2 +- .../SplashScreen/Localization/zh_CN.xaml | 2 +- .../SplashScreen/Localization/zh_TW.xaml | 2 +- .../Models/GeneralSplashSettings.cs | 4 +- .../Generic/SplashScreen/SplashScreen.csproj | 1 + .../SplashScreenSettingsView.xaml | 6 +- .../Views/SpinnerPreviewControl.xaml.cs | 70 ++-------------- .../Views/SplashScreenImage.xaml.cs | 78 +++-------------- 37 files changed, 184 insertions(+), 195 deletions(-) create mode 100644 source/Generic/SplashScreen/Helpers/SpinnerRenderHelper.cs diff --git a/source/Generic/SplashScreen/Helpers/SpinnerGeometryBuilder.cs b/source/Generic/SplashScreen/Helpers/SpinnerGeometryBuilder.cs index e86f7cf91f..6fce017eee 100644 --- a/source/Generic/SplashScreen/Helpers/SpinnerGeometryBuilder.cs +++ b/source/Generic/SplashScreen/Helpers/SpinnerGeometryBuilder.cs @@ -6,32 +6,14 @@ namespace SplashScreen.Helpers { internal static class SpinnerGeometryBuilder { - internal static Geometry BuildDashGeometry(double spinnerSize, double thickness, double dashLengthPx, int dashCount, bool roundedDashes) + internal static Geometry BuildDashGeometry(double spinnerSize, double thickness, double dashLengthPercent, int dashCount, bool roundedDashes) { - var clampedDashCount = Math.Max(2, Math.Min(360, dashCount)); + var clampedDashCount = Math.Max(1, Math.Min(360, dashCount)); var innerSize = Math.Max(2.0, spinnerSize - thickness); var radius = innerSize / 2.0; - var circumference = 2.0 * Math.PI * radius; - var slotPx = circumference / clampedDashCount; var slotAngle = (2.0 * Math.PI) / clampedDashCount; - - var centerlineDashPx = Math.Max(0.25, dashLengthPx); - if (roundedDashes) - { - centerlineDashPx = Math.Max(0.25, centerlineDashPx - thickness); - } - - if (centerlineDashPx >= slotPx) - { - centerlineDashPx = slotPx * 0.9; - } - - var dashAngle = centerlineDashPx / radius; - var maxDashAngle = slotAngle * 0.9; - if (dashAngle > maxDashAngle) - { - dashAngle = maxDashAngle; - } + var clampedDashLengthPercent = Math.Max(1.0, Math.Min(100.0, dashLengthPercent)); + var dashAngle = slotAngle * (clampedDashLengthPercent / 100.0); var center = spinnerSize / 2.0; var geometry = new PathGeometry(); @@ -41,29 +23,58 @@ internal static Geometry BuildDashGeometry(double spinnerSize, double thickness, var centerAngle = (-Math.PI / 2.0) + (i * slotAngle); var startAngle = centerAngle - (dashAngle / 2.0); var endAngle = centerAngle + (dashAngle / 2.0); + AddDashFigure(geometry, center, radius, startAngle, endAngle, dashAngle); + } - var startPoint = PointOnCircle(center, radius, startAngle); - var endPoint = PointOnCircle(center, radius, endAngle); + return geometry; + } - var figure = new PathFigure - { - StartPoint = startPoint, - IsClosed = false, - IsFilled = false - }; + private static void AddDashFigure(PathGeometry geometry, double center, double radius, double startAngle, double endAngle, double dashAngle) + { + var normalizedDashAngle = Math.Max(0.0, dashAngle); + var fullCircleThreshold = (2.0 * Math.PI) - 0.0001; + var startPoint = PointOnCircle(center, radius, startAngle); + + var figure = new PathFigure + { + StartPoint = startPoint, + IsClosed = false, + IsFilled = false + }; + + if (normalizedDashAngle >= fullCircleThreshold) + { + var middlePoint = PointOnCircle(center, radius, startAngle + Math.PI); figure.Segments.Add(new ArcSegment { - Point = endPoint, + Point = middlePoint, Size = new Size(radius, radius), IsLargeArc = false, SweepDirection = SweepDirection.Clockwise }); - geometry.Figures.Add(figure); + figure.Segments.Add(new ArcSegment + { + Point = startPoint, + Size = new Size(radius, radius), + IsLargeArc = false, + SweepDirection = SweepDirection.Clockwise + }); + } + else + { + var endPoint = PointOnCircle(center, radius, endAngle); + figure.Segments.Add(new ArcSegment + { + Point = endPoint, + Size = new Size(radius, radius), + IsLargeArc = normalizedDashAngle > Math.PI, + SweepDirection = SweepDirection.Clockwise + }); } - return geometry; + geometry.Figures.Add(figure); } private static Point PointOnCircle(double center, double radius, double angle) diff --git a/source/Generic/SplashScreen/Helpers/SpinnerRenderHelper.cs b/source/Generic/SplashScreen/Helpers/SpinnerRenderHelper.cs new file mode 100644 index 0000000000..d6e7de156b --- /dev/null +++ b/source/Generic/SplashScreen/Helpers/SpinnerRenderHelper.cs @@ -0,0 +1,83 @@ +using System; +using System.Windows.Media; +using System.Windows.Shapes; + +namespace SplashScreen.Helpers +{ + internal static class SpinnerRenderHelper + { + internal static double ClampThickness(double thickness) + { + return Math.Max(0.5, thickness); + } + + internal static double ClampDashLengthPercent(double dashLengthPercent) + { + return Math.Max(1.0, Math.Min(100.0, dashLengthPercent)); + } + + internal static int ClampDashCount(int dashCount) + { + return Math.Max(1, Math.Min(360, dashCount)); + } + + internal static double ClampSpinnerSize(double spinnerSize) + { + return Math.Max(4.0, spinnerSize); + } + + internal static double CalculateRotationDurationSeconds(double baseSeconds, bool autoSpeed, double spinnerSize) + { + var normalizedBaseSeconds = baseSeconds; + if (normalizedBaseSeconds <= 0) + { + normalizedBaseSeconds = 3.0; + } + + var durationSeconds = normalizedBaseSeconds; + if (autoSpeed) + { + var normalizedSize = spinnerSize / 50.0; + if (normalizedSize < 0.4) + { + normalizedSize = 0.4; + } + + durationSeconds = normalizedBaseSeconds * normalizedSize; + } + + if (durationSeconds < 0.25) + { + durationSeconds = 0.25; + } + + if (durationSeconds > 20.0) + { + durationSeconds = 20.0; + } + + return durationSeconds; + } + + internal static void ApplySpinnerAppearance(Path spinnerPath, double spinnerSize, double thickness, double dashLengthPercent, int dashCount, bool roundedDashes) + { + if (spinnerPath == null) + { + return; + } + + var normalizedThickness = ClampThickness(thickness); + var normalizedDashLengthPercent = ClampDashLengthPercent(dashLengthPercent); + var normalizedDashCount = ClampDashCount(dashCount); + var normalizedSpinnerSize = ClampSpinnerSize(spinnerSize); + + spinnerPath.StrokeThickness = normalizedThickness; + spinnerPath.StrokeDashArray = null; + spinnerPath.StrokeDashOffset = 0; + spinnerPath.StrokeDashCap = PenLineCap.Flat; + spinnerPath.StrokeStartLineCap = roundedDashes ? PenLineCap.Round : PenLineCap.Flat; + spinnerPath.StrokeEndLineCap = roundedDashes ? PenLineCap.Round : PenLineCap.Flat; + spinnerPath.Data = SpinnerGeometryBuilder.BuildDashGeometry(normalizedSpinnerSize, normalizedThickness, normalizedDashLengthPercent, normalizedDashCount, roundedDashes); + } + } +} \ No newline at end of file diff --git a/source/Generic/SplashScreen/Localization/af_ZA.xaml b/source/Generic/SplashScreen/Localization/af_ZA.xaml index 4d415b18b6..53b3de6ef1 100644 --- a/source/Generic/SplashScreen/Localization/af_ZA.xaml +++ b/source/Generic/SplashScreen/Localization/af_ZA.xaml @@ -44,7 +44,7 @@ Voorskou-agtergrond: Dikte van laaispinner (pixels): Aantal strepies van laaispinner: - Lengte van spinnerstrepie (pixels): + Lengte van spinnerstrepie (1-100%): Gebruik afgeronde strepie-eindes Pas spinner-spoed outomaties aan volgens spinnergrootte diff --git a/source/Generic/SplashScreen/Localization/ar_SA.xaml b/source/Generic/SplashScreen/Localization/ar_SA.xaml index 781726fc0c..681e422bbf 100644 --- a/source/Generic/SplashScreen/Localization/ar_SA.xaml +++ b/source/Generic/SplashScreen/Localization/ar_SA.xaml @@ -44,7 +44,7 @@ خلفية المعاينة: سُمك المؤشر الدوار (بالبكسل): عدد شرطات المؤشر الدوار: - طول شرطة المؤشر الدوار (بالبكسل): + طول شرطة المؤشر الدوار (1-100%): استخدام نهايات مستديرة للشرطات ضبط سرعة المؤشر الدوار تلقائيا حسب الحجم diff --git a/source/Generic/SplashScreen/Localization/ca_ES.xaml b/source/Generic/SplashScreen/Localization/ca_ES.xaml index 1fa2cee706..7aad0f31a7 100644 --- a/source/Generic/SplashScreen/Localization/ca_ES.xaml +++ b/source/Generic/SplashScreen/Localization/ca_ES.xaml @@ -44,7 +44,7 @@ Fons de la previsualització: Gruix de l'indicador (píxels): Nombre de traços de l'indicador: - Longitud del traç de l'indicador (píxels): + Longitud del traç de l'indicador (1-100%): Utilitza extrems arrodonits als traços Ajusta automàticament la velocitat segons la mida de l'indicador diff --git a/source/Generic/SplashScreen/Localization/cs_CZ.xaml b/source/Generic/SplashScreen/Localization/cs_CZ.xaml index 0b5f234cad..59a5c1c802 100644 --- a/source/Generic/SplashScreen/Localization/cs_CZ.xaml +++ b/source/Generic/SplashScreen/Localization/cs_CZ.xaml @@ -44,7 +44,7 @@ Pozadí náhledu: Tloušťka indikátoru (pixely): Počet čárek indikátoru: - Délka čárky indikátoru (pixely): + Délka čárky indikátoru (1-100%): Použít zaoblené konce čárek Automaticky upravit rychlost indikátoru podle jeho velikosti diff --git a/source/Generic/SplashScreen/Localization/da_DK.xaml b/source/Generic/SplashScreen/Localization/da_DK.xaml index ef9af47e8b..ef736869a3 100644 --- a/source/Generic/SplashScreen/Localization/da_DK.xaml +++ b/source/Generic/SplashScreen/Localization/da_DK.xaml @@ -44,7 +44,7 @@ Forhåndsvisningsbaggrund: Tykkelse på spinner (pixels): Antal streger i spinner: - Længde på spinnerstreg (pixels): + Længde på spinnerstreg (1-100%): Brug afrundede stregeender Juster automatisk spinnerhastighed efter spinnerstørrelse diff --git a/source/Generic/SplashScreen/Localization/de_DE.xaml b/source/Generic/SplashScreen/Localization/de_DE.xaml index 2b79bef608..0ff128e8d2 100644 --- a/source/Generic/SplashScreen/Localization/de_DE.xaml +++ b/source/Generic/SplashScreen/Localization/de_DE.xaml @@ -44,7 +44,7 @@ Vorschauhintergrund: Dicke des Spinners (Pixel): Anzahl der Spinner-Striche: - Länge der Spinner-Striche (Pixel): + Länge der Spinner-Striche (1-100%): Abgerundete Strichenden verwenden Spinner-Geschwindigkeit automatisch an die Spinnergröße anpassen diff --git a/source/Generic/SplashScreen/Localization/en_US.xaml b/source/Generic/SplashScreen/Localization/en_US.xaml index fbc07d4773..844d93c71c 100644 --- a/source/Generic/SplashScreen/Localization/en_US.xaml +++ b/source/Generic/SplashScreen/Localization/en_US.xaml @@ -43,7 +43,7 @@ Preview background: Spinner thickness (pixels): Spinner dash count: - Spinner dash length (pixels): + Spinner dash length (1-100% of segment): Use rounded dash caps Adjust spinner speed automatically based on spinner size diff --git a/source/Generic/SplashScreen/Localization/eo_UY.xaml b/source/Generic/SplashScreen/Localization/eo_UY.xaml index 2c768619fe..6054b03238 100644 --- a/source/Generic/SplashScreen/Localization/eo_UY.xaml +++ b/source/Generic/SplashScreen/Localization/eo_UY.xaml @@ -44,7 +44,7 @@ Fono de antaŭvido: Dikeco de turnilo (rastrumeroj): Nombro de streketoj de turnilo: - Longeco de streketo de turnilo (rastrumeroj): + Longeco de streketo de turnilo (1-100%): Uzi rondigitajn finojn de streketoj Aŭtomate adapti la rapidon de turnilo laŭ la grandeco diff --git a/source/Generic/SplashScreen/Localization/es_ES.xaml b/source/Generic/SplashScreen/Localization/es_ES.xaml index 84fe8d7ccf..f3dbc38862 100644 --- a/source/Generic/SplashScreen/Localization/es_ES.xaml +++ b/source/Generic/SplashScreen/Localization/es_ES.xaml @@ -44,7 +44,7 @@ Fondo de la vista previa: Grosor del indicador (píxeles): Cantidad de trazos del indicador: - Longitud del trazo del indicador (píxeles): + Longitud del trazo del indicador (1-100%): Usar extremos redondeados en los trazos Ajustar automáticamente la velocidad según el tamaño del indicador diff --git a/source/Generic/SplashScreen/Localization/fa_IR.xaml b/source/Generic/SplashScreen/Localization/fa_IR.xaml index b47997f1a7..2ece37a5ec 100644 --- a/source/Generic/SplashScreen/Localization/fa_IR.xaml +++ b/source/Generic/SplashScreen/Localization/fa_IR.xaml @@ -44,7 +44,7 @@ پس‌زمینه پیش‌نمایش: ضخامت نشانگر (پیکسل): تعداد خط‌چین‌های نشانگر: - طول خط‌چین نشانگر (پیکسل): + طول خط‌چین نشانگر (1-100%): استفاده از سرخط‌های گرد تنظیم خودکار سرعت نشانگر بر اساس اندازهٔ آن diff --git a/source/Generic/SplashScreen/Localization/fi_FI.xaml b/source/Generic/SplashScreen/Localization/fi_FI.xaml index 3dbbbd227c..52525ffd8d 100644 --- a/source/Generic/SplashScreen/Localization/fi_FI.xaml +++ b/source/Generic/SplashScreen/Localization/fi_FI.xaml @@ -44,7 +44,7 @@ Esikatselun tausta: Pyörivän ilmaisimen paksuus (pikseleinä): Pyörivän ilmaisimen viivojen määrä: - Pyörivän ilmaisimen viivan pituus (pikseleinä): + Pyörivän ilmaisimen viivan pituus (1-100%): Käytä pyöristettyjä viivanpäitä Säädä pyörivän ilmaisimen nopeutta automaattisesti koon mukaan diff --git a/source/Generic/SplashScreen/Localization/fr_FR.xaml b/source/Generic/SplashScreen/Localization/fr_FR.xaml index 5db6589235..0ba4deb3e8 100644 --- a/source/Generic/SplashScreen/Localization/fr_FR.xaml +++ b/source/Generic/SplashScreen/Localization/fr_FR.xaml @@ -44,7 +44,7 @@ Arriere-plan de l'aperçu : Épaisseur de l'indicateur (pixels) : Nombre de segments de l'indicateur : - Longueur des segments de l'indicateur (pixels) : + Longueur des segments de l'indicateur (1-100%): Utiliser des extrémités de segments arrondies Ajuster automatiquement la vitesse selon la taille de l'indicateur diff --git a/source/Generic/SplashScreen/Localization/gl_ES.xaml b/source/Generic/SplashScreen/Localization/gl_ES.xaml index 9c1fbb891c..0cc04c17b9 100644 --- a/source/Generic/SplashScreen/Localization/gl_ES.xaml +++ b/source/Generic/SplashScreen/Localization/gl_ES.xaml @@ -44,7 +44,7 @@ Fondo da vista previa: Espesor do indicador (píxeles): Cantidade de trazos do indicador: - Lonxitude do trazo do indicador (píxeles): + Lonxitude do trazo do indicador (1-100%): Usar extremos redondeados no trazado Axustar automaticamente a velocidade segundo o tamaño do indicador diff --git a/source/Generic/SplashScreen/Localization/hr_HR.xaml b/source/Generic/SplashScreen/Localization/hr_HR.xaml index 101574ade9..4a69c799b6 100644 --- a/source/Generic/SplashScreen/Localization/hr_HR.xaml +++ b/source/Generic/SplashScreen/Localization/hr_HR.xaml @@ -44,7 +44,7 @@ Pozadina pregleda: Debljina indikatora (pikseli): Broj crtica indikatora: - Duljina crtice indikatora (pikseli): + Duljina crtice indikatora (1-100%): Koristi zaobljene završetke crtica Automatski prilagodi brzinu indikatora prema veličini diff --git a/source/Generic/SplashScreen/Localization/hu_HU.xaml b/source/Generic/SplashScreen/Localization/hu_HU.xaml index c1a904cc55..081c1355c8 100644 --- a/source/Generic/SplashScreen/Localization/hu_HU.xaml +++ b/source/Generic/SplashScreen/Localization/hu_HU.xaml @@ -44,7 +44,7 @@ Előnézet háttere: Jelző vastagsága (képpont): Jelző vonásainak száma: - Jelző vonásának hossza (képpont): + Jelző vonásának hossza (1-100%): Lekerekített vonásvégek használata A jelző sebességének automatikus igazítása a méretéhez diff --git a/source/Generic/SplashScreen/Localization/it_IT.xaml b/source/Generic/SplashScreen/Localization/it_IT.xaml index b6a65f7351..3b99e9335b 100644 --- a/source/Generic/SplashScreen/Localization/it_IT.xaml +++ b/source/Generic/SplashScreen/Localization/it_IT.xaml @@ -44,7 +44,7 @@ Sfondo anteprima: Spessore indicatore (pixel): Numero trattini indicatore: - Lunghezza trattino indicatore (pixel): + Lunghezza trattino indicatore (1-100%): Usa estremità arrotondate per i trattini Regola automaticamente la velocità in base alla dimensione dell'indicatore diff --git a/source/Generic/SplashScreen/Localization/ja_JP.xaml b/source/Generic/SplashScreen/Localization/ja_JP.xaml index 27fad4a64f..4eba4ddfda 100644 --- a/source/Generic/SplashScreen/Localization/ja_JP.xaml +++ b/source/Generic/SplashScreen/Localization/ja_JP.xaml @@ -44,7 +44,7 @@ プレビュー背景: スピナーの太さ (ピクセル): スピナーのダッシュ数: - スピナーのダッシュ長 (ピクセル): + スピナーのダッシュ長 (1-100%): ダッシュ端を丸くする スピナーサイズに応じて速度を自動調整する diff --git a/source/Generic/SplashScreen/Localization/ko_KR.xaml b/source/Generic/SplashScreen/Localization/ko_KR.xaml index 44073630c3..f10951e42e 100644 --- a/source/Generic/SplashScreen/Localization/ko_KR.xaml +++ b/source/Generic/SplashScreen/Localization/ko_KR.xaml @@ -44,7 +44,7 @@ 미리 보기 배경: 스피너 두께(픽셀): 스피너 대시 개수: - 스피너 대시 길이(픽셀): + 스피너 대시 길이 (1-100%): 둥근 대시 끝 사용 스피너 크기에 따라 속도를 자동으로 조정 diff --git a/source/Generic/SplashScreen/Localization/nl_NL.xaml b/source/Generic/SplashScreen/Localization/nl_NL.xaml index aee24d0534..67da0070c4 100644 --- a/source/Generic/SplashScreen/Localization/nl_NL.xaml +++ b/source/Generic/SplashScreen/Localization/nl_NL.xaml @@ -44,7 +44,7 @@ Voorbeeldachtergrond: Dikte van de spinner (pixels): Aantal streepjes van de spinner: - Lengte van spinnerstreepjes (pixels): + Lengte van spinnerstreepjes (1-100%): Afgeronde uiteinden voor streepjes gebruiken Spinnersnelheid automatisch aanpassen op basis van de spinnergrootte diff --git a/source/Generic/SplashScreen/Localization/no_NO.xaml b/source/Generic/SplashScreen/Localization/no_NO.xaml index f744c4750b..b43781d022 100644 --- a/source/Generic/SplashScreen/Localization/no_NO.xaml +++ b/source/Generic/SplashScreen/Localization/no_NO.xaml @@ -44,7 +44,7 @@ Forhåndsvisningsbakgrunn: Tykkelse på spinner (piksler): Antall streker i spinner: - Lengde på spinnerstrek (piksler): + Lengde på spinnerstrek (1-100%): Bruk avrundede strekender Juster spinnerhastigheten automatisk basert på spinnerstørrelse diff --git a/source/Generic/SplashScreen/Localization/pl_PL.xaml b/source/Generic/SplashScreen/Localization/pl_PL.xaml index f796b3f934..374048bfd4 100644 --- a/source/Generic/SplashScreen/Localization/pl_PL.xaml +++ b/source/Generic/SplashScreen/Localization/pl_PL.xaml @@ -44,7 +44,7 @@ Tło podglądu: Grubość wskaźnika (piksele): Liczba kresek wskaźnika: - Długość kreski wskaźnika (piksele): + Długość kreski wskaźnika (1-100%): Użyj zaokrąglonych zakończeń kresek Automatycznie dostosuj szybkość wskaźnika do jego rozmiaru diff --git a/source/Generic/SplashScreen/Localization/pt_BR.xaml b/source/Generic/SplashScreen/Localization/pt_BR.xaml index 9f5cffaf9a..5cf9a2fdf9 100644 --- a/source/Generic/SplashScreen/Localization/pt_BR.xaml +++ b/source/Generic/SplashScreen/Localization/pt_BR.xaml @@ -44,7 +44,7 @@ Fundo da pré-visualização: Espessura do indicador (pixels): Quantidade de traços do indicador: - Comprimento do tracejado do indicador (pixels): + Comprimento do traço do indicador (1-100% do segmento): Usar extremidades arredondadas no tracejado Ajustar automaticamente a velocidade do indicador de acordo com o tamanho diff --git a/source/Generic/SplashScreen/Localization/pt_PT.xaml b/source/Generic/SplashScreen/Localization/pt_PT.xaml index c5b63d8ed0..b0d68ff3ad 100644 --- a/source/Generic/SplashScreen/Localization/pt_PT.xaml +++ b/source/Generic/SplashScreen/Localization/pt_PT.xaml @@ -44,7 +44,7 @@ Fundo da pré-visualização: Espessura do indicador (píxeis): Quantidade de traços do indicador: - Comprimento do tracejado do indicador (píxeis): + Comprimento do traço do indicador (1-100% do segmento): Utilizar extremidades arredondadas no tracejado Ajustar automaticamente a velocidade do indicador com base no tamanho diff --git a/source/Generic/SplashScreen/Localization/ru_RU.xaml b/source/Generic/SplashScreen/Localization/ru_RU.xaml index bcc1ffa005..ee3635468c 100644 --- a/source/Generic/SplashScreen/Localization/ru_RU.xaml +++ b/source/Generic/SplashScreen/Localization/ru_RU.xaml @@ -44,7 +44,7 @@ Фон предпросмотра: Толщина индикатора (пиксели): Количество штрихов индикатора: - Длина штриха индикатора (пиксели): + Длина штриха индикатора (1-100%): Использовать закругленные концы штрихов Автоматически подстраивать скорость индикатора под его размер diff --git a/source/Generic/SplashScreen/Localization/sr_SP.xaml b/source/Generic/SplashScreen/Localization/sr_SP.xaml index 1ce7ae370b..2e7e98058a 100644 --- a/source/Generic/SplashScreen/Localization/sr_SP.xaml +++ b/source/Generic/SplashScreen/Localization/sr_SP.xaml @@ -44,7 +44,7 @@ Позадина прегледа: Дебљина индикатора (пиксели): Број цртица индикатора: - Дужина цртице индикатора (пиксели): + Дужина цртице индикатора (1-100%): Користи заобљене крајеве цртица Automatski prilagodi brzinu indikatora prema veličini diff --git a/source/Generic/SplashScreen/Localization/tr_TR.xaml b/source/Generic/SplashScreen/Localization/tr_TR.xaml index ce481264f1..eb3932383e 100644 --- a/source/Generic/SplashScreen/Localization/tr_TR.xaml +++ b/source/Generic/SplashScreen/Localization/tr_TR.xaml @@ -44,7 +44,7 @@ Önizleme arka planı: Gösterge kalınlığı (piksel): Gösterge çizgi sayısı: - Gösterge çizgi uzunluğu (piksel): + Gösterge çizgi uzunluğu (1-100%): Yuvarlatılmış çizgi uçlarını kullan Gösterge hızını boyuta göre otomatik ayarla diff --git a/source/Generic/SplashScreen/Localization/uk_UA.xaml b/source/Generic/SplashScreen/Localization/uk_UA.xaml index 433cf38ce7..0f7d313164 100644 --- a/source/Generic/SplashScreen/Localization/uk_UA.xaml +++ b/source/Generic/SplashScreen/Localization/uk_UA.xaml @@ -44,7 +44,7 @@ Тло попереднього перегляду: Товщина індикатора (пікселі): Кількість штрихів індикатора: - Довжина штриха індикатора (пікселі): + Довжина штриха індикатора (1-100%): Використовувати заокруглені кінці штрихів Автоматично підлаштовувати швидкість індикатора під його розмір diff --git a/source/Generic/SplashScreen/Localization/vi_VN.xaml b/source/Generic/SplashScreen/Localization/vi_VN.xaml index 22bc0cdb98..e1b8e136a2 100644 --- a/source/Generic/SplashScreen/Localization/vi_VN.xaml +++ b/source/Generic/SplashScreen/Localization/vi_VN.xaml @@ -44,7 +44,7 @@ Nền xem trước: Độ dày vòng xoay (pixel): Số lượng nét đứt của vòng xoay: - Độ dài nét đứt của vòng xoay (pixel): + Độ dài nét đứt của vòng xoay (1-100%): Sử dụng đầu nét bo tròn Tự động điều chỉnh tốc độ theo kích thước vòng xoay diff --git a/source/Generic/SplashScreen/Localization/zh_CN.xaml b/source/Generic/SplashScreen/Localization/zh_CN.xaml index 7685426c2a..c3698e300b 100644 --- a/source/Generic/SplashScreen/Localization/zh_CN.xaml +++ b/source/Generic/SplashScreen/Localization/zh_CN.xaml @@ -44,7 +44,7 @@ 预览背景: 指示器粗细(像素): 指示器短划线数量: - 指示器短划线长度(像素): + 指示器短划线长度 (1-100%): 使用圆角短划线端帽 根据指示器大小自动调整速度 diff --git a/source/Generic/SplashScreen/Localization/zh_TW.xaml b/source/Generic/SplashScreen/Localization/zh_TW.xaml index 9ec486dc66..aa63744344 100644 --- a/source/Generic/SplashScreen/Localization/zh_TW.xaml +++ b/source/Generic/SplashScreen/Localization/zh_TW.xaml @@ -44,7 +44,7 @@ 預覽背景: 指示器粗細(像素): 指示器虛線數量: - 指示器虛線長度(像素): + 指示器虛線長度 (1-100%): 使用圓角虛線端點 根據指示器大小自動調整速度 diff --git a/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs b/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs index 10a7420b03..424505d076 100644 --- a/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs +++ b/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs @@ -90,7 +90,7 @@ public interface IGeneralSplashSettings double LoadingSpinnerThickness { get; set; } /// - /// Gets or sets loading spinner dash length in pixels. + /// Gets or sets loading spinner dash length as a percentage of each dash slot. /// double LoadingSpinnerDashLength { get; set; } @@ -143,7 +143,7 @@ public class GeneralSplashSettings : IGeneralSplashSettings public int LoadingSpinnerSize { get; set; } = 50; public double LoadingSpinnerOpacity { get; set; } = 0.85; public double LoadingSpinnerThickness { get; set; } = 2.0; - public double LoadingSpinnerDashLength { get; set; } = 4.0; + public double LoadingSpinnerDashLength { get; set; } = 70.0; public int LoadingSpinnerDashCount { get; set; } = 16; public bool LoadingSpinnerRoundedDashes { get; set; } = false; public double LoadingSpinnerRotationSeconds { get; set; } = 3.0; diff --git a/source/Generic/SplashScreen/SplashScreen.csproj b/source/Generic/SplashScreen/SplashScreen.csproj index 1671be3852..e4820fcc13 100644 --- a/source/Generic/SplashScreen/SplashScreen.csproj +++ b/source/Generic/SplashScreen/SplashScreen.csproj @@ -99,6 +99,7 @@ + diff --git a/source/Generic/SplashScreen/SplashScreenSettingsView.xaml b/source/Generic/SplashScreen/SplashScreenSettingsView.xaml index 1739ff6e08..a3ce0b7ca8 100644 --- a/source/Generic/SplashScreen/SplashScreenSettingsView.xaml +++ b/source/Generic/SplashScreen/SplashScreenSettingsView.xaml @@ -136,14 +136,14 @@ - - + - diff --git a/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs b/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs index 147def685e..b77e5d3b46 100644 --- a/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs +++ b/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs @@ -28,7 +28,7 @@ public partial class SpinnerPreviewControl : UserControl public static readonly DependencyProperty SpinnerDashLengthProperty = DependencyProperty.Register(nameof(SpinnerDashLength), typeof(double), typeof(SpinnerPreviewControl), - new PropertyMetadata(4.0, OnAppearancePropertyChanged)); + new PropertyMetadata(70.0, OnAppearancePropertyChanged)); public static readonly DependencyProperty SpinnerDashCountProperty = DependencyProperty.Register(nameof(SpinnerDashCount), typeof(int), typeof(SpinnerPreviewControl), @@ -152,38 +152,13 @@ private void ApplyAppearance() PreviewContainer.Background = new SolidColorBrush(Color.FromRgb(channel, channel, channel)); } - var thickness = SpinnerThickness; - if (thickness < 0.5) - { - thickness = 0.5; - } - - var dashLengthPx = SpinnerDashLength; - if (dashLengthPx < 0.5) - { - dashLengthPx = 0.5; - } - - var dashCount = SpinnerDashCount; - if (dashCount < 2) - { - dashCount = 2; - } - - var spinnerSize = SpinnerSize; - if (spinnerSize < 4) - { - spinnerSize = 4; - } - - var roundedDashes = RoundedDashes; - PreviewPath.StrokeThickness = thickness; - PreviewPath.StrokeDashArray = null; - PreviewPath.StrokeDashOffset = 0; - PreviewPath.StrokeDashCap = PenLineCap.Flat; - PreviewPath.StrokeStartLineCap = roundedDashes ? PenLineCap.Round : PenLineCap.Flat; - PreviewPath.StrokeEndLineCap = roundedDashes ? PenLineCap.Round : PenLineCap.Flat; - PreviewPath.Data = SpinnerGeometryBuilder.BuildDashGeometry(spinnerSize, thickness, dashLengthPx, dashCount, roundedDashes); + SpinnerRenderHelper.ApplySpinnerAppearance( + PreviewPath, + SpinnerSize, + SpinnerThickness, + SpinnerDashLength, + SpinnerDashCount, + RoundedDashes); } private void ApplyAnimation() @@ -202,34 +177,7 @@ private void ApplyAnimation() } rotateTransform.BeginAnimation(RotateTransform.AngleProperty, null); - - var baseSeconds = RotationSeconds; - if (baseSeconds <= 0) - { - baseSeconds = 3.0; - } - - var durationSeconds = baseSeconds; - if (AutoSpeed) - { - var normalizedSize = SpinnerSize / 50.0; - if (normalizedSize < 0.4) - { - normalizedSize = 0.4; - } - - durationSeconds = baseSeconds * normalizedSize; - } - - if (durationSeconds < 0.25) - { - durationSeconds = 0.25; - } - - if (durationSeconds > 20.0) - { - durationSeconds = 20.0; - } + var durationSeconds = SpinnerRenderHelper.CalculateRotationDurationSeconds(RotationSeconds, AutoSpeed, SpinnerSize); var animation = new DoubleAnimation { diff --git a/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs b/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs index 0e8416f07a..5cc167cc38 100644 --- a/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs +++ b/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs @@ -60,34 +60,10 @@ private void ConfigureSpinnerAnimation() } rotateTransform.BeginAnimation(RotateTransform.AngleProperty, null); - - var baseSeconds = vm.Settings.LoadingSpinnerRotationSeconds; - if (baseSeconds <= 0) - { - baseSeconds = 3.0; - } - - var durationSeconds = baseSeconds; - if (vm.Settings.EnableLoadingSpinnerAutoSpeed) - { - var normalizedSize = vm.Settings.LoadingSpinnerSize / 50.0; - if (normalizedSize < 0.4) - { - normalizedSize = 0.4; - } - - durationSeconds = baseSeconds * normalizedSize; - } - - if (durationSeconds < 0.25) - { - durationSeconds = 0.25; - } - - if (durationSeconds > 20.0) - { - durationSeconds = 20.0; - } + var durationSeconds = SpinnerRenderHelper.CalculateRotationDurationSeconds( + vm.Settings.LoadingSpinnerRotationSeconds, + vm.Settings.EnableLoadingSpinnerAutoSpeed, + vm.Settings.LoadingSpinnerSize); var animation = new DoubleAnimation { @@ -102,43 +78,13 @@ private void ConfigureSpinnerAnimation() private void ConfigureSpinnerAppearance(Models.GeneralSplashSettings settings) { - if (SpinnerPath == null) - { - return; - } - - var thickness = settings.LoadingSpinnerThickness; - if (thickness < 0.5) - { - thickness = 0.5; - } - - var dashLengthPx = settings.LoadingSpinnerDashLength; - if (dashLengthPx < 0.5) - { - dashLengthPx = 0.5; - } - - var dashCount = settings.LoadingSpinnerDashCount; - if (dashCount < 2) - { - dashCount = 2; - } - - var spinnerSize = settings.LoadingSpinnerSize; - if (spinnerSize < 4) - { - spinnerSize = 4; - } - - var roundedDashes = settings.LoadingSpinnerRoundedDashes; - SpinnerPath.StrokeThickness = thickness; - SpinnerPath.StrokeDashArray = null; - SpinnerPath.StrokeDashOffset = 0; - SpinnerPath.StrokeDashCap = PenLineCap.Flat; - SpinnerPath.StrokeStartLineCap = roundedDashes ? PenLineCap.Round : PenLineCap.Flat; - SpinnerPath.StrokeEndLineCap = roundedDashes ? PenLineCap.Round : PenLineCap.Flat; - SpinnerPath.Data = SpinnerGeometryBuilder.BuildDashGeometry(spinnerSize, thickness, dashLengthPx, dashCount, roundedDashes); + SpinnerRenderHelper.ApplySpinnerAppearance( + SpinnerPath, + settings.LoadingSpinnerSize, + settings.LoadingSpinnerThickness, + settings.LoadingSpinnerDashLength, + settings.LoadingSpinnerDashCount, + settings.LoadingSpinnerRoundedDashes); } } -} \ No newline at end of file +} From 920d8e6de9f3b56f81864a5456ccd04a8819fb13 Mon Sep 17 00:00:00 2001 From: NogFar <52389872+NogFar@users.noreply.github.com> Date: Sun, 15 Mar 2026 17:06:37 -0300 Subject: [PATCH 3/3] chore: complying with repository rules --- .../Models/GeneralSplashSettings.cs | 4 - source/Generic/SplashScreen/SplashScreen.cs | 174 +++++++++--------- .../SplashScreen/SplashScreenSettings.cs | 37 ++-- .../ViewModels/GameSettingsWindowViewModel.cs | 73 ++++---- .../ViewModels/SplashScreenImageViewModel.cs | 40 ++-- .../ViewModels/VideoManagerViewModel.cs | 69 ++++--- .../Views/SpinnerPreviewControl.xaml.cs | 1 - .../Views/SplashScreenImage.xaml.cs | 12 -- 8 files changed, 193 insertions(+), 217 deletions(-) diff --git a/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs b/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs index 424505d076..3e63d9b7b7 100644 --- a/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs +++ b/source/Generic/SplashScreen/Models/GeneralSplashSettings.cs @@ -1,8 +1,4 @@ using System; -using System.Collections.Generic; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows; namespace SplashScreen.Models diff --git a/source/Generic/SplashScreen/SplashScreen.cs b/source/Generic/SplashScreen/SplashScreen.cs index 64a341102a..c2c8affac5 100644 --- a/source/Generic/SplashScreen/SplashScreen.cs +++ b/source/Generic/SplashScreen/SplashScreen.cs @@ -26,13 +26,13 @@ namespace SplashScreen { public class SplashScreen : GenericPlugin { - private static readonly ILogger logger = LogManager.GetLogger(); - private readonly DispatcherTimer timerCloseWindow; - private string pluginInstallPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); - private Window currentSplashWindow; - private bool? isMusicMutedBackup; - private EventWaitHandle videoWaitHandle; - private readonly DispatcherTimer timerWindowRemoveTopMost; + private static readonly ILogger _logger = LogManager.GetLogger(); + private readonly DispatcherTimer _timerCloseWindow; + private string _pluginInstallPath = Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location); + private Window _currentSplashWindow; + private bool? _isMusicMutedBackup; + private EventWaitHandle _videoWaitHandle; + private readonly DispatcherTimer _timerWindowRemoveTopMost; private const string featureNameSplashScreenDisable = "[Splash Screen] Disable"; private const string featureNameSkipSplashImage = "[Splash Screen] Skip splash image"; private const string videoIntroName = "VideoIntro.mp4"; @@ -50,23 +50,23 @@ public SplashScreen(IPlayniteAPI api) : base(api) HasSettings = true }; - videoWaitHandle = new EventWaitHandle(false, EventResetMode.ManualReset); - timerCloseWindow = new DispatcherTimer(); - timerCloseWindow.Interval = TimeSpan.FromMilliseconds(60000); - timerCloseWindow.Tick += (_, __) => + _videoWaitHandle = new EventWaitHandle(false, EventResetMode.ManualReset); + _timerCloseWindow = new DispatcherTimer(); + _timerCloseWindow.Interval = TimeSpan.FromMilliseconds(60000); + _timerCloseWindow.Tick += (_, __) => { - timerCloseWindow.Stop(); - currentSplashWindow?.Close(); + _timerCloseWindow.Stop(); + _currentSplashWindow?.Close(); }; - timerWindowRemoveTopMost = new DispatcherTimer(); - timerWindowRemoveTopMost.Interval = TimeSpan.FromMilliseconds(800); - timerWindowRemoveTopMost.Tick += (_, __) => + _timerWindowRemoveTopMost = new DispatcherTimer(); + _timerWindowRemoveTopMost.Interval = TimeSpan.FromMilliseconds(800); + _timerWindowRemoveTopMost.Tick += (_, __) => { - timerWindowRemoveTopMost.Stop(); - if (currentSplashWindow != null) + _timerWindowRemoveTopMost.Stop(); + if (_currentSplashWindow != null) { - currentSplashWindow.Topmost = false; + _currentSplashWindow.Topmost = false; } }; } @@ -81,7 +81,7 @@ private void MuteBackgroundMusic() if (PlayniteApi.ApplicationSettings.Fullscreen.IsMusicMuted == false) { PlayniteApi.ApplicationSettings.Fullscreen.IsMusicMuted = true; - isMusicMutedBackup = false; + _isMusicMutedBackup = false; } } @@ -92,18 +92,18 @@ private void RestoreBackgroundMusic() return; } - if (isMusicMutedBackup != null && isMusicMutedBackup == false) + if (_isMusicMutedBackup != null && _isMusicMutedBackup == false) { PlayniteApi.ApplicationSettings.Fullscreen.IsMusicMuted = false; - isMusicMutedBackup = null; + _isMusicMutedBackup = null; } } public override void OnGameStarted(OnGameStartedEventArgs args) { - if (currentSplashWindow != null) + if (_currentSplashWindow != null) { - currentSplashWindow.Topmost = false; + _currentSplashWindow.Topmost = false; } } @@ -115,22 +115,22 @@ public override void OnGameStarting(OnGameStartingEventArgs args) ? generalSplashSettings.DesktopModeSettings : generalSplashSettings.FullscreenModeSettings; if (!modeSplashSettings.IsEnabled) { - logger.Info($"Execution disabled for {PlayniteApi.ApplicationInfo.Mode} mode in settings"); + _logger.Info($"Execution disabled for {PlayniteApi.ApplicationInfo.Mode} mode in settings"); return; } // In case somebody starts another game or if splash screen was not closed before for some reason - if (currentSplashWindow != null) + if (_currentSplashWindow != null) { - currentSplashWindow.Close(); - currentSplashWindow = null; + _currentSplashWindow.Close(); + _currentSplashWindow = null; RestoreBackgroundMusic(); } - currentSplashWindow = null; + _currentSplashWindow = null; if (PlayniteUtilities.GetGameHasFeature(game, featureNameSplashScreenDisable, true)) { - logger.Info($"{game.Name} has splashscreen disable feature"); + _logger.Info($"{game.Name} has splashscreen disable feature"); return; } @@ -159,7 +159,7 @@ public override void OnGameStarting(OnGameStartingEventArgs args) { if (generalSplashSettings.UseBlackSplashscreen) { - splashImagePath = Path.Combine(pluginInstallPath, "Images", "SplashScreenBlack.png"); + splashImagePath = Path.Combine(_pluginInstallPath, "Images", "SplashScreenBlack.png"); } else { @@ -229,13 +229,13 @@ private void ActivateSplashWindow(Window currentSplashWindow) private void SkipSplash(object sender, EventArgs e) { - if (currentSplashWindow.Content is SplashScreenVideo) + if (_currentSplashWindow.Content is SplashScreenVideo) { - videoWaitHandle.Set(); + _videoWaitHandle.Set(); } else { - currentSplashWindow.Close(); + _currentSplashWindow.Close(); } } @@ -244,11 +244,11 @@ private void CreateSplashVideoWindow(bool showSplashImage, string videoPath, str // Mutes Playnite Background music to make sure its not playing when video or splash screen image // is active and prevents music not stopping when game is already running MuteBackgroundMusic(); - timerCloseWindow.Stop(); - currentSplashWindow?.Close(); + _timerCloseWindow.Stop(); + _currentSplashWindow?.Close(); var content = new SplashScreenVideo(videoPath); - currentSplashWindow = new Window + _currentSplashWindow = new Window { WindowStyle = WindowStyle.None, ResizeMode = ResizeMode.NoResize, @@ -259,70 +259,70 @@ private void CreateSplashVideoWindow(bool showSplashImage, string videoPath, str Topmost = true }; - currentSplashWindow.Closed += SplashWindowClosed; + _currentSplashWindow.Closed += SplashWindowClosed; content.VideoPlayer.MediaEnded += VideoPlayer_MediaEnded; content.VideoPlayer.MediaFailed += VideoPlayer_MediaFailed; - currentSplashWindow.KeyDown += SkipSplash; - currentSplashWindow.MouseDown += SkipSplash; + _currentSplashWindow.KeyDown += SkipSplash; + _currentSplashWindow.MouseDown += SkipSplash; - currentSplashWindow.Show(); + _currentSplashWindow.Show(); // To wait until the video stops playing, a progress dialog is used // to make Playnite wait in a non locking way and without sleeping the whole // application - videoWaitHandle.Reset(); + _videoWaitHandle.Reset(); PlayniteApi.Dialogs.ActivateGlobalProgress((_) => { - ActivateSplashWindow(currentSplashWindow); - videoWaitHandle.WaitOne(); + ActivateSplashWindow(_currentSplashWindow); + _videoWaitHandle.WaitOne(); content.VideoPlayer.MediaEnded -= VideoPlayer_MediaEnded; content.VideoPlayer.MediaFailed -= VideoPlayer_MediaFailed; - logger.Debug("videoWaitHandle.WaitOne() passed"); + _logger.Debug("videoWaitHandle.WaitOne() passed"); }, new GlobalProgressOptions(string.Empty) { IsIndeterminate = false }); if (showSplashImage) { - currentSplashWindow.Content = new SplashScreenImage { DataContext = new SplashScreenImageViewModel(generalSplashSettings, splashImagePath, logoPath) }; + _currentSplashWindow.Content = new SplashScreenImage { DataContext = new SplashScreenImageViewModel(generalSplashSettings, splashImagePath, logoPath) }; PlayniteApi.Dialogs.ActivateGlobalProgress((a) => { - ActivateSplashWindow(currentSplashWindow); + ActivateSplashWindow(_currentSplashWindow); Thread.Sleep(3000); }, new GlobalProgressOptions(string.Empty) { IsIndeterminate = false }); if (modeSplashSettings.CloseSplashscreenAutomatic) { - timerCloseWindow.Stop(); - timerCloseWindow.Start(); + _timerCloseWindow.Stop(); + _timerCloseWindow.Start(); } } else { - currentSplashWindow?.Close(); + _currentSplashWindow?.Close(); } - timerWindowRemoveTopMost.Stop(); - timerWindowRemoveTopMost.Start(); + _timerWindowRemoveTopMost.Stop(); + _timerWindowRemoveTopMost.Start(); } private void VideoPlayer_MediaEnded(object sender, RoutedEventArgs e) { - videoWaitHandle.Set(); + _videoWaitHandle.Set(); } private void VideoPlayer_MediaFailed(object sender, ExceptionRoutedEventArgs e) { - videoWaitHandle.Set(); + _videoWaitHandle.Set(); } private void CreateSplashImageWindow(string splashImagePath, string logoPath, GeneralSplashSettings generalSplashSettings, ModeSplashSettings modeSplashSettings) { // Mutes Playnite Background music to make sure its not playing when video or splash screen image // is active and prevents music not stopping when game is already running - timerCloseWindow.Stop(); + _timerCloseWindow.Stop(); - currentSplashWindow?.Close(); + _currentSplashWindow?.Close(); MuteBackgroundMusic(); - currentSplashWindow = new Window + _currentSplashWindow = new Window { WindowStyle = WindowStyle.None, ResizeMode = ResizeMode.NoResize, @@ -333,39 +333,39 @@ private void CreateSplashImageWindow(string splashImagePath, string logoPath, Ge Topmost = true }; - currentSplashWindow.Closed += SplashWindowClosed; - currentSplashWindow.KeyDown += SkipSplash; - currentSplashWindow.MouseDown += SkipSplash; + _currentSplashWindow.Closed += SplashWindowClosed; + _currentSplashWindow.KeyDown += SkipSplash; + _currentSplashWindow.MouseDown += SkipSplash; - currentSplashWindow.Show(); + _currentSplashWindow.Show(); PlayniteApi.Dialogs.ActivateGlobalProgress((a) => { - ActivateSplashWindow(currentSplashWindow); + ActivateSplashWindow(_currentSplashWindow); Thread.Sleep(3000); }, new GlobalProgressOptions(string.Empty) { IsIndeterminate = false}); if (modeSplashSettings.CloseSplashscreenAutomatic) { - timerCloseWindow.Stop(); - timerCloseWindow.Start(); + _timerCloseWindow.Stop(); + _timerCloseWindow.Start(); } // The window topmost property is set to false after a small time to make sure // Playnite does not restore itself over the created window after the method ends // and it starts launching the game - timerWindowRemoveTopMost.Stop(); - timerWindowRemoveTopMost.Start(); + _timerWindowRemoveTopMost.Stop(); + _timerWindowRemoveTopMost.Start(); } private void SplashWindowClosed(object sender, EventArgs e) { - timerCloseWindow.Stop(); - videoWaitHandle.Set(); - currentSplashWindow.Closed -= SplashWindowClosed; - currentSplashWindow.KeyDown -= SkipSplash; - currentSplashWindow.MouseDown -= SkipSplash; - currentSplashWindow = null; + _timerCloseWindow.Stop(); + _videoWaitHandle.Set(); + _currentSplashWindow.Closed -= SplashWindowClosed; + _currentSplashWindow.KeyDown -= SkipSplash; + _currentSplashWindow.MouseDown -= SkipSplash; + _currentSplashWindow = null; } private string GetSplashVideoPath(Game game, ModeSplashSettings modeSplashSettings) @@ -376,7 +376,7 @@ private string GetSplashVideoPath(Game game, ModeSplashSettings modeSplashSettin var splashVideo = Path.Combine(baseSplashVideo, videoIntroName); if (FileSystem.FileExists(splashVideo)) { - logger.Info(string.Format("Specific game video found in {0}", splashVideo)); + _logger.Info(string.Format("Specific game video found in {0}", splashVideo)); return LogAcquiredVideo("Game-specific", splashVideo); } @@ -418,14 +418,14 @@ private string GetSplashVideoPath(Game game, ModeSplashSettings modeSplashSettin } else { - logger.Info("Video not found"); + _logger.Info("Video not found"); return string.Empty; } } private static string LogAcquiredVideo(string source, string videoPath) { - logger.Info($"{source} video found in {videoPath}"); + _logger.Info($"{source} video found in {videoPath}"); return videoPath; } @@ -433,7 +433,7 @@ private string GetSplashLogoPath(Game game, GeneralSplashSettings generalSplashS { if (generalSplashSettings.LogoUseIconAsLogo && game.Icon != null && !game.Icon.StartsWith("http")) { - logger.Info("Found game icon"); + _logger.Info("Found game icon"); return PlayniteApi.Database.GetFullFilePath(game.Icon); } else @@ -441,12 +441,12 @@ private string GetSplashLogoPath(Game game, GeneralSplashSettings generalSplashS var logoPathSearch = Path.Combine(PlayniteApi.Paths.ConfigurationPath, "ExtraMetadata", "games", game.Id.ToString(), "Logo.png"); if (FileSystem.FileExists(logoPathSearch)) { - logger.Info(string.Format("Specific game logo found in {0}", logoPathSearch)); + _logger.Info(string.Format("Specific game logo found in {0}", logoPathSearch)); return logoPathSearch; } } - logger.Info("Logo not found"); + _logger.Info("Logo not found"); return string.Empty; } @@ -454,25 +454,25 @@ private string GetSplashImagePath(Game game) { if (game.BackgroundImage != null && !game.BackgroundImage.StartsWith("http")) { - logger.Info("Found game background image"); + _logger.Info("Found game background image"); return PlayniteApi.Database.GetFullFilePath(game.BackgroundImage); } if (game.Platforms.HasItems() && game.Platforms[0].Background != null) { - logger.Info("Found platform background image"); + _logger.Info("Found platform background image"); return PlayniteApi.Database.GetFullFilePath(game.Platforms[0].Background); } if (PlayniteApi.ApplicationInfo.Mode == ApplicationMode.Desktop) { - logger.Info("Using generic Desktop mode background image"); - return Path.Combine(pluginInstallPath, "Images", "SplashScreenDesktopMode.png"); + _logger.Info("Using generic Desktop mode background image"); + return Path.Combine(_pluginInstallPath, "Images", "SplashScreenDesktopMode.png"); } else { - logger.Info("Using generic Fullscreen mode background image"); - return Path.Combine(pluginInstallPath, "Images", "SplashScreenFullscreenMode.png"); + _logger.Info("Using generic Fullscreen mode background image"); + return Path.Combine(_pluginInstallPath, "Images", "SplashScreenFullscreenMode.png"); } } @@ -480,10 +480,10 @@ public override void OnGameStopped(OnGameStoppedEventArgs args) { RestoreBackgroundMusic(); // Close splash screen manually it was not closed automatically - if (currentSplashWindow != null) + if (_currentSplashWindow != null) { - currentSplashWindow.Close(); - currentSplashWindow = null; + _currentSplashWindow.Close(); + _currentSplashWindow = null; } } diff --git a/source/Generic/SplashScreen/SplashScreenSettings.cs b/source/Generic/SplashScreen/SplashScreenSettings.cs index fad3c676d0..8922cce31f 100644 --- a/source/Generic/SplashScreen/SplashScreenSettings.cs +++ b/source/Generic/SplashScreen/SplashScreenSettings.cs @@ -5,9 +5,6 @@ using System; using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows; namespace SplashScreen @@ -48,20 +45,20 @@ public string GlobalSplashImagePath public class SplashScreenSettingsViewModel : ObservableObject, ISettings { - private readonly SplashScreen plugin; - private readonly string pluginUserDataPath; - private readonly IPlayniteAPI playniteApi; - private static readonly ILogger logger = LogManager.GetLogger(); + private readonly SplashScreen _plugin; + private readonly string _pluginUserDataPath; + private readonly IPlayniteAPI _playniteApi; + private static readonly ILogger _logger = LogManager.GetLogger(); private SplashScreenSettings editingClone { get; set; } - private SplashScreenSettings settings; + private SplashScreenSettings _settings; public SplashScreenSettings Settings { - get => settings; + get => _settings; set { - settings = value; + _settings = value; OnPropertyChanged(); } } @@ -69,10 +66,10 @@ public SplashScreenSettings Settings public SplashScreenSettingsViewModel(SplashScreen plugin, IPlayniteAPI playniteApi, string pluginUserDataPath) { // Injecting your plugin instance is required for Save/Load method because Playnite saves data to a location based on what plugin requested the operation. - this.plugin = plugin; + this._plugin = plugin; // Load saved settings. - var savedSettings = plugin.LoadPluginSettings(); + var savedSettings = _plugin.LoadPluginSettings(); // LoadPluginSettings returns null if not saved data is available. if (savedSettings != null) @@ -84,8 +81,8 @@ public SplashScreenSettingsViewModel(SplashScreen plugin, IPlayniteAPI playniteA Settings = new SplashScreenSettings(); } - this.pluginUserDataPath = pluginUserDataPath; - this.playniteApi = playniteApi; + this._pluginUserDataPath = pluginUserDataPath; + this._playniteApi = playniteApi; SetGlobalSplashImagePath(); } @@ -97,7 +94,7 @@ private void SetGlobalSplashImagePath() return; } - var globalSplashImagePath = Path.Combine(pluginUserDataPath, "CustomBackgrounds", Settings.GeneralSplashSettings.CustomBackgroundImage); + var globalSplashImagePath = Path.Combine(_pluginUserDataPath, "CustomBackgrounds", Settings.GeneralSplashSettings.CustomBackgroundImage); if (FileSystem.FileExists(globalSplashImagePath)) { Settings.GlobalSplashImagePath = globalSplashImagePath; @@ -125,7 +122,7 @@ public void EndEdit() { // Code executed when user decides to confirm changes made since BeginEdit was called. // This method should save settings made to Option1 and Option2. - plugin.SavePluginSettings(Settings); + _plugin.SavePluginSettings(Settings); } public bool VerifySettings(out List errors) @@ -141,11 +138,11 @@ public RelayCommand BrowseSelectGlobalImageCommand { get => new RelayCommand(() => { - var filePath = playniteApi.Dialogs.SelectImagefile(); + var filePath = _playniteApi.Dialogs.SelectImagefile(); if (!filePath.IsNullOrEmpty() && RemoveGlobalImage()) { var fileName = Guid.NewGuid() + Path.GetExtension(filePath); - var globalSplashImagePath = Path.Combine(pluginUserDataPath, "CustomBackgrounds", fileName); + var globalSplashImagePath = Path.Combine(_pluginUserDataPath, "CustomBackgrounds", fileName); try { FileSystem.CopyFile(filePath, globalSplashImagePath); @@ -154,7 +151,7 @@ public RelayCommand BrowseSelectGlobalImageCommand } catch (Exception e) { - logger.Error(e, $"Error copying global splash image from {filePath} to {globalSplashImagePath}"); + _logger.Error(e, $"Error copying global splash image from {filePath} to {globalSplashImagePath}"); } } }); @@ -175,7 +172,7 @@ private bool RemoveGlobalImage() return true; } - var globalSplashImagePath = Path.Combine(pluginUserDataPath, "CustomBackgrounds", Settings.GeneralSplashSettings.CustomBackgroundImage); + var globalSplashImagePath = Path.Combine(_pluginUserDataPath, "CustomBackgrounds", Settings.GeneralSplashSettings.CustomBackgroundImage); FileSystem.DeleteFileSafe(globalSplashImagePath); Settings.GeneralSplashSettings.CustomBackgroundImage = null; diff --git a/source/Generic/SplashScreen/ViewModels/GameSettingsWindowViewModel.cs b/source/Generic/SplashScreen/ViewModels/GameSettingsWindowViewModel.cs index cc7ee2e968..b19ddfc07f 100644 --- a/source/Generic/SplashScreen/ViewModels/GameSettingsWindowViewModel.cs +++ b/source/Generic/SplashScreen/ViewModels/GameSettingsWindowViewModel.cs @@ -7,32 +7,29 @@ using System; using System.Collections.Generic; using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows; namespace SplashScreen.ViewModels { public class GameSettingsWindowViewModel : ObservableObject { - private static readonly ILogger logger = LogManager.GetLogger(); - private readonly IPlayniteAPI playniteApi; - private readonly string pluginUserDataPath; - private readonly string customBackgroundsDirectory; - private readonly string gameSettingsPath; - private readonly GeneralSplashSettings globalSettings; - private bool saveCustomBackground = false; - private bool removeCustomBackground = false; + private static readonly ILogger _logger = LogManager.GetLogger(); + private readonly IPlayniteAPI _playniteApi; + private readonly string _pluginUserDataPath; + private readonly string _customBackgroundsDirectory; + private readonly string _gameSettingsPath; + private readonly GeneralSplashSettings _globalSettings; + private bool _saveCustomBackground = false; + private bool _removeCustomBackground = false; - private Game game; - public Game Game { get => game; set => SetValue(ref game, value); } + private Game _game; + public Game Game { get => _game; set => SetValue(ref _game, value); } - private string customBackgroundPath = null; - public string CustomBackgroundPath { get => customBackgroundPath; set => SetValue(ref customBackgroundPath, value); } + private string _customBackgroundPath = null; + public string CustomBackgroundPath { get => _customBackgroundPath; set => SetValue(ref _customBackgroundPath, value); } - private GameSplashSettings settings = new GameSplashSettings(); - public GameSplashSettings Settings { get => settings; set => SetValue(ref settings, value); } + private GameSplashSettings _settings = new GameSplashSettings(); + public GameSplashSettings Settings { get => _settings; set => SetValue(ref _settings, value); } public Dictionary LogoHorizontalSource { get; set; } = new Dictionary { @@ -50,19 +47,19 @@ public class GameSettingsWindowViewModel : ObservableObject public GameSettingsWindowViewModel(IPlayniteAPI playniteApi, string pluginUserDataPath, Game game, GeneralSplashSettings globalSettings) { - this.playniteApi = playniteApi; - this.pluginUserDataPath = pluginUserDataPath; - this.globalSettings = Serialization.GetClone(globalSettings); - customBackgroundsDirectory = Path.Combine(pluginUserDataPath, "CustomBackgrounds"); + this._playniteApi = playniteApi; + this._pluginUserDataPath = pluginUserDataPath; + this._globalSettings = Serialization.GetClone(globalSettings); + _customBackgroundsDirectory = Path.Combine(pluginUserDataPath, "CustomBackgrounds"); Game = game; - gameSettingsPath = Path.Combine(pluginUserDataPath, $"{game.Id}.json"); - if (FileSystem.FileExists(gameSettingsPath)) + _gameSettingsPath = Path.Combine(pluginUserDataPath, $"{game.Id}.json"); + if (FileSystem.FileExists(_gameSettingsPath)) { - Settings = Serialization.FromJsonFile(gameSettingsPath); + Settings = Serialization.FromJsonFile(_gameSettingsPath); if (!Settings.GeneralSplashSettings.CustomBackgroundImage.IsNullOrEmpty()) { - CustomBackgroundPath = Path.Combine(customBackgroundsDirectory, Settings.GeneralSplashSettings.CustomBackgroundImage); + CustomBackgroundPath = Path.Combine(_customBackgroundsDirectory, Settings.GeneralSplashSettings.CustomBackgroundImage); } } @@ -76,7 +73,7 @@ private void DeleteCurrentGameBackground() return; } - var backgroundPath = Path.Combine(customBackgroundsDirectory, Settings.GeneralSplashSettings.CustomBackgroundImage); + var backgroundPath = Path.Combine(_customBackgroundsDirectory, Settings.GeneralSplashSettings.CustomBackgroundImage); if (FileSystem.FileExists(backgroundPath)) { FileSystem.DeleteFileSafe(backgroundPath); @@ -87,17 +84,17 @@ private void DeleteCurrentGameBackground() private void SaveGameSettings() { - SplashSettingsSyncHelper.ApplyGlobalIndicatorSettings(Settings.GeneralSplashSettings, globalSettings); + SplashSettingsSyncHelper.ApplyGlobalIndicatorSettings(Settings.GeneralSplashSettings, _globalSettings); - if (removeCustomBackground) + if (_removeCustomBackground) { DeleteCurrentGameBackground(); } - else if (saveCustomBackground && !CustomBackgroundPath.IsNullOrEmpty() && FileSystem.FileExists(CustomBackgroundPath)) + else if (_saveCustomBackground && !CustomBackgroundPath.IsNullOrEmpty() && FileSystem.FileExists(CustomBackgroundPath)) { DeleteCurrentGameBackground(); var fileName = Guid.NewGuid() + Path.GetExtension(CustomBackgroundPath); - var customBackgroundImagePathTarget = Path.Combine(customBackgroundsDirectory, fileName); + var customBackgroundImagePathTarget = Path.Combine(_customBackgroundsDirectory, fileName); try { FileSystem.CopyFile(CustomBackgroundPath, customBackgroundImagePathTarget); @@ -105,20 +102,20 @@ private void SaveGameSettings() } catch (Exception e) { - logger.Error(e, $"Error copying game custom background image from {CustomBackgroundPath} to {customBackgroundImagePathTarget}"); + _logger.Error(e, $"Error copying game custom background image from {CustomBackgroundPath} to {customBackgroundImagePathTarget}"); } } - FileSystem.WriteStringToFile(gameSettingsPath, Serialization.ToJson(Settings)); - playniteApi.Dialogs.ShowMessage(ResourceProvider.GetString("LOCSplashScreen_GameSettingsWindowSettingsSavedLabel"), "Splash Screen"); + FileSystem.WriteStringToFile(_gameSettingsPath, Serialization.ToJson(Settings)); + _playniteApi.Dialogs.ShowMessage(ResourceProvider.GetString("LOCSplashScreen_GameSettingsWindowSettingsSavedLabel"), "Splash Screen"); } public RelayCommand RemoveCustomBackgroundCommand { get => new RelayCommand(() => { - removeCustomBackground = true; - saveCustomBackground = false; + _removeCustomBackground = true; + _saveCustomBackground = false; CustomBackgroundPath = null; }, () => CustomBackgroundPath != null); } @@ -135,14 +132,14 @@ public RelayCommand BrowseSelectCustomBackgroundCommand { get => new RelayCommand(() => { - var filePath = playniteApi.Dialogs.SelectImagefile(); + var filePath = _playniteApi.Dialogs.SelectImagefile(); if (filePath.IsNullOrEmpty() || !FileSystem.FileExists(filePath)) { return; } - removeCustomBackground = false; - saveCustomBackground = true; + _removeCustomBackground = false; + _saveCustomBackground = true; CustomBackgroundPath = filePath; }); } diff --git a/source/Generic/SplashScreen/ViewModels/SplashScreenImageViewModel.cs b/source/Generic/SplashScreen/ViewModels/SplashScreenImageViewModel.cs index 7d4f1531ea..f9dbd0a0b9 100644 --- a/source/Generic/SplashScreen/ViewModels/SplashScreenImageViewModel.cs +++ b/source/Generic/SplashScreen/ViewModels/SplashScreenImageViewModel.cs @@ -1,46 +1,48 @@ using PluginsCommon; using SplashScreen.Models; -using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; -using System.Windows.Media.Imaging; +using System.ComponentModel; +using System.Runtime.CompilerServices; namespace SplashScreen.ViewModels { - public class SplashScreenImageViewModel : ObservableObject + public class SplashScreenImageViewModel : INotifyPropertyChanged { - private string splashImagePath = null; + public event PropertyChangedEventHandler PropertyChanged; + + private void OnPropertyChanged([CallerMemberName] string propertyName = null) + { + PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); + } + + private string _splashImagePath = null; public string SplashImagePath { - get => splashImagePath; + get => _splashImagePath; set { - splashImagePath = value; + _splashImagePath = value; OnPropertyChanged(); } } - private string logoPath = null; + private string _logoPath = null; public string LogoPath { - get => logoPath; + get => _logoPath; set { - logoPath = value; + _logoPath = value; OnPropertyChanged(); } } - private GeneralSplashSettings settings; + private GeneralSplashSettings _settings; public GeneralSplashSettings Settings { - get => settings; + get => _settings; set { - settings = value; + _settings = value; OnPropertyChanged(); } } @@ -48,12 +50,12 @@ public GeneralSplashSettings Settings public SplashScreenImageViewModel(GeneralSplashSettings settings, string splashImagePath, string logoPath) { Settings = settings; - if (!splashImagePath.IsNullOrEmpty() && FileSystem.FileExists(splashImagePath)) + if (!string.IsNullOrEmpty(splashImagePath) && FileSystem.FileExists(splashImagePath)) { SplashImagePath = splashImagePath; } - if (!logoPath.IsNullOrEmpty() && FileSystem.FileExists(logoPath)) + if (!string.IsNullOrEmpty(logoPath) && FileSystem.FileExists(logoPath)) { LogoPath = logoPath; } diff --git a/source/Generic/SplashScreen/ViewModels/VideoManagerViewModel.cs b/source/Generic/SplashScreen/ViewModels/VideoManagerViewModel.cs index 125bdc7c96..8cf68c2fde 100644 --- a/source/Generic/SplashScreen/ViewModels/VideoManagerViewModel.cs +++ b/source/Generic/SplashScreen/ViewModels/VideoManagerViewModel.cs @@ -6,10 +6,7 @@ using System.Collections.Generic; using System.ComponentModel; using System.IO; -using System.Linq; using System.Runtime.CompilerServices; -using System.Text; -using System.Threading.Tasks; using System.Windows.Data; namespace SplashScreen.ViewModels @@ -25,14 +22,14 @@ protected void OnPropertyChanged([CallerMemberName] string name = null) PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name)); } - private IPlayniteAPI PlayniteApi; - private ICollectionView videoItemsCollection; + private IPlayniteAPI _playniteApi; + private ICollectionView _videoItemsCollection; public ICollectionView VideoItemsCollection { - get => videoItemsCollection; + get => _videoItemsCollection; set { - videoItemsCollection = value; + _videoItemsCollection = value; OnPropertyChanged(); } } @@ -46,13 +43,13 @@ public Dictionary CollectionsSourceDict } } - private string searchString = string.Empty; + private string _searchString = string.Empty; public string SearchString { - get { return searchString; } + get { return _searchString; } set { - searchString = value; + _searchString = value; OnPropertyChanged(); VideoItemsCollection.Refresh(); } @@ -70,25 +67,25 @@ public Uri VideoSource } } - private SourceCollection selectedSourceItem; + private SourceCollection _selectedSourceItem; public SourceCollection SelectedSourceItem { - get { return selectedSourceItem; } + get { return _selectedSourceItem; } set { - selectedSourceItem = value; + _selectedSourceItem = value; VideoItemsCollection.Refresh(); } } - private VideoManagerItem selectedItem; + private VideoManagerItem _selectedItem; public VideoManagerItem SelectedItem { - get { return selectedItem; } + get { return _selectedItem; } set { - selectedItem = value; - if (selectedItem != null) + _selectedItem = value; + if (_selectedItem != null) { VideoSource = new Uri(SelectedItem.VideoPath); } @@ -96,27 +93,27 @@ public VideoManagerItem SelectedItem } } - private bool AddButtonIsEnabled = false; - private bool RemoveButtonIsEnabled = false; + private bool _addButtonIsEnabled = false; + private bool _removeButtonIsEnabled = false; private void SetButtonsStatuses() { if (SelectedItem == null) { - AddButtonIsEnabled = false; - RemoveButtonIsEnabled = false; + _addButtonIsEnabled = false; + _removeButtonIsEnabled = false; return; } if (FileSystem.FileExists(SelectedItem.VideoPath)) { - RemoveButtonIsEnabled = true; + _removeButtonIsEnabled = true; } else { - RemoveButtonIsEnabled = false; + _removeButtonIsEnabled = false; } - AddButtonIsEnabled = true; + _addButtonIsEnabled = true; } public RelayCommand AddVideoCommand @@ -124,14 +121,14 @@ public RelayCommand AddVideoCommand get => new RelayCommand((item) => { AddVideo(item); - }, (item) => AddButtonIsEnabled); + }, (item) => _addButtonIsEnabled); } private bool AddVideo(VideoManagerItem videoManagerItem) { VideoSource = null; var videoDestinationPath = videoManagerItem.VideoPath; - var videoSourcePath = PlayniteApi.Dialogs.SelectFile("mp4|*.mp4"); + var videoSourcePath = _playniteApi.Dialogs.SelectFile("mp4|*.mp4"); if (string.IsNullOrEmpty(videoSourcePath)) { return false; @@ -151,7 +148,7 @@ private bool AddVideo(VideoManagerItem videoManagerItem) FileSystem.CopyFile(videoSourcePath, videoDestinationPath, true); VideoSource = new Uri(videoDestinationPath); - PlayniteApi.Dialogs.ShowMessage(ResourceProvider.GetString("LOCSplashScreen_IntroVideoAddedMessage"), "Splash Screen"); + _playniteApi.Dialogs.ShowMessage(ResourceProvider.GetString("LOCSplashScreen_IntroVideoAddedMessage"), "Splash Screen"); return true; } @@ -160,25 +157,25 @@ public RelayCommand RemoveVideoCommand get => new RelayCommand((item) => { RemoveVideo(item); - }, (item) => RemoveButtonIsEnabled); + }, (item) => _removeButtonIsEnabled); } private void RemoveVideo(VideoManagerItem videoManagerItem) { VideoSource = null; FileSystem.DeleteFileSafe(videoManagerItem.VideoPath); - PlayniteApi.Dialogs.ShowMessage(ResourceProvider.GetString("LOCSplashScreen_IntroVideoRemovedMessage"), "Splash Screen"); + _playniteApi.Dialogs.ShowMessage(ResourceProvider.GetString("LOCSplashScreen_IntroVideoRemovedMessage"), "Splash Screen"); } public VideoManagerViewModel(IPlayniteAPI api) { - PlayniteApi = api; + _playniteApi = api; - string videoPathTemplate = Path.Combine(PlayniteApi.Paths.ConfigurationPath, "ExtraMetadata", "{0}", "{1}", "VideoIntro.mp4"); - List videoItemsCollection = new List(); + var videoPathTemplate = Path.Combine(_playniteApi.Paths.ConfigurationPath, "ExtraMetadata", "{0}", "{1}", "VideoIntro.mp4"); + var videoItemsCollection = new List(); // Games - foreach (Game game in PlayniteApi.MainView.SelectedGames) + foreach (var game in _playniteApi.MainView.SelectedGames) { var item = new VideoManagerItem { @@ -190,7 +187,7 @@ public VideoManagerViewModel(IPlayniteAPI api) } // Sources - foreach (GameSource source in PlayniteApi.Database.Sources) + foreach (var source in _playniteApi.Database.Sources) { var item = new VideoManagerItem { @@ -202,7 +199,7 @@ public VideoManagerViewModel(IPlayniteAPI api) } // Sources - foreach (Platform platform in PlayniteApi.Database.Platforms) + foreach (var platform in _playniteApi.Database.Platforms) { var item = new VideoManagerItem { @@ -243,7 +240,7 @@ public VideoManagerViewModel(IPlayniteAPI api) private bool CollectionFilter(object item) { - VideoManagerItem videoManagerItem = item as VideoManagerItem; + var videoManagerItem = item as VideoManagerItem; if (videoManagerItem.SourceCollection != SelectedSourceItem) { return false; diff --git a/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs b/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs index b77e5d3b46..ec80a8f7d0 100644 --- a/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs +++ b/source/Generic/SplashScreen/Views/SpinnerPreviewControl.xaml.cs @@ -3,7 +3,6 @@ using System.Windows.Controls; using System.Windows.Media; using System.Windows.Media.Animation; -using System.Windows.Shapes; using SplashScreen.Helpers; namespace SplashScreen.Views diff --git a/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs b/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs index 5cc167cc38..25991e12aa 100644 --- a/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs +++ b/source/Generic/SplashScreen/Views/SplashScreenImage.xaml.cs @@ -1,20 +1,8 @@ using System; -using System.Collections.Generic; -using System.IO; -using System.Linq; -using System.Text; -using System.Threading.Tasks; using System.Windows; using System.Windows.Controls; -using System.Windows.Data; -using System.Windows.Documents; -using System.Windows.Input; using System.Windows.Media; -using System.Windows.Media.Imaging; using System.Windows.Media.Animation; -using System.Windows.Navigation; -using System.Windows.Shapes; -using System.Windows.Threading; using SplashScreen.Helpers; using SplashScreen.ViewModels;