diff --git a/assets/Locales/MenuBar_Options.json b/assets/Locales/MenuBar_Options.json new file mode 100644 index 000000000..b77ae862e --- /dev/null +++ b/assets/Locales/MenuBar_Options.json @@ -0,0 +1,104 @@ +{ + "Locales": [ + { + "ID": "OptionsLabel", + "Translations": { + "ar_SA": "_خيارات", + "de_DE": "_Optionen", + "el_GR": "_Επιλογές", + "en_US": "_Options", + "es_ES": "_Opciones", + "fr_FR": null, + "he_IL": "_אפשרויות", + "it_IT": "_Opzioni", + "ja_JP": "オプション(_O)", + "ko_KR": "옵션(_O)", + "no_NO": "_Alternativer", + "pl_PL": "_Opcje", + "pt_BR": "_Opções", + "ru_RU": "_Настройки", + "sv_SE": "_Inställningar", + "th_TH": "_ตัวเลือก", + "tr_TR": "_Seçenekler", + "uk_UA": "_Параметри", + "zh_CN": "选项(_O)", + "zh_TW": "選項(_O)" + } + }, + { + "ID": "LanguageButton", + "Translations": { + "ar_SA": "اللغة", + "de_DE": "Sprache", + "el_GR": "Γλώσσα", + "en_US": "Language", + "es_ES": "Idioma", + "fr_FR": "Langue", + "he_IL": "שפה", + "it_IT": "Lingua", + "ja_JP": "言語", + "ko_KR": "언어", + "no_NO": "Språk", + "pl_PL": "Język", + "pt_BR": "Idioma", + "ru_RU": "Язык", + "sv_SE": "Språk", + "th_TH": "ภาษา", + "tr_TR": "Dil", + "uk_UA": "Мова", + "zh_CN": "语言", + "zh_TW": "語言" + } + }, + { + "ID": "UserProfilesButton", + "Translations": { + "ar_SA": "_ملفات المستخدمين", + "de_DE": "_Benutzerprofile", + "el_GR": "_Προφίλ Χρηστών", + "en_US": "_User Profiles", + "es_ES": "_Perfiles de Usuario", + "fr_FR": "_Profils d'Utilisateurs", + "he_IL": "_פרופילי משתמש", + "it_IT": "_Profili utente", + "ja_JP": "ユーザプロファイル(_M)", + "ko_KR": "사용자 프로필(_M)", + "no_NO": "_Brukerprofiler", + "pl_PL": "_Profile użytkowników", + "pt_BR": "_Perfis de usuário", + "ru_RU": "_Профили пользователей", + "sv_SE": "_Användarprofiler", + "th_TH": "_โปรไฟล์ผู้ใช้งาน", + "tr_TR": "_Kullanıcı Profilleri", + "uk_UA": "_Профілі користувачів", + "zh_CN": "用户配置文件(_M)", + "zh_TW": "使用者設定檔(_M)" + } + }, + { + "ID": "SettingsButton", + "Translations": { + "ar_SA": "_الإعدادات", + "de_DE": "_Einstellungen", + "el_GR": "_Ρυθμίσεις", + "en_US": "_Settings", + "es_ES": "_Configuración", + "fr_FR": "_Paramètres", + "he_IL": "_הגדרות", + "it_IT": "_Impostazioni", + "ja_JP": "設定(_S)", + "ko_KR": "설정(_S)", + "no_NO": "_Innstillinger", + "pl_PL": "_Ustawienia", + "pt_BR": "_Configurações", + "ru_RU": "_Параметры", + "sv_SE": "_Inställningar", + "th_TH": "_ตั้งค่า", + "tr_TR": "_Seçenekler", + "uk_UA": "_Налаштування", + "zh_CN": "设置(_S)", + "zh_TW": "設定(_S)" + } + } + ] +} diff --git a/assets/Locales/MenuBar_View.json b/assets/Locales/MenuBar_View.json new file mode 100644 index 000000000..0dec11b5c --- /dev/null +++ b/assets/Locales/MenuBar_View.json @@ -0,0 +1,54 @@ +{ + "Locales": [ + { + "ID": "ToggleFullscreenButton", + "Translations": { + "ar_SA": "التبديل إلى وضع ملء الشاشة", + "de_DE": "Vollbild", + "el_GR": "Λειτουργία Πλήρους Οθόνης", + "en_US": "Toggle Fullscreen", + "es_ES": "Cambiar a Pantalla Completa.", + "fr_FR": "Basculer en Plein Écran", + "he_IL": "שנה מצב- מסך מלא", + "it_IT": "Schermo intero", + "ja_JP": "全画面切り替え", + "ko_KR": "전체 화면 전환", + "no_NO": "Fullskjermsvisning av/på", + "pl_PL": "Przełącz na tryb pełnoekranowy", + "pt_BR": "Mudar para Tela Cheia", + "ru_RU": "Переключить полноэкранный режим", + "sv_SE": "Växla helskärm", + "th_TH": "สลับเป็นโหมดเต็มหน้าจอ", + "tr_TR": "Tam Ekran Modunu Aç", + "uk_UA": "На весь екран", + "zh_CN": "切换全屏", + "zh_TW": "切換全螢幕模式" + } + }, + { + "ID": "ShowConsoleButton", + "Translations": { + "ar_SA": "عرض وحدة التحكم", + "de_DE": "Zeige Konsole", + "el_GR": "Εμφάνιση Κονσόλας", + "en_US": "Show Console", + "es_ES": "Mostrar Consola", + "fr_FR": "Afficher la Console", + "he_IL": "הצג שורת פקודות", + "it_IT": "Mostra console", + "ja_JP": "コンソールを表示", + "ko_KR": "콘솔 표시", + "no_NO": "Vis konsoll", + "pl_PL": "Pokaż Konsolę", + "pt_BR": "Exibir Console", + "ru_RU": "Показать консоль", + "sv_SE": "Visa konsoll", + "th_TH": "แสดง คอนโซล", + "tr_TR": "Konsol'u Göster", + "uk_UA": "Показати консоль", + "zh_CN": "显示控制台", + "zh_TW": "顯示控制台" + } + } + ] +} diff --git a/assets/Locales/Root.json b/assets/Locales/Root.json index 8230086f4..a98d8035d 100644 --- a/assets/Locales/Root.json +++ b/assets/Locales/Root.json @@ -425,156 +425,6 @@ "zh_TW": "結束(_E)" } }, - { - "ID": "MenuBarOptions", - "Translations": { - "ar_SA": "_خيارات", - "de_DE": "_Optionen", - "el_GR": "_Επιλογές", - "en_US": "_Options", - "es_ES": "_Opciones", - "fr_FR": null, - "he_IL": "_אפשרויות", - "it_IT": "_Opzioni", - "ja_JP": "オプション(_O)", - "ko_KR": "옵션(_O)", - "no_NO": "_Alternativer", - "pl_PL": "_Opcje", - "pt_BR": "_Opções", - "ru_RU": "_Настройки", - "sv_SE": "_Inställningar", - "th_TH": "_ตัวเลือก", - "tr_TR": "_Seçenekler", - "uk_UA": "_Параметри", - "zh_CN": "选项(_O)", - "zh_TW": "選項(_O)" - } - }, - { - "ID": "MenuBarOptionsToggleFullscreen", - "Translations": { - "ar_SA": "التبديل إلى وضع ملء الشاشة", - "de_DE": "Vollbild", - "el_GR": "Λειτουργία Πλήρους Οθόνης", - "en_US": "Toggle Fullscreen", - "es_ES": "Cambiar a Pantalla Completa.", - "fr_FR": "Basculer en Plein Écran", - "he_IL": "שנה מצב- מסך מלא", - "it_IT": "Schermo intero", - "ja_JP": "全画面切り替え", - "ko_KR": "전체 화면 전환", - "no_NO": "Fullskjermsvisning av/på", - "pl_PL": "Przełącz na tryb pełnoekranowy", - "pt_BR": "Mudar para Tela Cheia", - "ru_RU": "Переключить полноэкранный режим", - "sv_SE": "Växla helskärm", - "th_TH": "สลับเป็นโหมดเต็มหน้าจอ", - "tr_TR": "Tam Ekran Modunu Aç", - "uk_UA": "На весь екран", - "zh_CN": "切换全屏", - "zh_TW": "切換全螢幕模式" - } - }, - { - "ID": "MenuBarOptionsStartGamesInFullscreen", - "Translations": { - "ar_SA": "ابدأ الألعاب في وضع ملء الشاشة", - "de_DE": "Spiele im Vollbildmodus starten", - "el_GR": "Εκκίνηση Παιχνιδιών σε Πλήρη Οθόνη", - "en_US": "Start Games in Fullscreen Mode", - "es_ES": "Iniciar Juegos en Pantalla Completa", - "fr_FR": "Démarrer les Jeux en Plein Écran", - "he_IL": "התחל משחקים במסך מלא", - "it_IT": "Avvia i giochi a schermo intero", - "ja_JP": "全画面モードでゲームを開始", - "ko_KR": "전체 화면 모드로 게임 시작", - "no_NO": "Start spill i Fullskjermmodus", - "pl_PL": "Uruchamiaj gry w trybie pełnoekranowym", - "pt_BR": "Iniciar Jogos em Tela Cheia", - "ru_RU": "Запускать игры в полноэкранном режиме", - "sv_SE": "Starta spel i helskärmsläge", - "th_TH": "เริ่มเกมในโหมดเต็มหน้าจอ", - "tr_TR": "Oyunları Tam Ekran Modunda Başlat", - "uk_UA": "Запускати ігри на весь екран", - "zh_CN": "全屏模式启动游戏", - "zh_TW": "使用全螢幕模式啟動遊戲" - } - }, - { - "ID": "MenuBarOptionsStartGamesWithoutUI", - "Translations": { - "ar_SA": "", - "de_DE": "Spiele ohne Benutzeroberfläche starten", - "el_GR": "", - "en_US": "Start Games with UI Hidden", - "es_ES": "Iniziar Juegos con la Interfaz Oculta", - "fr_FR": "Démarrer les Jeux avec l’Interface Cachée", - "he_IL": "", - "it_IT": "Avvia i giochi con l'interfaccia nascosta", - "ja_JP": "", - "ko_KR": "UI를 숨긴 상태에서 게임 시작", - "no_NO": "Start Spillet med UI Gjemt", - "pl_PL": "", - "pt_BR": "Iniciar Jogos Ocultando a Interface", - "ru_RU": "Запускать игры скрывая интерфейс", - "sv_SE": "Starta spel med dolt användargränssnitt", - "th_TH": "เริ่มเกมโดยซ่อน UI", - "tr_TR": "", - "uk_UA": "Запускати ігри з прихованим інтерфейсом", - "zh_CN": "启动游戏时隐藏 UI", - "zh_TW": "開啟遊戲時隱藏 UI" - } - }, - { - "ID": "MenuBarOptionsSettings", - "Translations": { - "ar_SA": "_الإعدادات", - "de_DE": "_Einstellungen", - "el_GR": "_Ρυθμίσεις", - "en_US": "_Settings", - "es_ES": "_Configuración", - "fr_FR": "_Paramètres", - "he_IL": "_הגדרות", - "it_IT": "_Impostazioni", - "ja_JP": "設定(_S)", - "ko_KR": "설정(_S)", - "no_NO": "_Innstillinger", - "pl_PL": "_Ustawienia", - "pt_BR": "_Configurações", - "ru_RU": "_Параметры", - "sv_SE": "_Inställningar", - "th_TH": "_ตั้งค่า", - "tr_TR": "_Seçenekler", - "uk_UA": "_Налаштування", - "zh_CN": "设置(_S)", - "zh_TW": "設定(_S)" - } - }, - { - "ID": "MenuBarOptionsManageUserProfiles", - "Translations": { - "ar_SA": "_ملفات المستخدمين", - "de_DE": "_Benutzerprofile", - "el_GR": "_Προφίλ Χρηστών", - "en_US": "_User Profiles", - "es_ES": "_Perfiles de Usuario", - "fr_FR": "_Profils d'Utilisateurs", - "he_IL": "_פרופילי משתמש", - "it_IT": "_Profili utent", - "ja_JP": "ユーザプロファイル(_M)", - "ko_KR": "사용자 프로필(_M)", - "no_NO": "_Brukerprofiler", - "pl_PL": "_Profile użytkowników", - "pt_BR": "_Perfis de usuário", - "ru_RU": "_Учётные записи", - "sv_SE": "_Användarprofiler", - "th_TH": "_โปรไฟล์ผู้ใช้งาน", - "tr_TR": "_Kullanıcı Profilleri", - "uk_UA": "_Профілі користувачів", - "zh_CN": "用户配置文件(_M)", - "zh_TW": "使用者設定檔(_M)" - } - }, { "ID": "MenuBarOptionsSimulateWakeUpMessage", "Translations": { @@ -13050,31 +12900,6 @@ "zh_TW": "全部刪除" } }, - { - "ID": "MenuBarOptionsChangeLanguage", - "Translations": { - "ar_SA": "تغيير اللغة", - "de_DE": "Sprache ändern", - "el_GR": "Αλλαξε γλώσσα", - "en_US": "Change Language", - "es_ES": "Cambiar Idioma", - "fr_FR": "Changer la Langue", - "he_IL": "החלף שפה", - "it_IT": "Cambia lingua", - "ja_JP": "言語を変更", - "ko_KR": "언어 변경", - "no_NO": "Endre språk", - "pl_PL": "Zmień język", - "pt_BR": "Mudar Idioma", - "ru_RU": "Сменить язык", - "sv_SE": "Byt språk", - "th_TH": "เปลี่ยนภาษา", - "tr_TR": "Dili Değiştir", - "uk_UA": "Змінити мову", - "zh_CN": "更改界面语言", - "zh_TW": "變更語言" - } - }, { "ID": "MenuBarShowFileTypes", "Translations": { @@ -14975,31 +14800,6 @@ "zh_TW": "順時針旋轉 90°" } }, - { - "ID": "MenuBarOptionsShowConsole", - "Translations": { - "ar_SA": "عرض وحدة التحكم", - "de_DE": "Zeige Konsole", - "el_GR": "Εμφάνιση Κονσόλας", - "en_US": "Show Console", - "es_ES": "Mostrar Consola", - "fr_FR": "Afficher la Console", - "he_IL": "הצג שורת פקודות", - "it_IT": "Mostra console", - "ja_JP": "コンソールを表示", - "ko_KR": "콘솔 표시", - "no_NO": "Vis konsoll", - "pl_PL": "Pokaż Konsolę", - "pt_BR": "Exibir Console", - "ru_RU": "Показать консоль", - "sv_SE": "Visa konsoll", - "th_TH": "แสดง คอนโซล", - "tr_TR": "Konsol'u Göster", - "uk_UA": "Показати консоль", - "zh_CN": "显示控制台", - "zh_TW": "顯示控制台" - } - }, { "ID": "ShaderCachePurgeError", "Translations": { diff --git a/assets/Locales/Settings_Interface.json b/assets/Locales/Settings_Interface.json new file mode 100644 index 000000000..adab7755d --- /dev/null +++ b/assets/Locales/Settings_Interface.json @@ -0,0 +1,79 @@ +{ + "Locales": [ + { + "ID": "StartGamesInFullscreenCheckboxLabel", + "Translations": { + "ar_SA": "ابدأ الألعاب بملء الشاشة", + "de_DE": "Spiele im Vollbild starten", + "el_GR": "Εκκίνηση Παιχνιδιών σε Πλήρη Οθόνη", + "en_US": "Start Games in Fullscreen", + "es_ES": "Iniciar Juegos en Pantalla Completa", + "fr_FR": "Démarrer les Jeux en Plein Écran", + "he_IL": "התחל משחקים במסך מלא", + "it_IT": "Avvia i giochi a schermo intero", + "ja_JP": "全画面でゲームを開始", + "ko_KR": "전체 화면으로 게임 시작", + "no_NO": "Start spill i fullskjerm", + "pl_PL": "Uruchamiaj gry na pełnym ekranie", + "pt_BR": "Iniciar Jogos em Tela Cheia", + "ru_RU": "Запускать игры в полноэкранном режиме", + "sv_SE": "Starta spel i helskärm", + "th_TH": "เริ่มเกมแบบเต็มหน้าจอ", + "tr_TR": "Oyunları Tam Ekranda Başlat", + "uk_UA": "Запускати ігри в повноекранному режимі", + "zh_CN": "全屏启动游戏", + "zh_TW": "以全螢幕啟動遊戲" + } + }, + { + "ID": "StartGamesWithoutUICheckboxLabel", + "Translations": { + "ar_SA": "", + "de_DE": "Benutzeroberfläche beim Spielstart ausblenden", + "el_GR": "", + "en_US": "Hide UI on Game Start", + "es_ES": "Ocultar la Interfaz al Iniciar el Juego", + "fr_FR": "Masquer l’Interface au Lancement du Jeu", + "he_IL": "", + "it_IT": "Nascondi l’interfaccia all’avvio del gioco", + "ja_JP": "", + "ko_KR": "게임 시작 시 UI 숨기기", + "no_NO": "Skjul brukergrensesnitt ved spillstart", + "pl_PL": "", + "pt_BR": "Ocultar a interface ao iniciar o jogo", + "ru_RU": "Скрывать интерфейс при запуске игры", + "sv_SE": "Dölj användargränssnitt vid spelstart", + "th_TH": "ซ่อน UI เมื่อเริ่มเกม", + "tr_TR": "", + "uk_UA": "Приховувати інтерфейс під час запуску гри", + "zh_CN": "启动游戏时隐藏界面", + "zh_TW": "啟動遊戲時隱藏介面" + } + }, + { + "ID": "StartGamesWithoutUICheckboxLabelToolTip", + "Translations": { + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "Automatically hides Ryujinx's UI whenever a game launches. While in-game, press F4 to show the UI.", + "es_ES": "", + "fr_FR": "Masque automatiquement l'interface de Ryujinx au lancement d'un jeu. En jeu, appuyez sur F4 pour afficher l'interface.", + "he_IL": "", + "it_IT": "", + "ja_JP": "", + "ko_KR": "", + "no_NO": "", + "pl_PL": "", + "pt_BR": "", + "ru_RU": "Автоматически скрывает интерфейс Ryujinx при запуске игры. Во время игры нажмите F4, чтобы показать интерфейс.", + "sv_SE": "", + "th_TH": "", + "tr_TR": "", + "uk_UA": "", + "zh_CN": "", + "zh_TW": "" + } + } + ] +} diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs index 88ca1de17..a30d273b9 100644 --- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs @@ -1407,10 +1407,6 @@ namespace Ryujinx.Ava.UI.ViewModels public void HideUi() => ShowMenuAndStatusBar = false; - public void ToggleStartGamesInFullscreen() => StartGamesInFullscreen = !StartGamesInFullscreen; - - public void ToggleStartGamesWithoutUi() => StartGamesWithoutUi = !StartGamesWithoutUi; - public void ToggleShowConsole() => ShowConsole = !ShowConsole; public void SetListMode() => Glyph = Glyph.List; diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs index d4532e8ca..44caffb8d 100644 --- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs @@ -109,6 +109,31 @@ namespace Ryujinx.Ava.UI.ViewModels } } + public bool StartGamesInFullscreen + { + get => ConfigurationState.Instance.UI.StartFullscreen; + set + { + if (ConfigurationState.Instance.UI.StartFullscreen.Value != value) + { + ConfigurationState.Instance.UI.StartFullscreen.Value = value; + OnPropertyChanged(); + } + } + } + public bool StartGamesWithoutUi + { + get => ConfigurationState.Instance.UI.StartNoUI; + set + { + if (ConfigurationState.Instance.UI.StartNoUI.Value != value) + { + ConfigurationState.Instance.UI.StartNoUI.Value = value; + OnPropertyChanged(); + } + } + } + public int GraphicsBackendMultithreadingIndex { get; @@ -638,6 +663,8 @@ namespace Ryujinx.Ava.UI.ViewModels HideCursor = (int)config.HideCursor.Value; UpdateCheckerType = (int)config.UpdateCheckerType.Value; FocusLostActionType = (int)config.FocusLostActionType.Value; + StartGamesInFullscreen = config.UI.StartFullscreen; + StartGamesWithoutUi = config.UI.StartNoUI; GameDirectories.Clear(); GameDirectories.AddRange(config.UI.GameDirs.Value); @@ -758,6 +785,8 @@ namespace Ryujinx.Ava.UI.ViewModels config.FocusLostActionType.Value = (FocusLostType)FocusLostActionType; config.UI.GameDirs.Value = [.. GameDirectories]; config.UI.AutoloadDirs.Value = [.. AutoloadDirectories]; + config.UI.StartFullscreen.Value = StartGamesInFullscreen; + config.UI.StartNoUI.Value = StartGamesWithoutUi; config.UI.BaseStyle.Value = BaseStyleIndex switch { diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml index c4a6c1e4c..bd06c04c6 100755 --- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml +++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml @@ -74,77 +74,23 @@ Header="{ext:Locale MenuBarFileExit}" Icon="{ext:Icon fa-solid fa-power-off}" /> - - - - - - - - - - - - - - - - - - - + - - + Header="{ext:Locale MenuBar_Options_LanguageButton}" + Icon="{ext:Icon fa-solid fa-globe}"> + IsEnabled="{Binding EnableNonGameRunningControls}"> + + + - - - - - + + + + - + + + + + + + + + + new CheckBox { + Margin = new Thickness(10, 0, 0, 0), Content = $".{it.FileName}", IsChecked = it.FileType.GetConfigValue(ConfigurationState.Instance.UI.ShownFileTypes), Command = Commands.Create(() => Window.ToggleFileType(it.FileName)) @@ -98,8 +99,7 @@ namespace Ryujinx.Ava.UI.Views.Main MenuItem menuItem = new() { - Padding = new Thickness(15, 0, 0, 0), - Margin = new Thickness(3, 0, 3, 0), + Padding = new Thickness(10, 0, 0, 0), HorizontalAlignment = HorizontalAlignment.Stretch, Header = code == currentLanguageCode ? $"{languageName} ✔" : languageName, Command = Commands.Create(() => MainWindowViewModel.ChangeLanguage(code)) diff --git a/src/Ryujinx/UI/Views/Settings/SettingsUIView.axaml b/src/Ryujinx/UI/Views/Settings/SettingsUIView.axaml index e55c20b88..1583140b2 100644 --- a/src/Ryujinx/UI/Views/Settings/SettingsUIView.axaml +++ b/src/Ryujinx/UI/Views/Settings/SettingsUIView.axaml @@ -36,6 +36,25 @@ + + + + + + + + + + + +