mirror of
https://git.ryujinx.app/ryubing/ryujinx.git
synced 2026-06-15 08:49:15 +00:00
Ayyyy, welcome to the UI: File Menu → General Improvements PR!
Wooo, we progressing smoothly!
This PR introduces small visual and "feature" improvements to the `File` menu.
### LOCALISATION:
* **Fractured:** More locales:
* `Dialog_ContentLoading.json` - content loading dialogs (Updates/DLC)
* `Dialog_FileTypeAssociations` - file association dialogs
* `Dialog_FileMenu` - File menu dialog strings (complements `MenuBar_File.json`)
* **Added:** Additional entires to `Error.json`
* **Populated:** `MenuBar_File.json`
### FILE MENU:
* **Added:** Keyboard shortcuts to `Load Application` and `Load Unpacked Game`
* Cmd + O/Ctrl + O and Cmd + Shift + O/Ctrl + Shift + O for macOS and other OS, respectively.
* While many users rely on autoloaded game directories, manually opening content remains a common workflow (for those that don't rely on autoload directories).
* **Merged:** `Load Title Updates` and `Load DLC` → `Load Updates/DLC`
* Both actions follow the same workflow: selecting one or more directories and allowing Ryujinx to load the content.
* To reduce redundancy, they have been consolidated into a single menu item that loads both Updates and DLC simultaneously, mirroring the behavior of the existing autoload functionality.
* As part of this change, Title Updates has been simplified to Updates for consistency with the rest of the UI. The remaining reference in the Game List context menu has also been updated from `Manage Title Updates` to `Manage Updates`.
* **Added/Updated:** File picker titles for content loading actions
* `Load Application`: Select a Switch application file to load
* `Load Unpacked Game`: Select a folder containing an unpacked Switch application to load
* `Load Updates/DLC`: Select one or more folders to bulk load updates and DLC from
* **Improved:** `Associate File Types` and `Remove File Type Associations` (initially moved to the `File` menu in #42)
* These options were previously nested under `Manage File Types` and exposed as `Install File Types` and `Uninstall File Types`. The submenu added unnecessary navigation, while the action names did not clearly communicate their purpose.
* The two actions have been replaced with a single dynamic menu item, whose displayed and performed action updates based on the current association state. The respective icons have been added as well (imported namespace Projektanker.Icons to allow for dynamic switching):
* Link → `Associate File Types`
* Link-Slash →`Remove File Type Associations`
* A tooltip has also been added to clarify the action being performed.
* This option is only usable when a game is not running (why associate file types when running a game? Play the game!)
* **Note:** These options are only available on Windows and Linux. macOS already provides robust per‑file “Open With” handling, so a custom association system isn’t necessary. Support can be added later if needed, but current macOS limitations in Ryujinx prevent certain behaviors; these will be addressed in future PRs.
* **Updated:** Menu Icons
* Several icons have been updated to better reflect their associated actions and improve consistency throughout the menu:
* `Load Updates/DLC...` now uses a single Inbox Tray icon instead of separate Update and DLC icons.
* `Open Ryujinx Folder`, `Open Logs Folder`, and `Open Screenshots Folder` now share the same folder icon, as all three actions ultimately open a folder/directory.
* `Exit` is now an Exit icon (arrow-right-from-bracket) instead of a Power button.
### OTHER:
* **Improved:** `Load Updates/DLC` dialog messages
* Existing dialog messages were longer than necessary and included terms such as "missing" updates and "new" DLC.
* These messages have been simplified and standardized:
* Updates Added: {0} or Updates Removed: {0}
* DLC Added: {0} or DLC Removed: {0}
_If there are any features or changes that you wish to be implemented, please comment down below and I'll be happy to accommodate!_
A GIGANTIC, ENORMOUSE HUUUUUUGEE thank you to @Babib3l for testing this and ensuring the commands work! WOOOOO!!!
Reviewed-on: https://git.ryujinx.app/projects/Ryubing/pulls/127
280 lines
10 KiB
JSON
280 lines
10 KiB
JSON
{
|
||
"Locales": [
|
||
{
|
||
"ID": "FileLabel",
|
||
"Translations": {
|
||
"ar_SA": "_ملف",
|
||
"de_DE": "_Datei",
|
||
"el_GR": "_Αρχείο",
|
||
"en_US": "_File",
|
||
"es_ES": "_Archivo",
|
||
"fr_FR": "_Fichier",
|
||
"he_IL": "_קובץ",
|
||
"it_IT": "_Archivio",
|
||
"ja_JP": "ファイル(_F)",
|
||
"ko_KR": "파일(_F)",
|
||
"no_NO": "_Fil",
|
||
"pl_PL": "_Plik",
|
||
"pt_BR": "_Arquivo",
|
||
"ru_RU": "_Файл",
|
||
"sv_SE": "_Arkiv",
|
||
"th_TH": "ไฟล์",
|
||
"tr_TR": "_Dosya",
|
||
"uk_UA": "_Файл",
|
||
"zh_CN": "文件(_F)",
|
||
"zh_TW": "檔案(_F)"
|
||
}
|
||
},
|
||
{
|
||
"ID": "LoadApplicationFromFileButton",
|
||
"Translations": {
|
||
"ar_SA": "_تحميل التطبيق...",
|
||
"de_DE": "_Anwendung laden...",
|
||
"el_GR": "_Φόρτωση εφαρμογής...",
|
||
"en_US": "_Load Application...",
|
||
"es_ES": "_Cargar Aplicación...",
|
||
"fr_FR": "_Charger l’Application...",
|
||
"he_IL": "_טען יישום...",
|
||
"it_IT": "_Carica applicazione...",
|
||
"ja_JP": "アプリケーションをロード(_L)...",
|
||
"ko_KR": "앱 불러오기(_L)...",
|
||
"no_NO": "_Last inn program...",
|
||
"pl_PL": "_Załaduj aplikację...",
|
||
"pt_BR": "_Carregar aplicativo...",
|
||
"ru_RU": "_Загрузить приложение...",
|
||
"sv_SE": "_Läs in applikation...",
|
||
"th_TH": "_โหลดแอปพลิเคชัน...",
|
||
"tr_TR": "_Uygulamayı yükle...",
|
||
"uk_UA": "_Завантажити застосунок...",
|
||
"zh_CN": "加载应用程序(_L)...",
|
||
"zh_TW": "載入應用程式(_L)..."
|
||
}
|
||
},
|
||
{
|
||
"ID": "LoadUnpackedGameFromFolderButton",
|
||
"Translations": {
|
||
"ar_SA": "تحميل لُعْبَة غير محزومة...",
|
||
"de_DE": "_Entpacktes Spiel laden...",
|
||
"el_GR": "_Φόρτωση Απακετάριστου Παιχνιδιού...",
|
||
"en_US": "Load _Unpacked Game...",
|
||
"es_ES": "Cargar Juego _Desempaquetado...",
|
||
"fr_FR": "Charger un Jeu Décompressé...",
|
||
"he_IL": "טען משחק _שאינו ארוז...",
|
||
"it_IT": "Carica gioco _estratto...",
|
||
"ja_JP": "_展開されたゲームをロード...",
|
||
"ko_KR": "압축 푼 게임 불러오기(_U)...",
|
||
"no_NO": "Last inn _upakket spill...",
|
||
"pl_PL": "Załaduj _rozpakowaną grę...",
|
||
"pt_BR": "Abrir Jogo _Extraído...",
|
||
"ru_RU": "Загрузить _распакованную игру...",
|
||
"sv_SE": "Läs in _uppackat spel...",
|
||
"th_TH": "โหลดเกมที่แตกไฟล์แล้ว...",
|
||
"tr_TR": "_Sıkıştırılmamış Oyun Yükle...",
|
||
"uk_UA": "Завантажити _розпаковану гру...",
|
||
"zh_CN": "加载解包后的游戏(_U)...",
|
||
"zh_TW": "載入未封裝的遊戲(_U)..."
|
||
}
|
||
},
|
||
{
|
||
"ID": "LoadTitleUpdatesAndDLCFromFolderButton",
|
||
"Translations": {
|
||
"ar_SA": "",
|
||
"de_DE": "Updates/DLC laden...",
|
||
"el_GR": "",
|
||
"en_US": "Load Updates/DLC...",
|
||
"es_ES": "Cargar Actualizaciones/DLC...",
|
||
"fr_FR": "Charger les Mises à Jour/DLC...",
|
||
"he_IL": "",
|
||
"it_IT": "Carica aggiornamenti/DLC...",
|
||
"ja_JP": "",
|
||
"ko_KR": "업데이트/DLC 불러오기...",
|
||
"no_NO": "Last inn oppdateringer/DLC...",
|
||
"pl_PL": "",
|
||
"pt_BR": "Carregar atualizações/DLC...",
|
||
"ru_RU": "Загрузить обновления/DLC...",
|
||
"sv_SE": "Läs in uppdateringar/DLC...",
|
||
"th_TH": "โหลดอัปเดต/DLC...",
|
||
"tr_TR": "",
|
||
"uk_UA": "Завантажити оновлення/DLC...",
|
||
"zh_CN": "加载更新/DLC...",
|
||
"zh_TW": "載入更新/DLC..."
|
||
}
|
||
},
|
||
{
|
||
"ID": "OpenRyuijnxFolderButton",
|
||
"Translations": {
|
||
"ar_SA": "فتح مجلد Ryujinx",
|
||
"de_DE": "Ryujinx-Ordner öffnen",
|
||
"el_GR": "Άνοιγμα Φακέλου Ryujinx",
|
||
"en_US": "Open Ryujinx Folder",
|
||
"es_ES": "Abrir Carpeta de Ryujinx",
|
||
"fr_FR": "Ouvrir le Dossier Ryujinx",
|
||
"he_IL": "פתח את תיקיית ריוג'ינקס",
|
||
"it_IT": "Apri la cartella di Ryujinx",
|
||
"ja_JP": "Ryujinx フォルダを開く",
|
||
"ko_KR": "Ryujinx 폴더 열기",
|
||
"no_NO": "Åpne Ryujinx mappe",
|
||
"pl_PL": "Otwórz folder Ryujinx",
|
||
"pt_BR": "Abrir Pasta do Ryujinx",
|
||
"ru_RU": "Открыть папку Ryujinx",
|
||
"sv_SE": "Öppna Ryujinx-mapp",
|
||
"th_TH": "เปิดโฟลเดอร์ Ryujinx",
|
||
"tr_TR": "Ryujinx Klasörünü aç",
|
||
"uk_UA": "Відкрити теку Ryujinx",
|
||
"zh_CN": "打开 Ryujinx 系统目录",
|
||
"zh_TW": "開啟 Ryujinx 資料夾"
|
||
}
|
||
},
|
||
{
|
||
"ID": "OpenLogsFolderButton",
|
||
"Translations": {
|
||
"ar_SA": "فتح مجلد السجلات",
|
||
"de_DE": "Logs-Ordner öffnen",
|
||
"el_GR": "Άνοιγμα Φακέλου Καταγραφής",
|
||
"en_US": "Open Logs Folder",
|
||
"es_ES": "Abrir Carpeta de Registros",
|
||
"fr_FR": "Ouvrir le Dossier des Journaux",
|
||
"he_IL": "פתח את תיקיית קבצי הלוג",
|
||
"it_IT": "Apri la cartella dei log",
|
||
"ja_JP": "ログフォルダを開く",
|
||
"ko_KR": "로그 폴더 열기",
|
||
"no_NO": "Åpne Logg mappen",
|
||
"pl_PL": "Otwórz folder plików dziennika zdarzeń",
|
||
"pt_BR": "Abrir Pasta de _Logs",
|
||
"ru_RU": "Открыть папку журналов",
|
||
"sv_SE": "Öppna loggmapp",
|
||
"th_TH": "เปิดโฟลเดอร์ Logs",
|
||
"tr_TR": "Logs Klasörünü aç",
|
||
"uk_UA": "Відкрити теку журналів змін",
|
||
"zh_CN": "打开日志目录",
|
||
"zh_TW": "開啟日誌資料夾"
|
||
}
|
||
},
|
||
{
|
||
"ID": "OpenScreenshotsFolderButton",
|
||
"Translations": {
|
||
"ar_SA": "",
|
||
"de_DE": "Screenshots-Ordner öffnen",
|
||
"el_GR": "",
|
||
"en_US": "Open Screenshots Folder",
|
||
"es_ES": "Abrir Carpeta de Capturas de Pantalla",
|
||
"fr_FR": "Ouvrir le Dossier des Captures d’Écran",
|
||
"he_IL": "",
|
||
"it_IT": "Apri la cartella degli screenshots",
|
||
"ja_JP": "",
|
||
"ko_KR": "스크린샷 폴더 열기",
|
||
"no_NO": "Åpne Skjermbilde Mappen",
|
||
"pl_PL": "",
|
||
"pt_BR": "Abrir Pasta de Capturas de Tela",
|
||
"ru_RU": "Открыть папку снимков экрана",
|
||
"sv_SE": "Öppna skärmbildsmappen",
|
||
"th_TH": "เปิดโฟลเดอร์ที่เก็บภาพหน้าจอ",
|
||
"tr_TR": "",
|
||
"uk_UA": "Відкрити теку скріншотів",
|
||
"zh_CN": "打开截图文件夹",
|
||
"zh_TW": "開啟螢幕擷取畫面資料夾"
|
||
}
|
||
},
|
||
{
|
||
"ID": "AssociateFileTypesButton",
|
||
"Translations": {
|
||
"ar_SA": "",
|
||
"de_DE": "",
|
||
"el_GR": "",
|
||
"en_US": "Associate File Types",
|
||
"es_ES": "",
|
||
"fr_FR": "Associer Les Types de Fichiers",
|
||
"he_IL": "",
|
||
"it_IT": "",
|
||
"ja_JP": "",
|
||
"ko_KR": "",
|
||
"no_NO": "",
|
||
"pl_PL": "",
|
||
"pt_BR": "",
|
||
"ru_RU": "Связать файлы с приложением",
|
||
"sv_SE": "",
|
||
"th_TH": "",
|
||
"tr_TR": "",
|
||
"uk_UA": "",
|
||
"zh_CN": "",
|
||
"zh_TW": ""
|
||
}
|
||
},
|
||
{
|
||
"ID": "RemoveFileTypeAssociationsButton",
|
||
"Translations": {
|
||
"ar_SA": "",
|
||
"de_DE": "",
|
||
"el_GR": "",
|
||
"en_US": "Remove File Type Associations",
|
||
"es_ES": "",
|
||
"fr_FR": "Dissocier Les Types de Fichiers",
|
||
"he_IL": "",
|
||
"it_IT": "",
|
||
"ja_JP": "",
|
||
"ko_KR": "",
|
||
"no_NO": "",
|
||
"pl_PL": "",
|
||
"pt_BR": "",
|
||
"ru_RU": "Удалить ассоциации файлов",
|
||
"sv_SE": "",
|
||
"th_TH": "",
|
||
"tr_TR": "",
|
||
"uk_UA": "",
|
||
"zh_CN": "",
|
||
"zh_TW": ""
|
||
}
|
||
},
|
||
{
|
||
"ID": "FileTypeAssociationsToolTip",
|
||
"Translations": {
|
||
"ar_SA": "",
|
||
"de_DE": "",
|
||
"el_GR": "",
|
||
"en_US": "Associates supported file types (NSP, XCI, NCA, NRO, NSO) with Ryujinx so they open automatically when double-clicked in your file manager. Removing file type associations stops this behavior.",
|
||
"es_ES": "",
|
||
"fr_FR": "Associe les types de fichiers pris en charge (NSP, XCI, NCA, NRO, NSO) à Ryujinx afin qu’ils s’ouvrent automatiquement par double-clic dans votre gestionnaire de fichiers. Les dissocier désactive ce comportement",
|
||
"he_IL": "",
|
||
"it_IT": "",
|
||
"ja_JP": "",
|
||
"ko_KR": "",
|
||
"no_NO": "",
|
||
"pl_PL": "",
|
||
"pt_BR": "",
|
||
"ru_RU": "Связывает поддерживаемые типы файлов (NSP, XCI, NCA, NRO, NSO) с Ryujinx, чтобы они автоматически открывались при двойном щелчке в файловом менеджере. Удаление ассоциаций файлов отключает это поведение.",
|
||
"sv_SE": "",
|
||
"th_TH": "",
|
||
"tr_TR": "",
|
||
"uk_UA": "",
|
||
"zh_CN": "",
|
||
"zh_TW": ""
|
||
}
|
||
},
|
||
{
|
||
"ID": "ExitButton",
|
||
"Translations": {
|
||
"ar_SA": "_خروج",
|
||
"de_DE": "_Beenden",
|
||
"el_GR": "_Έξοδος",
|
||
"en_US": "_Exit",
|
||
"es_ES": "_Salir",
|
||
"fr_FR": "_Quitter",
|
||
"he_IL": "_יציאה",
|
||
"it_IT": "_Esci",
|
||
"ja_JP": "終了(_E)",
|
||
"ko_KR": "종료(_E)",
|
||
"no_NO": "_Avslutt",
|
||
"pl_PL": "_Wyjdź",
|
||
"pt_BR": "_Sair",
|
||
"ru_RU": "_Выйти",
|
||
"sv_SE": "_Avsluta",
|
||
"th_TH": "_ออก",
|
||
"tr_TR": "_Çıkış",
|
||
"uk_UA": "_Вихід",
|
||
"zh_CN": "退出(_E)",
|
||
"zh_TW": "結束(_E)"
|
||
}
|
||
}
|
||
]
|
||
}
|