From 9a5214b366594ebab96016c3b7b3ea145ef69d0b Mon Sep 17 00:00:00 2001 From: _Neo_ Date: Sun, 18 Jan 2026 19:48:58 +0200 Subject: [PATCH] Initial Implementation of Keys.json For now, decided to title it as Keys.json until, perhaps, a more optimal name is found. --- assets/Locales/Keys.json | 329 ++++++++++++++++++ assets/Locales/Root.json | 275 --------------- src/Ryujinx/UI/Helpers/UserErrorDialog.cs | 4 +- .../UI/ViewModels/MainWindowViewModel.cs | 18 +- .../UI/Views/Main/MainMenuBarView.axaml | 6 +- 5 files changed, 343 insertions(+), 289 deletions(-) create mode 100644 assets/Locales/Keys.json diff --git a/assets/Locales/Keys.json b/assets/Locales/Keys.json new file mode 100644 index 000000000..02fbd09b5 --- /dev/null +++ b/assets/Locales/Keys.json @@ -0,0 +1,329 @@ +{ + "Locales": [ + { + "ID": "MenuBarActions_Install", + "Translations": { + "ar_SA": "تثبيت المفاتيح", + "de_DE": "Schlüssel installieren", + "el_GR": "Εγκατάσταση Κλειδιών", + "en_US": "Install Keys", + "es_ES": "Instalar Claves", + "fr_FR": "Installer des Clés", + "he_IL": "התקנת מפתחות", + "it_IT": "Installa chiavi", + "ja_JP": "キーをインストール", + "ko_KR": "설치 키", + "no_NO": "Installere nøkler", + "pl_PL": "Zainstaluj klucze", + "pt_BR": "Instalar Chaves", + "ru_RU": "Установить ключи", + "sv_SE": "Installera nycklar", + "th_TH": "ติดตั้ง Keys", + "tr_TR": "Anahtarları Yükle", + "uk_UA": "Встановити Ключі", + "zh_CN": "安装密匙", + "zh_TW": "安裝金鑰" + } + }, + { + "ID": "MenuBarActions_InstallFromKeys", + "Translations": { + "ar_SA": null, + "de_DE": null, + "el_GR": null, + "en_US": ".KEYS", + "es_ES": null, + "fr_FR": null, + "he_IL": null, + "it_IT": null, + "ja_JP": null, + "ko_KR": null, + "no_NO": null, + "pl_PL": null, + "pt_BR": null, + "ru_RU": null, + "sv_SE": null, + "th_TH": null, + "tr_TR": null, + "uk_UA": null, + "zh_CN": null, + "zh_TW": null + } + }, + { + "ID": "MenuBarFileActions_InstallFromFolder", + "Translations": { + "ar_SA": "مجلد", + "de_DE": "Verzeichnis", + "el_GR": "Φάκελος", + "en_US": "Folder", + "es_ES": "Carpeta", + "fr_FR": "Dossier", + "he_IL": "תיקיה", + "it_IT": "Cartella", + "ja_JP": "フォルダ", + "ko_KR": "폴더", + "no_NO": "Mappe", + "pl_PL": "Folder", + "pt_BR": "Diretório", + "ru_RU": "Папка", + "sv_SE": "Katalog", + "th_TH": "ไดเรกทอรี", + "tr_TR": "Klasör", + "uk_UA": "Тека", + "zh_CN": "文件夹", + "zh_TW": "資料夾" + } + }, + { + "ID": "InstallFromFile_DialogTitle", + "Translations": { + "ar_SA": "اختر ملف .KEYS لتثبيت المفاتيح منه", + "de_DE": "Wählen Sie eine .KEYS-Datei aus, um die Schlüssel zu installieren", + "el_GR": "Επιλέξτε ένα αρχείο .KEYS για να εγκαταστήσετε τα κλειδιά", + "en_US": "Choose a .KEYS file to install keys from", + "es_ES": "Elige un archivo .KEYS para instalar las claves", + "fr_FR": "Choisissez un fichier .KEYS pour installer les clés", + "he_IL": "בחר קובץ .KEYS להתקנת המפתחות ממנו", + "it_IT": "Scegli un file .KEYS per installare le chiavi", + "ja_JP": ".KEYS ファイルを選択してキーをインストール", + "ko_KR": ".KEYS 파일을 선택하여 키를 설치하세요", + "no_NO": "Velg en .KEYS-fil for å installere nøklene fra", + "pl_PL": "Wybierz plik .KEYS, aby zainstalować klucze", + "pt_BR": "Escolha um arquivo .KEYS para instalar as chaves", + "ru_RU": "Выберите файл .KEYS для установки ключей", + "sv_SE": "Välj en .KEYS-fil för att installera nycklar från", + "th_TH": "เลือกไฟล์ .KEYS เพื่อติดตั้งคีย์จาก", + "tr_TR": ".KEYS dosyasını seçin ve anahtarları yükleyin", + "uk_UA": "Виберіть файл .KEYS для встановлення ключів", + "zh_CN": "选择一个 .KEYS 文件来安装密钥", + "zh_TW": "選擇一個 .KEYS 檔案來安裝密鑰" + } + }, + { + "ID": "InstallFromFolder_DialogTitle", + "Translations": { + "ar_SA": "اختر مجلد لتثبيت المفاتيح منه", + "de_DE": "Wählen Sie einen ORDNER aus, um die Schlüssel zu installieren", + "el_GR": "Επιλέξτε έναν ΦΆΚΕΛΟ για να εγκαταστήσετε τα κλειδιά", + "en_US": "Choose a FOLDER to install keys from", + "es_ES": "Elige una CARPETA para instalar las claves", + "fr_FR": "Choisissez un DOSSIER pour installer les clés", + "he_IL": "בחר תיקיה להתקנת המפתחות ממנו", + "it_IT": "Scegli una CARTELLA per installare le chiavi", + "ja_JP": "フォルダを選択してキーをインストール", + "ko_KR": "폴더를 선택하여 키를 설치하세요", + "no_NO": "Velg en MAPPE for å installere nøklene fra", + "pl_PL": "Wybierz FOLDER, aby zainstalować klucze", + "pt_BR": "Escolha uma PASTA para instalar as chaves", + "ru_RU": "Выберите ПАПКУ для установки ключей", + "sv_SE": "Välj en MAPP för att installera nycklar från", + "th_TH": "เลือกโฟลเดอร์เพื่อติดตั้งคีย์จาก", + "tr_TR": "KLASÖR seçin ve anahtarları yükleyin", + "uk_UA": "Виберіть ПАПКУ для встановлення ключів", + "zh_CN": "选择一个文件夹来安装密钥", + "zh_TW": "選擇一個資料夾來安裝密鑰" + } + }, + { + "ID": "DialogKeysInstaller_InstallConfirmMessage", + "Translations": { + "ar_SA": "\nهل تريد المتابعة؟", + "de_DE": "\n\nMöchtest du fortfahren?", + "el_GR": "\n\nΘέλετε να συνεχίσετε;", + "en_US": "\n\nDo you want to continue?", + "es_ES": "\n\n¿Continuar?", + "fr_FR": "\n\nVoulez-vous continuer ?", + "he_IL": "\n\nהאם ברצונך להמשיך?", + "it_IT": "\n\nVuoi continuare?", + "ja_JP": "\n\n続けてよろしいですか?", + "ko_KR": "\n\n계속하시겠습니까?", + "no_NO": "\n\nVil du fortsette?", + "pl_PL": "\n\nCzy chcesz kontynuować?", + "pt_BR": "\n\nDeseja continuar?", + "ru_RU": "\n\nПродолжить?", + "sv_SE": "\n\nVill du fortsätta?", + "th_TH": "\n\nคุณต้องการดำเนินการต่อหรือไม่?", + "tr_TR": "\n\nDevam etmek istiyor musunuz?", + "uk_UA": "\n\nВи хочете продовжити?", + "zh_CN": "\n\n是否继续?", + "zh_TW": "\n\n您確定要繼續嗎?" + } + }, + { + "ID": "DialogKeysInstaller_KeysNotFoundErrorMessage", + "Translations": { + "ar_SA": "", + "de_DE": "", + "el_GR": "", + "en_US": "An invalid Keys file was found in {0}", + "es_ES": "Se halló un archivo Keys inválido en {0}", + "fr_FR": "Un fichier de Clés invalide a été trouvé dans {0}", + "he_IL": "", + "it_IT": "È stato trovato un file di chiavi non valido in {0}", + "ja_JP": "", + "ko_KR": "{0}에서 잘못된 키 파일이 발견", + "no_NO": "En ugyldig Keys-fil ble funnet i {0}.", + "pl_PL": "", + "pt_BR": "Um arquivo Chaves inválido foi encontrado em {0}", + "ru_RU": "В {0} найден некорректный файл ключей", + "sv_SE": "En ogiltig nyckelfil hittades i {0}", + "th_TH": "พบไฟล์ Keys ที่ไม่ถูกต้องใน {0}", + "tr_TR": "", + "uk_UA": "Виявлено неправильний файл ключів у теці {0}", + "zh_CN": "在 {0} 发现了一个无效的密匙文件", + "zh_TW": "找到無效的金鑰檔案 {0}" + } + }, + { + "ID": "DialogKeysInstaller_KeysInstallMessage", + "Translations": { + "ar_SA": "سيتم تثبيت ملف مفاتيح جديد.", + "de_DE": "Eine neue Schlüsseldatei wird installiert.", + "el_GR": "Ένα νέο αρχείο Κλειδιών θα εγκατασταθεί.", + "en_US": "New Keys file will be installed.", + "es_ES": "Un nuevo archivo de Claves será instalado.", + "fr_FR": "Nouveau fichier de Clés sera installé.", + "he_IL": "קובץ מפתחות חדש יותקן.", + "it_IT": "Un nuovo file di chiavi sarà installato.", + "ja_JP": "新しいキー ファイルがインストールされます。", + "ko_KR": "새로운 키 파일이 설치됩니다.", + "no_NO": "Ny Keys-fil vil bli installert.", + "pl_PL": "Nowy plik kluczy zostanie zainstalowany.", + "pt_BR": "O novo arquivo Chaves será instalado.", + "ru_RU": "Будут установлены новые ключи.", + "sv_SE": "Ny nyckelfil kommer att installeras.", + "th_TH": "กำลังติดตั้งไฟล์ Keys ใหม่", + "tr_TR": "Yeni anahtar dosyası yüklenecek.", + "uk_UA": "Новий файл Ключів буде встановлено.", + "zh_CN": "将会安装新密匙文件。", + "zh_TW": "將會安裝新增的金鑰檔案。" + } + }, + { + "ID": "DialogKeysInstaller_KeysInstallSubMessage", + "Translations": { + "ar_SA": "\n\nقد يحل هذا محل بعض المفاتيح المثبتة حاليًا.", + "de_DE": "\n\nDies könnte einige der derzeit installierten Schlüssel ersetzen.", + "el_GR": "\n\nΑυτό μπορεί να αντικαταστήσει μερικά από τα τρέχοντα εγκατεστημένα κλειδιά.", + "en_US": "\n\nThis may replace some of the current installed Keys.", + "es_ES": "\n\nEsto puede reemplazar algunas de las Keys actualmente instaladas.", + "fr_FR": "\n\nCela peut remplacer certaines des Clés actuellement installées.", + "he_IL": "\n\nזה עשוי להחליף חלק מהמפתחות המותקנים הנוכחיים.", + "it_IT": "\n\nAlcune delle chiavi già installate potrebbero essere sovrascritte.", + "ja_JP": "\n\nこれにより、現在インストールされているキーの一部が置き換えられる場合があります。", + "ko_KR": "\n\n이로 인해 현재 설치된 키 중 일부가 대체될 수 있습니다.", + "no_NO": "\n\nDette kan erstatte noen av de nåværende installerte nøklene.", + "pl_PL": "\n\nTo może zastąpić niektóre z aktualnie zainstalowanych kluczy.", + "pt_BR": "\n\nIsso pode substituir algumas das chaves instaladas atualmente.", + "ru_RU": "\n\nЭто может заменить некоторые из текущих установленных ключей.", + "sv_SE": "\n\nDetta kan ersätta några av de redan installerade nycklarna.", + "th_TH": "\n\nสิ่งนี้อาจทำให้ไฟล์ Keys บางส่วนที่ติดตั้งอยู่ถูกแทนที่", + "tr_TR": "\n\nBu, şu anda kurulu olan anahtarların bazılarının yerine geçebilir.", + "uk_UA": "\n\nЦе замінить собою поточні файли Ключів.", + "zh_CN": "\n\n这也许会替换掉一些当前已安装的密匙", + "zh_TW": "\n\n這將取代部分已安裝的金鑰。" + } + }, + { + "ID": "DialogKeysInstaller_KeysInstallWaitMessage", + "Translations": { + "ar_SA": "جارٍ تثبيت المفاتيح...", + "de_DE": "Schlüssel werden installiert...", + "el_GR": "Εγκατάσταση κλειδιών...", + "en_US": "Installing Keys...", + "es_ES": "Instalando Claves...", + "fr_FR": "Installation des Clés...", + "he_IL": "מתקין מפתחות...", + "it_IT": "Installazione delle chiavi...", + "ja_JP": "キーをインストールしています...", + "ko_KR": "키 설치 중...", + "no_NO": "Installere nøkler...", + "pl_PL": "Instalowanie kluczy...", + "pt_BR": "Instalando Chaves...", + "ru_RU": "Установка ключей...", + "sv_SE": "Installerar nycklar...", + "th_TH": "กำลังดำเนินการติดตั้ง Keys...", + "tr_TR": "Anahtarlar yükleniyor...", + "uk_UA": "Встановлення Ключів...", + "zh_CN": "安装密匙中。。。", + "zh_TW": "正在安裝金鑰..." + } + }, + { + "ID": "DialogKeysInstaller_KeysInstallSuccessMessage", + "Translations": { + "ar_SA": "تم تثبيت ملف المفاتيح الجديد بنجاح.", + "de_DE": "Neue Schlüsseldatei erfolgreich installiert.", + "el_GR": "Το νέο αρχείο Κλειδιών εγκαταστάθηκε με επιτυχία.", + "en_US": "New Keys file successfully installed.", + "es_ES": "Nuevo archivo Keys instalado con éxito.", + "fr_FR": "Nouveau fichier de Clés a été installé.", + "he_IL": "הקובץ החדש של המפתחות הותקן בהצלחה.", + "it_IT": "Nuovo file di chiavi installato con successo.", + "ja_JP": "新しいキー ファイルが正常にインストールされました。", + "ko_KR": "새로운 키 파일이 성공적으로 설치되었습니다.", + "no_NO": "Ny Keys -fil installert.", + "pl_PL": "Nowy plik kluczy został pomyślnie zainstalowany.", + "pt_BR": "Novo arquivo de chaves instalado com sucesso.", + "ru_RU": "Новые ключи успешно установлены.", + "sv_SE": "Ny nyckelfil installerades.", + "th_TH": "การติดตั้งไฟล์ Keys ใหม่เสร็จสมบูรณ์แล้ว", + "tr_TR": "Yeni anahtar dosyası başarıyla yüklendi.", + "uk_UA": "Нові ключі встановлено.", + "zh_CN": "已成功安装新密匙文件", + "zh_TW": "成功安裝新增的金鑰檔案。" + } + }, + { + "ID": "UserError_NoKeys", + "Translations": { + "ar_SA": "المفاتيح غير موجودة", + "de_DE": "Keys nicht gefunden", + "el_GR": "Τα κλειδιά δεν βρέθηκαν", + "en_US": "Keys not found", + "es_ES": "No se encontraron claves", + "fr_FR": "Clés non trouvées", + "he_IL": "המפתחות לא נמצאו", + "it_IT": "Chiavi non trovate", + "ja_JP": "Keys がありません", + "ko_KR": "키를 찾을 수 없음", + "no_NO": "Finner ikke nøkler", + "pl_PL": "Nie znaleziono kluczy", + "pt_BR": "Chaves não encontradas", + "ru_RU": "Ключи не найдены", + "sv_SE": "Nycklarna hittades inte", + "th_TH": "ไม่พบ คีย์", + "tr_TR": "Keys bulunamadı", + "uk_UA": "Ключі не знайдено", + "zh_CN": "找不到密钥Keys", + "zh_TW": "找不到金鑰" + } + }, + { + "ID": "UserError_NoKeys_Description", + "Translations": { + "ar_SA": "لم يتمكن ريوجينكس من العثور على ملف 'prod.keys' الخاص بك", + "de_DE": "Ryujinx konnte deine 'prod.keys' Datei nicht finden", + "el_GR": "Το Ryujinx δεν κατάφερε να εντοπίσει το αρχείο 'prod.keys'", + "en_US": "Ryujinx was unable to find your 'prod.keys' file", + "es_ES": "Ryujinx no pudo encontrar tus 'prod.keys'.", + "fr_FR": "Ryujinx n'a pas pu trouver votre fichier 'prod.keys'", + "he_IL": "ריוג'ינקס לא הצליח למצוא את קובץ ה-'prod.keys' שלך", + "it_IT": "Ryujinx non è riuscito a trovare il file 'prod.keys'", + "ja_JP": "'prod.keys' が見つかりませんでした", + "ko_KR": "Ryujinx가 'prod.keys' 파일을 찾지 못함", + "no_NO": "Ryujinx kunne ikke finne 'prod.keys' filen din", + "pl_PL": "Ryujinx nie mógł znaleźć twojego pliku 'prod.keys'", + "pt_BR": "Ryujinx não conseguiu encontrar o seu arquivo 'prod.keys'", + "ru_RU": "Ryujinx не удалось найти ваш 'prod.keys' файл", + "sv_SE": "Ryujinx kunde inte hitta din 'prod.keys'-fil", + "th_TH": "Ryujinx ไม่พบไฟล์ 'prod.keys' ในเครื่องของคุณ", + "tr_TR": "Ryujinx 'prod.keys' dosyasını bulamadı", + "uk_UA": "Ryujinx не вдалося знайти ваш файл «prod.keys».", + "zh_CN": "Ryujinx 模拟器找不到“prod.keys”密钥文件", + "zh_TW": "Ryujinx 無法找到您的「prod.keys」檔案" + } + }, + ] +} diff --git a/assets/Locales/Root.json b/assets/Locales/Root.json index fe3162667..81b266069 100644 --- a/assets/Locales/Root.json +++ b/assets/Locales/Root.json @@ -750,106 +750,6 @@ "zh_TW": "選擇一個資料夾來安裝韌體" } }, - { - "ID": "MenuBarActionsInstallKeys", - "Translations": { - "ar_SA": "تثبيت المفاتيح", - "de_DE": "Schlüssel installieren", - "el_GR": "Εγκατάσταση Κλειδιών", - "en_US": "Install Keys", - "es_ES": "Instalar Claves", - "fr_FR": "Installer des Clés", - "he_IL": "התקנת מפתחות", - "it_IT": "Installa chiavi", - "ja_JP": "キーをインストール", - "ko_KR": "설치 키", - "no_NO": "Installere nøkler", - "pl_PL": "Zainstaluj klucze", - "pt_BR": "Instalar Chaves", - "ru_RU": "Установить ключи", - "sv_SE": "Installera nycklar", - "th_TH": "ติดตั้ง Keys", - "tr_TR": "Anahtarları Yükle", - "uk_UA": "Встановити Ключі", - "zh_CN": "安装密匙", - "zh_TW": "安裝金鑰" - } - }, - { - "ID": "MenuBarFileActionsInstallKeysFromFolder", - "Translations": { - "ar_SA": "مجلد", - "de_DE": "Verzeichnis", - "el_GR": "Φάκελος", - "en_US": "Folder", - "es_ES": "Carpeta", - "fr_FR": "Dossier", - "he_IL": "תיקיה", - "it_IT": "Cartella", - "ja_JP": "フォルダ", - "ko_KR": "폴더", - "no_NO": "Mappe", - "pl_PL": "Folder", - "pt_BR": "Diretório", - "ru_RU": "Папка", - "sv_SE": "Katalog", - "th_TH": "ไดเรกทอรี", - "tr_TR": "Klasör", - "uk_UA": "Тека", - "zh_CN": "文件夹", - "zh_TW": "資料夾" - } - }, - { - "ID": "InstallKeysFromFileDialogTitle", - "Translations": { - "ar_SA": "اختر ملف .KEYS لتثبيت المفاتيح منه", - "de_DE": "Wählen Sie eine .KEYS-Datei aus, um die Schlüssel zu installieren", - "el_GR": "Επιλέξτε ένα αρχείο .KEYS για να εγκαταστήσετε τα κλειδιά", - "en_US": "Choose a .KEYS file to install keys from", - "es_ES": "Elige un archivo .KEYS para instalar las claves", - "fr_FR": "Choisissez un fichier .KEYS pour installer les clés", - "he_IL": "בחר קובץ .KEYS להתקנת המפתחות ממנו", - "it_IT": "Scegli un file .KEYS per installare le chiavi", - "ja_JP": ".KEYS ファイルを選択してキーをインストール", - "ko_KR": ".KEYS 파일을 선택하여 키를 설치하세요", - "no_NO": "Velg en .KEYS-fil for å installere nøklene fra", - "pl_PL": "Wybierz plik .KEYS, aby zainstalować klucze", - "pt_BR": "Escolha um arquivo .KEYS para instalar as chaves", - "ru_RU": "Выберите файл .KEYS для установки ключей", - "sv_SE": "Välj en .KEYS-fil för att installera nycklar från", - "th_TH": "เลือกไฟล์ .KEYS เพื่อติดตั้งคีย์จาก", - "tr_TR": ".KEYS dosyasını seçin ve anahtarları yükleyin", - "uk_UA": "Виберіть файл .KEYS для встановлення ключів", - "zh_CN": "选择一个 .KEYS 文件来安装密钥", - "zh_TW": "選擇一個 .KEYS 檔案來安裝密鑰" - } - }, - { - "ID": "InstallKeysFromFolderDialogTitle", - "Translations": { - "ar_SA": "اختر مجلد لتثبيت المفاتيح منه", - "de_DE": "Wählen Sie einen ORDNER aus, um die Schlüssel zu installieren", - "el_GR": "Επιλέξτε έναν ΦΆΚΕΛΟ για να εγκαταστήσετε τα κλειδιά", - "en_US": "Choose a FOLDER to install keys from", - "es_ES": "Elige una CARPETA para instalar las claves", - "fr_FR": "Choisissez un DOSSIER pour installer les clés", - "he_IL": "בחר תיקיה להתקנת המפתחות ממנו", - "it_IT": "Scegli una CARTELLA per installare le chiavi", - "ja_JP": "フォルダを選択してキーをインストール", - "ko_KR": "폴더를 선택하여 키를 설치하세요", - "no_NO": "Velg en MAPPE for å installere nøklene fra", - "pl_PL": "Wybierz FOLDER, aby zainstalować klucze", - "pt_BR": "Escolha uma PASTA para instalar as chaves", - "ru_RU": "Выберите ПАПКУ для установки ключей", - "sv_SE": "Välj en MAPP för att installera nycklar från", - "th_TH": "เลือกโฟลเดอร์เพื่อติดตั้งคีย์จาก", - "tr_TR": "KLASÖR seçin ve anahtarları yükleyin", - "uk_UA": "Виберіть ПАПКУ для встановлення ключів", - "zh_CN": "选择一个文件夹来安装密钥", - "zh_TW": "選擇一個資料夾來安裝密鑰" - } - }, { "ID": "MenuBarActionsManageFileTypes", "Translations": { @@ -13750,131 +13650,6 @@ "zh_TW": "成功安裝系統韌體版本 {0}。" } }, - { - "ID": "DialogKeysInstallerKeysNotFoundErrorMessage", - "Translations": { - "ar_SA": "", - "de_DE": "", - "el_GR": "", - "en_US": "An invalid Keys file was found in {0}", - "es_ES": "Se halló un archivo Keys inválido en {0}", - "fr_FR": "Un fichier de Clés invalide a été trouvé dans {0}", - "he_IL": "", - "it_IT": "È stato trovato un file di chiavi non valido in {0}", - "ja_JP": "", - "ko_KR": "{0}에서 잘못된 키 파일이 발견", - "no_NO": "En ugyldig Keys-fil ble funnet i {0}.", - "pl_PL": "", - "pt_BR": "Um arquivo Chaves inválido foi encontrado em {0}", - "ru_RU": "В {0} найден некорректный файл ключей", - "sv_SE": "En ogiltig nyckelfil hittades i {0}", - "th_TH": "พบไฟล์ Keys ที่ไม่ถูกต้องใน {0}", - "tr_TR": "", - "uk_UA": "Виявлено неправильний файл ключів у теці {0}", - "zh_CN": "在 {0} 发现了一个无效的密匙文件", - "zh_TW": "找到無效的金鑰檔案 {0}" - } - }, - { - "ID": "DialogKeysInstallerKeysInstallMessage", - "Translations": { - "ar_SA": "سيتم تثبيت ملف مفاتيح جديد.", - "de_DE": "Eine neue Schlüsseldatei wird installiert.", - "el_GR": "Ένα νέο αρχείο Κλειδιών θα εγκατασταθεί.", - "en_US": "New Keys file will be installed.", - "es_ES": "Un nuevo archivo de Claves será instalado.", - "fr_FR": "Nouveau fichier de Clés sera installé.", - "he_IL": "קובץ מפתחות חדש יותקן.", - "it_IT": "Un nuovo file di chiavi sarà installato.", - "ja_JP": "新しいキー ファイルがインストールされます。", - "ko_KR": "새로운 키 파일이 설치됩니다.", - "no_NO": "Ny Keys-fil vil bli installert.", - "pl_PL": "Nowy plik kluczy zostanie zainstalowany.", - "pt_BR": "O novo arquivo Chaves será instalado.", - "ru_RU": "Будут установлены новые ключи.", - "sv_SE": "Ny nyckelfil kommer att installeras.", - "th_TH": "กำลังติดตั้งไฟล์ Keys ใหม่", - "tr_TR": "Yeni anahtar dosyası yüklenecek.", - "uk_UA": "Новий файл Ключів буде встановлено.", - "zh_CN": "将会安装新密匙文件。", - "zh_TW": "將會安裝新增的金鑰檔案。" - } - }, - { - "ID": "DialogKeysInstallerKeysInstallSubMessage", - "Translations": { - "ar_SA": "\n\nقد يحل هذا محل بعض المفاتيح المثبتة حاليًا.", - "de_DE": "\n\nDies könnte einige der derzeit installierten Schlüssel ersetzen.", - "el_GR": "\n\nΑυτό μπορεί να αντικαταστήσει μερικά από τα τρέχοντα εγκατεστημένα κλειδιά.", - "en_US": "\n\nThis may replace some of the current installed Keys.", - "es_ES": "\n\nEsto puede reemplazar algunas de las Keys actualmente instaladas.", - "fr_FR": "\n\nCela peut remplacer certaines des Clés actuellement installées.", - "he_IL": "\n\nזה עשוי להחליף חלק מהמפתחות המותקנים הנוכחיים.", - "it_IT": "\n\nAlcune delle chiavi già installate potrebbero essere sovrascritte.", - "ja_JP": "\n\nこれにより、現在インストールされているキーの一部が置き換えられる場合があります。", - "ko_KR": "\n\n이로 인해 현재 설치된 키 중 일부가 대체될 수 있습니다.", - "no_NO": "\n\nDette kan erstatte noen av de nåværende installerte nøklene.", - "pl_PL": "\n\nTo może zastąpić niektóre z aktualnie zainstalowanych kluczy.", - "pt_BR": "\n\nIsso pode substituir algumas das chaves instaladas atualmente.", - "ru_RU": "\n\nЭто может заменить некоторые из текущих установленных ключей.", - "sv_SE": "\n\nDetta kan ersätta några av de redan installerade nycklarna.", - "th_TH": "\n\nสิ่งนี้อาจทำให้ไฟล์ Keys บางส่วนที่ติดตั้งอยู่ถูกแทนที่", - "tr_TR": "\n\nBu, şu anda kurulu olan anahtarların bazılarının yerine geçebilir.", - "uk_UA": "\n\nЦе замінить собою поточні файли Ключів.", - "zh_CN": "\n\n这也许会替换掉一些当前已安装的密匙", - "zh_TW": "\n\n這將取代部分已安裝的金鑰。" - } - }, - { - "ID": "DialogKeysInstallerKeysInstallWaitMessage", - "Translations": { - "ar_SA": "جارٍ تثبيت المفاتيح...", - "de_DE": "Schlüssel werden installiert...", - "el_GR": "Εγκατάσταση κλειδιών...", - "en_US": "Installing Keys...", - "es_ES": "Instalando Claves...", - "fr_FR": "Installation des Clés...", - "he_IL": "מתקין מפתחות...", - "it_IT": "Installazione delle chiavi...", - "ja_JP": "キーをインストールしています...", - "ko_KR": "키 설치 중...", - "no_NO": "Installere nøkler...", - "pl_PL": "Instalowanie kluczy...", - "pt_BR": "Instalando Chaves...", - "ru_RU": "Установка ключей...", - "sv_SE": "Installerar nycklar...", - "th_TH": "กำลังดำเนินการติดตั้ง Keys...", - "tr_TR": "Anahtarlar yükleniyor...", - "uk_UA": "Встановлення Ключів...", - "zh_CN": "安装密匙中。。。", - "zh_TW": "正在安裝金鑰..." - } - }, - { - "ID": "DialogKeysInstallerKeysInstallSuccessMessage", - "Translations": { - "ar_SA": "تم تثبيت ملف المفاتيح الجديد بنجاح.", - "de_DE": "Neue Schlüsseldatei erfolgreich installiert.", - "el_GR": "Το νέο αρχείο Κλειδιών εγκαταστάθηκε με επιτυχία.", - "en_US": "New Keys file successfully installed.", - "es_ES": "Nuevo archivo Keys instalado con éxito.", - "fr_FR": "Nouveau fichier de Clés a été installé.", - "he_IL": "הקובץ החדש של המפתחות הותקן בהצלחה.", - "it_IT": "Nuovo file di chiavi installato con successo.", - "ja_JP": "新しいキー ファイルが正常にインストールされました。", - "ko_KR": "새로운 키 파일이 성공적으로 설치되었습니다.", - "no_NO": "Ny Keys -fil installert.", - "pl_PL": "Nowy plik kluczy został pomyślnie zainstalowany.", - "pt_BR": "Novo arquivo de chaves instalado com sucesso.", - "ru_RU": "Новые ключи успешно установлены.", - "sv_SE": "Ny nyckelfil installerades.", - "th_TH": "การติดตั้งไฟล์ Keys ใหม่เสร็จสมบูรณ์แล้ว", - "tr_TR": "Yeni anahtar dosyası başarıyla yüklendi.", - "uk_UA": "Нові ключі встановлено.", - "zh_CN": "已成功安装新密匙文件", - "zh_TW": "成功安裝新增的金鑰檔案。" - } - }, { "ID": "DialogUserProfileDeletionWarningMessage", "Translations": { @@ -17200,31 +16975,6 @@ "zh_TW": "在 {0} 清除著色器快取時出錯: {1}" } }, - { - "ID": "UserErrorNoKeys", - "Translations": { - "ar_SA": "المفاتيح غير موجودة", - "de_DE": "Keys nicht gefunden", - "el_GR": "Τα κλειδιά δεν βρέθηκαν", - "en_US": "Keys not found", - "es_ES": "No se encontraron claves", - "fr_FR": "Clés non trouvées", - "he_IL": "המפתחות לא נמצאו", - "it_IT": "Chiavi non trovate", - "ja_JP": "Keys がありません", - "ko_KR": "키를 찾을 수 없음", - "no_NO": "Finner ikke nøkler", - "pl_PL": "Nie znaleziono kluczy", - "pt_BR": "Chaves não encontradas", - "ru_RU": "Ключи не найдены", - "sv_SE": "Nycklarna hittades inte", - "th_TH": "ไม่พบ คีย์", - "tr_TR": "Keys bulunamadı", - "uk_UA": "Ключі не знайдено", - "zh_CN": "找不到密钥Keys", - "zh_TW": "找不到金鑰" - } - }, { "ID": "UserErrorNoFirmware", "Translations": { @@ -17350,31 +17100,6 @@ "zh_TW": "未定義錯誤" } }, - { - "ID": "UserErrorNoKeysDescription", - "Translations": { - "ar_SA": "لم يتمكن ريوجينكس من العثور على ملف 'prod.keys' الخاص بك", - "de_DE": "Ryujinx konnte deine 'prod.keys' Datei nicht finden", - "el_GR": "Το Ryujinx δεν κατάφερε να εντοπίσει το αρχείο 'prod.keys'", - "en_US": "Ryujinx was unable to find your 'prod.keys' file", - "es_ES": "Ryujinx no pudo encontrar tus 'prod.keys'.", - "fr_FR": "Ryujinx n'a pas pu trouver votre fichier 'prod.keys'", - "he_IL": "ריוג'ינקס לא הצליח למצוא את קובץ ה-'prod.keys' שלך", - "it_IT": "Ryujinx non è riuscito a trovare il file 'prod.keys'", - "ja_JP": "'prod.keys' が見つかりませんでした", - "ko_KR": "Ryujinx가 'prod.keys' 파일을 찾지 못함", - "no_NO": "Ryujinx kunne ikke finne 'prod.keys' filen din", - "pl_PL": "Ryujinx nie mógł znaleźć twojego pliku 'prod.keys'", - "pt_BR": "Ryujinx não conseguiu encontrar o seu arquivo 'prod.keys'", - "ru_RU": "Ryujinx не удалось найти ваш 'prod.keys' файл", - "sv_SE": "Ryujinx kunde inte hitta din 'prod.keys'-fil", - "th_TH": "Ryujinx ไม่พบไฟล์ 'prod.keys' ในเครื่องของคุณ", - "tr_TR": "Ryujinx 'prod.keys' dosyasını bulamadı", - "uk_UA": "Ryujinx не вдалося знайти ваш файл «prod.keys».", - "zh_CN": "Ryujinx 模拟器找不到“prod.keys”密钥文件", - "zh_TW": "Ryujinx 無法找到您的「prod.keys」檔案" - } - }, { "ID": "UserErrorNoFirmwareDescription", "Translations": { diff --git a/src/Ryujinx/UI/Helpers/UserErrorDialog.cs b/src/Ryujinx/UI/Helpers/UserErrorDialog.cs index c30fb4348..1242ed3be 100644 --- a/src/Ryujinx/UI/Helpers/UserErrorDialog.cs +++ b/src/Ryujinx/UI/Helpers/UserErrorDialog.cs @@ -14,7 +14,7 @@ namespace Ryujinx.Ava.UI.Helpers private static string GetErrorTitle(UserError error) => error switch { - UserError.NoKeys => LocaleManager.Instance[LocaleKeys.UserErrorNoKeys], + UserError.NoKeys => LocaleManager.Instance[LocaleKeys.Keys_UserError_NoKeys], UserError.NoFirmware => LocaleManager.Instance[LocaleKeys.UserErrorNoFirmware], UserError.FirmwareParsingFailed => LocaleManager.Instance[LocaleKeys.UserErrorFirmwareParsingFailed], UserError.ApplicationNotFound => LocaleManager.Instance[LocaleKeys.UserErrorApplicationNotFound], @@ -25,7 +25,7 @@ namespace Ryujinx.Ava.UI.Helpers private static string GetErrorDescription(UserError error) => error switch { - UserError.NoKeys => LocaleManager.Instance[LocaleKeys.UserErrorNoKeysDescription], + UserError.NoKeys => LocaleManager.Instance[LocaleKeys.Keys_UserError_NoKeys_Description], UserError.NoFirmware => LocaleManager.Instance[LocaleKeys.UserErrorNoFirmwareDescription], UserError.FirmwareParsingFailed => LocaleManager.Instance[LocaleKeys.UserErrorFirmwareParsingFailedDescription], UserError.ApplicationNotFound => LocaleManager.Instance[LocaleKeys.UserErrorApplicationNotFoundDescription], diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs index 7d3b6a666..f487de934 100644 --- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs +++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs @@ -1027,18 +1027,18 @@ namespace Ryujinx.Ava.UI.ViewModels } string dialogTitle = - LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.MenuBarActionsInstallKeys); + LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.Keys_MenuBarActions_Install); string dialogMessage = - LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogKeysInstallerKeysInstallMessage); + LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.Keys_DialogKeysInstaller_KeysInstallMessage); if (ContentManager.AreKeysAlredyPresent(systemDirectory)) { dialogMessage += LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys - .DialogKeysInstallerKeysInstallSubMessage); + .Keys_DialogKeysInstaller_KeysInstallSubMessage); } - dialogMessage += LocaleManager.Instance[LocaleKeys.DialogFirmwareInstallerFirmwareAndKeysInstallConfirmMessage]; + dialogMessage += LocaleManager.Instance[LocaleKeys.Keys_DialogKeysInstaller_InstallConfirmMessage]; UserResult result = await ContentDialogHelper.CreateConfirmationDialog( dialogTitle, @@ -1048,7 +1048,7 @@ namespace Ryujinx.Ava.UI.ViewModels LocaleManager.Instance[LocaleKeys.RyujinxConfirm]); UpdateWaitWindow waitingDialog = new(dialogTitle, - LocaleManager.Instance[LocaleKeys.DialogKeysInstallerKeysInstallWaitMessage]); + LocaleManager.Instance[LocaleKeys.Keys_DialogKeysInstaller_KeysInstallWaitMessage]); if (result == UserResult.Yes) { @@ -1071,7 +1071,7 @@ namespace Ryujinx.Ava.UI.ViewModels string message = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys - .DialogKeysInstallerKeysInstallSuccessMessage); + .Keys_DialogKeysInstaller_KeysInstallSuccessMessage); await ContentDialogHelper.CreateInfoDialog( dialogTitle, @@ -1093,7 +1093,7 @@ namespace Ryujinx.Ava.UI.ViewModels if (ex is FormatException) { message = LocaleManager.Instance.UpdateAndGetDynamicValue( - LocaleKeys.DialogKeysInstallerKeysNotFoundErrorMessage, filename); + LocaleKeys.Keys_DialogKeysInstaller_KeysNotFoundErrorMessage, filename); } await ContentDialogHelper.CreateErrorDialog(message); @@ -1406,7 +1406,7 @@ namespace Ryujinx.Ava.UI.ViewModels { Optional result = await StorageProvider.OpenSingleFilePickerAsync(new FilePickerOpenOptions { - Title = LocaleManager.Instance[LocaleKeys.InstallKeysFromFileDialogTitle], + Title = LocaleManager.Instance[LocaleKeys.Keys_InstallFromFile_DialogTitle], FileTypeFilter = new List { new("KEYS") @@ -1428,7 +1428,7 @@ namespace Ryujinx.Ava.UI.ViewModels { Optional result = await StorageProvider.OpenSingleFolderPickerAsync(new FolderPickerOpenOptions { - Title = LocaleManager.Instance[LocaleKeys.InstallKeysFromFolderDialogTitle] + Title = LocaleManager.Instance[LocaleKeys.Keys_InstallFromFolder_DialogTitle] }); if (result.HasValue) diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml index 0de243bb4..ca6a12262 100755 --- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml +++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml @@ -227,9 +227,9 @@ IsEnabled="{Binding IsGameRunning}" /> - - - + + +