diff --git a/assets/locales.json b/assets/locales.json index 4db0eeb00..df3090186 100644 --- a/assets/locales.json +++ b/assets/locales.json @@ -375,7 +375,7 @@ "el_GR": "", "en_US": "Load DLC...", "es_ES": "Cargar DLC...", - "fr_FR": "Charger les DLC...", + "fr_FR": "Charger des DLC...", "he_IL": "", "it_IT": "Carica DLC...", "ja_JP": "", @@ -400,7 +400,7 @@ "el_GR": "", "en_US": "Load Title Updates...", "es_ES": "Cargar Actualizaciones de Títulos...", - "fr_FR": "Charger les Mises à Jour du Titre...", + "fr_FR": "Charger des Mises à Jour de Titres...", "he_IL": "", "it_IT": "Carica aggiornamenti...", "ja_JP": "", @@ -575,7 +575,7 @@ "el_GR": "Εκκίνηση Παιχνιδιών σε Πλήρη Οθόνη", "en_US": "Start Games in Fullscreen Mode", "es_ES": "Iniciar Juegos en Pantalla Completa", - "fr_FR": "Démarrer les Jeux en Mode Plein Écran", + "fr_FR": "Démarrer les Jeux en Plein Écran", "he_IL": "התחל משחקים במסך מלא", "it_IT": "Avvia i giochi a schermo intero", "ja_JP": "全画面モードでゲームを開始", @@ -3250,7 +3250,7 @@ "el_GR": "Διεπαφή", "en_US": "Interface", "es_ES": "Interfaz", - "fr_FR": "", + "fr_FR": null, "he_IL": "ממשק", "it_IT": "Interfaccia", "ja_JP": "インターフェース", @@ -6250,7 +6250,7 @@ "el_GR": "Ενεργοποίηση Αρχείων Καταγραφής Εντοπισμού Σφαλμάτων", "en_US": "Enable Debug Logs", "es_ES": "Habilitar Registros de Debug", - "fr_FR": "Activer les Journaux de Débogage", + "fr_FR": "Activer les Journaux de Debug", "he_IL": "אפשר רישום ניפוי באגים", "it_IT": "Attiva log di debug", "ja_JP": "デバッグログを有効にする", @@ -14324,8 +14324,8 @@ "de_DE": "", "el_GR": "", "en_US": "{0} DRAM Enabled", - "es_ES": "", - "fr_FR": "", + "es_ES": "{0} DRAM Habilitada", + "fr_FR": "{0} DRAM Activée", "he_IL": "", "it_IT": "", "ja_JP": "", @@ -14349,8 +14349,8 @@ "de_DE": "", "el_GR": "", "en_US": "Using above 4GiB DRAM may cause crashes in some applications.", - "es_ES": "", - "fr_FR": "", + "es_ES": "Usar más de 4 GiB de DRAM puede causar fallos en algunas aplicaciones.", + "fr_FR": "L’utilisation de plus de 4 Gio de DRAM peut provoquer des plantages dans certaines applications.", "he_IL": "", "it_IT": "", "ja_JP": "", @@ -14374,8 +14374,8 @@ "de_DE": "", "el_GR": "", "en_US": "Debug: GDB Stub Enabled (Port: {0})", - "es_ES": "", - "fr_FR": "", + "es_ES": "Debug: GDB Stub Habilitado (Puerto: {0})", + "fr_FR": "Debug : GDB Stub Activé (Port : {0})", "he_IL": "", "it_IT": "", "ja_JP": "", @@ -14399,8 +14399,8 @@ "de_DE": "", "el_GR": "", "en_US": "This will affect performance.", - "es_ES": "", - "fr_FR": "", + "es_ES": "Esto afectará el rendimiento.", + "fr_FR": "Cela affectera les performances.", "he_IL": "", "it_IT": "", "ja_JP": "", @@ -14424,8 +14424,8 @@ "de_DE": "", "el_GR": "", "en_US": "Debug: Suspend on Start Enabled", - "es_ES": "", - "fr_FR": "", + "es_ES": "Debug: Suspender al Inicio Habilitado", + "fr_FR": "Debug : Suspension au Démarrage Activée", "he_IL": "", "it_IT": "", "ja_JP": "", @@ -14449,8 +14449,8 @@ "de_DE": "", "el_GR": "", "en_US": "Application has been suspended. Attach a debugger to continue.", - "es_ES": "", - "fr_FR": "", + "es_ES": "La aplicación ha sido suspendida. Adjunte un depurador para continuar.", + "fr_FR": "L’application a été suspendue. Attachez un débogueur pour continuer.", "he_IL": "", "it_IT": "", "ja_JP": "", @@ -16775,7 +16775,7 @@ "el_GR": "Ενεργοποιεί την εκτύπωση μηνυμάτων αρχείου καταγραφής εντοπισμού σφαλμάτων", "en_US": "Prints debug log messages in the console.\n\nOnly use this if specifically instructed by a staff member, as it will make logs difficult to read and worsen emulator performance.", "es_ES": "Escribe mensajes de debug en la consola\n\nActiva esto solo si un miembro del equipo te lo pide expresamente, pues hará que el registro sea difícil de leer y empeorará el rendimiento del emulador.", - "fr_FR": "Affiche dans la console les journaux de débogage.\n\nN’utilisez cette option que si un membre du personnel vous l’a expressément demandé, car cela rendra les journaux difficiles à lire et dégradera la performance de l’émulateur.", + "fr_FR": "Affiche dans la console les journaux de debug.\n\nN’utilisez cette option que si un membre du personnel vous l’a expressément demandé, car cela rendra les journaux difficiles à lire et dégradera la performance de l’émulateur.", "he_IL": "מדפיס הודעות יומן ניפוי באגים בשורת הפקודות.", "it_IT": "Stampa i messaggi di log per il debug nella console.\n\nUsa questa opzione solo se specificatamente richiesto da un membro del team, dal momento che rende i log difficili da leggere e riduce le prestazioni dell'emulatore.", "ja_JP": "デバッグログメッセージをコンソールに出力します.\n\nログが読みづらくなり,エミュレータのパフォーマンスが低下するため,開発者から特別な指示がある場合のみ使用してください.", @@ -18775,7 +18775,7 @@ "el_GR": "", "en_US": "Choose a Switch compatible FILE to load", "es_ES": "Elige un ARCHIVO compatible con Switch para cargar", - "fr_FR": "Choisissez un FICHIER compatible avec Switch à charger", + "fr_FR": "Choisissez un FICHIER compatible Switch à charger", "he_IL": "", "it_IT": "Scegli un FILE compatibile con Switch da caricare", "ja_JP": "", @@ -18825,7 +18825,7 @@ "el_GR": "", "en_US": "Choose one or more FOLDERS to bulk load title updates from", "es_ES": "Elige una o más CARPETAS para cargar actualizaciones de título de forma masiva", - "fr_FR": "Choisissez un ou plusieurs DOSSIERS pour charger en masse des mises à jour du titre", + "fr_FR": "Choisissez un ou plusieurs DOSSIERS pour charger en masse des mises à jour de titres", "he_IL": "", "it_IT": "Scegli una o più CARTELLE da cui caricare in blocco gli aggiornamenti del titolo", "ja_JP": "", diff --git a/src/Ryujinx/Systems/Configuration/ConfigurationState.Migration.cs b/src/Ryujinx/Systems/Configuration/ConfigurationState.Migration.cs index f296629e4..a324ec5e6 100644 --- a/src/Ryujinx/Systems/Configuration/ConfigurationState.Migration.cs +++ b/src/Ryujinx/Systems/Configuration/ConfigurationState.Migration.cs @@ -11,6 +11,7 @@ using Ryujinx.Common.Logging; using Ryujinx.HLE; using System; using System.Collections.Generic; +using System.IO; using System.Linq; using RyuLogger = Ryujinx.Common.Logging.Logger; @@ -28,6 +29,7 @@ namespace Ryujinx.Ava.Systems.Configuration RyuLogger.Warning?.Print(LogClass.Application, $"Unsupported configuration version {cff.Version}, loading default."); LoadDefault(); + return; } foreach ((int newVersion, Action migratorFunction) @@ -167,14 +169,53 @@ namespace Ryujinx.Ava.Systems.Configuration DirtyHacks hacks = new(cff.DirtyHacks ?? []); Hacks.Xc2MenuSoftlockFix.Value = hacks.IsEnabled(DirtyHack.Xc2MenuSoftlockFix); - } - if (configurationFileUpdated) + List existingDirs = []; + bool didPathUpdate = false; + + { // Game dirs + foreach (var gameDir in UI.GameDirs.Value) + { + if (Directory.Exists(gameDir)) + { + existingDirs.Add(gameDir); + } + else + { + RyuLogger.Warning?.Print(LogClass.Configuration, $"Path '{gameDir}' seems to no longer exist. Removing it from game directory configuration."); + didPathUpdate = true; + } + } + + UI.GameDirs.Value = existingDirs.ToList(); + } + + existingDirs.Clear(); + + { // Autoload dirs + foreach (var autoloadDir in UI.AutoloadDirs.Value) + { + if (Directory.Exists(autoloadDir)) + { + existingDirs.Add(autoloadDir); + } + else + { + RyuLogger.Warning?.Print(LogClass.Configuration, $"Path '{autoloadDir}' seems to no longer exist. Removing it from auto load directory configuration."); + didPathUpdate = true; + } + } + + UI.AutoloadDirs.Value = existingDirs.ToList(); + } + + if (configurationFileUpdated || didPathUpdate) { ToFileFormat().SaveConfig(configurationFilePath); - RyuLogger.Notice.Print(LogClass.Application, $"Configuration file updated to version {ConfigurationFileFormat.CurrentVersion}"); + if (configurationFileUpdated) + RyuLogger.Notice.Print(LogClass.Application, $"Configuration file updated to version {ConfigurationFileFormat.CurrentVersion}"); } } diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs index f0dddc027..c590e0cb0 100644 --- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs @@ -481,7 +481,6 @@ namespace Ryujinx.Ava.UI.ViewModels if (Program.PreviewerDetached) { Task.Run(LoadTimeZones); - } }