From 3dd51b0801cdfa4aca3de9d8512cf738f533f532 Mon Sep 17 00:00:00 2001
From: Daniel Nylander
Date: Thu, 14 Nov 2024 18:58:35 +0100
Subject: [PATCH 001/674] Enabling all translations
---
src/Ryujinx/Ryujinx.csproj | 15 +++++++++++++--
1 file changed, 13 insertions(+), 2 deletions(-)
diff --git a/src/Ryujinx/Ryujinx.csproj b/src/Ryujinx/Ryujinx.csproj
index b41ec1cd4..e0b1942e8 100644
--- a/src/Ryujinx/Ryujinx.csproj
+++ b/src/Ryujinx/Ryujinx.csproj
@@ -112,23 +112,29 @@
+
+
+
+
-
+
+
+
@@ -139,18 +145,23 @@
+
+
+
+
-
+
+
--
2.47.1
From 908568bd9250e5a1e3975a19f3dcc7794a05fdd3 Mon Sep 17 00:00:00 2001
From: Daniel Nylander
Date: Thu, 14 Nov 2024 18:59:13 +0100
Subject: [PATCH 002/674] Adding all translations from Crowdin
---
src/Ryujinx/Assets/Locales/ar_SA.json | 63 +--
src/Ryujinx/Assets/Locales/ca_ES.json | 785 ++++++++++++++++++++++++++
src/Ryujinx/Assets/Locales/cs_CZ.json | 785 ++++++++++++++++++++++++++
src/Ryujinx/Assets/Locales/de_DE.json | 57 +-
src/Ryujinx/Assets/Locales/el_GR.json | 127 ++---
src/Ryujinx/Assets/Locales/en_US.json | 103 +---
src/Ryujinx/Assets/Locales/es_ES.json | 224 ++++----
src/Ryujinx/Assets/Locales/fi_FI.json | 785 ++++++++++++++++++++++++++
src/Ryujinx/Assets/Locales/fr_FR.json | 305 +++++-----
src/Ryujinx/Assets/Locales/he_IL.json | 65 +--
src/Ryujinx/Assets/Locales/it_IT.json | 69 +--
src/Ryujinx/Assets/Locales/ja_JP.json | 46 +-
src/Ryujinx/Assets/Locales/ko_KR.json | 771 ++++++++++++-------------
src/Ryujinx/Assets/Locales/no_NO.json | 785 ++++++++++++++++++++++++++
src/Ryujinx/Assets/Locales/pl_PL.json | 167 +++---
src/Ryujinx/Assets/Locales/pt_BR.json | 229 ++++----
src/Ryujinx/Assets/Locales/ru_RU.json | 49 +-
src/Ryujinx/Assets/Locales/sv_SE.json | 785 ++++++++++++++++++++++++++
src/Ryujinx/Assets/Locales/th_TH.json | 453 +++++++--------
src/Ryujinx/Assets/Locales/tr_TR.json | 155 +++--
src/Ryujinx/Assets/Locales/uk_UA.json | 203 +++----
src/Ryujinx/Assets/Locales/zh_CN.json | 43 +-
src/Ryujinx/Assets/Locales/zh_TW.json | 49 +-
23 files changed, 5220 insertions(+), 1883 deletions(-)
create mode 100644 src/Ryujinx/Assets/Locales/ca_ES.json
create mode 100644 src/Ryujinx/Assets/Locales/cs_CZ.json
create mode 100644 src/Ryujinx/Assets/Locales/fi_FI.json
create mode 100644 src/Ryujinx/Assets/Locales/no_NO.json
create mode 100644 src/Ryujinx/Assets/Locales/sv_SE.json
diff --git a/src/Ryujinx/Assets/Locales/ar_SA.json b/src/Ryujinx/Assets/Locales/ar_SA.json
index 495ab4b4d..197d5531f 100644
--- a/src/Ryujinx/Assets/Locales/ar_SA.json
+++ b/src/Ryujinx/Assets/Locales/ar_SA.json
@@ -1,5 +1,5 @@
{
- "Language": "اَلْعَرَبِيَّةُ",
+ "Language": "العربية",
"MenuBarFileOpenApplet": "فتح التطبيق المصغر",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "افتح تطبيق تحرير Mii في الوضع المستقل",
"SettingsTabInputDirectMouseAccess": "الوصول المباشر للفأرة",
@@ -10,23 +10,21 @@
"SettingsTabSystemUseHypervisor": "استخدم مراقب الأجهزة الافتراضية",
"MenuBarFile": "_ملف",
"MenuBarFileOpenFromFile": "_تحميل تطبيق من ملف",
- "MenuBarFileOpenFromFileError": "No applications found in selected file.",
+ "MenuBarFileOpenFromFileError": "لم يتم العثور على تطبيقات في الملف المحدد.",
"MenuBarFileOpenUnpacked": "تحميل لُعْبَة غير محزومة",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
- "MenuBarFileOpenEmuFolder": "فتح مجلد Ryujinx",
+ "MenuBarFileOpenEmuFolder": "فتح مجلد ريوجينكس",
"MenuBarFileOpenLogsFolder": "فتح مجلد السجلات",
"MenuBarFileExit": "_خروج",
"MenuBarOptions": "_خيارات",
"MenuBarOptionsToggleFullscreen": "التبديل إلى وضع ملء الشاشة",
"MenuBarOptionsStartGamesInFullscreen": "ابدأ الألعاب في وضع ملء الشاشة",
"MenuBarOptionsStopEmulation": "إيقاف المحاكاة",
- "MenuBarOptionsSettings": "_الإعدادات",
+ "MenuBarOptionsSettings": "_إعدادات",
"MenuBarOptionsManageUserProfiles": "_إدارة الملفات الشخصية للمستخدم",
- "MenuBarActions": "_الإجراءات",
+ "MenuBarActions": "_أجراءات",
"MenuBarOptionsSimulateWakeUpMessage": "محاكاة رسالة الاستيقاظ",
"MenuBarActionsScanAmiibo": "فحص Amiibo",
- "MenuBarTools": "_الأدوات",
+ "MenuBarTools": "_أدوات",
"MenuBarToolsInstallFirmware": "تثبيت البرنامج الثابت",
"MenuBarFileToolsInstallFirmwareFromFile": "تثبيت برنامج ثابت من XCI أو ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "تثبيت برنامج ثابت من مجلد",
@@ -42,7 +40,7 @@
"MenuBarHelpAbout": "حول",
"MenuSearch": "بحث...",
"GameListHeaderFavorite": "مفضلة",
- "GameListHeaderIcon": "الأيقونة",
+ "GameListHeaderIcon": "أيقونة",
"GameListHeaderApplication": "الاسم",
"GameListHeaderDeveloper": "المطور",
"GameListHeaderVersion": "الإصدار",
@@ -100,14 +98,11 @@
"SettingsTabGeneralCheckUpdatesOnLaunch": "التحقق من وجود تحديثات عند التشغيل",
"SettingsTabGeneralShowConfirmExitDialog": "إظهار مربع حوار \"تأكيد الخروج\"",
"SettingsTabGeneralRememberWindowState": "تذكر حجم/موضع النافذة",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
"SettingsTabGeneralHideCursor": "إخفاء المؤشر:",
"SettingsTabGeneralHideCursorNever": "مطلقا",
"SettingsTabGeneralHideCursorOnIdle": "عند الخمول",
"SettingsTabGeneralHideCursorAlways": "دائما",
"SettingsTabGeneralGameDirectories": "مجلدات الألعاب",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "إضافة",
"SettingsTabGeneralRemove": "إزالة",
"SettingsTabSystem": "النظام",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "توقيت النظام:",
"SettingsTabSystemEnableVsync": "VSync",
"SettingsTabSystemEnablePptc": "PPTC (ذاكرة التخزين المؤقت للترجمة المستمرة)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "التحقق من سلامة نظام الملفات",
"SettingsTabSystemAudioBackend": "خلفية الصوت:",
"SettingsTabSystemAudioBackendDummy": "زائف",
@@ -151,15 +145,10 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "هاكات",
"SettingsTabSystemHacksNote": "قد يتسبب في عدم الاستقرار",
- "SettingsTabSystemDramSize": "استخدام تخطيط الذاكرة البديل (المطورين)",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "توسيع DRAM إلى 8GiB",
"SettingsTabSystemIgnoreMissingServices": "تجاهل الخدمات المفقودة",
- "SettingsTabSystemIgnoreApplet": "Ignore Applet",
"SettingsTabGraphics": "الرسومات",
- "SettingsTabGraphicsAPI": "API الرسومات ",
+ "SettingsTabGraphicsAPI": "برمجة تطبيقات الرسومات",
"SettingsTabGraphicsEnableShaderCache": "تفعيل ذاكرة المظللات المؤقتة",
"SettingsTabGraphicsAnisotropicFiltering": "تصفية:",
"SettingsTabGraphicsAnisotropicFilteringAuto": "تلقائي",
@@ -303,9 +292,9 @@
"KeyDown": "اسفل",
"KeyLeft": "يسار",
"KeyRight": "يمين",
- "KeyEnter": "مفتاح الإدخال",
+ "KeyEnter": "زر Enter",
"KeyEscape": "زر Escape",
- "KeySpace": "مسافة",
+ "KeySpace": "زر المسافة",
"KeyTab": "زر Tab",
"KeyBackSpace": "زر المسح للخلف",
"KeyInsert": "زر Insert",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "تعيين لون الخلفية",
"AvatarClose": "إغلاق",
"ControllerSettingsLoadProfileToolTip": "تحميل الملف الشخصي",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "إضافة ملف شخصي",
"ControllerSettingsRemoveProfileToolTip": "إزالة الملف الشخصي",
"ControllerSettingsSaveProfileToolTip": "حفظ الملف الشخصي",
@@ -417,7 +405,7 @@
"GameListContextMenuToggleFavorite": "تعيين كمفضل",
"GameListContextMenuToggleFavoriteToolTip": "تبديل الحالة المفضلة للعبة",
"SettingsTabGeneralTheme": "السمة:",
- "SettingsTabGeneralThemeAuto": "Auto",
+ "SettingsTabGeneralThemeAuto": "تلقائي",
"SettingsTabGeneralThemeDark": "داكن",
"SettingsTabGeneralThemeLight": "فاتح",
"ControllerSettingsConfigureGeneral": "ضبط",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "حدث خطأ أثناء البحث عن بيانات الحفظ المحددة: {0}",
"FolderDialogExtractTitle": "اختر المجلد الذي تريد الاستخراج إليه",
"DialogNcaExtractionMessage": "استخراج قسم {0} من {1}...",
- "DialogNcaExtractionTitle": "مستخرج قسم NCA",
+ "DialogNcaExtractionTitle": "ريوجينكس - مستخرج قسم NCA",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "فشل الاستخراج. لم يكن NCA الرئيسي موجودا في الملف المحدد.",
"DialogNcaExtractionCheckLogErrorMessage": "فشل الاستخراج. اقرأ ملف التسجيل لمزيد من المعلومات.",
"DialogNcaExtractionSuccessMessage": "تم الاستخراج بنجاح.",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "أنت غير متصل بالإنترنت.",
"DialogUpdaterNoInternetSubMessage": "يرجى التحقق من أن لديك اتصال إنترنت فعال!",
"DialogUpdaterDirtyBuildMessage": "لا يمكنك تحديث نسخة القذرة من ريوجينكس!",
- "DialogUpdaterDirtyBuildSubMessage": "الرجاء تحميل ريوجينكس من https://https://github.com/GreemDev/Ryujinx/releases إذا كنت تبحث عن إصدار مدعوم.",
+ "DialogUpdaterDirtyBuildSubMessage": "الرجاء تحميل ريوجينكس من https://ryujinx.org إذا كنت تبحث عن إصدار مدعوم.",
"DialogRestartRequiredMessage": "يتطلب إعادة التشغيل",
"DialogThemeRestartMessage": "تم حفظ السمة. إعادة التشغيل مطلوبة لتطبيق السمة.",
"DialogThemeRestartSubMessage": "هل تريد إعادة التشغيل",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "أدخل مجلد اللعبة لإضافته إلى القائمة",
"AddGameDirTooltip": "إضافة مجلد اللعبة إلى القائمة",
"RemoveGameDirTooltip": "إزالة مجلد اللعبة المحدد",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "استخدم سمة أفالونيا المخصصة لواجهة المستخدم الرسومية لتغيير مظهر قوائم المحاكي",
"CustomThemePathTooltip": "مسار سمة واجهة المستخدم المخصصة",
"CustomThemeBrowseTooltip": "تصفح للحصول على سمة واجهة المستخدم المخصصة",
@@ -583,7 +568,6 @@
"TimeTooltip": "تغيير وقت النظام",
"VSyncToggleTooltip": "محاكاة المزامنة العمودية للجهاز. في الأساس محدد الإطار لغالبية الألعاب؛ قد يؤدي تعطيله إلى تشغيل الألعاب بسرعة أعلى أو جعل شاشات التحميل تستغرق وقتا أطول أو تتعطل.\n\nيمكن تبديله داخل اللعبة باستخدام مفتاح التشغيل السريع الذي تفضله (F1 افتراضيا). نوصي بالقيام بذلك إذا كنت تخطط لتعطيله.\n\nاتركه ممكنا إذا لم تكن متأكدا.",
"PptcToggleTooltip": "يحفظ وظائف JIT المترجمة بحيث لا تحتاج إلى ترجمتها في كل مرة يتم فيها تحميل اللعبة.\n\nيقلل من التقطيع ويسرع بشكل ملحوظ أوقات التشغيل بعد التشغيل الأول للعبة.\n\nاتركه ممكنا إذا لم تكن متأكدا.",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
"FsIntegrityToggleTooltip": "يتحقق من وجود ملفات تالفة عند تشغيل لعبة ما، وإذا تم اكتشاف ملفات تالفة، فسيتم عرض خطأ تجزئة في السجل.\n\nليس له أي تأثير على الأداء ويهدف إلى المساعدة في استكشاف الأخطاء وإصلاحها.\n\nاتركه مفعلا إذا كنت غير متأكد.",
"AudioBackendTooltip": "يغير الواجهة الخلفية المستخدمة لتقديم الصوت.\n\nSDL2 هو الخيار المفضل، بينما يتم استخدام OpenAL وSoundIO كبديلين. زائف لن يكون لها صوت.\n\nاضبط على SDL2 إذا لم تكن متأكدا.",
"MemoryManagerTooltip": "تغيير كيفية تعيين ذاكرة الضيف والوصول إليها. يؤثر بشكل كبير على أداء وحدة المعالجة المركزية التي تمت محاكاتها.\n\nاضبط على المضيف غير محدد إذا لم تكن متأكدا.",
@@ -591,9 +575,8 @@
"MemoryManagerHostTooltip": "تعيين الذاكرة مباشرة في مساحة عنوان المضيف. تجميع وتنفيذ JIT أسرع بكثير.",
"MemoryManagerUnsafeTooltip": "تعيين الذاكرة مباشرة، ولكن لا تخفي العنوان داخل مساحة عنوان الضيف قبل الوصول. أسرع، ولكن على حساب السلامة. يمكن لتطبيق الضيف الوصول إلى الذاكرة من أي مكان في ريوجينكس، لذا قم بتشغيل البرامج التي تثق بها فقط مع هذا الوضع.",
"UseHypervisorTooltip": "استخدم هايبرڤايزور بدلا من JIT. يعمل على تحسين الأداء بشكل كبير عند توفره، ولكنه قد يكون غير مستقر في حالته الحالية.",
- "DRamTooltip": "يستخدم تخطيط وضع الذاكرة البديل لتقليد نموذج سويتش المطورين.\n\nيعد هذا مفيدا فقط لحزم النسيج عالية الدقة أو تعديلات دقة 4K. لا يحسن الأداء.\n\nاتركه معطلا إذا لم تكن متأكدا.",
+ "DRamTooltip": "يستخدم تخطيط وضع الذاكرة البديل لتقليد نموذج Switch المطورين.\n\nيعد هذا مفيدا فقط لحزم النسيج عالية الدقة أو تعديلات دقة 4K. لا يحسن الأداء.\n\nاتركه معطلا إذا لم تكن متأكدا.",
"IgnoreMissingServicesTooltip": "يتجاهل خدمات نظام هوريزون غير المنفذة. قد يساعد هذا في تجاوز الأعطال عند تشغيل ألعاب معينة.\n\nاتركه معطلا إذا كنت غير متأكد.",
- "IgnoreAppletTooltip": "لن يظهر مربع الحوار الخارجي \"تطبيق وحدة التحكم\" إذا تم فصل لوحة الألعاب أثناء اللعب. ولن تظهر مطالبة بإغلاق مربع الحوار أو إعداد وحدة تحكم جديدة. وبمجرد إعادة توصيل وحدة التحكم التي تم فصلها سابقًا، ستستأنف اللعبة تلقائيًا.",
"GraphicsBackendThreadingTooltip": "ينفذ أوامر الواجهة الخلفية للرسومات على مسار ثاني.\n\nيعمل على تسريع عملية تجميع المظللات وتقليل التقطيع وتحسين الأداء على برامج تشغيل وحدة الرسوميات دون دعم المسارات المتعددة الخاصة بهم. أداء أفضل قليلا على برامج التشغيل ذات المسارات المتعددة.\n\nاضبط على تلقائي إذا لم تكن متأكدا.",
"GalThreadingTooltip": "ينفذ أوامر الواجهة الخلفية للرسومات على مسار ثاني.\n\nيعمل على تسريع عملية تجميع المظللات وتقليل التقطيع وتحسين الأداء على برامج تشغيل وحدة الرسوميات دون دعم المسارات المتعددة الخاصة بهم. أداء أفضل قليلا على برامج التشغيل ذات المسارات المتعددة.\n\nاضبط على تلقائي إذا لم تكن متأكدا.",
"ShaderCacheToggleTooltip": "يحفظ ذاكرة المظللات المؤقتة على القرص مما يقلل من التقطيع في عمليات التشغيل اللاحقة.\n\nاتركه مفعلا إذا لم تكن متأكدا.",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "طباعة رسائل سجل التصحيح في وحدة التحكم.\n\nاستخدم هذا فقط إذا طلب منك أحد الموظفين تحديدًا ذلك، لأنه سيجعل من الصعب قراءة السجلات وسيؤدي إلى تدهور أداء المحاكي.",
"LoadApplicationFileTooltip": "افتح مستكشف الملفات لاختيار ملف متوافق مع سويتش لتحميله",
"LoadApplicationFolderTooltip": "افتح مستكشف الملفات لاختيار تطبيق متوافق مع سويتش للتحميل",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "فتح مجلد نظام ملفات ريوجينكس",
"OpenRyujinxLogsTooltip": "يفتح المجلد الذي تتم كتابة السجلات إليه",
"ExitTooltip": "الخروج من ريوجينكس",
@@ -669,8 +650,8 @@
"OpenSetupGuideMessage": "فتح دليل الإعداد",
"NoUpdate": "لا يوجد تحديث",
"TitleUpdateVersionLabel": "الإصدار: {0}",
- "TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
- "TitleBundledDlcLabel": "Bundled:",
+ "TitleBundledUpdateVersionLabel": "مجمع: الإصدار {0}",
+ "TitleBundledDlcLabel": "مجمع:",
"RyujinxInfo": "ريوجينكس - معلومات",
"RyujinxConfirm": "ريوجينكس - تأكيد",
"FileDialogAllTypes": "كل الأنواع",
@@ -728,17 +709,9 @@
"DlcWindowTitle": "إدارة المحتوى القابل للتنزيل لـ {0} ({1})",
"ModWindowTitle": "إدارة التعديلات لـ {0} ({1})",
"UpdateWindowTitle": "مدير تحديث العنوان",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "الغش متوفر لـ {0} [{1}]",
"BuildId": "معرف البناء:",
- "DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
"DlcWindowHeading": "المحتويات القابلة للتنزيل {0}",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} تعديل",
"UserProfilesEditProfile": "تعديل المحدد",
"Cancel": "إلغاء",
@@ -785,7 +758,7 @@
"GraphicsAATooltip": "يتم تطبيق تنعيم الحواف على عرض اللعبة.\n\nسوف يقوم FXAA بتعتيم معظم الصورة، بينما سيحاول SMAA العثور على حواف خشنة وتنعيمها.\n\nلا ينصح باستخدامه مع فلتر FSR لتكبير.\n\nيمكن تغيير هذا الخيار أثناء تشغيل اللعبة بالنقر فوق \"تطبيق\" أدناه؛ يمكنك ببساطة تحريك نافذة الإعدادات جانبا والتجربة حتى تجد المظهر المفضل للعبة.\n\nاتركه على لا شيء إذا لم تكن متأكدا.",
"GraphicsAALabel": "تنعيم الحواف:",
"GraphicsScalingFilterLabel": "فلتر التكبير:",
- "GraphicsScalingFilterTooltip": "اختر فلتر التكبير الذي سيتم تطبيقه عند استخدام مقياس الدقة.\n\nيعمل Bilinear بشكل جيد مع الألعاب ثلاثية الأبعاد وهو خيار افتراضي آمن.\n\nيوصى باستخدام Nearest لألعاب البكسل الفنية.\n\nFSR 1.0 هو مجرد مرشح توضيحي، ولا ينصح باستخدامه مع FXAA أو SMAA.\n\nيمكن تغيير هذا الخيار أثناء تشغيل اللعبة بالنقر فوق \"تطبيق\" أدناه؛ يمكنك ببساطة تحريك نافذة الإعدادات جانبا والتجربة حتى تجد المظهر المفضل للعبة.\n\nاتركه على Bilinear إذا لم تكن متأكدا.",
+ "GraphicsScalingFilterTooltip": "اختر فلتر التكبير الذي سيتم تطبيقه عند استخدام مقياس الدقة.\n\nيعمل Bilinear بشكل جيد مع الألعاب ثلاثية الأبعاد وهو خيار افتراضي آمن.\n\nيوصى باستخدام Nearest لألعاب البكسل الفنية.\n\nFSR 1.0 هو مجرد مرشح توضيحي، ولا ينصح باستخدامه مع FXAA أو SMAA.\n\nيمكن تغيير هذا الخيار أثناء تشغيل اللعبة بالنقر فوق \"تطبيق\" أدناه؛ يمكنك ببساطة تحريك نافذة الإعدادات جانبا والتجربة حتى تجد المظهر المفضل للعبة.\n\nArea scaling موصى لخفض الدقات الكبيرة عن حجم النافذة و يمكن استخدمه لتحقيق مضاد الحواف فائق العينة عند التخفيض بمقدار اكثر من x2.\n\nاتركه على Bilinear إذا لم تكن متأكدا.",
"GraphicsScalingFilterBilinear": "Bilinear",
"GraphicsScalingFilterNearest": "Nearest",
"GraphicsScalingFilterFsr": "FSR",
diff --git a/src/Ryujinx/Assets/Locales/ca_ES.json b/src/Ryujinx/Assets/Locales/ca_ES.json
new file mode 100644
index 000000000..7ddee2a52
--- /dev/null
+++ b/src/Ryujinx/Assets/Locales/ca_ES.json
@@ -0,0 +1,785 @@
+{
+ "Language": "Català",
+ "MenuBarFileOpenApplet": "Obrir Applet",
+ "MenuBarFileOpenAppletOpenMiiAppletToolTip": "Obre l'editor de Mii en mode independent",
+ "SettingsTabInputDirectMouseAccess": "Accés directe al ratolí",
+ "SettingsTabSystemMemoryManagerMode": "Mode de gestió de memòria:",
+ "SettingsTabSystemMemoryManagerModeSoftware": "Programari",
+ "SettingsTabSystemMemoryManagerModeHost": "Equip (ràpid)",
+ "SettingsTabSystemMemoryManagerModeHostUnchecked": "Equip sense verificar (encara més ràpid però insegur)",
+ "SettingsTabSystemUseHypervisor": "Utilitzar Hypervisor",
+ "MenuBarFile": "_Arxiu",
+ "MenuBarFileOpenFromFile": "_Carregar aplicació des d'un fitxer",
+ "MenuBarFileOpenFromFileError": "No s'han trobat aplicacions en aquest fitxer.",
+ "MenuBarFileOpenUnpacked": "Carregar joc _desempaquetat",
+ "MenuBarFileOpenEmuFolder": "Obrir la carpeta de Ryujinx",
+ "MenuBarFileOpenLogsFolder": "Obrir la carpeta de registre",
+ "MenuBarFileExit": "_Sortir",
+ "MenuBarOptions": "_Opcions",
+ "MenuBarOptionsToggleFullscreen": "Canviar a pantalla completa.",
+ "MenuBarOptionsStartGamesInFullscreen": "Iniciar jocs en pantalla completa",
+ "MenuBarOptionsStopEmulation": "Atura l'emulació",
+ "MenuBarOptionsSettings": "_Configuració",
+ "MenuBarOptionsManageUserProfiles": "_Gestiona perfils d'usuari",
+ "MenuBarActions": "_Accions",
+ "MenuBarOptionsSimulateWakeUpMessage": "Simula missatge de reactivació",
+ "MenuBarActionsScanAmiibo": "Escanejar un Amiibo",
+ "MenuBarTools": "_Eines",
+ "MenuBarToolsInstallFirmware": "Instal·lar firmware",
+ "MenuBarFileToolsInstallFirmwareFromFile": "Instal·lar un firmware des d'un fitxer XCI o ZIP",
+ "MenuBarFileToolsInstallFirmwareFromDirectory": "Instal·lar un firmware des d'una carpeta",
+ "MenuBarToolsManageFileTypes": "Gestiona el tipus de fitxer",
+ "MenuBarToolsInstallFileTypes": "Instal·lar els tipus de fitxer",
+ "MenuBarToolsUninstallFileTypes": "Desinstal·lar els tipus de fitxer",
+ "MenuBarView": "_Veure",
+ "MenuBarViewWindow": "Mida de la finestra",
+ "MenuBarViewWindow720": "720p",
+ "MenuBarViewWindow1080": "1080p",
+ "MenuBarHelp": "_Ajuda",
+ "MenuBarHelpCheckForUpdates": "Comprova si hi ha actualitzacions",
+ "MenuBarHelpAbout": "En quant a",
+ "MenuSearch": "Cercant...",
+ "GameListHeaderFavorite": "Preferits",
+ "GameListHeaderIcon": "Icona",
+ "GameListHeaderApplication": "Nom",
+ "GameListHeaderDeveloper": "Desenvolupador",
+ "GameListHeaderVersion": "Versió",
+ "GameListHeaderTimePlayed": "Temps jugat",
+ "GameListHeaderLastPlayed": "Últim cop jugat",
+ "GameListHeaderFileExtension": "Extensió del fitxer",
+ "GameListHeaderFileSize": "Mida del fitxer",
+ "GameListHeaderPath": "Directori",
+ "GameListContextMenuOpenUserSaveDirectory": "Open User Save Directory",
+ "GameListContextMenuOpenUserSaveDirectoryToolTip": "Opens the directory which contains Application's User Save",
+ "GameListContextMenuOpenDeviceSaveDirectory": "Open Device Save Directory",
+ "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "Opens the directory which contains Application's Device Save",
+ "GameListContextMenuOpenBcatSaveDirectory": "Open BCAT Save Directory",
+ "GameListContextMenuOpenBcatSaveDirectoryToolTip": "Opens the directory which contains Application's BCAT Save",
+ "GameListContextMenuManageTitleUpdates": "Manage Title Updates",
+ "GameListContextMenuManageTitleUpdatesToolTip": "Opens the Title Update management window",
+ "GameListContextMenuManageDlc": "Gestiona DLC",
+ "GameListContextMenuManageDlcToolTip": "Opens the DLC management window",
+ "GameListContextMenuCacheManagement": "Cache Management",
+ "GameListContextMenuCacheManagementPurgePptc": "Queue PPTC Rebuild",
+ "GameListContextMenuCacheManagementPurgePptcToolTip": "Trigger PPTC to rebuild at boot time on the next game launch",
+ "GameListContextMenuCacheManagementPurgeShaderCache": "Purge Shader Cache",
+ "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "Deletes Application's shader cache",
+ "GameListContextMenuCacheManagementOpenPptcDirectory": "Open PPTC Directory",
+ "GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "Opens the directory which contains Application's PPTC cache",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectory": "Open Shader Cache Directory",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "Opens the directory which contains Application's shader cache",
+ "GameListContextMenuExtractData": "Extreure dades",
+ "GameListContextMenuExtractDataExeFS": "ExeFS",
+ "GameListContextMenuExtractDataExeFSToolTip": "Extract the ExeFS section from Application's current config (including updates)",
+ "GameListContextMenuExtractDataRomFS": "RomFS",
+ "GameListContextMenuExtractDataRomFSToolTip": "Extract the RomFS section from Application's current config (including updates)",
+ "GameListContextMenuExtractDataLogo": "Logotip",
+ "GameListContextMenuExtractDataLogoToolTip": "Extract the Logo section from Application's current config (including updates)",
+ "GameListContextMenuCreateShortcut": "Create Application Shortcut",
+ "GameListContextMenuCreateShortcutToolTip": "Create a Desktop Shortcut that launches the selected Application",
+ "GameListContextMenuCreateShortcutToolTipMacOS": "Create a shortcut in macOS's Applications folder that launches the selected Application",
+ "GameListContextMenuOpenModsDirectory": "Open Mods Directory",
+ "GameListContextMenuOpenModsDirectoryToolTip": "Opens the directory which contains Application's Mods",
+ "GameListContextMenuOpenSdModsDirectory": "Open Atmosphere Mods Directory",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "Opens the alternative SD card Atmosphere directory which contains Application's Mods. Useful for mods that are packaged for real hardware.",
+ "StatusBarGamesLoaded": "{0}/{1} Games Loaded",
+ "StatusBarSystemVersion": "System Version: {0}",
+ "LinuxVmMaxMapCountDialogTitle": "Low limit for memory mappings detected",
+ "LinuxVmMaxMapCountDialogTextPrimary": "Would you like to increase the value of vm.max_map_count to {0}",
+ "LinuxVmMaxMapCountDialogTextSecondary": "Some games might try to create more memory mappings than currently allowed. Ryujinx will crash as soon as this limit gets exceeded.",
+ "LinuxVmMaxMapCountDialogButtonUntilRestart": "Yes, until the next restart",
+ "LinuxVmMaxMapCountDialogButtonPersistent": "Yes, permanently",
+ "LinuxVmMaxMapCountWarningTextPrimary": "Max amount of memory mappings is lower than recommended.",
+ "LinuxVmMaxMapCountWarningTextSecondary": "The current value of vm.max_map_count ({0}) is lower than {1}. Some games might try to create more memory mappings than currently allowed. Ryujinx will crash as soon as this limit gets exceeded.\n\nYou might want to either manually increase the limit or install pkexec, which allows Ryujinx to assist with that.",
+ "Settings": "Configuració",
+ "SettingsTabGeneral": "Interfície d'usuari",
+ "SettingsTabGeneralGeneral": "General",
+ "SettingsTabGeneralEnableDiscordRichPresence": "Enable Discord Rich Presence",
+ "SettingsTabGeneralCheckUpdatesOnLaunch": "Check for Updates on Launch",
+ "SettingsTabGeneralShowConfirmExitDialog": "Show \"Confirm Exit\" Dialog",
+ "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
+ "SettingsTabGeneralHideCursor": "Amagar ratolí:",
+ "SettingsTabGeneralHideCursorNever": "Mai",
+ "SettingsTabGeneralHideCursorOnIdle": "Inactiu",
+ "SettingsTabGeneralHideCursorAlways": "Sempre",
+ "SettingsTabGeneralGameDirectories": "Game Directories",
+ "SettingsTabGeneralAdd": "Afegir",
+ "SettingsTabGeneralRemove": "Treure",
+ "SettingsTabSystem": "Sistema",
+ "SettingsTabSystemCore": "Nucli",
+ "SettingsTabSystemSystemRegion": "Regió del sistema:",
+ "SettingsTabSystemSystemRegionJapan": "Japó",
+ "SettingsTabSystemSystemRegionUSA": "Estats Units d'Amèrica",
+ "SettingsTabSystemSystemRegionEurope": "Europa",
+ "SettingsTabSystemSystemRegionAustralia": "Australia",
+ "SettingsTabSystemSystemRegionChina": "Xina",
+ "SettingsTabSystemSystemRegionKorea": "Corea",
+ "SettingsTabSystemSystemRegionTaiwan": "Taiwan",
+ "SettingsTabSystemSystemLanguage": "System Language:",
+ "SettingsTabSystemSystemLanguageJapanese": "Japonès",
+ "SettingsTabSystemSystemLanguageAmericanEnglish": "American English",
+ "SettingsTabSystemSystemLanguageFrench": "Francès",
+ "SettingsTabSystemSystemLanguageGerman": "Alemany",
+ "SettingsTabSystemSystemLanguageItalian": "Italià",
+ "SettingsTabSystemSystemLanguageSpanish": "Español",
+ "SettingsTabSystemSystemLanguageChinese": "Xinès",
+ "SettingsTabSystemSystemLanguageKorean": "Coreà",
+ "SettingsTabSystemSystemLanguageDutch": "Neerlandès",
+ "SettingsTabSystemSystemLanguagePortuguese": "Portuguès",
+ "SettingsTabSystemSystemLanguageRussian": "Rus",
+ "SettingsTabSystemSystemLanguageTaiwanese": "Taiwanès",
+ "SettingsTabSystemSystemLanguageBritishEnglish": "Anglès Britànic",
+ "SettingsTabSystemSystemLanguageCanadianFrench": "Francès Canadenc",
+ "SettingsTabSystemSystemLanguageLatinAmericanSpanish": "Latin American Spanish",
+ "SettingsTabSystemSystemLanguageSimplifiedChinese": "Simplified Chinese",
+ "SettingsTabSystemSystemLanguageTraditionalChinese": "Traditional Chinese",
+ "SettingsTabSystemSystemTimeZone": "System TimeZone:",
+ "SettingsTabSystemSystemTime": "Hora de l'equip:",
+ "SettingsTabSystemEnableVsync": "Sincronització vertical",
+ "SettingsTabSystemEnablePptc": "PPTC (Profiled Persistent Translation Cache)",
+ "SettingsTabSystemEnableFsIntegrityChecks": "FS Integrity Checks",
+ "SettingsTabSystemAudioBackend": "Motor d'àudio:",
+ "SettingsTabSystemAudioBackendDummy": "Buit",
+ "SettingsTabSystemAudioBackendOpenAL": "OpenAL",
+ "SettingsTabSystemAudioBackendSoundIO": "SoundIO",
+ "SettingsTabSystemAudioBackendSDL2": "SDL2",
+ "SettingsTabSystemHacks": "Correccions",
+ "SettingsTabSystemHacksNote": "May cause instability",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
+ "SettingsTabSystemIgnoreMissingServices": "Ignore Missing Services",
+ "SettingsTabGraphics": "Gràfics",
+ "SettingsTabGraphicsAPI": "API de gràfics",
+ "SettingsTabGraphicsEnableShaderCache": "Enable Shader Cache",
+ "SettingsTabGraphicsAnisotropicFiltering": "Anisotropic Filtering:",
+ "SettingsTabGraphicsAnisotropicFilteringAuto": "Automàtic",
+ "SettingsTabGraphicsAnisotropicFiltering2x": "2x",
+ "SettingsTabGraphicsAnisotropicFiltering4x": "4x",
+ "SettingsTabGraphicsAnisotropicFiltering8x": "8x",
+ "SettingsTabGraphicsAnisotropicFiltering16x": "16x",
+ "SettingsTabGraphicsResolutionScale": "Resolution Scale:",
+ "SettingsTabGraphicsResolutionScaleCustom": "Custom (Not recommended)",
+ "SettingsTabGraphicsResolutionScaleNative": "Native (720p/1080p)",
+ "SettingsTabGraphicsResolutionScale2x": "",
+ "SettingsTabGraphicsResolutionScale3x": "",
+ "SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Not recommended)",
+ "SettingsTabGraphicsAspectRatio": "Relació d'aspecte:",
+ "SettingsTabGraphicsAspectRatio4x3": "4:3",
+ "SettingsTabGraphicsAspectRatio16x9": "16:9",
+ "SettingsTabGraphicsAspectRatio16x10": "16:10",
+ "SettingsTabGraphicsAspectRatio21x9": "21:9",
+ "SettingsTabGraphicsAspectRatio32x9": "32:9",
+ "SettingsTabGraphicsAspectRatioStretch": "Stretch to Fit Window",
+ "SettingsTabGraphicsDeveloperOptions": "Developer Options",
+ "SettingsTabGraphicsShaderDumpPath": "Graphics Shader Dump Path:",
+ "SettingsTabLogging": "Iniciant sessió",
+ "SettingsTabLoggingLogging": "Iniciant sessió",
+ "SettingsTabLoggingEnableLoggingToFile": "Enable Logging to File",
+ "SettingsTabLoggingEnableStubLogs": "Enable Stub Logs",
+ "SettingsTabLoggingEnableInfoLogs": "Enable Info Logs",
+ "SettingsTabLoggingEnableWarningLogs": "Enable Warning Logs",
+ "SettingsTabLoggingEnableErrorLogs": "Enable Error Logs",
+ "SettingsTabLoggingEnableTraceLogs": "Enable Trace Logs",
+ "SettingsTabLoggingEnableGuestLogs": "Enable Guest Logs",
+ "SettingsTabLoggingEnableFsAccessLogs": "Enable Fs Access Logs",
+ "SettingsTabLoggingFsGlobalAccessLogMode": "Fs Global Access Log Mode:",
+ "SettingsTabLoggingDeveloperOptions": "Developer Options",
+ "SettingsTabLoggingDeveloperOptionsNote": "WARNING: Will reduce performance",
+ "SettingsTabLoggingGraphicsBackendLogLevel": "Graphics Backend Log Level:",
+ "SettingsTabLoggingGraphicsBackendLogLevelNone": "Cap",
+ "SettingsTabLoggingGraphicsBackendLogLevelError": "Error",
+ "SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Desacceleració",
+ "SettingsTabLoggingGraphicsBackendLogLevelAll": "Tot",
+ "SettingsTabLoggingEnableDebugLogs": "Enable Debug Logs",
+ "SettingsTabInput": "Entrada",
+ "SettingsTabInputEnableDockedMode": "Mode acoblat",
+ "SettingsTabInputDirectKeyboardAccess": "Direct Keyboard Access",
+ "SettingsButtonSave": "Desar",
+ "SettingsButtonClose": "Tancar",
+ "SettingsButtonOk": "Acceptar",
+ "SettingsButtonCancel": "Cancel·lar",
+ "SettingsButtonApply": "Aplicar",
+ "ControllerSettingsPlayer": "Jugador",
+ "ControllerSettingsPlayer1": "Jugador 1",
+ "ControllerSettingsPlayer2": "Jugador 2",
+ "ControllerSettingsPlayer3": "Jugador 3",
+ "ControllerSettingsPlayer4": "Jugador 4",
+ "ControllerSettingsPlayer5": "Jugador 5",
+ "ControllerSettingsPlayer6": "Jugador 6",
+ "ControllerSettingsPlayer7": "Jugador 7",
+ "ControllerSettingsPlayer8": "Jugador 8",
+ "ControllerSettingsHandheld": "Portàtil",
+ "ControllerSettingsInputDevice": "Dispositiu d'entrada",
+ "ControllerSettingsRefresh": "Refrescar",
+ "ControllerSettingsDeviceDisabled": "Deshabilitat",
+ "ControllerSettingsControllerType": "Tipus de controlador",
+ "ControllerSettingsControllerTypeHandheld": "Portàtil",
+ "ControllerSettingsControllerTypeProController": "Controlador Pro",
+ "ControllerSettingsControllerTypeJoyConPair": "Parell JoyCon",
+ "ControllerSettingsControllerTypeJoyConLeft": "JoyCon esquerra",
+ "ControllerSettingsControllerTypeJoyConRight": "JoyCon dret",
+ "ControllerSettingsProfile": "Perfil",
+ "ControllerSettingsProfileDefault": "Per defecte",
+ "ControllerSettingsLoad": "Carregar",
+ "ControllerSettingsAdd": "Afegir",
+ "ControllerSettingsRemove": "Treure",
+ "ControllerSettingsButtons": "Botons",
+ "ControllerSettingsButtonA": "A",
+ "ControllerSettingsButtonB": "B",
+ "ControllerSettingsButtonX": "X",
+ "ControllerSettingsButtonY": "Y",
+ "ControllerSettingsButtonPlus": "+",
+ "ControllerSettingsButtonMinus": "-",
+ "ControllerSettingsDPad": "Directional Pad",
+ "ControllerSettingsDPadUp": "Amunt",
+ "ControllerSettingsDPadDown": "Avall",
+ "ControllerSettingsDPadLeft": "Esquerra",
+ "ControllerSettingsDPadRight": "Dreta",
+ "ControllerSettingsStickButton": "Botó",
+ "ControllerSettingsStickUp": "Amunt",
+ "ControllerSettingsStickDown": "Avall",
+ "ControllerSettingsStickLeft": "Esquerra",
+ "ControllerSettingsStickRight": "Dreta",
+ "ControllerSettingsStickStick": "Palanca",
+ "ControllerSettingsStickInvertXAxis": "Inverteix palanca X",
+ "ControllerSettingsStickInvertYAxis": "Inverteix palanca Y",
+ "ControllerSettingsStickDeadzone": "Zona morta:",
+ "ControllerSettingsLStick": "Palanca esquerra",
+ "ControllerSettingsRStick": "Palanca dreta",
+ "ControllerSettingsTriggersLeft": "Triggers Left",
+ "ControllerSettingsTriggersRight": "Gatells drets",
+ "ControllerSettingsTriggersButtonsLeft": "Trigger Buttons Left",
+ "ControllerSettingsTriggersButtonsRight": "Trigger Buttons Right",
+ "ControllerSettingsTriggers": "Gallets",
+ "ControllerSettingsTriggerL": "L",
+ "ControllerSettingsTriggerR": "R",
+ "ControllerSettingsTriggerZL": "ZL",
+ "ControllerSettingsTriggerZR": "ZR",
+ "ControllerSettingsLeftSL": "SL",
+ "ControllerSettingsLeftSR": "SR",
+ "ControllerSettingsRightSL": "SL",
+ "ControllerSettingsRightSR": "SR",
+ "ControllerSettingsExtraButtonsLeft": "Botons esquerra",
+ "ControllerSettingsExtraButtonsRight": "Botons dreta",
+ "ControllerSettingsMisc": "Miscel·lània",
+ "ControllerSettingsTriggerThreshold": "Trigger Threshold:",
+ "ControllerSettingsMotion": "Moviment",
+ "ControllerSettingsMotionUseCemuhookCompatibleMotion": "Use CemuHook compatible motion",
+ "ControllerSettingsMotionControllerSlot": "Controller Slot:",
+ "ControllerSettingsMotionMirrorInput": "Mirror Input",
+ "ControllerSettingsMotionRightJoyConSlot": "Right JoyCon Slot:",
+ "ControllerSettingsMotionServerHost": "Equip del servidor:",
+ "ControllerSettingsMotionGyroSensitivity": "Gyro Sensitivity:",
+ "ControllerSettingsMotionGyroDeadzone": "Zona morta del giroscopi:",
+ "ControllerSettingsSave": "Desar",
+ "ControllerSettingsClose": "Tancar",
+ "KeyUnknown": "Desconegut",
+ "KeyShiftLeft": "Majúscules esquerra",
+ "KeyShiftRight": "Shift dret",
+ "KeyControlLeft": "Control Esquerra",
+ "KeyMacControlLeft": "⌃ Esquerra",
+ "KeyControlRight": "Control dret",
+ "KeyMacControlRight": "⌃ Dreta",
+ "KeyAltLeft": "Alt Esquerra",
+ "KeyMacAltLeft": "⌥ Esquerra",
+ "KeyAltRight": "Alt Dreta",
+ "KeyMacAltRight": "⌥ Dreta",
+ "KeyWinLeft": "⊞ Esquerra",
+ "KeyMacWinLeft": "⌘ Esquerra",
+ "KeyWinRight": "⊞ Dreta",
+ "KeyMacWinRight": "⌘ Dreta",
+ "KeyMenu": "Menú",
+ "KeyUp": "Amunt",
+ "KeyDown": "Avall",
+ "KeyLeft": "Esquerra",
+ "KeyRight": "Dreta",
+ "KeyEnter": "Enter",
+ "KeyEscape": "Sortir",
+ "KeySpace": "Espai",
+ "KeyTab": "Tabulador",
+ "KeyBackSpace": "Tabulador",
+ "KeyInsert": "Inserir",
+ "KeyDelete": "Eliminar",
+ "KeyPageUp": "Pàgina amunt",
+ "KeyPageDown": "Pàgina avall",
+ "KeyHome": "Inici",
+ "KeyEnd": "Fi",
+ "KeyCapsLock": "Bloquejar majúscules",
+ "KeyScrollLock": "Bloquejar desplaçament",
+ "KeyPrintScreen": "Imprimir pantalla",
+ "KeyPause": "Pausa",
+ "KeyNumLock": "Bloc numèric",
+ "KeyClear": "Netejar",
+ "KeyKeypad0": "Teclat numèric 0",
+ "KeyKeypad1": "Teclat numèric 1",
+ "KeyKeypad2": "Teclat numèric 2",
+ "KeyKeypad3": "Teclat numèric 3",
+ "KeyKeypad4": "Teclat numèric 4",
+ "KeyKeypad5": "Teclat numèric 5",
+ "KeyKeypad6": "Teclat numèric 6",
+ "KeyKeypad7": "Teclat numèric 7",
+ "KeyKeypad8": "Teclat numèric 8",
+ "KeyKeypad9": "Teclat numèric 9",
+ "KeyKeypadDivide": "Keypad Divide",
+ "KeyKeypadMultiply": "Keypad Multiply",
+ "KeyKeypadSubtract": "Keypad Subtract",
+ "KeyKeypadAdd": "Tecla numèric afegir",
+ "KeyKeypadDecimal": "Keypad Decimal",
+ "KeyKeypadEnter": "Keypad Enter",
+ "KeyNumber0": "0",
+ "KeyNumber1": "1",
+ "KeyNumber2": "2",
+ "KeyNumber3": "3",
+ "KeyNumber4": "4",
+ "KeyNumber5": "5",
+ "KeyNumber6": "6",
+ "KeyNumber7": "7",
+ "KeyNumber8": "8",
+ "KeyNumber9": "9",
+ "KeyTilde": "~",
+ "KeyGrave": "`",
+ "KeyMinus": "-",
+ "KeyPlus": "+",
+ "KeyBracketLeft": "[",
+ "KeyBracketRight": "]",
+ "KeySemicolon": ";",
+ "KeyQuote": "\"",
+ "KeyComma": ",",
+ "KeyPeriod": ".",
+ "KeySlash": "/",
+ "KeyBackSlash": "\\",
+ "KeyUnbound": "No vinculat",
+ "GamepadLeftStick": "L Stick Button",
+ "GamepadRightStick": "R Stick Button",
+ "GamepadLeftShoulder": "Left Shoulder",
+ "GamepadRightShoulder": "Right Shoulder",
+ "GamepadLeftTrigger": "Gatell esquerre",
+ "GamepadRightTrigger": "Right Trigger",
+ "GamepadDpadUp": "Amunt",
+ "GamepadDpadDown": "Avall",
+ "GamepadDpadLeft": "Esquerra",
+ "GamepadDpadRight": "Dreta",
+ "GamepadMinus": "-",
+ "GamepadPlus": "+",
+ "GamepadGuide": "Guía",
+ "GamepadMisc1": "Miscel·lània",
+ "GamepadPaddle1": "Palanca 1",
+ "GamepadPaddle2": "Palanca 2",
+ "GamepadPaddle3": "Palanca 3",
+ "GamepadPaddle4": "Palanca 4",
+ "GamepadTouchpad": "Panell tàctil",
+ "GamepadSingleLeftTrigger0": "Left Trigger 0",
+ "GamepadSingleRightTrigger0": "Right Trigger 0",
+ "GamepadSingleLeftTrigger1": "Left Trigger 1",
+ "GamepadSingleRightTrigger1": "Right Trigger 1",
+ "StickLeft": "Palanca esquerra",
+ "StickRight": "Palanca dreta",
+ "UserProfilesSelectedUserProfile": "Selected User Profile:",
+ "UserProfilesSaveProfileName": "Save Profile Name",
+ "UserProfilesChangeProfileImage": "Change Profile Image",
+ "UserProfilesAvailableUserProfiles": "Available User Profiles:",
+ "UserProfilesAddNewProfile": "Crea un perfil",
+ "UserProfilesDelete": "Eliminar",
+ "UserProfilesClose": "Tancar",
+ "ProfileNameSelectionWatermark": "Choose a nickname",
+ "ProfileImageSelectionTitle": "Profile Image Selection",
+ "ProfileImageSelectionHeader": "Choose a profile Image",
+ "ProfileImageSelectionNote": "You may import a custom profile image, or select an avatar from system firmware",
+ "ProfileImageSelectionImportImage": "Import Image File",
+ "ProfileImageSelectionSelectAvatar": "Select Firmware Avatar",
+ "InputDialogTitle": "Quadre de diàleg d'entrada",
+ "InputDialogOk": "Acceptar",
+ "InputDialogCancel": "Cancel·lar",
+ "InputDialogAddNewProfileTitle": "Choose the Profile Name",
+ "InputDialogAddNewProfileHeader": "Please Enter a Profile Name",
+ "InputDialogAddNewProfileSubtext": "(Max Length: {0})",
+ "AvatarChoose": "Escollir Avatar",
+ "AvatarSetBackgroundColor": "Set Background Color",
+ "AvatarClose": "Tancar",
+ "ControllerSettingsLoadProfileToolTip": "Carregar el perfil",
+ "ControllerSettingsAddProfileToolTip": "Afegir perfil",
+ "ControllerSettingsRemoveProfileToolTip": "Elimina un perfil",
+ "ControllerSettingsSaveProfileToolTip": "Desar el perfil",
+ "MenuBarFileToolsTakeScreenshot": "Take Screenshot",
+ "MenuBarFileToolsHideUi": "Amagar UI",
+ "GameListContextMenuRunApplication": "Run Application",
+ "GameListContextMenuToggleFavorite": "Toggle Favorite",
+ "GameListContextMenuToggleFavoriteToolTip": "Toggle Favorite status of Game",
+ "SettingsTabGeneralTheme": "Tema:",
+ "SettingsTabGeneralThemeAuto": "Automàtic",
+ "SettingsTabGeneralThemeDark": "Fosc",
+ "SettingsTabGeneralThemeLight": "Clar",
+ "ControllerSettingsConfigureGeneral": "Configurar",
+ "ControllerSettingsRumble": "Vibració",
+ "ControllerSettingsRumbleStrongMultiplier": "Strong Rumble Multiplier",
+ "ControllerSettingsRumbleWeakMultiplier": "Weak Rumble Multiplier",
+ "DialogMessageSaveNotAvailableMessage": "There is no savedata for {0} [{1:x16}]",
+ "DialogMessageSaveNotAvailableCreateSaveMessage": "Would you like to create savedata for this game?",
+ "DialogConfirmationTitle": "Ryujinx - Confirmation",
+ "DialogUpdaterTitle": "Ryujinx - Updater",
+ "DialogErrorTitle": "Ryujinx - Error",
+ "DialogWarningTitle": "Ryujinx - Warning",
+ "DialogExitTitle": "Ryujinx - Sortir",
+ "DialogErrorMessage": "Ryujinx has encountered an error",
+ "DialogExitMessage": "Are you sure you want to close Ryujinx?",
+ "DialogExitSubMessage": "All unsaved data will be lost!",
+ "DialogMessageCreateSaveErrorMessage": "There was an error creating the specified savedata: {0}",
+ "DialogMessageFindSaveErrorMessage": "There was an error finding the specified savedata: {0}",
+ "FolderDialogExtractTitle": "Choose the folder to extract into",
+ "DialogNcaExtractionMessage": "Extracting {0} section from {1}...",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA Section Extractor",
+ "DialogNcaExtractionMainNcaNotFoundErrorMessage": "Extraction failure. The main NCA was not present in the selected file.",
+ "DialogNcaExtractionCheckLogErrorMessage": "Extraction failure. Read the log file for further information.",
+ "DialogNcaExtractionSuccessMessage": "Extraction completed successfully.",
+ "DialogUpdaterConvertFailedMessage": "Failed to convert the current Ryujinx version.",
+ "DialogUpdaterCancelUpdateMessage": "Cancelling Update!",
+ "DialogUpdaterAlreadyOnLatestVersionMessage": "You are already using the most updated version of Ryujinx!",
+ "DialogUpdaterFailedToGetVersionMessage": "An error has occurred when trying to get release information from GitHub Release. This can be caused if a new release is being compiled by GitHub Actions. Try again in a few minutes.",
+ "DialogUpdaterConvertFailedGithubMessage": "Failed to convert the received Ryujinx version from Github Release.",
+ "DialogUpdaterDownloadingMessage": "Downloading Update...",
+ "DialogUpdaterExtractionMessage": "Extracting Update...",
+ "DialogUpdaterRenamingMessage": "Renaming Update...",
+ "DialogUpdaterAddingFilesMessage": "Adding New Update...",
+ "DialogUpdaterCompleteMessage": "Update Complete!",
+ "DialogUpdaterRestartMessage": "Do you want to restart Ryujinx now?",
+ "DialogUpdaterNoInternetMessage": "You are not connected to the Internet!",
+ "DialogUpdaterNoInternetSubMessage": "Please verify that you have a working Internet connection!",
+ "DialogUpdaterDirtyBuildMessage": "You Cannot update a Dirty build of Ryujinx!",
+ "DialogUpdaterDirtyBuildSubMessage": "Please download Ryujinx at https://ryujinx.org/ if you are looking for a supported version.",
+ "DialogRestartRequiredMessage": "Restart Required",
+ "DialogThemeRestartMessage": "Theme has been saved. A restart is needed to apply the theme.",
+ "DialogThemeRestartSubMessage": "Do you want to restart",
+ "DialogFirmwareInstallEmbeddedMessage": "Would you like to install the firmware embedded in this game? (Firmware {0})",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "No installed firmware was found but Ryujinx was able to install firmware {0} from the provided game.\nThe emulator will now start.",
+ "DialogFirmwareNoFirmwareInstalledMessage": "No Firmware Installed",
+ "DialogFirmwareInstalledMessage": "Firmware {0} was installed",
+ "DialogInstallFileTypesSuccessMessage": "Successfully installed file types!",
+ "DialogInstallFileTypesErrorMessage": "Failed to install file types.",
+ "DialogUninstallFileTypesSuccessMessage": "Successfully uninstalled file types!",
+ "DialogUninstallFileTypesErrorMessage": "Failed to uninstall file types.",
+ "DialogOpenSettingsWindowLabel": "Open Settings Window",
+ "DialogControllerAppletTitle": "Controller Applet",
+ "DialogMessageDialogErrorExceptionMessage": "Error displaying Message Dialog: {0}",
+ "DialogSoftwareKeyboardErrorExceptionMessage": "Error displaying Software Keyboard: {0}",
+ "DialogErrorAppletErrorExceptionMessage": "Error displaying ErrorApplet Dialog: {0}",
+ "DialogUserErrorDialogMessage": "{0}: {1}",
+ "DialogUserErrorDialogInfoMessage": "\nFor more information on how to fix this error, follow our Setup Guide.",
+ "DialogUserErrorDialogTitle": "Ryujinx Error ({0})",
+ "DialogAmiiboApiTitle": "API de AMiibo",
+ "DialogAmiiboApiFailFetchMessage": "An error occured while fetching information from the API.",
+ "DialogAmiiboApiConnectErrorMessage": "Unable to connect to Amiibo API server. The service may be down or you may need to verify your internet connection is online.",
+ "DialogProfileInvalidProfileErrorMessage": "Profile {0} is incompatible with the current input configuration system.",
+ "DialogProfileDefaultProfileOverwriteErrorMessage": "Default Profile can not be overwritten",
+ "DialogProfileDeleteProfileTitle": "Deleting Profile",
+ "DialogProfileDeleteProfileMessage": "This action is irreversible, are you sure you want to continue?",
+ "DialogWarning": "Avís",
+ "DialogPPTCDeletionMessage": "You are about to queue a PPTC rebuild on the next boot of:\n\n{0}\n\nAre you sure you want to proceed?",
+ "DialogPPTCDeletionErrorMessage": "Error purging PPTC cache at {0}: {1}",
+ "DialogShaderDeletionMessage": "You are about to delete the Shader cache for :\n\n{0}\n\nAre you sure you want to proceed?",
+ "DialogShaderDeletionErrorMessage": "Error purging Shader cache at {0}: {1}",
+ "DialogRyujinxErrorMessage": "Ryujinx has encountered an error",
+ "DialogInvalidTitleIdErrorMessage": "UI error: The selected game did not have a valid title ID",
+ "DialogFirmwareInstallerFirmwareNotFoundErrorMessage": "A valid system firmware was not found in {0}.",
+ "DialogFirmwareInstallerFirmwareInstallTitle": "Install Firmware {0}",
+ "DialogFirmwareInstallerFirmwareInstallMessage": "System version {0} will be installed.",
+ "DialogFirmwareInstallerFirmwareInstallSubMessage": "\n\nThis will replace the current system version {0}.",
+ "DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogFirmwareInstallerFirmwareInstallWaitMessage": "Installing firmware...",
+ "DialogFirmwareInstallerFirmwareInstallSuccessMessage": "System version {0} successfully installed.",
+ "DialogUserProfileDeletionWarningMessage": "There would be no other profiles to be opened if selected profile is deleted",
+ "DialogUserProfileDeletionConfirmMessage": "Do you want to delete the selected profile",
+ "DialogUserProfileUnsavedChangesTitle": "Warning - Unsaved Changes",
+ "DialogUserProfileUnsavedChangesMessage": "You have made changes to this user profile that have not been saved.",
+ "DialogUserProfileUnsavedChangesSubMessage": "Do you want to discard your changes?",
+ "DialogControllerSettingsModifiedConfirmMessage": "The current controller settings has been updated.",
+ "DialogControllerSettingsModifiedConfirmSubMessage": "Do you want to save?",
+ "DialogLoadFileErrorMessage": "{0}. Errored File: {1}",
+ "DialogModAlreadyExistsMessage": "Mod already exists",
+ "DialogModInvalidMessage": "The specified directory does not contain a mod!",
+ "DialogModDeleteNoParentMessage": "Failed to Delete: Could not find the parent directory for mod \"{0}\"!",
+ "DialogDlcNoDlcErrorMessage": "The specified file does not contain a DLC for the selected title!",
+ "DialogPerformanceCheckLoggingEnabledMessage": "You have trace logging enabled, which is designed to be used by developers only.",
+ "DialogPerformanceCheckLoggingEnabledConfirmMessage": "For optimal performance, it's recommended to disable trace logging. Would you like to disable trace logging now?",
+ "DialogPerformanceCheckShaderDumpEnabledMessage": "You have shader dumping enabled, which is designed to be used by developers only.",
+ "DialogPerformanceCheckShaderDumpEnabledConfirmMessage": "For optimal performance, it's recommended to disable shader dumping. Would you like to disable shader dumping now?",
+ "DialogLoadAppGameAlreadyLoadedMessage": "A game has already been loaded",
+ "DialogLoadAppGameAlreadyLoadedSubMessage": "Please stop emulation or close the emulator before launching another game.",
+ "DialogUpdateAddUpdateErrorMessage": "The specified file does not contain an update for the selected title!",
+ "DialogSettingsBackendThreadingWarningTitle": "Warning - Backend Threading",
+ "DialogSettingsBackendThreadingWarningMessage": "Ryujinx must be restarted after changing this option for it to apply fully. Depending on your platform, you may need to manually disable your driver's own multithreading when using Ryujinx's.",
+ "DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
+ "DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
+ "SettingsTabGraphicsFeaturesOptions": "Funcionalitats",
+ "SettingsTabGraphicsBackendMultithreading": "Graphics Backend Multithreading:",
+ "CommonAuto": "Automàtic",
+ "CommonOff": "Desactivar",
+ "CommonOn": "Activat",
+ "InputDialogYes": "Sí",
+ "InputDialogNo": "No",
+ "DialogProfileInvalidProfileNameErrorMessage": "The file name contains invalid characters. Please try again.",
+ "MenuBarOptionsPauseEmulation": "Pausa",
+ "MenuBarOptionsResumeEmulation": "Continuar",
+ "AboutUrlTooltipMessage": "Click to open the Ryujinx website in your default browser.",
+ "AboutDisclaimerMessage": "Ryujinx is not affiliated with Nintendo™,\nor any of its partners, in any way.",
+ "AboutAmiiboDisclaimerMessage": "AmiiboAPI (www.amiiboapi.com) is used\nin our Amiibo emulation.",
+ "AboutPatreonUrlTooltipMessage": "Click to open the Ryujinx Patreon page in your default browser.",
+ "AboutGithubUrlTooltipMessage": "Click to open the Ryujinx GitHub page in your default browser.",
+ "AboutDiscordUrlTooltipMessage": "Click to open an invite to the Ryujinx Discord server in your default browser.",
+ "AboutTwitterUrlTooltipMessage": "Click to open the Ryujinx Twitter page in your default browser.",
+ "AboutRyujinxAboutTitle": "En quant a:",
+ "AboutRyujinxAboutContent": "Ryujinx is an emulator for the Nintendo Switch™.\nPlease support us on Patreon.\nGet all the latest news on our Twitter or Discord.\nDevelopers interested in contributing can find out more on our GitHub or Discord.",
+ "AboutRyujinxMaintainersTitle": "Mantingut per:",
+ "AboutRyujinxMaintainersContentTooltipMessage": "Click to open the Contributors page in your default browser.",
+ "AboutRyujinxSupprtersTitle": "Supported on Patreon By:",
+ "AmiiboSeriesLabel": "Amiibo Series",
+ "AmiiboCharacterLabel": "Caràcter",
+ "AmiiboScanButtonLabel": "Escanejar-ho",
+ "AmiiboOptionsShowAllLabel": "Show All Amiibo",
+ "AmiiboOptionsUsRandomTagLabel": "Hack: Use Random tag Uuid",
+ "DlcManagerTableHeadingEnabledLabel": "Activat",
+ "DlcManagerTableHeadingTitleIdLabel": "ID del títol",
+ "DlcManagerTableHeadingContainerPathLabel": "Container Path",
+ "DlcManagerTableHeadingFullPathLabel": "Camí complet",
+ "DlcManagerRemoveAllButton": "Eliminar-ho tot",
+ "DlcManagerEnableAllButton": "Activar-ho tot",
+ "DlcManagerDisableAllButton": "Desactivar tot",
+ "ModManagerDeleteAllButton": "Esborrar-ho tot",
+ "MenuBarOptionsChangeLanguage": "Change Language",
+ "MenuBarShowFileTypes": "Show File Types",
+ "CommonSort": "Ordenar",
+ "CommonShowNames": "Mostra els noms",
+ "CommonFavorite": "Preferit",
+ "OrderAscending": "Ascendent",
+ "OrderDescending": "Descendent",
+ "SettingsTabGraphicsFeatures": "Features & Enhancements",
+ "ErrorWindowTitle": "Error Window",
+ "ToggleDiscordTooltip": "Choose whether or not to display Ryujinx on your \"currently playing\" Discord activity",
+ "AddGameDirBoxTooltip": "Enter a game directory to add to the list",
+ "AddGameDirTooltip": "Add a game directory to the list",
+ "RemoveGameDirTooltip": "Remove selected game directory",
+ "CustomThemeCheckTooltip": "Use a custom Avalonia theme for the GUI to change the appearance of the emulator menus",
+ "CustomThemePathTooltip": "Path to custom GUI theme",
+ "CustomThemeBrowseTooltip": "Browse for a custom GUI theme",
+ "DockModeToggleTooltip": "Docked mode makes the emulated system behave as a docked Nintendo Switch. This improves graphical fidelity in most games. Conversely, disabling this will make the emulated system behave as a handheld Nintendo Switch, reducing graphics quality.\n\nConfigure player 1 controls if planning to use docked mode; configure handheld controls if planning to use handheld mode.\n\nLeave ON if unsure.",
+ "DirectKeyboardTooltip": "Direct keyboard access (HID) support. Provides games access to your keyboard as a text entry device.\n\nOnly works with games that natively support keyboard usage on Switch hardware.\n\nLeave OFF if unsure.",
+ "DirectMouseTooltip": "Direct mouse access (HID) support. Provides games access to your mouse as a pointing device.\n\nOnly works with games that natively support mouse controls on Switch hardware, which are few and far between.\n\nWhen enabled, touch screen functionality may not work.\n\nLeave OFF if unsure.",
+ "RegionTooltip": "Change System Region",
+ "LanguageTooltip": "Change System Language",
+ "TimezoneTooltip": "Change System TimeZone",
+ "TimeTooltip": "Change System Time",
+ "VSyncToggleTooltip": "Emulated console's Vertical Sync. Essentially a frame-limiter for the majority of games; disabling it may cause games to run at higher speed or make loading screens take longer or get stuck.\n\nCan be toggled in-game with a hotkey of your preference (F1 by default). We recommend doing this if you plan on disabling it.\n\nLeave ON if unsure.",
+ "PptcToggleTooltip": "Saves translated JIT functions so that they do not need to be translated every time the game loads.\n\nReduces stuttering and significantly speeds up boot times after the first boot of a game.\n\nLeave ON if unsure.",
+ "FsIntegrityToggleTooltip": "Checks for corrupt files when booting a game, and if corrupt files are detected, displays a hash error in the log.\n\nHas no impact on performance and is meant to help troubleshooting.\n\nLeave ON if unsure.",
+ "AudioBackendTooltip": "Changes the backend used to render audio.\n\nSDL2 is the preferred one, while OpenAL and SoundIO are used as fallbacks. Dummy will have no sound.\n\nSet to SDL2 if unsure.",
+ "MemoryManagerTooltip": "Change how guest memory is mapped and accessed. Greatly affects emulated CPU performance.\n\nSet to HOST UNCHECKED if unsure.",
+ "MemoryManagerSoftwareTooltip": "Use a software page table for address translation. Highest accuracy but slowest performance.",
+ "MemoryManagerHostTooltip": "Directly map memory in the host address space. Much faster JIT compilation and execution.",
+ "MemoryManagerUnsafeTooltip": "Directly map memory, but do not mask the address within the guest address space before access. Faster, but at the cost of safety. The guest application can access memory from anywhere in Ryujinx, so only run programs you trust with this mode.",
+ "UseHypervisorTooltip": "Use Hypervisor instead of JIT. Greatly improves performance when available, but can be unstable in its current state.",
+ "DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
+ "IgnoreMissingServicesTooltip": "Ignores unimplemented Horizon OS services. This may help in bypassing crashes when booting certain games.\n\nLeave OFF if unsure.",
+ "GraphicsBackendThreadingTooltip": "Executes graphics backend commands on a second thread.\n\nSpeeds up shader compilation, reduces stuttering, and improves performance on GPU drivers without multithreading support of their own. Slightly better performance on drivers with multithreading.\n\nSet to AUTO if unsure.",
+ "GalThreadingTooltip": "Executes graphics backend commands on a second thread.\n\nSpeeds up shader compilation, reduces stuttering, and improves performance on GPU drivers without multithreading support of their own. Slightly better performance on drivers with multithreading.\n\nSet to AUTO if unsure.",
+ "ShaderCacheToggleTooltip": "Saves a disk shader cache which reduces stuttering in subsequent runs.\n\nLeave ON if unsure.",
+ "ResolutionScaleTooltip": "Multiplies the game's rendering resolution.\n\nA few games may not work with this and look pixelated even when the resolution is increased; for those games, you may need to find mods that remove anti-aliasing or that increase their internal rendering resolution. For using the latter, you'll likely want to select Native.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nKeep in mind 4x is overkill for virtually any setup.",
+ "ResolutionScaleEntryTooltip": "Floating point resolution scale, such as 1.5. Non-integral scales are more likely to cause issues or crash.",
+ "AnisotropyTooltip": "Level of Anisotropic Filtering. Set to Auto to use the value requested by the game.",
+ "AspectRatioTooltip": "Aspect Ratio applied to the renderer window.\n\nOnly change this if you're using an aspect ratio mod for your game, otherwise the graphics will be stretched.\n\nLeave on 16:9 if unsure.",
+ "ShaderDumpPathTooltip": "Graphics Shaders Dump Path",
+ "FileLogTooltip": "Saves console logging to a log file on disk. Does not affect performance.",
+ "StubLogTooltip": "Prints stub log messages in the console. Does not affect performance.",
+ "InfoLogTooltip": "Prints info log messages in the console. Does not affect performance.",
+ "WarnLogTooltip": "Prints warning log messages in the console. Does not affect performance.",
+ "ErrorLogTooltip": "Prints error log messages in the console. Does not affect performance.",
+ "TraceLogTooltip": "Prints trace log messages in the console. Does not affect performance.",
+ "GuestLogTooltip": "Prints guest log messages in the console. Does not affect performance.",
+ "FileAccessLogTooltip": "Prints file access log messages in the console.",
+ "FSAccessLogModeTooltip": "Enables FS access log output to the console. Possible modes are 0-3",
+ "DeveloperOptionTooltip": "Fes servir amb cautela",
+ "OpenGlLogLevel": "Requires appropriate log levels enabled",
+ "DebugLogTooltip": "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.",
+ "LoadApplicationFileTooltip": "Open a file explorer to choose a Switch compatible file to load",
+ "LoadApplicationFolderTooltip": "Open a file explorer to choose a Switch compatible, unpacked application to load",
+ "OpenRyujinxFolderTooltip": "Open Ryujinx filesystem folder",
+ "OpenRyujinxLogsTooltip": "Opens the folder where logs are written to",
+ "ExitTooltip": "Sortir de Ryujinx",
+ "OpenSettingsTooltip": "Open settings window",
+ "OpenProfileManagerTooltip": "Open User Profiles Manager window",
+ "StopEmulationTooltip": "Stop emulation of the current game and return to game selection",
+ "CheckUpdatesTooltip": "Check for updates to Ryujinx",
+ "OpenAboutTooltip": "Open About Window",
+ "GridSize": "Mida de la graella",
+ "GridSizeTooltip": "Change the size of grid items",
+ "SettingsTabSystemSystemLanguageBrazilianPortuguese": "Brazilian Portuguese",
+ "AboutRyujinxContributorsButtonHeader": "See All Contributors",
+ "SettingsTabSystemAudioVolume": "Volum: ",
+ "AudioVolumeTooltip": "Change Audio Volume",
+ "SettingsTabSystemEnableInternetAccess": "Guest Internet Access/LAN Mode",
+ "EnableInternetAccessTooltip": "Allows the emulated application to connect to the Internet.\n\nGames with a LAN mode can connect to each other when this is enabled and the systems are connected to the same access point. This includes real consoles as well.\n\nDoes NOT allow connecting to Nintendo servers. May cause crashing in certain games that try to connect to the Internet.\n\nLeave OFF if unsure.",
+ "GameListContextMenuManageCheatToolTip": "Gestiona trucs",
+ "GameListContextMenuManageCheat": "Gestiona trucs",
+ "GameListContextMenuManageModToolTip": "Gestionar mods",
+ "GameListContextMenuManageMod": "Gestionar mods",
+ "ControllerSettingsStickRange": "Rang:",
+ "DialogStopEmulationTitle": "Ryujinx - Stop Emulation",
+ "DialogStopEmulationMessage": "Are you sure you want to stop emulation?",
+ "SettingsTabCpu": "CPU",
+ "SettingsTabAudio": "So",
+ "SettingsTabNetwork": "Xarxa",
+ "SettingsTabNetworkConnection": "Network Connection",
+ "SettingsTabCpuCache": "Memòria intermèdia de CPU",
+ "SettingsTabCpuMemory": "Mode de la CPU",
+ "DialogUpdaterFlatpakNotSupportedMessage": "Please update Ryujinx via FlatHub.",
+ "UpdaterDisabledWarningTitle": "Updater Disabled!",
+ "ControllerSettingsRotate90": "Rotate 90° Clockwise",
+ "IconSize": "Mida de les icones",
+ "IconSizeTooltip": "Change the size of game icons",
+ "MenuBarOptionsShowConsole": "Mostrar consola",
+ "ShaderCachePurgeError": "Error purging shader cache at {0}: {1}",
+ "UserErrorNoKeys": "Keys not found",
+ "UserErrorNoFirmware": "Firmware not found",
+ "UserErrorFirmwareParsingFailed": "Firmware parsing error",
+ "UserErrorApplicationNotFound": "Application not found",
+ "UserErrorUnknown": "Error desconegut",
+ "UserErrorUndefined": "Undefined error",
+ "UserErrorNoKeysDescription": "Ryujinx was unable to find your 'prod.keys' file",
+ "UserErrorNoFirmwareDescription": "Ryujinx was unable to find any firmwares installed",
+ "UserErrorFirmwareParsingFailedDescription": "Ryujinx was unable to parse the provided firmware. This is usually caused by outdated keys.",
+ "UserErrorApplicationNotFoundDescription": "Ryujinx couldn't find a valid application at the given path.",
+ "UserErrorUnknownDescription": "An unknown error occured!",
+ "UserErrorUndefinedDescription": "An undefined error occured! This shouldn't happen, please contact a dev!",
+ "OpenSetupGuideMessage": "Open the Setup Guide",
+ "NoUpdate": "No hi ha actualitzacions",
+ "TitleUpdateVersionLabel": "Versió {0}",
+ "TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
+ "TitleBundledDlcLabel": "Paquet:",
+ "RyujinxInfo": "Ryujinx - Informació",
+ "RyujinxConfirm": "Ryujinx - Confirmation",
+ "FileDialogAllTypes": "Tots els tipus",
+ "Never": "Mai",
+ "SwkbdMinCharacters": "Must be at least {0} characters long",
+ "SwkbdMinRangeCharacters": "Must be {0}-{1} characters long",
+ "SoftwareKeyboard": "Software Keyboard",
+ "SoftwareKeyboardModeNumeric": "Must be 0-9 or '.' only",
+ "SoftwareKeyboardModeAlphabet": "Must be non CJK-characters only",
+ "SoftwareKeyboardModeASCII": "Must be ASCII text only",
+ "ControllerAppletControllers": "Supported Controllers:",
+ "ControllerAppletPlayers": "Jugadors:",
+ "ControllerAppletDescription": "Your current configuration is invalid. Open settings and reconfigure your inputs.",
+ "ControllerAppletDocked": "Docked mode set. Handheld control should be disabled.",
+ "UpdaterRenaming": "Renaming Old Files...",
+ "UpdaterRenameFailed": "Updater was unable to rename file: {0}",
+ "UpdaterAddingFiles": "Adding New Files...",
+ "UpdaterExtracting": "Extracting Update...",
+ "UpdaterDownloading": "Downloading Update...",
+ "Game": "Joc",
+ "Docked": "Acoblat",
+ "Handheld": "Portàtil",
+ "ConnectionError": "Connection Error.",
+ "AboutPageDeveloperListMore": "{0} and more...",
+ "ApiError": "Error d'API.",
+ "LoadingHeading": "Carregant {0}",
+ "CompilingPPTC": "Compilant PTC",
+ "CompilingShaders": "Compiling Shaders",
+ "AllKeyboards": "Tots els teclats",
+ "OpenFileDialogTitle": "Select a supported file to open",
+ "OpenFolderDialogTitle": "Select a folder with an unpacked game",
+ "AllSupportedFormats": "All Supported Formats",
+ "RyujinxUpdater": "Ryujinx Updater",
+ "SettingsTabHotkeys": "Keyboard Hotkeys",
+ "SettingsTabHotkeysHotkeys": "Keyboard Hotkeys",
+ "SettingsTabHotkeysToggleVsyncHotkey": "Alterna sincronització vertical:",
+ "SettingsTabHotkeysScreenshotHotkey": "Captura de pantalla:",
+ "SettingsTabHotkeysShowUiHotkey": "Mostrar interfície:",
+ "SettingsTabHotkeysPauseHotkey": "Pausa:",
+ "SettingsTabHotkeysToggleMuteHotkey": "Silenciar:",
+ "ControllerMotionTitle": "Motion Control Settings",
+ "ControllerRumbleTitle": "Rumble Settings",
+ "SettingsSelectThemeFileDialogTitle": "Select Theme File",
+ "SettingsXamlThemeFile": "Xaml Theme File",
+ "AvatarWindowTitle": "Manage Accounts - Avatar",
+ "Amiibo": "Amiibo",
+ "Unknown": "Desconegut",
+ "Usage": "Ús",
+ "Writable": "Escrivible",
+ "SelectDlcDialogTitle": "Select DLC files",
+ "SelectUpdateDialogTitle": "Select update files",
+ "SelectModDialogTitle": "Select mod directory",
+ "UserProfileWindowTitle": "User Profiles Manager",
+ "CheatWindowTitle": "Gestor de trucs",
+ "DlcWindowTitle": "Manage Downloadable Content for {0} ({1})",
+ "ModWindowTitle": "Manage Mods for {0} ({1})",
+ "UpdateWindowTitle": "Title Update Manager",
+ "CheatWindowHeading": "Cheats Available for {0} [{1}]",
+ "BuildId": "ID de compilació:",
+ "DlcWindowHeading": "{0} Downloadable Content(s)",
+ "ModWindowHeading": "{0} Mods",
+ "UserProfilesEditProfile": "Edita els seleccionats",
+ "Cancel": "Cancel·lar",
+ "Save": "Desar",
+ "Discard": "Descartar",
+ "Paused": "Pausat",
+ "UserProfilesSetProfileImage": "Set Profile Image",
+ "UserProfileEmptyNameError": "Name is required",
+ "UserProfileNoImageError": "Profile image must be set",
+ "GameUpdateWindowHeading": "Manage Updates for {0} ({1})",
+ "SettingsTabHotkeysResScaleUpHotkey": "Increase resolution:",
+ "SettingsTabHotkeysResScaleDownHotkey": "Decrease resolution:",
+ "UserProfilesName": "Nom:",
+ "UserProfilesUserId": "ID d'usuari:",
+ "SettingsTabGraphicsBackend": "Graphics Backend",
+ "SettingsTabGraphicsBackendTooltip": "Select the graphics backend that will be used in the emulator.\n\nVulkan is overall better for all modern graphics cards, as long as their drivers are up to date. Vulkan also features faster shader compilation (less stuttering) on all GPU vendors.\n\nOpenGL may achieve better results on old Nvidia GPUs, on old AMD GPUs on Linux, or on GPUs with lower VRAM, though shader compilation stutters will be greater.\n\nSet to Vulkan if unsure. Set to OpenGL if your GPU does not support Vulkan even with the latest graphics drivers.",
+ "SettingsEnableTextureRecompression": "Enable Texture Recompression",
+ "SettingsEnableTextureRecompressionTooltip": "Compresses ASTC textures in order to reduce VRAM usage.\n\nGames using this texture format include Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder and The Legend of Zelda: Tears of the Kingdom.\n\nGraphics cards with 4GiB VRAM or less will likely crash at some point while running these games.\n\nEnable only if you're running out of VRAM on the aforementioned games. Leave OFF if unsure.",
+ "SettingsTabGraphicsPreferredGpu": "Targeta gràfica preferida",
+ "SettingsTabGraphicsPreferredGpuTooltip": "Select the graphics card that will be used with the Vulkan graphics backend.\n\nDoes not affect the GPU that OpenGL will use.\n\nSet to the GPU flagged as \"dGPU\" if unsure. If there isn't one, leave untouched.",
+ "SettingsAppRequiredRestartMessage": "Ryujinx Restart Required",
+ "SettingsGpuBackendRestartMessage": "Graphics Backend or GPU settings have been modified. This will require a restart to be applied",
+ "SettingsGpuBackendRestartSubMessage": "Do you want to restart now?",
+ "RyujinxUpdaterMessage": "Do you want to update Ryujinx to the latest version?",
+ "SettingsTabHotkeysVolumeUpHotkey": "Increase Volume:",
+ "SettingsTabHotkeysVolumeDownHotkey": "Decrease Volume:",
+ "SettingsEnableMacroHLE": "Enable Macro HLE",
+ "SettingsEnableMacroHLETooltip": "High-level emulation of GPU Macro code.\n\nImproves performance, but may cause graphical glitches in some games.\n\nLeave ON if unsure.",
+ "SettingsEnableColorSpacePassthrough": "Color Space Passthrough",
+ "SettingsEnableColorSpacePassthroughTooltip": "Directs the Vulkan backend to pass through color information without specifying a color space. For users with wide gamut displays, this may result in more vibrant colors, at the cost of color correctness.",
+ "VolumeShort": "Volum",
+ "UserProfilesManageSaves": "Gestionar partides desades",
+ "DeleteUserSave": "Do you want to delete user save for this game?",
+ "IrreversibleActionNote": "This action is not reversible.",
+ "SaveManagerHeading": "Manage Saves for {0} ({1})",
+ "SaveManagerTitle": "Save Manager",
+ "Name": "Nom",
+ "Size": "Mida",
+ "Search": "Cercar",
+ "UserProfilesRecoverLostAccounts": "Recover Lost Accounts",
+ "Recover": "Recuperar",
+ "UserProfilesRecoverHeading": "Saves were found for the following accounts",
+ "UserProfilesRecoverEmptyList": "No profiles to recover",
+ "GraphicsAATooltip": "Applies anti-aliasing to the game render.\n\nFXAA will blur most of the image, while SMAA will attempt to find jagged edges and smooth them out.\n\nNot recommended to use in conjunction with the FSR scaling filter.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on NONE if unsure.",
+ "GraphicsAALabel": "Suavitzat de vores:",
+ "GraphicsScalingFilterLabel": "Scaling Filter:",
+ "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nArea scaling is recommended when downscaling resolutions that are larger than the output window. It can be used to achieve a supersampled anti-aliasing effect when downscaling by more than 2x.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
+ "GraphicsScalingFilterBilinear": "Bilineal",
+ "GraphicsScalingFilterNearest": "Més proper",
+ "GraphicsScalingFilterFsr": "FSR",
+ "GraphicsScalingFilterArea": "Àrea",
+ "GraphicsScalingFilterLevelLabel": "Nivell",
+ "GraphicsScalingFilterLevelTooltip": "Set FSR 1.0 sharpening level. Higher is sharper.",
+ "SmaaLow": "SMAA Baix",
+ "SmaaMedium": "SMAA Mig",
+ "SmaaHigh": "SMAA Alt",
+ "SmaaUltra": "SMAA Ultra",
+ "UserEditorTitle": "Editar usuari",
+ "UserEditorTitleCreate": "Crear usuari",
+ "SettingsTabNetworkInterface": "Network Interface:",
+ "NetworkInterfaceTooltip": "The network interface used for LAN/LDN features.\n\nIn conjunction with a VPN or XLink Kai and a game with LAN support, can be used to spoof a same-network connection over the Internet.\n\nLeave on DEFAULT if unsure.",
+ "NetworkInterfaceDefault": "Per defecte",
+ "PackagingShaders": "Packaging Shaders",
+ "AboutChangelogButton": "View Changelog on GitHub",
+ "AboutChangelogButtonTooltipMessage": "Click to open the changelog for this version in your default browser.",
+ "SettingsTabNetworkMultiplayer": "Multijugador",
+ "MultiplayerMode": "Mode:",
+ "MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
+ "MultiplayerModeDisabled": "Deshabilitat",
+ "MultiplayerModeLdnMitm": "Mode multijugador amb xarxa LDN"
+}
diff --git a/src/Ryujinx/Assets/Locales/cs_CZ.json b/src/Ryujinx/Assets/Locales/cs_CZ.json
new file mode 100644
index 000000000..9c251ca72
--- /dev/null
+++ b/src/Ryujinx/Assets/Locales/cs_CZ.json
@@ -0,0 +1,785 @@
+{
+ "Language": "Čeština",
+ "MenuBarFileOpenApplet": "Otevřít Applet",
+ "MenuBarFileOpenAppletOpenMiiAppletToolTip": "Otevřít Applet editoru Mii v samostatném režimu",
+ "SettingsTabInputDirectMouseAccess": "Přístup přímo myší",
+ "SettingsTabSystemMemoryManagerMode": "Režim správy paměti:",
+ "SettingsTabSystemMemoryManagerModeSoftware": "Softwarový",
+ "SettingsTabSystemMemoryManagerModeHost": "Hostitel (rychlý)",
+ "SettingsTabSystemMemoryManagerModeHostUnchecked": "Nekontrolovaný hostitel (nejrychlejší, riskantní)",
+ "SettingsTabSystemUseHypervisor": "Použít Hypervizor",
+ "MenuBarFile": "_Soubor",
+ "MenuBarFileOpenFromFile": "_Načíst aplikaci ze souboru",
+ "MenuBarFileOpenFromFileError": "Ve vybraném souboru nebyly nalezeny žádné aplikace.",
+ "MenuBarFileOpenUnpacked": "Načíst _rozbalenou hru",
+ "MenuBarFileOpenEmuFolder": "Otevřít složku Ryujinx",
+ "MenuBarFileOpenLogsFolder": "Otevřít složku s logy",
+ "MenuBarFileExit": "_Ukončit",
+ "MenuBarOptions": "_Možnosti",
+ "MenuBarOptionsToggleFullscreen": "Režim celé obrazovky",
+ "MenuBarOptionsStartGamesInFullscreen": "Spuštět hry v režimu celé obrazovky",
+ "MenuBarOptionsStopEmulation": "Ukončit emulaci",
+ "MenuBarOptionsSettings": "_Nastavení",
+ "MenuBarOptionsManageUserProfiles": "_Spravovat uživatelské profily",
+ "MenuBarActions": "_Akce",
+ "MenuBarOptionsSimulateWakeUpMessage": "Simulovat zprávu probuzení",
+ "MenuBarActionsScanAmiibo": "Naskenovat Amiibo",
+ "MenuBarTools": "_Nástroje",
+ "MenuBarToolsInstallFirmware": "Nainstalovat firmware",
+ "MenuBarFileToolsInstallFirmwareFromFile": "Nainstalovat firmware z XCI nebo ZIP",
+ "MenuBarFileToolsInstallFirmwareFromDirectory": "Nainstalovat firmware z adresáře",
+ "MenuBarToolsManageFileTypes": "Spravovat typy souborů",
+ "MenuBarToolsInstallFileTypes": "Nainstalovat typy souborů",
+ "MenuBarToolsUninstallFileTypes": "Odinstalovat typy souborů",
+ "MenuBarView": "_Zobrazit",
+ "MenuBarViewWindow": "Velikost okna",
+ "MenuBarViewWindow720": "720p",
+ "MenuBarViewWindow1080": "1080p",
+ "MenuBarHelp": "_Nápověda",
+ "MenuBarHelpCheckForUpdates": "Zkontrolovat aktualizace",
+ "MenuBarHelpAbout": "O aplikaci",
+ "MenuSearch": "Hledat...",
+ "GameListHeaderFavorite": "Oblíbené",
+ "GameListHeaderIcon": "Ikona",
+ "GameListHeaderApplication": "Název",
+ "GameListHeaderDeveloper": "Vývojář",
+ "GameListHeaderVersion": "Verze",
+ "GameListHeaderTimePlayed": "Doba hraní",
+ "GameListHeaderLastPlayed": "Naposledy hráno",
+ "GameListHeaderFileExtension": "Přípona souboru",
+ "GameListHeaderFileSize": "Velikost souboru",
+ "GameListHeaderPath": "Cesta",
+ "GameListContextMenuOpenUserSaveDirectory": "Otevřít adresář s uloženými daty uživatelů",
+ "GameListContextMenuOpenUserSaveDirectoryToolTip": "Otevře adresář, který obsahuje uložená data uživatele pro aplikaci",
+ "GameListContextMenuOpenDeviceSaveDirectory": "Otevřít adresář s uloženými daty zařízení",
+ "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "Otevře adresář, který obsahuje uložená data zařízení pro aplikaci",
+ "GameListContextMenuOpenBcatSaveDirectory": "Otevřít adresář s uloženými daty BCAT",
+ "GameListContextMenuOpenBcatSaveDirectoryToolTip": "Otevře adresář, který obsahuje uložená data BCAT pro aplikaci",
+ "GameListContextMenuManageTitleUpdates": "Spravovat aktualizace titulu",
+ "GameListContextMenuManageTitleUpdatesToolTip": "Otevře okno správy aktualizací titulu",
+ "GameListContextMenuManageDlc": "Spravovat DLC",
+ "GameListContextMenuManageDlcToolTip": "Otevře okno správy DLC titulu",
+ "GameListContextMenuCacheManagement": "Správa mezipaměti",
+ "GameListContextMenuCacheManagementPurgePptc": "Přidat do fronty obnovu PPTC",
+ "GameListContextMenuCacheManagementPurgePptcToolTip": "Vyvolá obnovení PPTC po startu při příštím spuštění hry",
+ "GameListContextMenuCacheManagementPurgeShaderCache": "Smazat mezipaměť shaderu",
+ "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "Odstraní mezipaměť shaderu aplikace",
+ "GameListContextMenuCacheManagementOpenPptcDirectory": "Otevřít adresář PPTC",
+ "GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "Otevře adresář, který obsahuje PPTC mezipaměť aplikace",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectory": "Otevřít adresář mezipaměti shaderu",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "Otevře adresář, který obsahuje mezipaměť shaderu aplikace",
+ "GameListContextMenuExtractData": "Extrahovat data",
+ "GameListContextMenuExtractDataExeFS": "ExeFS",
+ "GameListContextMenuExtractDataExeFSToolTip": "Extrahovat sekci ExeFS z aktuální konfigurace aplikace (včetně aktualizací)",
+ "GameListContextMenuExtractDataRomFS": "RomFS",
+ "GameListContextMenuExtractDataRomFSToolTip": "Extrahovat sekci RomFS z aktuální konfigurace aplikace (včetně aktualizací)",
+ "GameListContextMenuExtractDataLogo": "Logo",
+ "GameListContextMenuExtractDataLogoToolTip": "Extrahovat sekci loga z aktuální konfigurace aplikace (včetně aktualizací)",
+ "GameListContextMenuCreateShortcut": "Vytvořit zástupce aplikace",
+ "GameListContextMenuCreateShortcutToolTip": "Vytvořit zástupce na ploše, který spustí vybranou aplikaci",
+ "GameListContextMenuCreateShortcutToolTipMacOS": "Vytvořit zástupce v macOS složce Aplikace, která spustí vybranou aplikaci",
+ "GameListContextMenuOpenModsDirectory": "Otevřít adresář módů",
+ "GameListContextMenuOpenModsDirectoryToolTip": "Otevře adresář, který obsahuje módy aplikace",
+ "GameListContextMenuOpenSdModsDirectory": "Otevřít adresář módů Atmosphere",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "Otevře alternativní adresář Atmosphere na SD kartě, který obsahuje módy aplikace. Užitečné pro módy, které jsou zabaleny pro skutečný hardware.",
+ "StatusBarGamesLoaded": "{0}/{1} her načteno",
+ "StatusBarSystemVersion": "Verze systému: {0}",
+ "LinuxVmMaxMapCountDialogTitle": "Detekován nízký limit pro mapování paměti",
+ "LinuxVmMaxMapCountDialogTextPrimary": "Chcete zvýšit hodnotu vm.max_map_count na {0}",
+ "LinuxVmMaxMapCountDialogTextSecondary": "Některé hry se mohou pokusit vytvořit více mapování paměti, než je aktuálně povoleno. Ryujinx crashne, jakmile bude tento limit překročen.",
+ "LinuxVmMaxMapCountDialogButtonUntilRestart": "Ano, do dalšího restartu",
+ "LinuxVmMaxMapCountDialogButtonPersistent": "Ano, natrvalo",
+ "LinuxVmMaxMapCountWarningTextPrimary": "Maximální počet mapování paměti je nižší, než je doporučeno.",
+ "LinuxVmMaxMapCountWarningTextSecondary": "Aktuální hodnota vm.max_map_count ({0}) je nižší než {1}. Některé hry se mohou pokusit vytvořit více mapování paměti, než je aktuálně povoleno. Ryujinx crashne, jakmile bude tento limit překročen.\n\nMožná budete chtít buď ručně zvýšit limit nebo nainstalovat pkexec, který umožňuje Ryujinxu vám s tím pomoci.",
+ "Settings": "Nastavení",
+ "SettingsTabGeneral": "Uživatelské rozhraní",
+ "SettingsTabGeneralGeneral": "Obecné",
+ "SettingsTabGeneralEnableDiscordRichPresence": "Povolit Discord Rich Presence",
+ "SettingsTabGeneralCheckUpdatesOnLaunch": "Zkontrolovat aktualizace při spuštění",
+ "SettingsTabGeneralShowConfirmExitDialog": "Zobrazovat dialog s potvrzením ukončení",
+ "SettingsTabGeneralRememberWindowState": "Pamatovat si velikost/pozici okna",
+ "SettingsTabGeneralHideCursor": "Skrýt kurzor:",
+ "SettingsTabGeneralHideCursorNever": "Nikdy",
+ "SettingsTabGeneralHideCursorOnIdle": "Při nečinnosti",
+ "SettingsTabGeneralHideCursorAlways": "Vždy",
+ "SettingsTabGeneralGameDirectories": "Adresáře s hrami",
+ "SettingsTabGeneralAdd": "Přidat",
+ "SettingsTabGeneralRemove": "Odebrat",
+ "SettingsTabSystem": "Systém",
+ "SettingsTabSystemCore": "Hlavní",
+ "SettingsTabSystemSystemRegion": "Region systému:",
+ "SettingsTabSystemSystemRegionJapan": "Japonsko",
+ "SettingsTabSystemSystemRegionUSA": "USA",
+ "SettingsTabSystemSystemRegionEurope": "Evropa",
+ "SettingsTabSystemSystemRegionAustralia": "Austrálie",
+ "SettingsTabSystemSystemRegionChina": "Čína",
+ "SettingsTabSystemSystemRegionKorea": "Korea",
+ "SettingsTabSystemSystemRegionTaiwan": "Taiwan",
+ "SettingsTabSystemSystemLanguage": "Jazyk systému:",
+ "SettingsTabSystemSystemLanguageJapanese": "Japonština",
+ "SettingsTabSystemSystemLanguageAmericanEnglish": "Americká angličtina",
+ "SettingsTabSystemSystemLanguageFrench": "Francouzština",
+ "SettingsTabSystemSystemLanguageGerman": "Němčina",
+ "SettingsTabSystemSystemLanguageItalian": "Italština",
+ "SettingsTabSystemSystemLanguageSpanish": "Španělština",
+ "SettingsTabSystemSystemLanguageChinese": "Čínština",
+ "SettingsTabSystemSystemLanguageKorean": "Korejština",
+ "SettingsTabSystemSystemLanguageDutch": "Nizozemština",
+ "SettingsTabSystemSystemLanguagePortuguese": "Portugalština",
+ "SettingsTabSystemSystemLanguageRussian": "Ruština",
+ "SettingsTabSystemSystemLanguageTaiwanese": "Tchajwanština",
+ "SettingsTabSystemSystemLanguageBritishEnglish": "Britská angličtina",
+ "SettingsTabSystemSystemLanguageCanadianFrench": "Kanadská francouzština",
+ "SettingsTabSystemSystemLanguageLatinAmericanSpanish": "Latinskoamerická španělština",
+ "SettingsTabSystemSystemLanguageSimplifiedChinese": "Zjednodušená čínština",
+ "SettingsTabSystemSystemLanguageTraditionalChinese": "Tradiční čínština",
+ "SettingsTabSystemSystemTimeZone": "Časová zóna systému:",
+ "SettingsTabSystemSystemTime": "Čas systému:",
+ "SettingsTabSystemEnableVsync": "VSync",
+ "SettingsTabSystemEnablePptc": "PPTC (Profilovaná mezipaměť trvalého překladu)",
+ "SettingsTabSystemEnableFsIntegrityChecks": "Kontroly integrity souborového systému",
+ "SettingsTabSystemAudioBackend": "Backend zvuku:",
+ "SettingsTabSystemAudioBackendDummy": "Fiktivní",
+ "SettingsTabSystemAudioBackendOpenAL": "OpenAL",
+ "SettingsTabSystemAudioBackendSoundIO": "SoundIO",
+ "SettingsTabSystemAudioBackendSDL2": "SDL2",
+ "SettingsTabSystemHacks": "Hacky",
+ "SettingsTabSystemHacksNote": "Mohou způsobovat nestabilitu",
+ "SettingsTabSystemExpandDramSize": "Rozšířit DRAM na 8GiB",
+ "SettingsTabSystemIgnoreMissingServices": "Ignorovat chybějící služby",
+ "SettingsTabGraphics": "Grafika",
+ "SettingsTabGraphicsAPI": "Grafické API",
+ "SettingsTabGraphicsEnableShaderCache": "Povolit mezipaměť shaderu",
+ "SettingsTabGraphicsAnisotropicFiltering": "Anizotropní filtrování:",
+ "SettingsTabGraphicsAnisotropicFilteringAuto": "Auto",
+ "SettingsTabGraphicsAnisotropicFiltering2x": "2x",
+ "SettingsTabGraphicsAnisotropicFiltering4x": "4x",
+ "SettingsTabGraphicsAnisotropicFiltering8x": "8x",
+ "SettingsTabGraphicsAnisotropicFiltering16x": "16x",
+ "SettingsTabGraphicsResolutionScale": "Měřítko rozlišení:",
+ "SettingsTabGraphicsResolutionScaleCustom": "Vlastní (Nedoporučeno)",
+ "SettingsTabGraphicsResolutionScaleNative": "Nativní (720p/1080p)",
+ "SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
+ "SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
+ "SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Nedoporučeno)",
+ "SettingsTabGraphicsAspectRatio": "Poměr stran:",
+ "SettingsTabGraphicsAspectRatio4x3": "4:3",
+ "SettingsTabGraphicsAspectRatio16x9": "16:9",
+ "SettingsTabGraphicsAspectRatio16x10": "16:10",
+ "SettingsTabGraphicsAspectRatio21x9": "21:9",
+ "SettingsTabGraphicsAspectRatio32x9": "32:9",
+ "SettingsTabGraphicsAspectRatioStretch": "Roztáhnout do okna",
+ "SettingsTabGraphicsDeveloperOptions": "Možnosti pro vývojáře",
+ "SettingsTabGraphicsShaderDumpPath": "Cesta pro dumpování grafických shaderů",
+ "SettingsTabLogging": "Logování",
+ "SettingsTabLoggingLogging": "Logování",
+ "SettingsTabLoggingEnableLoggingToFile": "Povolit logování do souboru",
+ "SettingsTabLoggingEnableStubLogs": "Povolit stub logy",
+ "SettingsTabLoggingEnableInfoLogs": "Povolit informační logy",
+ "SettingsTabLoggingEnableWarningLogs": "Povolit logy varování",
+ "SettingsTabLoggingEnableErrorLogs": "Povolit logy chyb",
+ "SettingsTabLoggingEnableTraceLogs": "Povolit trasovací logy",
+ "SettingsTabLoggingEnableGuestLogs": "Povolit logy hosta",
+ "SettingsTabLoggingEnableFsAccessLogs": "Povolit logy přístupů k souborovému systému",
+ "SettingsTabLoggingFsGlobalAccessLogMode": "Režim logování globálních přístupů k souborovému systému",
+ "SettingsTabLoggingDeveloperOptions": "Možnosti pro vývojáře",
+ "SettingsTabLoggingDeveloperOptionsNote": "VAROVÁNÍ: Sníží výkon",
+ "SettingsTabLoggingGraphicsBackendLogLevel": "Úroveň logování grafického backendu:",
+ "SettingsTabLoggingGraphicsBackendLogLevelNone": "Žádné",
+ "SettingsTabLoggingGraphicsBackendLogLevelError": "Chyby",
+ "SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Zpomalení",
+ "SettingsTabLoggingGraphicsBackendLogLevelAll": "Vše",
+ "SettingsTabLoggingEnableDebugLogs": "Povolit logy pro ladění",
+ "SettingsTabInput": "Vstup",
+ "SettingsTabInputEnableDockedMode": "Dokovaný režim",
+ "SettingsTabInputDirectKeyboardAccess": "Přístup přímo klávesnicí",
+ "SettingsButtonSave": "Uložit",
+ "SettingsButtonClose": "Zavřít",
+ "SettingsButtonOk": "OK",
+ "SettingsButtonCancel": "Zrušit",
+ "SettingsButtonApply": "Použít",
+ "ControllerSettingsPlayer": "Hráč",
+ "ControllerSettingsPlayer1": "Hráč 1",
+ "ControllerSettingsPlayer2": "Hráč 2",
+ "ControllerSettingsPlayer3": "Hráč 3",
+ "ControllerSettingsPlayer4": "Hráč 4",
+ "ControllerSettingsPlayer5": "Hráč 5",
+ "ControllerSettingsPlayer6": "Hráč 6",
+ "ControllerSettingsPlayer7": "Hráč 7",
+ "ControllerSettingsPlayer8": "Hráč 8",
+ "ControllerSettingsHandheld": "Handheld",
+ "ControllerSettingsInputDevice": "Vstupní zařízení",
+ "ControllerSettingsRefresh": "Obnovit",
+ "ControllerSettingsDeviceDisabled": "Deaktivováno",
+ "ControllerSettingsControllerType": "Typ ovladače",
+ "ControllerSettingsControllerTypeHandheld": "Handheld",
+ "ControllerSettingsControllerTypeProController": "Pro Controller",
+ "ControllerSettingsControllerTypeJoyConPair": "Pár JoyConů",
+ "ControllerSettingsControllerTypeJoyConLeft": "Levý JoyCon",
+ "ControllerSettingsControllerTypeJoyConRight": "Pravý JoyCon",
+ "ControllerSettingsProfile": "Profil",
+ "ControllerSettingsProfileDefault": "Výchozí",
+ "ControllerSettingsLoad": "Načíst",
+ "ControllerSettingsAdd": "Přidat",
+ "ControllerSettingsRemove": "Odebrat",
+ "ControllerSettingsButtons": "Tlačítka",
+ "ControllerSettingsButtonA": "A",
+ "ControllerSettingsButtonB": "B",
+ "ControllerSettingsButtonX": "X",
+ "ControllerSettingsButtonY": "Y",
+ "ControllerSettingsButtonPlus": "+",
+ "ControllerSettingsButtonMinus": "-",
+ "ControllerSettingsDPad": "Směrový kříž",
+ "ControllerSettingsDPadUp": "Nahoru",
+ "ControllerSettingsDPadDown": "Dolů",
+ "ControllerSettingsDPadLeft": "Doleva",
+ "ControllerSettingsDPadRight": "Doprava",
+ "ControllerSettingsStickButton": "Tlačítko",
+ "ControllerSettingsStickUp": "Nahoru",
+ "ControllerSettingsStickDown": "Dolů",
+ "ControllerSettingsStickLeft": "Doleva",
+ "ControllerSettingsStickRight": "Doprava",
+ "ControllerSettingsStickStick": "Páčka",
+ "ControllerSettingsStickInvertXAxis": "Invertovat X souřadnici páčky",
+ "ControllerSettingsStickInvertYAxis": "Invertovat Y souřadnici páčky",
+ "ControllerSettingsStickDeadzone": "Mrtvá zóna:",
+ "ControllerSettingsLStick": "Levá páčka",
+ "ControllerSettingsRStick": "Pravá páčka",
+ "ControllerSettingsTriggersLeft": "Spouště vlevo",
+ "ControllerSettingsTriggersRight": "Spouště vpravo",
+ "ControllerSettingsTriggersButtonsLeft": "Tlačítka spouště vlevo",
+ "ControllerSettingsTriggersButtonsRight": "Tlačítka spouště vpravo",
+ "ControllerSettingsTriggers": "Spouště",
+ "ControllerSettingsTriggerL": "L",
+ "ControllerSettingsTriggerR": "R",
+ "ControllerSettingsTriggerZL": "ZL",
+ "ControllerSettingsTriggerZR": "ZR",
+ "ControllerSettingsLeftSL": "SL",
+ "ControllerSettingsLeftSR": "SR",
+ "ControllerSettingsRightSL": "SL",
+ "ControllerSettingsRightSR": "SR",
+ "ControllerSettingsExtraButtonsLeft": "Tlačítka vlevo",
+ "ControllerSettingsExtraButtonsRight": "Tlačítka vpravo",
+ "ControllerSettingsMisc": "Ostatní",
+ "ControllerSettingsTriggerThreshold": "Práh spouště:",
+ "ControllerSettingsMotion": "Pohyb",
+ "ControllerSettingsMotionUseCemuhookCompatibleMotion": "Použít pohyb kompatibilní s CemuHook",
+ "ControllerSettingsMotionControllerSlot": "Slot ovladače:",
+ "ControllerSettingsMotionMirrorInput": "Zrcadlit vstup",
+ "ControllerSettingsMotionRightJoyConSlot": "Slot pravého JoyConu:",
+ "ControllerSettingsMotionServerHost": "Server hostitele:",
+ "ControllerSettingsMotionGyroSensitivity": "Citlivost gyroskopu:",
+ "ControllerSettingsMotionGyroDeadzone": "Mrtvá zóna gyroskopu:",
+ "ControllerSettingsSave": "Uložit",
+ "ControllerSettingsClose": "Zavřít",
+ "KeyUnknown": "Neznámé",
+ "KeyShiftLeft": "Levý Shift",
+ "KeyShiftRight": "Pravý Shift",
+ "KeyControlLeft": "Levý Ctrl",
+ "KeyMacControlLeft": "Levý ⌃",
+ "KeyControlRight": "Pravý Ctrl",
+ "KeyMacControlRight": "Pravý ⌃",
+ "KeyAltLeft": "Levý Alt",
+ "KeyMacAltLeft": "Levý ⌥",
+ "KeyAltRight": "Pravý Alt",
+ "KeyMacAltRight": "Pravý ⌥",
+ "KeyWinLeft": "Levý ⊞",
+ "KeyMacWinLeft": "Levý ⌘",
+ "KeyWinRight": "Pravý ⊞",
+ "KeyMacWinRight": "Pravý ⌘",
+ "KeyMenu": "Menu",
+ "KeyUp": "Nahoru",
+ "KeyDown": "Dolů",
+ "KeyLeft": "Doleva",
+ "KeyRight": "Doprava",
+ "KeyEnter": "Enter",
+ "KeyEscape": "Escape",
+ "KeySpace": "Mezerník",
+ "KeyTab": "Tab",
+ "KeyBackSpace": "Backspace",
+ "KeyInsert": "Insert",
+ "KeyDelete": "Delete",
+ "KeyPageUp": "Page Up",
+ "KeyPageDown": "Page Down",
+ "KeyHome": "Home",
+ "KeyEnd": "End",
+ "KeyCapsLock": "Caps Lock",
+ "KeyScrollLock": "Scroll Lock",
+ "KeyPrintScreen": "Print Screen",
+ "KeyPause": "Pause",
+ "KeyNumLock": "Num Lock",
+ "KeyClear": "Clear",
+ "KeyKeypad0": "Numerická 0",
+ "KeyKeypad1": "Numerická 1",
+ "KeyKeypad2": "Numerická 2",
+ "KeyKeypad3": "Numerická 3",
+ "KeyKeypad4": "Numerická 4",
+ "KeyKeypad5": "Numerická 5",
+ "KeyKeypad6": "Numerická 6",
+ "KeyKeypad7": "Numerická 7",
+ "KeyKeypad8": "Numerická 8",
+ "KeyKeypad9": "Numerická 9",
+ "KeyKeypadDivide": "Numerické dělení",
+ "KeyKeypadMultiply": "Numerické násobení",
+ "KeyKeypadSubtract": "Numerické minus",
+ "KeyKeypadAdd": "Numerické plus",
+ "KeyKeypadDecimal": "Numerická tečka",
+ "KeyKeypadEnter": "Numerický enter",
+ "KeyNumber0": "0",
+ "KeyNumber1": "1",
+ "KeyNumber2": "2",
+ "KeyNumber3": "3",
+ "KeyNumber4": "4",
+ "KeyNumber5": "5",
+ "KeyNumber6": "6",
+ "KeyNumber7": "7",
+ "KeyNumber8": "8",
+ "KeyNumber9": "9",
+ "KeyTilde": "~",
+ "KeyGrave": "`",
+ "KeyMinus": "-",
+ "KeyPlus": "+",
+ "KeyBracketLeft": "[",
+ "KeyBracketRight": "]",
+ "KeySemicolon": ";",
+ "KeyQuote": "\"",
+ "KeyComma": ",",
+ "KeyPeriod": ".",
+ "KeySlash": "/",
+ "KeyBackSlash": "\\",
+ "KeyUnbound": "Nenastaveno",
+ "GamepadLeftStick": "Tlačítko levé páčky",
+ "GamepadRightStick": "Tlačítko pravé páčky",
+ "GamepadLeftShoulder": "Levé tlačítko",
+ "GamepadRightShoulder": "Pravé tlačítko",
+ "GamepadLeftTrigger": "Levá spoušť",
+ "GamepadRightTrigger": "Pravá spoušť",
+ "GamepadDpadUp": "Nahoru",
+ "GamepadDpadDown": "Dolů",
+ "GamepadDpadLeft": "Doleva",
+ "GamepadDpadRight": "Doprava",
+ "GamepadMinus": "-",
+ "GamepadPlus": "+",
+ "GamepadGuide": "Guide",
+ "GamepadMisc1": "Ostatní",
+ "GamepadPaddle1": "Páčka 1",
+ "GamepadPaddle2": "Páčka 2",
+ "GamepadPaddle3": "Páčka 3",
+ "GamepadPaddle4": "Páčka 4",
+ "GamepadTouchpad": "Touchpad",
+ "GamepadSingleLeftTrigger0": "Levá spoušť 0",
+ "GamepadSingleRightTrigger0": "Pravá spoušť 0",
+ "GamepadSingleLeftTrigger1": "Levá spoušť 1",
+ "GamepadSingleRightTrigger1": "Pravá spoušť 1",
+ "StickLeft": "Levá páčka",
+ "StickRight": "Pravá páčka",
+ "UserProfilesSelectedUserProfile": "Vybraný uživatelský profil:",
+ "UserProfilesSaveProfileName": "Uložit název profilu",
+ "UserProfilesChangeProfileImage": "Změnit profilový obrázek",
+ "UserProfilesAvailableUserProfiles": "Dostupné uživatelské profily:",
+ "UserProfilesAddNewProfile": "Vytvořit profil",
+ "UserProfilesDelete": "Smazat",
+ "UserProfilesClose": "Zavřít",
+ "ProfileNameSelectionWatermark": "Zvolte si přezdívku",
+ "ProfileImageSelectionTitle": "Výběr profilového obrázku",
+ "ProfileImageSelectionHeader": "Zvolte profilový obrázek",
+ "ProfileImageSelectionNote": "Můžete importovat vlastní profilový obrázek, nebo vybrat avatar z firmwaru systému",
+ "ProfileImageSelectionImportImage": "Importovat soubor obrázku",
+ "ProfileImageSelectionSelectAvatar": "Vybrat avatar z firmwaru",
+ "InputDialogTitle": "Dialogové okno vstupu",
+ "InputDialogOk": "OK",
+ "InputDialogCancel": "Zrušit",
+ "InputDialogAddNewProfileTitle": "Zvolte název profilu",
+ "InputDialogAddNewProfileHeader": "Zadejte prosím název profilu",
+ "InputDialogAddNewProfileSubtext": "(Maximální délka: {0})",
+ "AvatarChoose": "Vybrat avatar",
+ "AvatarSetBackgroundColor": "Nastavit barvu pozadí",
+ "AvatarClose": "Zavřít",
+ "ControllerSettingsLoadProfileToolTip": "Načíst profil",
+ "ControllerSettingsAddProfileToolTip": "Přidat profil",
+ "ControllerSettingsRemoveProfileToolTip": "Odebrat profil",
+ "ControllerSettingsSaveProfileToolTip": "Uložit profil",
+ "MenuBarFileToolsTakeScreenshot": "Pořídit snímek obrazovky",
+ "MenuBarFileToolsHideUi": "Skrýt UI",
+ "GameListContextMenuRunApplication": "Spustit aplikaci",
+ "GameListContextMenuToggleFavorite": "Přidat do/Odebrat z oblíbených",
+ "GameListContextMenuToggleFavoriteToolTip": "Přidat/Odebrat hře oblíbený status",
+ "SettingsTabGeneralTheme": "Motiv:",
+ "SettingsTabGeneralThemeAuto": "Auto",
+ "SettingsTabGeneralThemeDark": "Tmavý",
+ "SettingsTabGeneralThemeLight": "Světlý",
+ "ControllerSettingsConfigureGeneral": "Konfigurovat",
+ "ControllerSettingsRumble": "Vibrace",
+ "ControllerSettingsRumbleStrongMultiplier": "Násobitel silných vibrací",
+ "ControllerSettingsRumbleWeakMultiplier": "Násobitel slabých vibrací",
+ "DialogMessageSaveNotAvailableMessage": "Pro {0} [{1:x16}] neexistují žádná uložená data",
+ "DialogMessageSaveNotAvailableCreateSaveMessage": "Chcete vytvořit uložená data pro tuto hru?",
+ "DialogConfirmationTitle": "Ryujinx - Potvrzení",
+ "DialogUpdaterTitle": "Ryujinx - Aktualizátor",
+ "DialogErrorTitle": "Ryujinx - Chyba",
+ "DialogWarningTitle": "Ryujinx - Varování",
+ "DialogExitTitle": "Ryujinx - Ukončit",
+ "DialogErrorMessage": "Ryujinx narazil na chybu",
+ "DialogExitMessage": "Opravdu chcete zavřít Ryujinx?",
+ "DialogExitSubMessage": "Všechna neuložená data budou ztracena!",
+ "DialogMessageCreateSaveErrorMessage": "Při vytváření zadaných uložených dat došlo k chybě: {0}",
+ "DialogMessageFindSaveErrorMessage": "Při hledání zadaných uložených dat došlo k chybě: {0}",
+ "FolderDialogExtractTitle": "Vyberte složku, do které se bude extrahovat",
+ "DialogNcaExtractionMessage": "Extrahování {0} sekce z {1}...",
+ "DialogNcaExtractionTitle": "Ryujinx - Extraktor NCA sekce",
+ "DialogNcaExtractionMainNcaNotFoundErrorMessage": "Extrakce selhala. Hlavní NCA ve vybraném souboru nebyl přítomen.",
+ "DialogNcaExtractionCheckLogErrorMessage": "Extrakce selhala. Pro další informace si přečtěte soubor logů.",
+ "DialogNcaExtractionSuccessMessage": "Extrakce byla úspěšně dokončena.",
+ "DialogUpdaterConvertFailedMessage": "Nepodařilo se převést aktuální verzi Ryujinxu.",
+ "DialogUpdaterCancelUpdateMessage": "Rušení aktualizace!",
+ "DialogUpdaterAlreadyOnLatestVersionMessage": "Již používáte nejaktualizovanější verzi Ryujinx!",
+ "DialogUpdaterFailedToGetVersionMessage": "Došlo k chybě při pokusu získat informace o vydání z GitHubu. To se může stát, pokud GitHub akce sestavují novou verzi. Zkuste to znovu za pár minut.",
+ "DialogUpdaterConvertFailedGithubMessage": "Nepodařilo se převést přijatou verzi Ryujinxu z Github vydání.",
+ "DialogUpdaterDownloadingMessage": "Stahování aktualizace...",
+ "DialogUpdaterExtractionMessage": "Rozbalování aktualizace...",
+ "DialogUpdaterRenamingMessage": "Přejmenovávání aktualizace...",
+ "DialogUpdaterAddingFilesMessage": "Přidávání nové aktualizace...",
+ "DialogUpdaterCompleteMessage": "Aktualizace dokončena!",
+ "DialogUpdaterRestartMessage": "Chcete nyní restartovat Ryujinx?",
+ "DialogUpdaterNoInternetMessage": "Nejste připojeni k internetu!",
+ "DialogUpdaterNoInternetSubMessage": "Ověřte prosím, zda máte funkční připojení k internetu!",
+ "DialogUpdaterDirtyBuildMessage": "Není možné aktualizovat pracovní sestavení Ryujinxu!",
+ "DialogUpdaterDirtyBuildSubMessage": "Pokud hledáte podporovanou verzi, stáhněte si Ryujinx na https://ryujinx.org/.",
+ "DialogRestartRequiredMessage": "Vyžadován restart",
+ "DialogThemeRestartMessage": "Motiv byl uložen. Restart je nutný pro aplikování motivu.",
+ "DialogThemeRestartSubMessage": "Chcete restartovat",
+ "DialogFirmwareInstallEmbeddedMessage": "Chcete nainstalovat firmware obsažený v této hře? (Firmware {0})",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "Nebyl nalezen žádný nainstalovaný firmware, ale Ryujinx byl schopen nainstalovat firmware {0} z poskytnuté hry.\nEmulátor se nyní spustí.",
+ "DialogFirmwareNoFirmwareInstalledMessage": "Není nainstalován žádný firmware",
+ "DialogFirmwareInstalledMessage": "Firmware {0} byl nainstalován",
+ "DialogInstallFileTypesSuccessMessage": "Typy souborů byly úspěšně nainstalovány!",
+ "DialogInstallFileTypesErrorMessage": "Nepodařilo se nainstalovat typy souborů.",
+ "DialogUninstallFileTypesSuccessMessage": "Typy souborů byly úspěšně odinstalovány!",
+ "DialogUninstallFileTypesErrorMessage": "Nepodařilo se odinstalovat typy souborů.",
+ "DialogOpenSettingsWindowLabel": "Otevřít okno nastavení",
+ "DialogControllerAppletTitle": "Applet ovladače",
+ "DialogMessageDialogErrorExceptionMessage": "Chyba při zobrazování dialogového okna se zprávou: {0}",
+ "DialogSoftwareKeyboardErrorExceptionMessage": "Chyba při zobrazování softwarové klávesnice: {0}",
+ "DialogErrorAppletErrorExceptionMessage": "Chyba při zobrazování ErrorApplet dialogového okna: {0}",
+ "DialogUserErrorDialogMessage": "{0}: {1}",
+ "DialogUserErrorDialogInfoMessage": "\nDalší informace o tom, jak opravit tuto chybu, naleznete v našem průvodci nastavením.",
+ "DialogUserErrorDialogTitle": "Chyba Ryujinxu ({0})",
+ "DialogAmiiboApiTitle": "Amiibo API",
+ "DialogAmiiboApiFailFetchMessage": "Nastala chyba při načítání informací z API.",
+ "DialogAmiiboApiConnectErrorMessage": "Nepodařilo se připojit k serveru Amiibo API. Služba může být mimo provoz nebo možná budete muset ověřit, že jste připojeni k internetu a online.",
+ "DialogProfileInvalidProfileErrorMessage": "Profil {0} je nekompatibilní s aktuálním konfiguračním systémem vstupu.",
+ "DialogProfileDefaultProfileOverwriteErrorMessage": "Výchozí profil nelze přepsat",
+ "DialogProfileDeleteProfileTitle": "Mazání profilu",
+ "DialogProfileDeleteProfileMessage": "Tato akce je nevratná, opravdu chcete pokračovat?",
+ "DialogWarning": "Varování",
+ "DialogPPTCDeletionMessage": "Chystáte se přidat do fronty obnovu PPTC při příštím spuštění:\n\n{0}\n\nOpravdu chcete pokračovat?",
+ "DialogPPTCDeletionErrorMessage": "Chyba při mazání PPTC mezipaměti na {0}: {1}",
+ "DialogShaderDeletionMessage": "Chystáte se odstranit mezipaměť shaderu pro:\n\n{0}\n\nOpravdu chcete pokračovat?",
+ "DialogShaderDeletionErrorMessage": "Chyba při mazání mezipaměti shaderu na {0}: {1}",
+ "DialogRyujinxErrorMessage": "Ryujinx narazil na chybu",
+ "DialogInvalidTitleIdErrorMessage": "Chyba UI: Vybraná hra neměla platné ID titulu",
+ "DialogFirmwareInstallerFirmwareNotFoundErrorMessage": "Platný firmware systému nebyl nalezen v {0}.",
+ "DialogFirmwareInstallerFirmwareInstallTitle": "Nainstalovat firmware {0}",
+ "DialogFirmwareInstallerFirmwareInstallMessage": "Bude nainstalována verze systému {0}.",
+ "DialogFirmwareInstallerFirmwareInstallSubMessage": "\n\nTen nahradí aktuální verzi systému {0}.",
+ "DialogFirmwareInstallerFirmwareInstallConfirmMessage": "Chcete pokračovat?",
+ "DialogFirmwareInstallerFirmwareInstallWaitMessage": "Instalování firmwaru...",
+ "DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Verze systému {0} byla úspěšně nainstalována.",
+ "DialogUserProfileDeletionWarningMessage": "Nebyly by už žádné další profily k otevření, pokud by byl vybraný profil smazán",
+ "DialogUserProfileDeletionConfirmMessage": "Chcete odstranit vybraný profil",
+ "DialogUserProfileUnsavedChangesTitle": "Varování - Neuložené změny",
+ "DialogUserProfileUnsavedChangesMessage": "Provedli jste změny v tomto uživatelském profilu, které nebyly uloženy.",
+ "DialogUserProfileUnsavedChangesSubMessage": "Chcete zahodit vaše změny?",
+ "DialogControllerSettingsModifiedConfirmMessage": "Aktuální nastavení ovladače bylo aktualizováno.",
+ "DialogControllerSettingsModifiedConfirmSubMessage": "Chcete uložit změny?",
+ "DialogLoadFileErrorMessage": "{0}. Chybný soubor: {1}",
+ "DialogModAlreadyExistsMessage": "Mód již existuje",
+ "DialogModInvalidMessage": "Zadaný adresář neobsahuje mód!",
+ "DialogModDeleteNoParentMessage": "Smazání se nezdařilo: Nepodařilo se najít nadřazený adresář módu \"{0}\"!",
+ "DialogDlcNoDlcErrorMessage": "Zvolený soubor neobsahuje DLC pro vybraný titul!",
+ "DialogPerformanceCheckLoggingEnabledMessage": "Máte zapnuté trasovací logy, které jsou navrženy pouze pro vývojáře.",
+ "DialogPerformanceCheckLoggingEnabledConfirmMessage": "Pro optimální výkon je doporučeno vypnout trasovací logy. Chcete trasovací logy vypnout hned?",
+ "DialogPerformanceCheckShaderDumpEnabledMessage": "Máte zapnuto dumpování shaderů, které je navrženo pouze pro vývojáře.",
+ "DialogPerformanceCheckShaderDumpEnabledConfirmMessage": "Pro optimální výkon je doporučeno vypnout dumpování shaderů. Chcete dumpování shaderů vypnout hned?",
+ "DialogLoadAppGameAlreadyLoadedMessage": "Hra již byla načtena",
+ "DialogLoadAppGameAlreadyLoadedSubMessage": "Před spuštěním další hry zastavte emulaci nebo zavřete emulátor.",
+ "DialogUpdateAddUpdateErrorMessage": "Zvolený soubor neobsahuje aktualizaci pro vybraný titul!",
+ "DialogSettingsBackendThreadingWarningTitle": "Varování - Threading backendu",
+ "DialogSettingsBackendThreadingWarningMessage": "Ryujinx musí být restartován po změně této možnosti, aby se mohla plně aplikovat. V závislosti na vaší platformě budete možná muset při používání Ryujinxu ručně vypnout vlastní multithreading vašeho ovladače.",
+ "DialogModManagerDeletionWarningMessage": "Chystáte se odstranit mód: {0}\n\nOpravdu chcete pokračovat?",
+ "DialogModManagerDeletionAllWarningMessage": "Chystáte se odstranit všechny módy pro tento titul.\n\nOpravdu chcete pokračovat?",
+ "SettingsTabGraphicsFeaturesOptions": "Funkce",
+ "SettingsTabGraphicsBackendMultithreading": "Multithreading grafického backendu:",
+ "CommonAuto": "Auto",
+ "CommonOff": "Vypnuto",
+ "CommonOn": "Zapnuto",
+ "InputDialogYes": "Ano",
+ "InputDialogNo": "Ne",
+ "DialogProfileInvalidProfileNameErrorMessage": "Název souboru obsahuje neplatné znaky. Zkuste to prosím znovu.",
+ "MenuBarOptionsPauseEmulation": "Pozastavit",
+ "MenuBarOptionsResumeEmulation": "Pokračovat",
+ "AboutUrlTooltipMessage": "Kliknutím otevřete stránky Ryujinxu ve vašem výchozím prohlížeči.",
+ "AboutDisclaimerMessage": "Ryujinx nemá žádnou vazbu na Nintendo™,\nani na žádného z jejich partnerů.",
+ "AboutAmiiboDisclaimerMessage": "AmiiboAPI (www.amiiboapi.com) je použito\nv naší emulaci Amiibo.",
+ "AboutPatreonUrlTooltipMessage": "Kliknutím otevřete Patreon Ryujinxu ve vašem výchozím prohlížeči.",
+ "AboutGithubUrlTooltipMessage": "Kliknutím otevřete GitHub Ryujinxu ve vašem výchozím prohlížeči.",
+ "AboutDiscordUrlTooltipMessage": "Kliknutím otevřete pozvánku na Ryujinx Discord server ve vašem výchozím prohlížeči.",
+ "AboutTwitterUrlTooltipMessage": "Kliknutím otevřete Twitter Ryujinxu ve vašem výchozím prohlížeči.",
+ "AboutRyujinxAboutTitle": "O aplikaci:",
+ "AboutRyujinxAboutContent": "Ryujinx je emulátor Nintenda Switch™.\nPodpořte nás prosím na Patreonu.\nZískejte všechny čerstvé novinky na našem Twitteru nebo Discordu.\nVývojáři se zájmem o přispívání se mohou dozvědět více na našem GitHubu nebo Discordu.",
+ "AboutRyujinxMaintainersTitle": "Aplikaci vyvíjí:",
+ "AboutRyujinxMaintainersContentTooltipMessage": "Kliknutím otevřete stránku Přispěvatelů ve vašem výchozím prohlížeči.",
+ "AboutRyujinxSupprtersTitle": "Na Patreonu nás podporují:",
+ "AmiiboSeriesLabel": "Amiibo série",
+ "AmiiboCharacterLabel": "Postava",
+ "AmiiboScanButtonLabel": "Naskenovat",
+ "AmiiboOptionsShowAllLabel": "Zobrazit všechna Amiibo",
+ "AmiiboOptionsUsRandomTagLabel": "Hack: Použít náhodný štítek Uuid",
+ "DlcManagerTableHeadingEnabledLabel": "Povoleno",
+ "DlcManagerTableHeadingTitleIdLabel": "ID Titulu",
+ "DlcManagerTableHeadingContainerPathLabel": "Cesta kontejneru",
+ "DlcManagerTableHeadingFullPathLabel": "Plná cesta",
+ "DlcManagerRemoveAllButton": "Odebrat vše",
+ "DlcManagerEnableAllButton": "Povolit vše",
+ "DlcManagerDisableAllButton": "Zakázat vše",
+ "ModManagerDeleteAllButton": "Odstranit vše",
+ "MenuBarOptionsChangeLanguage": "Změnit jazyk",
+ "MenuBarShowFileTypes": "Zobrazovat typy souborů",
+ "CommonSort": "Seřadit",
+ "CommonShowNames": "Zobrazovat názvy",
+ "CommonFavorite": "Oblíbené",
+ "OrderAscending": "Vzestupně",
+ "OrderDescending": "Sestupně",
+ "SettingsTabGraphicsFeatures": "Funkce a vylepšení",
+ "ErrorWindowTitle": "Okno chyby",
+ "ToggleDiscordTooltip": "Zvolte, zda zobrazovat Ryujinx v sekci \"aktuálně hraje\" na Discord aktivitě",
+ "AddGameDirBoxTooltip": "Zadejte adresář her pro přidání do seznamu",
+ "AddGameDirTooltip": "Přidat adresář her do seznamu",
+ "RemoveGameDirTooltip": "Odebrat vybraný adresář her",
+ "CustomThemeCheckTooltip": "Použít vlastní motiv Avalonia pro GUI ke změně vzhledu menu emulátoru",
+ "CustomThemePathTooltip": "Cesta k vlastnímu motivu GUI",
+ "CustomThemeBrowseTooltip": "Procházet pro vlastní motiv GUI",
+ "DockModeToggleTooltip": "Emulovaný systém v dokovaném režimu se bude chovat jako dokované Nintendo Switch. To zlepšuje kvalitu grafiky ve většině her. Naopak vypnutím této funkce se emulovaný systém bude chovat jako handheld Nintendo Switch, což sníží kvalitu grafiky.\n\nNakonfigurujte ovládání hráče 1, pokud plánujete použít dokovaný režim; nakonfigurujte handheld ovládání, pokud plánujete použít handheld režim.\n\nPonechte ZAPNUTO, pokud si nejste jistí.",
+ "DirectKeyboardTooltip": "Podpora přístupu přímo klávesnicí (HID). Poskytuje hře přístup k vaší klávesnici jako zařízení pro zadávání textu.\n\nFunguje pouze s hrami, které nativně podporují používání klávesnice na hardwaru Switche.\n\nPonechte VYPNUTO, pokud si nejste jistí.",
+ "DirectMouseTooltip": "Podpora přístupu přímo myší (HID). Poskytuje hře přístup k vaší myši jako zařízení pro ukazování.\n\nFunguje pouze s hrami, které nativně podporují ovládání myší na hardwaru Switche, což jsou pouze ojedinělé případy.\n\nPonechte VYPNUTO, pokud si nejste jistí.",
+ "RegionTooltip": "Změnit region systému",
+ "LanguageTooltip": "Změnit jazyk systému",
+ "TimezoneTooltip": "Změnit časovou zónu systému",
+ "TimeTooltip": "Změnit čas systému",
+ "VSyncToggleTooltip": "Vertikální synchronizace emulované konzole. V podstatě omezovač snímků za sekundu pro většinu her; vypnutí může způsobit, že hry poběží rychleji, nebo, že načítání obrazovky bude trvat déle nebo se úplně zasekne.\n\nLze přepnout ve hře pomocí klávesové zkratky dle vaší volby (F1 výchozí). Doporučujeme toto udělat, pokud plánujete synchronizaci vypnout.\n\nPonechte ZAPNUTO, pokud si nejste jistí.",
+ "PptcToggleTooltip": "Ukládá přeložené funkce JIT, aby nemusely být překládány pokaždé, když se hra načítá.\n\nSnižuje sekání a výrazně zrychluje časy spuštění po prvním spuštění hry.\n\nPonechte ZAPNUTO, pokud si nejste jistí.",
+ "FsIntegrityToggleTooltip": "Při spuštění hry se pokusí vyhledat poškozené soubory a pokud jsou nějaké nalezeny, zobrazí v logu chybu hashe.\n\nNemá žádný vliv na výkon a je určeno k řešení problémů.\n\nPonechte ZAPNUTO, pokud si nejste jistí.",
+ "AudioBackendTooltip": "Změní backend používaný k renderování zvuku.\n\nJe preferováno SDL2, zatímco OpenAL a SoundIO jsou používány jako záložní. Fiktivní bude bez zvuku.\n\nNastavte na SDL2, pokud si nejste jistí.",
+ "MemoryManagerTooltip": "Změnit, jak se paměť hosta mapuje a jak se k ní přistupuje. Výrazně ovlivňuje výkon emulovaného CPU.\n\nNastavte na NEKONTROLOVANÝ HOST, pokud si nejste jistí.",
+ "MemoryManagerSoftwareTooltip": "Použijte softwarovou tabulku pro překlad adres. Největší přesnost, ale nejpomalejší výkon.",
+ "MemoryManagerHostTooltip": "Přímo mapovat paměť v adresovém prostoru hostitele. Mnohem rychlejší JIT kompilace a běh.",
+ "MemoryManagerUnsafeTooltip": "Přímo mapovat paměť, ale před přístupem nemaskovat adresu v adresovém prostoru hosta. Rychlejší, ale za cenu bezpečnosti. Hostovaná aplikace má přístup k paměti kdekoli v Ryujinxu, takže v tomto režimu spuštějte pouze programy, kterým důvěřujete.",
+ "UseHypervisorTooltip": "Použít Hypervizor namísto JIT. Výrazně zlepšuje výkon, pokud je dostupný, ale může být nestabilní v jeho současném stavu.",
+ "DRamTooltip": "Využívá alternativního paměťového režimu s 8GiB DRAM k napodobení vývojového modelu Switch.\n\nToto je užitečné pouze pro balíčky textur s vyšším rozlišením nebo pro módy poskytující rozlišení 4k. NEZLEPŠUJE výkon.\n\nPonechte VYPNUTO, pokud si nejste jistí.",
+ "IgnoreMissingServicesTooltip": "Ignoruje nenaimplementované služby Horizon OS. To může pomoci pro obcházení crashů při spouštění určitých her.\n\nPonechte VYPNUTO, pokud si nejste jistí.",
+ "GraphicsBackendThreadingTooltip": "Provádí příkazy grafického backendu na druhém vlákně.\n\nZrychluje kompilaci shaderů, snižuje sekání a zlepšuje výkon na GPU ovladačích bez jejich vlastní podpory vícevláknového zpracování. Mírně lepší výkon na ovladačích s podporou vícevláknového zpracování.\n\nNastavte na AUTO, pokud si nejste jistí.",
+ "GalThreadingTooltip": "Provádí příkazy grafického backendu na druhém vlákně.\n\nZrychluje kompilaci shaderů, snižuje sekání a zlepšuje výkon na GPU ovladačích bez jejich vlastní podpory vícevláknového zpracování. Mírně lepší výkon na ovladačích s podporou vícevláknového zpracování.\n\nNastavte na AUTO, pokud si nejste jistí.",
+ "ShaderCacheToggleTooltip": "Uloží mezipaměť shaderu na disk, což snižuje sekání při následných spuštěních.\n\nPonechte ZAPNUTO, pokud si nejste jistí.",
+ "ResolutionScaleTooltip": "Vynásobí rozlišení, ve kterém se hra vykresluje.\n\nNěkolik her s tímto nastavením nemusí fungovat a mohou vypadat rozpixelovaně, i když je rozlišení zvýšeno; pro takové hry možná budete muset vyhledat módy, které odstraňují vyhlazování hran nebo zvyšují jejich vnitřní vykreslovací rozlišení. Při používáním tohoto druhého typu módu budete pravděpodobně chtít vybrat Nativní.\n\nTuto možnost lze změnit, zatímco hra běží, kliknutím na tlačítko \"Použít\" níže; můžete jednoduše přesunout okno nastavení stranou a experimentovat tak dlouho, dokud nenajdete váš preferovaný vzhled hry.\n\nMějte na paměti, že 4x je až příliš pro prakticky jakýkoli systém.",
+ "ResolutionScaleEntryTooltip": "Měřítko rozlišení s desetinnými místy, třeba 1.5. Necelé faktory škálování mají větší pravděpodobnost způsobit problémy nebo crash.",
+ "AnisotropyTooltip": "Úroveň anizotropního filtrování. Nastavte na Auto pro použití hodnoty, kterou si vyžádá hra.",
+ "AspectRatioTooltip": "Poměr stran aplikován na okno vykreslovače.\n\nZměňte jej pouze, pokud používáte mód měnící poměr stran pro vaši hru, jinak bude grafika roztažena.\n\nPonechte 16:9, pokud si nejste jistí.",
+ "ShaderDumpPathTooltip": "Cesta pro dumpování grafických shaderů",
+ "FileLogTooltip": "Uloží logování z konzole do souboru logů na disk. Nemá vliv na výkon.",
+ "StubLogTooltip": "Vypisuje stub logy v konzoli. Nemá vliv na výkon.",
+ "InfoLogTooltip": "Vypisuje informační logy v konzoli. Nemá vliv na výkon.",
+ "WarnLogTooltip": "Vypisuje logy varování v konzoli. Nemá vliv na výkon.",
+ "ErrorLogTooltip": "Vypisuje logy chyb v konzoli. Nemá vliv na výkon.",
+ "TraceLogTooltip": "Vypisuje trasovací logy v konzoli. Nemá vliv na výkon.",
+ "GuestLogTooltip": "Vypisuje logy hosta v konzoli. Nemá vliv na výkon.",
+ "FileAccessLogTooltip": "Vypisuje logy přístupů k souborům do konzole.",
+ "FSAccessLogModeTooltip": "Povolí logování přístupů k souborovému systému do konzole. Možné režimy jsou 0-3",
+ "DeveloperOptionTooltip": "Používejte opatrně",
+ "OpenGlLogLevel": "Vyžaduje mít povolené odpovídající úrovně logů",
+ "DebugLogTooltip": "Vypisuje logy pro ladění do konzole.\n\nPoužijte toto pouze v případě, že vám výslovně dá pokyn člen personálu, protože to sníží čitelnost logů a zhorší výkon emulátoru.",
+ "LoadApplicationFileTooltip": "Otevřít průzkumníka souborů pro výběr souboru kompatibilního se Switchem k načtení",
+ "LoadApplicationFolderTooltip": "Otevřít průzkumníka souborů pro výběr rozbalené aplikace, kompatibilní se Switchem, k načtení",
+ "OpenRyujinxFolderTooltip": "Otevřít složku souborového systému Ryujinxu",
+ "OpenRyujinxLogsTooltip": "Otevře složku, do které se zapisují logy",
+ "ExitTooltip": "Ukončit Ryujinx",
+ "OpenSettingsTooltip": "Otevřít okno nastavení",
+ "OpenProfileManagerTooltip": "Otevřít okno správce uživatelských profilů",
+ "StopEmulationTooltip": "Zastavit emulaci aktuální hry a vrátit se na výběr her",
+ "CheckUpdatesTooltip": "Zkontrolovat aktualizace Ryujinxu",
+ "OpenAboutTooltip": "Otevřít okno \"O aplikaci\"",
+ "GridSize": "Velikost mřížky",
+ "GridSizeTooltip": "Změnit velikost položek mřížky",
+ "SettingsTabSystemSystemLanguageBrazilianPortuguese": "Brazilská portugalština",
+ "AboutRyujinxContributorsButtonHeader": "Zobrazit všechny přispěvatele",
+ "SettingsTabSystemAudioVolume": "Hlasitost: ",
+ "AudioVolumeTooltip": "Změnit hlasitost zvuku",
+ "SettingsTabSystemEnableInternetAccess": "Přistup hosta k internetu/LAN režim",
+ "EnableInternetAccessTooltip": "Umožňuje emulované aplikaci připojit se k internetu.\n\nHry s LAN módem se mohou vzájemně k sobě připojit, pokud je tato možnost povolena a systémy jsou připojeny ke stejnému přístupovému bodu. To zahrnuje také reálné konzole.\n\nNEUMOŽŇUJE připojení se k Nintendo serverům. Může způsobit crash v určitých hrách, které se snaží připojit k Internetu.\n\nPonechte VYPNUTO, pokud si nejste jistí.",
+ "GameListContextMenuManageCheatToolTip": "Spravovat cheaty",
+ "GameListContextMenuManageCheat": "Spravovat cheaty",
+ "GameListContextMenuManageModToolTip": "Spravovat módy",
+ "GameListContextMenuManageMod": "Spravovat módy",
+ "ControllerSettingsStickRange": "Rozsah:",
+ "DialogStopEmulationTitle": "Ryujinx - Ukončit emulaci",
+ "DialogStopEmulationMessage": "Opravdu chcete ukončit emulaci?",
+ "SettingsTabCpu": "CPU",
+ "SettingsTabAudio": "Zvuk",
+ "SettingsTabNetwork": "Síť",
+ "SettingsTabNetworkConnection": "Síťové připojení",
+ "SettingsTabCpuCache": "Cache CPU",
+ "SettingsTabCpuMemory": "Režim CPU",
+ "DialogUpdaterFlatpakNotSupportedMessage": "Aktualizujte prosím Ryujinx přes FlatHub.",
+ "UpdaterDisabledWarningTitle": "Aktualizátor zakázán!",
+ "ControllerSettingsRotate90": "Otočit o 90° po směru hodinových ručiček",
+ "IconSize": "Velikost ikon",
+ "IconSizeTooltip": "Změnit velikost herních ikon",
+ "MenuBarOptionsShowConsole": "Zobrazit konzoli",
+ "ShaderCachePurgeError": "Chyba při mazání mezipaměti shaderu na {0}: {1}",
+ "UserErrorNoKeys": "Klíče nebyly nalezeny",
+ "UserErrorNoFirmware": "Firmware nebyl nalezen",
+ "UserErrorFirmwareParsingFailed": "Chyba při zpracování firmwaru",
+ "UserErrorApplicationNotFound": "Aplikace nebyla nalezena",
+ "UserErrorUnknown": "Neznámá chyba",
+ "UserErrorUndefined": "Nedefinovaná chyba",
+ "UserErrorNoKeysDescription": "Ryujinx nedokázal najít váš 'prod.keys' soubor",
+ "UserErrorNoFirmwareDescription": "Ryujinx nedokázal najít žádné nainstalované firmwary",
+ "UserErrorFirmwareParsingFailedDescription": "Ryujinx nebyl schopen zpracovat poskytnutý firmware. To je obvykle způsobeno zastaralými klíči.",
+ "UserErrorApplicationNotFoundDescription": "Ryujinx nemohl najít platnou aplikaci v dané cestě.",
+ "UserErrorUnknownDescription": "Došlo k neznámé chybě!",
+ "UserErrorUndefinedDescription": "Došlo k nedefinované chybě! Toto by se nemělo stát, kontaktujte prosím vývojáře!",
+ "OpenSetupGuideMessage": "Otevřít průvodce nastavením",
+ "NoUpdate": "Žádná aktualizace",
+ "TitleUpdateVersionLabel": "Verze {0}",
+ "TitleBundledUpdateVersionLabel": "Obsažena: Verze {0}",
+ "TitleBundledDlcLabel": "Obsaženo:",
+ "RyujinxInfo": "Ryujinx - Info",
+ "RyujinxConfirm": "Ryujinx - Potvrzení",
+ "FileDialogAllTypes": "Všechny typy",
+ "Never": "Nikdy",
+ "SwkbdMinCharacters": "Musí být alespoň {0} znaků dlouhé",
+ "SwkbdMinRangeCharacters": "Musí být {0}-{1} znaků dlouhé",
+ "SoftwareKeyboard": "Softwarová klávesnice",
+ "SoftwareKeyboardModeNumeric": "Musí obsahovat pouze 0-9 nebo '.'",
+ "SoftwareKeyboardModeAlphabet": "Nesmí obsahovat žádné CJK znaky",
+ "SoftwareKeyboardModeASCII": "Musí obsahovat pouze ASCII text",
+ "ControllerAppletControllers": "Podporované ovladače:",
+ "ControllerAppletPlayers": "Hráči:",
+ "ControllerAppletDescription": "Vaše aktuální konfigurace je neplatná. Otevřete nastavení a znovu nastavte své vstupy ovladače.",
+ "ControllerAppletDocked": "Nastaven dokovaný režim. Handheld ovládání by mělo být vypnuto.",
+ "UpdaterRenaming": "Přejmenovávání starých souborů...",
+ "UpdaterRenameFailed": "Aktualizátor nemohl přejmenovat soubor: {0}",
+ "UpdaterAddingFiles": "Přidávání nových souborů...",
+ "UpdaterExtracting": "Rozbalování aktualizace...",
+ "UpdaterDownloading": "Stahování aktualizace...",
+ "Game": "Hra",
+ "Docked": "Dokovaný",
+ "Handheld": "Handheld",
+ "ConnectionError": "Chyba připojení.",
+ "AboutPageDeveloperListMore": "{0} a další...",
+ "ApiError": "Chyba API.",
+ "LoadingHeading": "Načítání {0}",
+ "CompilingPPTC": "Kompilace PTC",
+ "CompilingShaders": "Kompilace shaderů",
+ "AllKeyboards": "Všechny klávesnice",
+ "OpenFileDialogTitle": "Vyberte podporovaný soubor k otevření",
+ "OpenFolderDialogTitle": "Vyberte složku s rozbalenou hrou",
+ "AllSupportedFormats": "Všechny podporované formáty",
+ "RyujinxUpdater": "Ryujinx aktualizátor",
+ "SettingsTabHotkeys": "Klávesové zkratky",
+ "SettingsTabHotkeysHotkeys": "Klávesové zkratky",
+ "SettingsTabHotkeysToggleVsyncHotkey": "Zapnout/Vypnout VSync:",
+ "SettingsTabHotkeysScreenshotHotkey": "Pořídit snímek obrazovky:",
+ "SettingsTabHotkeysShowUiHotkey": "Zobrazit UI:",
+ "SettingsTabHotkeysPauseHotkey": "Pozastavit:",
+ "SettingsTabHotkeysToggleMuteHotkey": "Ztlumit:",
+ "ControllerMotionTitle": "Nastavení ovládání pohybu",
+ "ControllerRumbleTitle": "Nastavení vibrací",
+ "SettingsSelectThemeFileDialogTitle": "Vybrat soubor motivu",
+ "SettingsXamlThemeFile": "Xaml soubor motivu",
+ "AvatarWindowTitle": "Správa účtů - Avatar",
+ "Amiibo": "Amiibo",
+ "Unknown": "Neznámý",
+ "Usage": "Využití",
+ "Writable": "Zapisovatelný",
+ "SelectDlcDialogTitle": "Vyberte soubory DLC",
+ "SelectUpdateDialogTitle": "Vyberte soubory aktualizací",
+ "SelectModDialogTitle": "Vyberte adresář módů",
+ "UserProfileWindowTitle": "Správce uživatelských profilů",
+ "CheatWindowTitle": "Správce cheatů",
+ "DlcWindowTitle": "Spravovat stahovatelný obsah pro {0} ({1})",
+ "ModWindowTitle": "Spravovat módy pro {0} ({1})",
+ "UpdateWindowTitle": "Správce aktualizací titulu",
+ "CheatWindowHeading": "Dostupné cheaty pro {0} [{1}]",
+ "BuildId": "BuildId:",
+ "DlcWindowHeading": "{0} Stahovatelný obsah(y/ů)",
+ "ModWindowHeading": "{0} Mód(y/ů)",
+ "UserProfilesEditProfile": "Upravit vybrané",
+ "Cancel": "Zrušit",
+ "Save": "Uložit",
+ "Discard": "Zahodit",
+ "Paused": "Pozastaveno",
+ "UserProfilesSetProfileImage": "Nastavit profilový obrázek",
+ "UserProfileEmptyNameError": "Jméno je nutné vyplnit",
+ "UserProfileNoImageError": "Profilový obrázek musí být nastaven",
+ "GameUpdateWindowHeading": "Spravovat aktualizace pro {0} ({1})",
+ "SettingsTabHotkeysResScaleUpHotkey": "Zvýšit rozlišení:",
+ "SettingsTabHotkeysResScaleDownHotkey": "Snížit rozlišení:",
+ "UserProfilesName": "Jméno:",
+ "UserProfilesUserId": "ID uživatele:",
+ "SettingsTabGraphicsBackend": "Grafický backend",
+ "SettingsTabGraphicsBackendTooltip": "Vyberte grafický backend, který bude použit v emulátoru.\n\nVulkan je celkově lepší pro všechny moderní grafické karty, pokud jsou jejich ovladače aktuální. Vulkan také obsahuje rychlejší kompilaci shaderů (méně sekání) pro GPU od všech prodejců.\n\nOpenGL může dosáhnout lepších výsledků na starých Nvidia GPUs, na starých AMD GPUs na Linuxu, nebo na GPUs s menší VRAM, avšak sekání při kompilaci shaderů budou větší.\n\nNastavte na Vulkan, pokud si nejste jistí. Nastavte na OpenGL, pokud vaše GPU nepodporuje Vulkan ani s nejnovějšími grafickými ovladači.",
+ "SettingsEnableTextureRecompression": "Povolit rekompresi textur",
+ "SettingsEnableTextureRecompressionTooltip": "Kompresuje ASTC textury s cílem snížit využití VRAM.\n\nHry používající tento formát textur zahrnují Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder a The Legend of Zelda: Tears of the Kingdom.\n\nGrafické karty s 4GiB VRAM nebo méně nejspíše někdy při běhu těchto her crashnou.\n\nPovolte pouze v případě, že vám ve výše uvedených hrách dochází VRAM. Ponechte VYPNUTO, pokud si nejste jistí.",
+ "SettingsTabGraphicsPreferredGpu": "Preferované GPU",
+ "SettingsTabGraphicsPreferredGpuTooltip": "Vyberte grafickou kartu, která bude použita s grafickým backendem Vulkan.\n\nNemá vliv na GPU, které bude používat OpenGL.\n\nNastavte na GPU označené jako \"dGPU\", pokud si nejste jistí. Pokud tam není, hodnotu neměňte.",
+ "SettingsAppRequiredRestartMessage": "Vyžadován restart Ryujinxu",
+ "SettingsGpuBackendRestartMessage": "Nastavení grafického backendu nebo GPU byla změněna. Je vyžadován restart na aplikování",
+ "SettingsGpuBackendRestartSubMessage": "Chcete nyní restartovat?",
+ "RyujinxUpdaterMessage": "Chcete aktualizovat Ryujinx na nejnovější verzi?",
+ "SettingsTabHotkeysVolumeUpHotkey": "Zvýšit hlasitost:",
+ "SettingsTabHotkeysVolumeDownHotkey": "Snížit hlasitost:",
+ "SettingsEnableMacroHLE": "Povolit HLE makra",
+ "SettingsEnableMacroHLETooltip": "Vysokoúrovňová emulace GPU makro kódu.\n\nZlepšuje výkon, ale může způsobovat grafické glitche v některých hrách.\n\nPonechte ZAPNUTO, pokud si nejste jistí.",
+ "SettingsEnableColorSpacePassthrough": "Obejít specifikování barevného prostoru",
+ "SettingsEnableColorSpacePassthroughTooltip": "Přikáže Vulkan backendu posílat informace o barvě bez specifikování barevného prostoru. Pro uživatele, kteří mají displeje se širokým gamutem, je takto možné docílit živějších barev, za cenu jejich korektnosti.",
+ "VolumeShort": "Hlasitost",
+ "UserProfilesManageSaves": "Spravovat uložená data",
+ "DeleteUserSave": "Chcete odstranit uložená data uživatele pro tuto hru?",
+ "IrreversibleActionNote": "Tato akce je nevratná.",
+ "SaveManagerHeading": "Spravovat uložená data pro {0} ({1})",
+ "SaveManagerTitle": "Správce uložených dat",
+ "Name": "Jméno",
+ "Size": "Velikost",
+ "Search": "Hledat",
+ "UserProfilesRecoverLostAccounts": "Obnovit ztracené účty",
+ "Recover": "Obnovit",
+ "UserProfilesRecoverHeading": "Byla nalezena uložená data pro následující účty",
+ "UserProfilesRecoverEmptyList": "Žádné profily k obnovení",
+ "GraphicsAATooltip": "Aplikuje vyhlazování hran na vykreslování her.\n\nFXAA rozostří většinu obrazu, zatímco SMAA se pokusí najít rozostřené hrany a vyhladit je.\n\nNedoporučuje se používat ve spojení se filtrem škálování FSR.\n\nTuto možnost lze změnit, zatímco hra běží, kliknutím na tlačítko \"Použít\" níže; můžete jednoduše přesunout okno nastavení stranou a experimentovat tak dlouho, dokud nenajdete váš preferovaný vzhled hry.\n\nPonechte ŽÁDNÉ, pokud si nejste jistí.",
+ "GraphicsAALabel": "Vyhlazování hran:",
+ "GraphicsScalingFilterLabel": "Filtr škálování:",
+ "GraphicsScalingFilterTooltip": "Vyberte filtr škálování, který bude použit při změně velikosti rozlišení.\n\nBilineární funguje dobře pro 3D hry a je bezpečnou výchozí volbou.\n\nNejbližší je doporučen pro hry s pixelovou grafikou.\n\nFSR 1.0 je pouze ostřící filtr, nedoporučuje se používat s FXAA nebo SMAA.\n\nŠkálování oblasti je doporučeno pro škálování rozlišeních, která jsou větší než výstupní okno. Lze jej použít k dosažení supersamplingového efektu vyhlazených hran při zmenšení o více než 2x.\n\nTuto možnost lze změnit, zatímco hra běží, kliknutím na tlačítko \"Použít\" níže; můžete jednoduše přesunout okno nastavení stranou a experimentovat tak dlouho, dokud nenajdete váš preferovaný vzhled hry.\n\nPonechte BILINEÁRNÍ, pokud si nejste jistí.",
+ "GraphicsScalingFilterBilinear": "Bilineární",
+ "GraphicsScalingFilterNearest": "Nejbližší",
+ "GraphicsScalingFilterFsr": "FSR",
+ "GraphicsScalingFilterArea": "Oblast",
+ "GraphicsScalingFilterLevelLabel": "Úroveň",
+ "GraphicsScalingFilterLevelTooltip": "Nastavit úroveň ostrosti pro FSR 1.0. Vyšší je ostřejší.",
+ "SmaaLow": "SMAA Nízké",
+ "SmaaMedium": "SMAA Střední",
+ "SmaaHigh": "SMAA Vysoké",
+ "SmaaUltra": "SMAA Ultra",
+ "UserEditorTitle": "Upravit uživatele",
+ "UserEditorTitleCreate": "Vytvořit uživatele",
+ "SettingsTabNetworkInterface": "Síťové rozhraní:",
+ "NetworkInterfaceTooltip": "Síťové rozhraní používané pro funkce LAN/LDN.\n\nVe spojení s VPN nebo XLink Kai a hrou podporující LAN lze použít pro imitaci připojení po stejné síti přes internet.\n\nPonechte VÝCHOZÍ, pokud si nejste jistí.",
+ "NetworkInterfaceDefault": "Výchozí",
+ "PackagingShaders": "Balení shaderů",
+ "AboutChangelogButton": "Zobrazit seznam změn na GitHubu",
+ "AboutChangelogButtonTooltipMessage": "Kliknutím otevřete seznam změn pro tuto verzi ve vašem výchozím prohlížeči.",
+ "SettingsTabNetworkMultiplayer": "Hra více hráčů",
+ "MultiplayerMode": "Režim:",
+ "MultiplayerModeTooltip": "Změnit LDN režim hry pro více hráčů.\n\nLdnMitm bude upravovat funkcionalitu místního bezdrátového připojení/místního hraní ve hrách, aby fungovala, jako by to byla LAN, a umožňovala lokální připojení po stejné síti s dalšími Ryujinx instancemi a hacknutými Nintendo Switch konzolemi, které mají nainstalovaný modul ldn_mitm.\n\nHra pro více hráčů vyžaduje, aby byli všichni hráči na stejné verzi hry (např. Super Smash Bros. Ultimate v13.0.1 se nemůže připojit k v13.0.0).\n\nPonechte VYPNUTO, pokud si nejste jistí.",
+ "MultiplayerModeDisabled": "Vypnuto",
+ "MultiplayerModeLdnMitm": "ldn_mitm"
+}
diff --git a/src/Ryujinx/Assets/Locales/de_DE.json b/src/Ryujinx/Assets/Locales/de_DE.json
index e23f3b619..453b4c6b8 100644
--- a/src/Ryujinx/Assets/Locales/de_DE.json
+++ b/src/Ryujinx/Assets/Locales/de_DE.json
@@ -12,8 +12,6 @@
"MenuBarFileOpenFromFile": "Datei _öffnen",
"MenuBarFileOpenFromFileError": "No applications found in selected file.",
"MenuBarFileOpenUnpacked": "_Entpacktes Spiel öffnen",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
"MenuBarFileOpenEmuFolder": "Ryujinx-Ordner öffnen",
"MenuBarFileOpenLogsFolder": "Logs-Ordner öffnen",
"MenuBarFileExit": "_Beenden",
@@ -100,14 +98,11 @@
"SettingsTabGeneralCheckUpdatesOnLaunch": "Beim Start nach Updates suchen",
"SettingsTabGeneralShowConfirmExitDialog": "Zeige den \"Beenden bestätigen\"-Dialog",
"SettingsTabGeneralRememberWindowState": "Fenstergröße/-position merken",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
"SettingsTabGeneralHideCursor": "Mauszeiger ausblenden",
"SettingsTabGeneralHideCursorNever": "Niemals",
"SettingsTabGeneralHideCursorOnIdle": "Mauszeiger bei Inaktivität ausblenden",
"SettingsTabGeneralHideCursorAlways": "Immer",
"SettingsTabGeneralGameDirectories": "Spielverzeichnisse",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "Hinzufügen",
"SettingsTabGeneralRemove": "Entfernen",
"SettingsTabSystem": "System",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "Systemzeit:",
"SettingsTabSystemEnableVsync": "VSync",
"SettingsTabSystemEnablePptc": "PPTC (Profiled Persistent Translation Cache)",
- "SettingsTabSystemEnableLowPowerPptc": "Kleinleistungs-PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "FS Integritätsprüfung",
"SettingsTabSystemAudioBackend": "Audio-Backend:",
"SettingsTabSystemAudioBackendDummy": "Ohne Funktion",
@@ -151,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Hacks",
"SettingsTabSystemHacksNote": " (Kann Fehler verursachen)",
- "SettingsTabSystemDramSize": "DRAM Größe:",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
"SettingsTabSystemIgnoreMissingServices": "Ignoriere fehlende Dienste",
- "SettingsTabSystemIgnoreApplet": "Applet ignorieren",
"SettingsTabGraphics": "Grafik",
"SettingsTabGraphicsAPI": "Grafik-API",
"SettingsTabGraphicsEnableShaderCache": "Shader-Cache aktivieren",
@@ -284,14 +273,14 @@
"ControllerSettingsSave": "Speichern",
"ControllerSettingsClose": "Schließen",
"KeyUnknown": "Unbekannt",
- "KeyShiftLeft": "Shift Left",
- "KeyShiftRight": "Shift Right",
- "KeyControlLeft": "Ctrl Left",
- "KeyMacControlLeft": "⌃ Left",
- "KeyControlRight": "Ctrl Right",
- "KeyMacControlRight": "⌃ Right",
- "KeyAltLeft": "Alt Left",
- "KeyMacAltLeft": "⌥ Left",
+ "KeyShiftLeft": "Shift Links",
+ "KeyShiftRight": "Shift Rechts",
+ "KeyControlLeft": "Strg Links",
+ "KeyMacControlLeft": "^ Links",
+ "KeyControlRight": "Strg Rechts",
+ "KeyMacControlRight": "^ Rechts",
+ "KeyAltLeft": "",
+ "KeyMacAltLeft": "⌥ Links",
"KeyAltRight": "Alt Right",
"KeyMacAltRight": "⌥ Right",
"KeyWinLeft": "⊞ Left",
@@ -358,7 +347,7 @@
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "Unbound",
+ "KeyUnbound": "Nicht zugewiesen",
"GamepadLeftStick": "L Stick Button",
"GamepadRightStick": "R Stick Button",
"GamepadLeftShoulder": "Left Shoulder",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "Hintergrundfarbe auswählen",
"AvatarClose": "Schließen",
"ControllerSettingsLoadProfileToolTip": "Lädt ein Profil",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "Fügt ein Profil hinzu",
"ControllerSettingsRemoveProfileToolTip": "Entfernt ein Profil",
"ControllerSettingsSaveProfileToolTip": "Speichert ein Profil",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "Es ist ein Fehler beim Suchen der angegebenen Speicherdaten aufgetreten: {0}",
"FolderDialogExtractTitle": "Wähle den Ordner, in welchen die Dateien entpackt werden sollen",
"DialogNcaExtractionMessage": "Extrahiert {0} abschnitt von {1}...",
- "DialogNcaExtractionTitle": "NCA-Abschnitt-Extraktor",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA-Abschnitt-Extraktor",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "Extraktion fehlgeschlagen. Der Hauptheader der NCA war in der ausgewählten Datei nicht vorhanden.",
"DialogNcaExtractionCheckLogErrorMessage": "Extraktion fehlgeschlagen. Überprüfe die Logs für weitere Informationen.",
"DialogNcaExtractionSuccessMessage": "Extraktion erfolgreich abgeschlossen.",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "Es besteht keine Verbindung mit dem Internet!",
"DialogUpdaterNoInternetSubMessage": "Bitte vergewissern, dass eine funktionierende Internetverbindung existiert!",
"DialogUpdaterDirtyBuildMessage": "Inoffizielle Versionen von Ryujinx können nicht aktualisiert werden",
- "DialogUpdaterDirtyBuildSubMessage": "Lade Ryujinx bitte von hier herunter, um eine unterstützte Version zu erhalten: https://https://github.com/GreemDev/Ryujinx/releases/",
+ "DialogUpdaterDirtyBuildSubMessage": "Lade Ryujinx bitte von hier herunter, um eine unterstützte Version zu erhalten: https://ryujinx.org/",
"DialogRestartRequiredMessage": "Neustart erforderlich",
"DialogThemeRestartMessage": "Das Design wurde gespeichert. Ein Neustart ist erforderlich, um das Design anzuwenden.",
"DialogThemeRestartSubMessage": "Jetzt neu starten?",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "Gibt das Spielverzeichnis an, das der Liste hinzuzufügt wird",
"AddGameDirTooltip": "Fügt ein neues Spielverzeichnis hinzu",
"RemoveGameDirTooltip": "Entfernt das ausgewähltes Spielverzeichnis",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "Verwende ein eigenes Design für die Emulator-Benutzeroberfläche",
"CustomThemePathTooltip": "Gibt den Pfad zum Design für die Emulator-Benutzeroberfläche an",
"CustomThemeBrowseTooltip": "Ermöglicht die Suche nach einem benutzerdefinierten Design für die Emulator-Benutzeroberfläche",
@@ -583,7 +568,6 @@
"TimeTooltip": "Ändert die Systemzeit",
"VSyncToggleTooltip": "Vertikale Synchronisierung der emulierten Konsole. Diese Option ist quasi ein Frame-Limiter für die meisten Spiele; die Deaktivierung kann dazu führen, dass Spiele mit höherer Geschwindigkeit laufen oder Ladebildschirme länger benötigen/hängen bleiben.\n\nKann beim Spielen mit einem frei wählbaren Hotkey ein- und ausgeschaltet werden (standardmäßig F1). \n\nIm Zweifelsfall AN lassen.",
"PptcToggleTooltip": "Speichert übersetzte JIT-Funktionen, sodass jene nicht jedes Mal übersetzt werden müssen, wenn das Spiel geladen wird.\n\nVerringert Stottern und die Zeit beim zweiten und den darauffolgenden Startvorgängen eines Spiels erheblich.\n\nIm Zweifelsfall AN lassen.",
- "LowPowerPptcToggleTooltip": "Lädt den PPTC mit einem Drittel der verfügbaren Prozessorkernen",
"FsIntegrityToggleTooltip": "Prüft beim Startvorgang auf beschädigte Dateien und zeigt bei beschädigten Dateien einen Hash-Fehler (Hash Error) im Log an.\n\nDiese Einstellung hat keinen Einfluss auf die Leistung und hilft bei der Fehlersuche.\n\nIm Zweifelsfall AN lassen.",
"AudioBackendTooltip": "Ändert das Backend, das zum Rendern von Audio verwendet wird.\n\nSDL2 ist das bevorzugte Audio-Backend, OpenAL und SoundIO sind als Alternativen vorhanden. Dummy wird keinen Audio-Output haben.\n\nIm Zweifelsfall SDL2 auswählen.",
"MemoryManagerTooltip": "Ändert wie der Gastspeicher abgebildet wird und wie auf ihn zugegriffen wird. Beinflusst die Leistung der emulierten CPU erheblich.\n\nIm Zweifelsfall Host ungeprüft auswählen.",
@@ -591,9 +575,8 @@
"MemoryManagerHostTooltip": "Direkte Zuordnung von Speicher im Host-Adressraum. Viel schnellere JIT-Kompilierung und Ausführung.",
"MemoryManagerUnsafeTooltip": "Direkte Zuordnung des Speichers, aber keine Maskierung der Adresse innerhalb des Gastadressraums vor dem Zugriff. Schneller, aber auf Kosten der Sicherheit. Die Gastanwendung kann von überall in Ryujinx auf den Speicher zugreifen, daher sollte in diesem Modus nur Programme ausgeführt werden denen vertraut wird.",
"UseHypervisorTooltip": "Verwende Hypervisor anstelle von JIT. Verbessert die Leistung stark, falls vorhanden, kann jedoch in seinem aktuellen Zustand instabil sein.",
- "DRamTooltip": "Erhöht den Arbeitsspeicher des emulierten Systems von 4 GiB auf 6 GiB.\n\nDies ist nur für Texturenpakete mit höherer Auflösung oder Mods mit 4K-Auflösung nützlich. Diese Option verbessert NICHT die Leistung.\n\nIm Zweifelsfall AUS lassen.",
+ "DRamTooltip": "Verwendet einen alternativen Arbeitsspeichermodus mit 8GiB DRAM um ein Switch-Entwicklungsmodell nachzuahmen.\n\nDies ist nur für hochauflösende Texturpakete oder Mods mit 4k Auflösung nützlich. Kann die Leistung NICHT verbessern.\n\n AUS lassen, falls Unsicherheit besteht.",
"IgnoreMissingServicesTooltip": "Durch diese Option werden nicht implementierte Dienste der Switch-Firmware ignoriert. Dies kann dabei helfen, Abstürze beim Starten bestimmter Spiele zu umgehen.\n\nIm Zweifelsfall AUS lassen.",
- "IgnoreAppletTooltip": "Der externe Dialog \"Controller-Applet\" wird nicht angezeigt, wenn das Gamepad während des Spiels getrennt wird. Es erfolgt keine Aufforderung, den Dialog zu schließen oder einen neuen Controller einzurichten. Sobald der zuvor getrennte Controller wieder angeschlossen wird, wird das Spiel automatisch fortgesetzt.",
"GraphicsBackendThreadingTooltip": "Führt Grafik-Backend Befehle auf einem zweiten Thread aus.\n\nDies beschleunigt die Shader-Kompilierung, reduziert Stottern und verbessert die Leistung auf GPU-Treibern ohne eigene Multithreading-Unterstützung. Geringfügig bessere Leistung bei Treibern mit Multithreading.\n\nIm Zweifelsfall auf AUTO stellen.",
"GalThreadingTooltip": "Führt Grafik-Backend Befehle auf einem zweiten Thread aus.\n\nDies Beschleunigt die Shader-Kompilierung, reduziert Stottern und verbessert die Leistung auf GPU-Treibern ohne eigene Multithreading-Unterstützung. Geringfügig bessere Leistung bei Treibern mit Multithreading.\n\nIm Zweifelsfall auf auf AUTO stellen.",
"ShaderCacheToggleTooltip": "Speichert einen persistenten Shader Cache, der das Stottern bei nachfolgenden Durchläufen reduziert.\n\nIm Zweifelsfall AN lassen.",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "Ausgabe von Debug-Logs in der Konsole.\n\nVerwende diese Option nur auf ausdrückliche Anweisung von Ryujinx Entwicklern, da sie das Lesen der Protokolle erschwert und die Leistung des Emulators verschlechtert.",
"LoadApplicationFileTooltip": "Öffnet die Dateiauswahl um Datei zu laden, welche mit der Switch kompatibel ist",
"LoadApplicationFolderTooltip": "Öffnet die Dateiauswahl um ein Spiel zu laden, welches mit der Switch kompatibel ist",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "Öffnet den Ordner, der das Ryujinx Dateisystem enthält",
"OpenRyujinxLogsTooltip": "Öffnet den Ordner, in welchem die Logs gespeichert werden",
"ExitTooltip": "Beendet Ryujinx",
@@ -728,17 +709,9 @@
"DlcWindowTitle": "Spiel-DLC verwalten",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "Spiel-Updates verwalten",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Cheats verfügbar für {0} [{1}]",
- "DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
"BuildId": "BuildId:",
"DlcWindowHeading": "DLC verfügbar für {0} [{1}]",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Profil bearbeiten",
"Cancel": "Abbrechen",
@@ -785,11 +758,11 @@
"GraphicsAATooltip": "Wendet Anti-Aliasing auf das Rendering des Spiels an.\n\nFXAA verwischt den größten Teil des Bildes, während SMAA versucht, gezackte Kanten zu finden und sie zu glätten.\n\nEs wird nicht empfohlen, diese Option in Verbindung mit dem FSR-Skalierungsfilter zu verwenden.\n\nDiese Option kann geändert werden, während ein Spiel läuft, indem Sie unten auf \"Anwenden\" klicken; Sie können das Einstellungsfenster einfach zur Seite schieben und experimentieren, bis Sie Ihr bevorzugtes Aussehen für ein Spiel gefunden haben.\n\nLassen Sie die Option auf NONE, wenn Sie unsicher sind.",
"GraphicsAALabel": "Antialiasing:",
"GraphicsScalingFilterLabel": "Skalierungsfilter:",
- "GraphicsScalingFilterTooltip": "Wählen Sie den Skalierungsfilter, der bei der Auflösungsskalierung angewendet werden soll.\n\nBilinear eignet sich gut für 3D-Spiele und ist eine sichere Standardoption.\n\nNearest wird für Pixel-Art-Spiele empfohlen.\n\nFSR 1.0 ist lediglich ein Schärfungsfilter und wird nicht für die Verwendung mit FXAA oder SMAA empfohlen.\n\nDiese Option kann geändert werden, während ein Spiel läuft, indem Sie unten auf \"Anwenden\" klicken; Sie können das Einstellungsfenster einfach zur Seite schieben und experimentieren, bis Sie Ihr bevorzugtes Aussehen für ein Spiel gefunden haben.\n\nBleiben Sie auf BILINEAR, wenn Sie unsicher sind.",
+ "GraphicsScalingFilterTooltip": "Wählen Sie den Skalierungsfilter, der bei der Auflösungsskalierung angewendet werden soll.\n\nBilinear eignet sich gut für 3D-Spiele und ist eine sichere Standardoption.\n\nNearest wird für Pixel-Art-Spiele empfohlen.\n\nFSR 1.0 ist lediglich ein Schärfungsfilter und wird nicht für die Verwendung mit FXAA oder SMAA empfohlen.\n\nBeim Runterskalieren von Auflösungen, die größer als das Ausgabefenster sind, wird eine Flächenskalierung empfohlen. Es kann verwendet werden, um einen supergesampelten Anti-Aliasing-Effekt beim Runterskalieren um mehr als 2x zu erzielen.\n\nDiese Option kann geändert werden, während ein Spiel läuft, indem Sie unten auf \"Anwenden\" klicken; Sie können das Einstellungsfenster einfach zur Seite schieben und experimentieren, bis Sie Ihr bevorzugtes Aussehen für ein Spiel gefunden haben.\n\nBleiben sie auf BILINEAR, wenn sie unsicher sind.",
"GraphicsScalingFilterBilinear": "Bilinear",
"GraphicsScalingFilterNearest": "Nächstes",
"GraphicsScalingFilterFsr": "FSR",
- "GraphicsScalingFilterArea": "Area",
+ "GraphicsScalingFilterArea": "Fläche",
"GraphicsScalingFilterLevelLabel": "Stufe",
"GraphicsScalingFilterLevelTooltip": "FSR 1.0 Schärfelevel festlegen. Höher ist schärfer.",
"SmaaLow": "SMAA Niedrig",
diff --git a/src/Ryujinx/Assets/Locales/el_GR.json b/src/Ryujinx/Assets/Locales/el_GR.json
index 79975b892..90e7b2693 100644
--- a/src/Ryujinx/Assets/Locales/el_GR.json
+++ b/src/Ryujinx/Assets/Locales/el_GR.json
@@ -10,10 +10,8 @@
"SettingsTabSystemUseHypervisor": "Χρήση Hypervisor",
"MenuBarFile": "_Αρχείο",
"MenuBarFileOpenFromFile": "_Φόρτωση Αρχείου Εφαρμογής",
- "MenuBarFileOpenFromFileError": "No applications found in selected file.",
+ "MenuBarFileOpenFromFileError": "Δεν εντοπίστηκαν εφαρμογές στο επιλεγμένο αρχείο.",
"MenuBarFileOpenUnpacked": "Φόρτωση Απακετάριστου _Παιχνιδιού",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
"MenuBarFileOpenEmuFolder": "Άνοιγμα Φακέλου Ryujinx",
"MenuBarFileOpenLogsFolder": "Άνοιγμα Φακέλου Καταγραφής",
"MenuBarFileExit": "_Έξοδος",
@@ -33,8 +31,8 @@
"MenuBarToolsManageFileTypes": "Διαχείριση τύπων αρχείων",
"MenuBarToolsInstallFileTypes": "Εγκαταστήσετε τύπους αρχείων.",
"MenuBarToolsUninstallFileTypes": "Απεγκαταστήσετε τύπους αρχείων",
- "MenuBarView": "_View",
- "MenuBarViewWindow": "Window Size",
+ "MenuBarView": "_Εμφάνιση",
+ "MenuBarViewWindow": "Μέγεθος Παραθύρου",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "_Βοήθεια",
@@ -79,11 +77,11 @@
"GameListContextMenuExtractDataLogoToolTip": "Εξαγωγή της ενότητας Logo από την τρέχουσα διαμόρφωση της εφαρμογής (συμπεριλαμβανομένου ενημερώσεων)",
"GameListContextMenuCreateShortcut": "Δημιουργία Συντόμευσης Εφαρμογής",
"GameListContextMenuCreateShortcutToolTip": "Δημιουργία συντόμευσης επιφάνειας εργασίας που ανοίγει την επιλεγμένη εφαρμογή",
- "GameListContextMenuCreateShortcutToolTipMacOS": "Create a shortcut in macOS's Applications folder that launches the selected Application",
- "GameListContextMenuOpenModsDirectory": "Open Mods Directory",
- "GameListContextMenuOpenModsDirectoryToolTip": "Opens the directory which contains Application's Mods",
- "GameListContextMenuOpenSdModsDirectory": "Open Atmosphere Mods Directory",
- "GameListContextMenuOpenSdModsDirectoryToolTip": "Opens the alternative SD card Atmosphere directory which contains Application's Mods. Useful for mods that are packaged for real hardware.",
+ "GameListContextMenuCreateShortcutToolTipMacOS": "Δημιουργία συντόμευσης στο φάκελο Εφαρμογές του macOS που εκκινεί την επιλεγμένη εφαρμογή",
+ "GameListContextMenuOpenModsDirectory": "Άνοιγμα Φακέλου των Mods",
+ "GameListContextMenuOpenModsDirectoryToolTip": "Ανοίγει την τοποθεσία που περιέχει τα Mods της εφαρμογής",
+ "GameListContextMenuOpenSdModsDirectory": "Άνοιγμα της Τοποθεσίας των Atmosphere Mods",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "Ανοίγει την εναλλακτική τοποθεσία Atmosphere στην κάρτα SD η οποία περιέχει τα Mods της εφαρμογής. Χρήσιμο για mods τα οποία είναι φτιαγμένη για την πραγματική κονσόλα.",
"StatusBarGamesLoaded": "{0}/{1} Φορτωμένα Παιχνίδια",
"StatusBarSystemVersion": "Έκδοση Συστήματος: {0}",
"LinuxVmMaxMapCountDialogTitle": "Εντοπίστηκε χαμηλό όριο για αντιστοιχίσεις μνήμης",
@@ -99,15 +97,12 @@
"SettingsTabGeneralEnableDiscordRichPresence": "Ενεργοποίηση Εμπλουτισμένης Παρουσίας Discord",
"SettingsTabGeneralCheckUpdatesOnLaunch": "Έλεγχος για Ενημερώσεις στην Εκκίνηση",
"SettingsTabGeneralShowConfirmExitDialog": "Εμφάνιση διαλόγου \"Επιβεβαίωση Εξόδου\".",
- "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralRememberWindowState": "Απομνημόνευση Μεγέθους/Θέσης Παραθύρου",
"SettingsTabGeneralHideCursor": "Απόκρυψη Κέρσορα:",
"SettingsTabGeneralHideCursorNever": "Ποτέ",
"SettingsTabGeneralHideCursorOnIdle": "Απόκρυψη Δρομέα στην Αδράνεια",
"SettingsTabGeneralHideCursorAlways": "Πάντα",
"SettingsTabGeneralGameDirectories": "Τοποθεσίες παιχνιδιών",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "Προσθήκη",
"SettingsTabGeneralRemove": "Αφαίρεση",
"SettingsTabSystem": "Σύστημα",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "Ώρα Συστήματος:",
"SettingsTabSystemEnableVsync": "Ενεργοποίηση Κατακόρυφου Συγχρονισμού",
"SettingsTabSystemEnablePptc": "Ενεργοποίηση PPTC (Profiled Persistent Translation Cache)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "Ενεργοποίηση Ελέγχων Ακεραιότητας FS",
"SettingsTabSystemAudioBackend": "Backend Ήχου:",
"SettingsTabSystemAudioBackendDummy": "Απενεργοποιημένο",
@@ -151,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Μικροδιορθώσεις",
"SettingsTabSystemHacksNote": " (Μπορεί να προκαλέσουν αστάθεια)",
- "SettingsTabSystemDramSize": "Μέγεθος DRAM:",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
"SettingsTabSystemIgnoreMissingServices": "Αγνόηση υπηρεσιών που λείπουν",
- "SettingsTabSystemIgnoreApplet": "Αγνοήστε το Applet",
"SettingsTabGraphics": "Γραφικά",
"SettingsTabGraphicsAPI": "API Γραφικά",
"SettingsTabGraphicsEnableShaderCache": "Ενεργοποίηση Προσωρινής Μνήμης Shader",
@@ -172,7 +161,7 @@
"SettingsTabGraphicsResolutionScaleNative": "Εγγενής (720p/1080p)",
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
- "SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Not recommended)",
+ "SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Δε συνιστάται)",
"SettingsTabGraphicsAspectRatio": "Αναλογία Απεικόνισης:",
"SettingsTabGraphicsAspectRatio4x3": "4:3",
"SettingsTabGraphicsAspectRatio16x9": "16:9",
@@ -283,26 +272,26 @@
"ControllerSettingsMotionGyroDeadzone": "Νεκρή Ζώνη Γυροσκοπίου:",
"ControllerSettingsSave": "Αποθήκευση",
"ControllerSettingsClose": "Κλείσιμο",
- "KeyUnknown": "Unknown",
- "KeyShiftLeft": "Shift Left",
- "KeyShiftRight": "Shift Right",
- "KeyControlLeft": "Ctrl Left",
- "KeyMacControlLeft": "⌃ Left",
- "KeyControlRight": "Ctrl Right",
- "KeyMacControlRight": "⌃ Right",
- "KeyAltLeft": "Alt Left",
- "KeyMacAltLeft": "⌥ Left",
- "KeyAltRight": "Alt Right",
- "KeyMacAltRight": "⌥ Right",
- "KeyWinLeft": "⊞ Left",
- "KeyMacWinLeft": "⌘ Left",
- "KeyWinRight": "⊞ Right",
- "KeyMacWinRight": "⌘ Right",
- "KeyMenu": "Menu",
- "KeyUp": "Up",
- "KeyDown": "Down",
- "KeyLeft": "Left",
- "KeyRight": "Right",
+ "KeyUnknown": "Άγνωστο",
+ "KeyShiftLeft": "Αριστερό Shift",
+ "KeyShiftRight": "Δεξί Shift",
+ "KeyControlLeft": "Αριστερό Ctrl",
+ "KeyMacControlLeft": "Αριστερό ^",
+ "KeyControlRight": "Δεξί Ctrl",
+ "KeyMacControlRight": "Δεξί ^",
+ "KeyAltLeft": "Αριστερό Alt",
+ "KeyMacAltLeft": "Αριστερό ⌥",
+ "KeyAltRight": "Δεξί Alt",
+ "KeyMacAltRight": "Δεξί ⌥",
+ "KeyWinLeft": "Αριστερό ⊞",
+ "KeyMacWinLeft": "Αριστερό ⌘",
+ "KeyWinRight": "Δεξί ⊞",
+ "KeyMacWinRight": "Δεξί ⌘",
+ "KeyMenu": "Μενού",
+ "KeyUp": "Πάνω",
+ "KeyDown": "Κάτω",
+ "KeyLeft": "Αριστερά",
+ "KeyRight": "Δεξιά",
"KeyEnter": "Enter",
"KeyEscape": "Escape",
"KeySpace": "Space",
@@ -330,11 +319,11 @@
"KeyKeypad7": "Keypad 7",
"KeyKeypad8": "Keypad 8",
"KeyKeypad9": "Keypad 9",
- "KeyKeypadDivide": "Keypad Divide",
- "KeyKeypadMultiply": "Keypad Multiply",
- "KeyKeypadSubtract": "Keypad Subtract",
- "KeyKeypadAdd": "Keypad Add",
- "KeyKeypadDecimal": "Keypad Decimal",
+ "KeyKeypadDivide": "Πλήκτρο Διαίρεσης Keypad",
+ "KeyKeypadMultiply": "Πλήκτρο Πολλαπλασιασμού Keypad",
+ "KeyKeypadSubtract": "Πλήκτρο Αφαίρεσης Keypad",
+ "KeyKeypadAdd": "Πλήκτρο Πρόσθεσης Keypad",
+ "KeyKeypadDecimal": "Πλήκτρο Δεκαδικού Keypad",
"KeyKeypadEnter": "Keypad Enter",
"KeyNumber0": "0",
"KeyNumber1": "1",
@@ -358,17 +347,17 @@
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "Unbound",
+ "KeyUnbound": "Αόριστο",
"GamepadLeftStick": "L Stick Button",
"GamepadRightStick": "R Stick Button",
"GamepadLeftShoulder": "Left Shoulder",
"GamepadRightShoulder": "Right Shoulder",
- "GamepadLeftTrigger": "Left Trigger",
- "GamepadRightTrigger": "Right Trigger",
- "GamepadDpadUp": "Up",
- "GamepadDpadDown": "Down",
- "GamepadDpadLeft": "Left",
- "GamepadDpadRight": "Right",
+ "GamepadLeftTrigger": "Αριστερή Σκανδάλη",
+ "GamepadRightTrigger": "Δεξιά Σκανδάλη",
+ "GamepadDpadUp": "Πάνω",
+ "GamepadDpadDown": "Κάτω",
+ "GamepadDpadLeft": "Αριστερά",
+ "GamepadDpadRight": "Δεξιά",
"GamepadMinus": "-",
"GamepadPlus": "+",
"GamepadGuide": "Guide",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "Ορισμός Χρώματος Φόντου",
"AvatarClose": "Κλείσιμο",
"ControllerSettingsLoadProfileToolTip": "Φόρτωση Προφίλ",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "Προσθήκη Προφίλ",
"ControllerSettingsRemoveProfileToolTip": "Κατάργηση Προφίλ",
"ControllerSettingsSaveProfileToolTip": "Αποθήκευση Προφίλ",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "Σφάλμα κατά την εύρεση των αποθηκευμένων δεδομένων: {0}",
"FolderDialogExtractTitle": "Επιλέξτε τον φάκελο στον οποίο θέλετε να εξαγάγετε",
"DialogNcaExtractionMessage": "Εξαγωγή ενότητας {0} από {1}...",
- "DialogNcaExtractionTitle": "NCA Εξαγωγέας Τμημάτων",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA Εξαγωγέας Τμημάτων",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "Αποτυχία εξαγωγής. Η κύρια NCA δεν υπήρχε στο επιλεγμένο αρχείο.",
"DialogNcaExtractionCheckLogErrorMessage": "Αποτυχία εξαγωγής. Διαβάστε το αρχείο καταγραφής για περισσότερες πληροφορίες.",
"DialogNcaExtractionSuccessMessage": "Η εξαγωγή ολοκληρώθηκε με επιτυχία.",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "Δεν είστε συνδεδεμένοι στο Διαδίκτυο!",
"DialogUpdaterNoInternetSubMessage": "Επαληθεύστε ότι έχετε σύνδεση στο Διαδίκτυο που λειτουργεί!",
"DialogUpdaterDirtyBuildMessage": "Δεν μπορείτε να ενημερώσετε μία Πρόχειρη Έκδοση του Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Κάντε λήψη του Ryujinx στη διεύθυνση https://https://github.com/GreemDev/Ryujinx/releases/ εάν αναζητάτε μία υποστηριζόμενη έκδοση.",
+ "DialogUpdaterDirtyBuildSubMessage": "Κάντε λήψη του Ryujinx στη διεύθυνση https://ryujinx.org/ εάν αναζητάτε μία υποστηριζόμενη έκδοση.",
"DialogRestartRequiredMessage": "Απαιτείται Επανεκκίνηση",
"DialogThemeRestartMessage": "Το θέμα έχει αποθηκευτεί. Απαιτείται επανεκκίνηση για την εφαρμογή του θέματος.",
"DialogThemeRestartSubMessage": "Θέλετε να κάνετε επανεκκίνηση",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "Εισαγάγετε μία τοποθεσία παιχνιδιών για προσθήκη στη λίστα",
"AddGameDirTooltip": "Προσθέστε μία τοποθεσία παιχνιδιών στη λίστα",
"RemoveGameDirTooltip": "Αφαιρέστε την επιλεγμένη τοποθεσία παιχνιδιών",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "Ενεργοποίηση ή απενεργοποίηση προσαρμοσμένων θεμάτων στο GUI",
"CustomThemePathTooltip": "Διαδρομή προς το προσαρμοσμένο θέμα GUI",
"CustomThemeBrowseTooltip": "Αναζητήστε ένα προσαρμοσμένο θέμα GUI",
@@ -583,7 +568,6 @@
"TimeTooltip": "Αλλαγή Ώρας Συστήματος",
"VSyncToggleTooltip": "Emulated console's Vertical Sync. Essentially a frame-limiter for the majority of games; disabling it may cause games to run at higher speed or make loading screens take longer or get stuck.\n\nCan be toggled in-game with a hotkey of your preference (F1 by default). We recommend doing this if you plan on disabling it.\n\nLeave ON if unsure.",
"PptcToggleTooltip": "Ενεργοποιεί ή απενεργοποιεί το PPTC",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
"FsIntegrityToggleTooltip": "Ενεργοποιεί τους ελέγχους ακεραιότητας σε αρχεία περιεχομένου παιχνιδιού",
"AudioBackendTooltip": "Αλλαγή ήχου υποστήριξης",
"MemoryManagerTooltip": "Αλλάξτε τον τρόπο αντιστοίχισης και πρόσβασης στη μνήμη επισκέπτη. Επηρεάζει σε μεγάλο βαθμό την απόδοση της προσομοίωσης της CPU.",
@@ -591,9 +575,8 @@
"MemoryManagerHostTooltip": "Απευθείας αντιστοίχιση της μνήμης στον χώρο διευθύνσεων υπολογιστή υποδοχής. Πολύ πιο γρήγορη μεταγλώττιση και εκτέλεση JIT.",
"MemoryManagerUnsafeTooltip": "Απευθείας χαρτογράφηση της μνήμης, αλλά μην καλύπτετε τη διεύθυνση εντός του χώρου διευθύνσεων επισκέπτη πριν από την πρόσβαση. Πιο γρήγορα, αλλά με κόστος ασφάλειας. Η εφαρμογή μπορεί να έχει πρόσβαση στη μνήμη από οπουδήποτε στο Ryujinx, επομένως εκτελείτε μόνο προγράμματα που εμπιστεύεστε με αυτήν τη λειτουργία.",
"UseHypervisorTooltip": "Χρησιμοποιήστε Hypervisor αντί για JIT. Βελτιώνει σημαντικά την απόδοση όταν διατίθεται, αλλά μπορεί να είναι ασταθής στην τρέχουσα κατάστασή του.",
- "DRamTooltip": "Επεκτείνει την ποσότητα της μνήμης στο εξομοιούμενο σύστημα από 4 GiB σε 6 GiB",
+ "DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
"IgnoreMissingServicesTooltip": "Ενεργοποίηση ή απενεργοποίηση της αγνοώησης για υπηρεσίες που λείπουν",
- "IgnoreAppletTooltip": "Το εξωτερικό παράθυρο διαλόγου \"Ελεγκτής μικροεφαρμογής\" δεν θα εμφανιστεί εάν το gamepad αποσυνδεθεί κατά τη διάρκεια του παιχνιδιού. Δεν θα σας ζητηθεί να κλείσετε το παράθυρο διαλόγου ή να ρυθμίσετε έναν νέο ελεγκτή. Μόλις επανασυνδεθεί το χειριστήριο που είχε αποσυνδεθεί προηγουμένως, το παιχνίδι θα συνεχιστεί αυτόματα.",
"GraphicsBackendThreadingTooltip": "Ενεργοποίηση Πολυνηματικής Επεξεργασίας Γραφικών",
"GalThreadingTooltip": "Εκτελεί εντολές γραφικών σε ένα δεύτερο νήμα. Επιτρέπει την πολυνηματική μεταγλώττιση Shader σε χρόνο εκτέλεσης, μειώνει το τρεμόπαιγμα και βελτιώνει την απόδοση των προγραμμάτων οδήγησης χωρίς τη δική τους υποστήριξη πολλαπλών νημάτων. Ποικίλες κορυφαίες επιδόσεις σε προγράμματα οδήγησης με multithreading. Μπορεί να χρειαστεί επανεκκίνηση του Ryujinx για να απενεργοποιήσετε σωστά την ενσωματωμένη λειτουργία πολλαπλών νημάτων του προγράμματος οδήγησης ή ίσως χρειαστεί να το κάνετε χειροκίνητα για να έχετε την καλύτερη απόδοση.",
"ShaderCacheToggleTooltip": "Ενεργοποιεί ή απενεργοποιεί την Προσωρινή Μνήμη Shader",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "Ενεργοποιεί την εκτύπωση μηνυμάτων αρχείου καταγραφής εντοπισμού σφαλμάτων",
"LoadApplicationFileTooltip": "Ανοίξτε έναν επιλογέα αρχείων για να επιλέξετε ένα αρχείο συμβατό με το Switch για φόρτωση",
"LoadApplicationFolderTooltip": "Ανοίξτε έναν επιλογέα αρχείων για να επιλέξετε μία μη συσκευασμένη εφαρμογή, συμβατή με το Switch για φόρτωση",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "Ανοίξτε το φάκελο συστήματος αρχείων Ryujinx",
"OpenRyujinxLogsTooltip": "Ανοίξτε το φάκελο στον οποίο διατηρούνται τα αρχεία καταγραφής",
"ExitTooltip": "Έξοδος από το Ryujinx",
@@ -728,17 +709,9 @@
"DlcWindowTitle": "Downloadable Content Manager",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "Διαχειριστής Ενημερώσεων Τίτλου",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Διαθέσιμα Cheats για {0} [{1}]",
"BuildId": "BuildId:",
- "DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
"DlcWindowHeading": "{0} Downloadable Content(s) available for {1} ({2})",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Επεξεργασία Επιλεγμένων",
"Cancel": "Ακύρωση",
@@ -785,13 +758,13 @@
"GraphicsAATooltip": "Applies anti-aliasing to the game render.\n\nFXAA will blur most of the image, while SMAA will attempt to find jagged edges and smooth them out.\n\nNot recommended to use in conjunction with the FSR scaling filter.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on NONE if unsure.",
"GraphicsAALabel": "Anti-Aliasing",
"GraphicsScalingFilterLabel": "Φίλτρο Κλιμάκωσης:",
- "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
+ "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nArea scaling is recommended when downscaling resolutions that are larger than the output window. It can be used to achieve a supersampled anti-aliasing effect when downscaling by more than 2x.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
"GraphicsScalingFilterBilinear": "Bilinear",
- "GraphicsScalingFilterNearest": "Nearest",
+ "GraphicsScalingFilterNearest": "Πλησιέστερο",
"GraphicsScalingFilterFsr": "FSR",
"GraphicsScalingFilterArea": "Area",
"GraphicsScalingFilterLevelLabel": "Επίπεδο",
- "GraphicsScalingFilterLevelTooltip": "Set FSR 1.0 sharpening level. Higher is sharper.",
+ "GraphicsScalingFilterLevelTooltip": "Ορισμός επιπέδου οξύνσης της εικόνας του FSR 1.0. Το υψηλότερο είναι και πιο οξύ.",
"SmaaLow": "Χαμηλό SMAA",
"SmaaMedium": " Μεσαίο SMAA",
"SmaaHigh": "Υψηλό SMAA",
@@ -807,6 +780,6 @@
"SettingsTabNetworkMultiplayer": "Πολλαπλοί παίκτες",
"MultiplayerMode": "Λειτουργία:",
"MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
- "MultiplayerModeDisabled": "Disabled",
+ "MultiplayerModeDisabled": "Απενεργοποιημένο",
"MultiplayerModeLdnMitm": "ldn_mitm"
}
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index fdd2d4df2..b3cab7f5f 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -12,8 +12,6 @@
"MenuBarFileOpenFromFile": "_Load Application From File",
"MenuBarFileOpenFromFileError": "No applications found in selected file.",
"MenuBarFileOpenUnpacked": "Load _Unpacked Game",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
"MenuBarFileOpenEmuFolder": "Open Ryujinx Folder",
"MenuBarFileOpenLogsFolder": "Open Logs Folder",
"MenuBarFileExit": "_Exit",
@@ -33,7 +31,6 @@
"MenuBarToolsManageFileTypes": "Manage file types",
"MenuBarToolsInstallFileTypes": "Install file types",
"MenuBarToolsUninstallFileTypes": "Uninstall file types",
- "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_View",
"MenuBarViewWindow": "Window Size",
"MenuBarViewWindow720": "720p",
@@ -85,11 +82,8 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Opens the directory which contains Application's Mods",
"GameListContextMenuOpenSdModsDirectory": "Open Atmosphere Mods Directory",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Opens the alternative SD card Atmosphere directory which contains Application's Mods. Useful for mods that are packaged for real hardware.",
- "GameListContextMenuTrimXCI": "Check and Trim XCI File",
- "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} Games Loaded",
"StatusBarSystemVersion": "System Version: {0}",
- "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Low limit for memory mappings detected",
"LinuxVmMaxMapCountDialogTextPrimary": "Would you like to increase the value of vm.max_map_count to {0}",
"LinuxVmMaxMapCountDialogTextSecondary": "Some games might try to create more memory mappings than currently allowed. Ryujinx will crash as soon as this limit gets exceeded.",
@@ -104,14 +98,11 @@
"SettingsTabGeneralCheckUpdatesOnLaunch": "Check for Updates on Launch",
"SettingsTabGeneralShowConfirmExitDialog": "Show \"Confirm Exit\" Dialog",
"SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
"SettingsTabGeneralHideCursor": "Hide Cursor:",
"SettingsTabGeneralHideCursorNever": "Never",
"SettingsTabGeneralHideCursorOnIdle": "On Idle",
"SettingsTabGeneralHideCursorAlways": "Always",
"SettingsTabGeneralGameDirectories": "Game Directories",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "Add",
"SettingsTabGeneralRemove": "Remove",
"SettingsTabSystem": "System",
@@ -146,7 +137,6 @@
"SettingsTabSystemSystemTime": "System Time:",
"SettingsTabSystemEnableVsync": "VSync",
"SettingsTabSystemEnablePptc": "PPTC (Profiled Persistent Translation Cache)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC cache",
"SettingsTabSystemEnableFsIntegrityChecks": "FS Integrity Checks",
"SettingsTabSystemAudioBackend": "Audio Backend:",
"SettingsTabSystemAudioBackendDummy": "Dummy",
@@ -155,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Hacks",
"SettingsTabSystemHacksNote": "May cause instability",
- "SettingsTabSystemDramSize": "DRAM size:",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
"SettingsTabSystemIgnoreMissingServices": "Ignore Missing Services",
- "SettingsTabSystemIgnoreApplet": "Ignore Applet",
"SettingsTabGraphics": "Graphics",
"SettingsTabGraphicsAPI": "Graphics API",
"SettingsTabGraphicsEnableShaderCache": "Enable Shader Cache",
@@ -404,8 +389,6 @@
"InputDialogTitle": "Input Dialog",
"InputDialogOk": "OK",
"InputDialogCancel": "Cancel",
- "InputDialogCancelling": "Cancelling",
- "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "Choose the Profile Name",
"InputDialogAddNewProfileHeader": "Please Enter a Profile Name",
"InputDialogAddNewProfileSubtext": "(Max Length: {0})",
@@ -413,7 +396,6 @@
"AvatarSetBackgroundColor": "Set Background Color",
"AvatarClose": "Close",
"ControllerSettingsLoadProfileToolTip": "Load Profile",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "Add Profile",
"ControllerSettingsRemoveProfileToolTip": "Remove Profile",
"ControllerSettingsSaveProfileToolTip": "Save Profile",
@@ -444,15 +426,15 @@
"DialogMessageFindSaveErrorMessage": "There was an error finding the specified savedata: {0}",
"FolderDialogExtractTitle": "Choose the folder to extract into",
"DialogNcaExtractionMessage": "Extracting {0} section from {1}...",
- "DialogNcaExtractionTitle": "NCA Section Extractor",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA Section Extractor",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "Extraction failure. The main NCA was not present in the selected file.",
- "DialogNcaExtractionCheckLogErrorMessage": "Extraction failed. Please check the log file for more details.",
+ "DialogNcaExtractionCheckLogErrorMessage": "Extraction failure. Read the log file for further information.",
"DialogNcaExtractionSuccessMessage": "Extraction completed successfully.",
- "DialogUpdaterConvertFailedMessage": "Unable to convert the current Ryujinx version.",
- "DialogUpdaterCancelUpdateMessage": "Update canceled!",
- "DialogUpdaterAlreadyOnLatestVersionMessage": "You are already using the latest version of Ryujinx!",
- "DialogUpdaterFailedToGetVersionMessage": "An error occurred while trying to retrieve release information from GitHub. This may happen if a new release is currently being compiled by GitHub Actions. Please try again in a few minutes.",
- "DialogUpdaterConvertFailedGithubMessage": "Failed to convert the Ryujinx version received from GitHub.",
+ "DialogUpdaterConvertFailedMessage": "Failed to convert the current Ryujinx version.",
+ "DialogUpdaterCancelUpdateMessage": "Cancelling Update!",
+ "DialogUpdaterAlreadyOnLatestVersionMessage": "You are already using the most updated version of Ryujinx!",
+ "DialogUpdaterFailedToGetVersionMessage": "An error has occurred when trying to get release information from GitHub Release. This can be caused if a new release is being compiled by GitHub Actions. Try again in a few minutes.",
+ "DialogUpdaterConvertFailedGithubMessage": "Failed to convert the received Ryujinx version from Github Release.",
"DialogUpdaterDownloadingMessage": "Downloading Update...",
"DialogUpdaterExtractionMessage": "Extracting Update...",
"DialogUpdaterRenamingMessage": "Renaming Update...",
@@ -461,8 +443,8 @@
"DialogUpdaterRestartMessage": "Do you want to restart Ryujinx now?",
"DialogUpdaterNoInternetMessage": "You are not connected to the Internet!",
"DialogUpdaterNoInternetSubMessage": "Please verify that you have a working Internet connection!",
- "DialogUpdaterDirtyBuildMessage": "You cannot update a Dirty build of Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Please download Ryujinx at https://github.com/GreemDev/Ryujinx/releases/ if you are looking for a supported version.",
+ "DialogUpdaterDirtyBuildMessage": "You Cannot update a Dirty build of Ryujinx!",
+ "DialogUpdaterDirtyBuildSubMessage": "Please download Ryujinx at https://ryujinx.org/ if you are looking for a supported version.",
"DialogRestartRequiredMessage": "Restart Required",
"DialogThemeRestartMessage": "Theme has been saved. A restart is needed to apply the theme.",
"DialogThemeRestartSubMessage": "Do you want to restart",
@@ -475,7 +457,6 @@
"DialogUninstallFileTypesSuccessMessage": "Successfully uninstalled file types!",
"DialogUninstallFileTypesErrorMessage": "Failed to uninstall file types.",
"DialogOpenSettingsWindowLabel": "Open Settings Window",
- "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "Controller Applet",
"DialogMessageDialogErrorExceptionMessage": "Error displaying Message Dialog: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Error displaying Software Keyboard: {0}",
@@ -575,9 +556,6 @@
"AddGameDirBoxTooltip": "Enter a game directory to add to the list",
"AddGameDirTooltip": "Add a game directory to the list",
"RemoveGameDirTooltip": "Remove selected game directory",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "Use a custom Avalonia theme for the GUI to change the appearance of the emulator menus",
"CustomThemePathTooltip": "Path to custom GUI theme",
"CustomThemeBrowseTooltip": "Browse for a custom GUI theme",
@@ -590,7 +568,6 @@
"TimeTooltip": "Change System Time",
"VSyncToggleTooltip": "Emulated console's Vertical Sync. Essentially a frame-limiter for the majority of games; disabling it may cause games to run at higher speed or make loading screens take longer or get stuck.\n\nCan be toggled in-game with a hotkey of your preference (F1 by default). We recommend doing this if you plan on disabling it.\n\nLeave ON if unsure.",
"PptcToggleTooltip": "Saves translated JIT functions so that they do not need to be translated every time the game loads.\n\nReduces stuttering and significantly speeds up boot times after the first boot of a game.\n\nLeave ON if unsure.",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
"FsIntegrityToggleTooltip": "Checks for corrupt files when booting a game, and if corrupt files are detected, displays a hash error in the log.\n\nHas no impact on performance and is meant to help troubleshooting.\n\nLeave ON if unsure.",
"AudioBackendTooltip": "Changes the backend used to render audio.\n\nSDL2 is the preferred one, while OpenAL and SoundIO are used as fallbacks. Dummy will have no sound.\n\nSet to SDL2 if unsure.",
"MemoryManagerTooltip": "Change how guest memory is mapped and accessed. Greatly affects emulated CPU performance.\n\nSet to HOST UNCHECKED if unsure.",
@@ -600,7 +577,6 @@
"UseHypervisorTooltip": "Use Hypervisor instead of JIT. Greatly improves performance when available, but can be unstable in its current state.",
"DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
"IgnoreMissingServicesTooltip": "Ignores unimplemented Horizon OS services. This may help in bypassing crashes when booting certain games.\n\nLeave OFF if unsure.",
- "IgnoreAppletTooltip": "The external dialog \"Controller Applet\" will not appear if the gamepad is disconnected during gameplay. There will be no prompt to close the dialog or set up a new controller. Once the previously disconnected controller is reconnected, the game will automatically resume.",
"GraphicsBackendThreadingTooltip": "Executes graphics backend commands on a second thread.\n\nSpeeds up shader compilation, reduces stuttering, and improves performance on GPU drivers without multithreading support of their own. Slightly better performance on drivers with multithreading.\n\nSet to AUTO if unsure.",
"GalThreadingTooltip": "Executes graphics backend commands on a second thread.\n\nSpeeds up shader compilation, reduces stuttering, and improves performance on GPU drivers without multithreading support of their own. Slightly better performance on drivers with multithreading.\n\nSet to AUTO if unsure.",
"ShaderCacheToggleTooltip": "Saves a disk shader cache which reduces stuttering in subsequent runs.\n\nLeave ON if unsure.",
@@ -623,8 +599,6 @@
"DebugLogTooltip": "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.",
"LoadApplicationFileTooltip": "Open a file explorer to choose a Switch compatible file to load",
"LoadApplicationFolderTooltip": "Open a file explorer to choose a Switch compatible, unpacked application to load",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "Open Ryujinx filesystem folder",
"OpenRyujinxLogsTooltip": "Opens the folder where logs are written to",
"ExitTooltip": "Exit Ryujinx",
@@ -678,12 +652,6 @@
"TitleUpdateVersionLabel": "Version {0}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
- "TitleXCIStatusPartialLabel": "Partial",
- "TitleXCIStatusTrimmableLabel": "Untrimmed",
- "TitleXCIStatusUntrimmableLabel": "Trimmed",
- "TitleXCIStatusFailedLabel": "(Failed)",
- "TitleXCICanSaveLabel": "Save {0:n0} Mb",
- "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - Info",
"RyujinxConfirm": "Ryujinx - Confirmation",
"FileDialogAllTypes": "All types",
@@ -736,51 +704,16 @@
"SelectDlcDialogTitle": "Select DLC files",
"SelectUpdateDialogTitle": "Select update files",
"SelectModDialogTitle": "Select mod directory",
- "TrimXCIFileDialogTitle": "Check and Trim XCI File",
- "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
- "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
- "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
- "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
- "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
- "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
- "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
- "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
- "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
- "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
- "TrimXCIFileCancelled": "The operation was cancelled",
- "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "User Profiles Manager",
"CheatWindowTitle": "Cheats Manager",
"DlcWindowTitle": "Manage Downloadable Content for {0} ({1})",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "Title Update Manager",
- "XCITrimmerWindowTitle": "XCI File Trimmer",
- "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
- "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
- "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
- "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
- "XCITrimmerTitleStatusFailed": "Failed",
- "XCITrimmerPotentialSavings": "Potential Savings",
- "XCITrimmerActualSavings": "Actual Savings",
- "XCITrimmerSavingsMb": "{0:n0} Mb",
- "XCITrimmerSelectDisplayed": "Select Shown",
- "XCITrimmerDeselectDisplayed": "Deselect Shown",
- "XCITrimmerSortName": "Title",
- "XCITrimmerSortSaved": "Space Savings",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Cheats Available for {0} [{1}]",
"BuildId": "BuildId:",
- "DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
- "DlcWindowHeading": "{0} Downloadable Content(s) available for {1} ({2})",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
+ "DlcWindowHeading": "{0} Downloadable Content(s)",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Edit Selected",
- "Continue": "Continue",
"Cancel": "Cancel",
"Save": "Save",
"Discard": "Discard",
@@ -848,17 +781,5 @@
"MultiplayerMode": "Mode:",
"MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
"MultiplayerModeDisabled": "Disabled",
- "MultiplayerModeLdnMitm": "ldn_mitm",
- "MultiplayerModeLdnRyu": "RyuLDN",
- "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
- "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
- "LdnPassphrase": "Network Passphrase:",
- "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
- "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
- "LdnPassphraseInputPublic": "(public)",
- "GenLdnPass": "Generate Random",
- "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
- "ClearLdnPass": "Clear",
- "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
- "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
+ "MultiplayerModeLdnMitm": "ldn_mitm"
}
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index e6da1d113..3301bd467 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -10,10 +10,8 @@
"SettingsTabSystemUseHypervisor": "Usar hipervisor",
"MenuBarFile": "_Archivo",
"MenuBarFileOpenFromFile": "_Cargar aplicación desde un archivo",
- "MenuBarFileOpenFromFileError": "No applications found in selected file.",
+ "MenuBarFileOpenFromFileError": "No se han encontrado aplicaciones en el archivo seleccionado.",
"MenuBarFileOpenUnpacked": "Cargar juego _desempaquetado",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
"MenuBarFileOpenEmuFolder": "Abrir carpeta de Ryujinx",
"MenuBarFileOpenLogsFolder": "Abrir carpeta de registros",
"MenuBarFileExit": "_Salir",
@@ -34,8 +32,8 @@
"MenuBarToolsInstallFileTypes": "Instalar tipos de archivo",
"MenuBarToolsUninstallFileTypes": "Desinstalar tipos de archivo",
"MenuBarView": "_View",
- "MenuBarViewWindow": "Window Size",
- "MenuBarViewWindow720": "720p",
+ "MenuBarViewWindow": "Tamaño de ventana",
+ "MenuBarViewWindow720": "720P",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "_Ayuda",
"MenuBarHelpCheckForUpdates": "Buscar actualizaciones",
@@ -99,15 +97,12 @@
"SettingsTabGeneralEnableDiscordRichPresence": "Habilitar estado en Discord",
"SettingsTabGeneralCheckUpdatesOnLaunch": "Buscar actualizaciones al iniciar",
"SettingsTabGeneralShowConfirmExitDialog": "Mostrar diálogo de confirmación al cerrar",
- "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralRememberWindowState": "Recordar tamaño y posición de la ventana",
"SettingsTabGeneralHideCursor": "Esconder el cursor:",
"SettingsTabGeneralHideCursorNever": "Nunca",
"SettingsTabGeneralHideCursorOnIdle": "Ocultar cursor cuando esté inactivo",
"SettingsTabGeneralHideCursorAlways": "Siempre",
"SettingsTabGeneralGameDirectories": "Carpetas de juegos",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "Agregar",
"SettingsTabGeneralRemove": "Quitar",
"SettingsTabSystem": "Sistema",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "Hora del sistema:",
"SettingsTabSystemEnableVsync": "Sincronización vertical",
"SettingsTabSystemEnablePptc": "PPTC (Cache de Traducción de Perfil Persistente)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "Comprobar integridad de los archivos",
"SettingsTabSystemAudioBackend": "Motor de audio:",
"SettingsTabSystemAudioBackendDummy": "Vacio",
@@ -151,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Hacks",
"SettingsTabSystemHacksNote": " (Pueden causar inestabilidad)",
- "SettingsTabSystemDramSize": "Tamaño DRAM:",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Ampliar DRAM a 8GiB",
"SettingsTabSystemIgnoreMissingServices": "Ignorar servicios no implementados",
- "SettingsTabSystemIgnoreApplet": "Ignorar el Applet",
"SettingsTabGraphics": "Gráficos",
"SettingsTabGraphicsAPI": "API de gráficos",
"SettingsTabGraphicsEnableShaderCache": "Habilitar caché de sombreadores",
@@ -284,58 +273,58 @@
"ControllerSettingsSave": "Guardar",
"ControllerSettingsClose": "Cerrar",
"KeyUnknown": "Desconocido",
- "KeyShiftLeft": "Shift Left",
- "KeyShiftRight": "Shift Right",
- "KeyControlLeft": "Ctrl Left",
- "KeyMacControlLeft": "⌃ Left",
- "KeyControlRight": "Ctrl Right",
- "KeyMacControlRight": "⌃ Right",
- "KeyAltLeft": "Alt Left",
- "KeyMacAltLeft": "⌥ Left",
- "KeyAltRight": "Alt Right",
- "KeyMacAltRight": "⌥ Right",
- "KeyWinLeft": "⊞ Left",
- "KeyMacWinLeft": "⌘ Left",
- "KeyWinRight": "⊞ Right",
- "KeyMacWinRight": "⌘ Right",
- "KeyMenu": "Menu",
- "KeyUp": "Up",
- "KeyDown": "Down",
- "KeyLeft": "Left",
- "KeyRight": "Right",
+ "KeyShiftLeft": "Shift izquierdo",
+ "KeyShiftRight": "Shift Derecho",
+ "KeyControlLeft": "Ctrl Izquierdo",
+ "KeyMacControlLeft": "⌃ Izquierda",
+ "KeyControlRight": "Ctrl derecho",
+ "KeyMacControlRight": "⌃ Derecha",
+ "KeyAltLeft": "Alt izquierdo",
+ "KeyMacAltLeft": "⌥ Izquierda",
+ "KeyAltRight": "Alt derecho",
+ "KeyMacAltRight": "⌥ Derecha",
+ "KeyWinLeft": "⊞ Izquierda",
+ "KeyMacWinLeft": "⌘ Izquierda",
+ "KeyWinRight": "⊞ Derecha",
+ "KeyMacWinRight": "⌘ Derecha",
+ "KeyMenu": "Menú",
+ "KeyUp": "Arriba",
+ "KeyDown": "Abajo",
+ "KeyLeft": "Izquierda",
+ "KeyRight": "Derecha",
"KeyEnter": "Enter",
"KeyEscape": "Escape",
- "KeySpace": "Space",
+ "KeySpace": "Espacio",
"KeyTab": "Tab",
- "KeyBackSpace": "Backspace",
+ "KeyBackSpace": "Retroceso",
"KeyInsert": "Insert",
- "KeyDelete": "Delete",
- "KeyPageUp": "Page Up",
- "KeyPageDown": "Page Down",
- "KeyHome": "Home",
- "KeyEnd": "End",
- "KeyCapsLock": "Caps Lock",
- "KeyScrollLock": "Scroll Lock",
- "KeyPrintScreen": "Print Screen",
- "KeyPause": "Pause",
- "KeyNumLock": "Num Lock",
- "KeyClear": "Clear",
- "KeyKeypad0": "Keypad 0",
- "KeyKeypad1": "Keypad 1",
- "KeyKeypad2": "Keypad 2",
- "KeyKeypad3": "Keypad 3",
- "KeyKeypad4": "Keypad 4",
- "KeyKeypad5": "Keypad 5",
- "KeyKeypad6": "Keypad 6",
- "KeyKeypad7": "Keypad 7",
- "KeyKeypad8": "Keypad 8",
- "KeyKeypad9": "Keypad 9",
- "KeyKeypadDivide": "Keypad Divide",
- "KeyKeypadMultiply": "Keypad Multiply",
- "KeyKeypadSubtract": "Keypad Subtract",
- "KeyKeypadAdd": "Keypad Add",
- "KeyKeypadDecimal": "Keypad Decimal",
- "KeyKeypadEnter": "Keypad Enter",
+ "KeyDelete": "Suprimir",
+ "KeyPageUp": "Re Pág",
+ "KeyPageDown": "Av Pág",
+ "KeyHome": "Inicio",
+ "KeyEnd": "Fin",
+ "KeyCapsLock": "Bloq Mayús",
+ "KeyScrollLock": "Bloq Despl",
+ "KeyPrintScreen": "Impr Pant",
+ "KeyPause": "Pausa",
+ "KeyNumLock": "Bloq Num",
+ "KeyClear": "Borrar",
+ "KeyKeypad0": "Numérico 0",
+ "KeyKeypad1": "Numérico 1",
+ "KeyKeypad2": "Numérico 2",
+ "KeyKeypad3": "Numérico 3",
+ "KeyKeypad4": "Numérico 4",
+ "KeyKeypad5": "Numérico 5",
+ "KeyKeypad6": "Numérico 6",
+ "KeyKeypad7": "Numérico 7",
+ "KeyKeypad8": "Numérico 8",
+ "KeyKeypad9": "Numérico 9",
+ "KeyKeypadDivide": "Numérico /",
+ "KeyKeypadMultiply": "Numérico *",
+ "KeyKeypadSubtract": "Numérico -",
+ "KeyKeypadAdd": "Numérico +",
+ "KeyKeypadDecimal": "Numérico .",
+ "KeyKeypadEnter": "Numérico Enter",
"KeyNumber0": "0",
"KeyNumber1": "1",
"KeyNumber2": "2",
@@ -358,32 +347,32 @@
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "Unbound",
- "GamepadLeftStick": "L Stick Button",
- "GamepadRightStick": "R Stick Button",
- "GamepadLeftShoulder": "Left Shoulder",
- "GamepadRightShoulder": "Right Shoulder",
- "GamepadLeftTrigger": "Left Trigger",
- "GamepadRightTrigger": "Right Trigger",
- "GamepadDpadUp": "Up",
- "GamepadDpadDown": "Down",
- "GamepadDpadLeft": "Left",
- "GamepadDpadRight": "Right",
+ "KeyUnbound": "Sin vincular",
+ "GamepadLeftStick": "Botón Joystick L",
+ "GamepadRightStick": "Botón Joystick R",
+ "GamepadLeftShoulder": "Botón L",
+ "GamepadRightShoulder": "Botón R\n",
+ "GamepadLeftTrigger": "Botón ZL",
+ "GamepadRightTrigger": "Botón ZR",
+ "GamepadDpadUp": "Arriba",
+ "GamepadDpadDown": "Abajo",
+ "GamepadDpadLeft": "Izquierda",
+ "GamepadDpadRight": "Derecha",
"GamepadMinus": "-",
"GamepadPlus": "+",
- "GamepadGuide": "Guide",
- "GamepadMisc1": "Misc",
- "GamepadPaddle1": "Paddle 1",
- "GamepadPaddle2": "Paddle 2",
- "GamepadPaddle3": "Paddle 3",
- "GamepadPaddle4": "Paddle 4",
- "GamepadTouchpad": "Touchpad",
- "GamepadSingleLeftTrigger0": "Left Trigger 0",
- "GamepadSingleRightTrigger0": "Right Trigger 0",
- "GamepadSingleLeftTrigger1": "Left Trigger 1",
- "GamepadSingleRightTrigger1": "Right Trigger 1",
- "StickLeft": "Left Stick",
- "StickRight": "Right Stick",
+ "GamepadGuide": "Guía",
+ "GamepadMisc1": "Miscelánea",
+ "GamepadPaddle1": "Palanca 1",
+ "GamepadPaddle2": "Palanca 2",
+ "GamepadPaddle3": "Palanca 3",
+ "GamepadPaddle4": "Palanca 4",
+ "GamepadTouchpad": "Panel táctil",
+ "GamepadSingleLeftTrigger0": "Gatillo izquierdo 0",
+ "GamepadSingleRightTrigger0": "Gatillo derecho 0",
+ "GamepadSingleLeftTrigger1": "Gatillo izquierdo 1",
+ "GamepadSingleRightTrigger1": "Gatillo derecho 1",
+ "StickLeft": "Joystick izquierdo",
+ "StickRight": "Joystick derecho",
"UserProfilesSelectedUserProfile": "Perfil de usuario seleccionado:",
"UserProfilesSaveProfileName": "Guardar nombre de perfil",
"UserProfilesChangeProfileImage": "Cambiar imagen de perfil",
@@ -403,11 +392,10 @@
"InputDialogAddNewProfileTitle": "Introducir nombre de perfil",
"InputDialogAddNewProfileHeader": "Por favor elige un nombre de usuario",
"InputDialogAddNewProfileSubtext": "(Máximo de caracteres: {0})",
- "AvatarChoose": "Escoger",
- "AvatarSetBackgroundColor": "Establecer color de fondo",
+ "AvatarChoose": "Elija un Avatar",
+ "AvatarSetBackgroundColor": "Establecer Color de Fondo",
"AvatarClose": "Cerrar",
"ControllerSettingsLoadProfileToolTip": "Cargar perfil",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "Agregar perfil",
"ControllerSettingsRemoveProfileToolTip": "Eliminar perfil",
"ControllerSettingsSaveProfileToolTip": "Guardar perfil",
@@ -424,7 +412,7 @@
"ControllerSettingsRumble": "Vibración",
"ControllerSettingsRumbleStrongMultiplier": "Multiplicador de vibraciones fuertes",
"ControllerSettingsRumbleWeakMultiplier": "Multiplicador de vibraciones débiles",
- "DialogMessageSaveNotAvailableMessage": "No hay datos de guardado para {0} [{1:x16}]",
+ "DialogMessageSaveNotAvailableMessage": "No hay datos guardados para {0} [{1:x16}]",
"DialogMessageSaveNotAvailableCreateSaveMessage": "¿Quieres crear datos de guardado para este juego?",
"DialogConfirmationTitle": "Ryujinx - Confirmación",
"DialogUpdaterTitle": "Ryujinx - Actualizador",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "Hubo un error encontrando los datos de guardado especificados: {0}",
"FolderDialogExtractTitle": "Elige la carpeta en la que deseas extraer",
"DialogNcaExtractionMessage": "Extrayendo {0} sección de {1}...",
- "DialogNcaExtractionTitle": "Extractor de sección NCA",
+ "DialogNcaExtractionTitle": "Ryujinx - Extractor de sección NCA",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "Fallo de extracción. El NCA principal no estaba presente en el archivo seleccionado.",
"DialogNcaExtractionCheckLogErrorMessage": "Fallo de extracción. Lee el registro para más información.",
"DialogNcaExtractionSuccessMessage": "Se completó la extracción con éxito.",
@@ -456,12 +444,12 @@
"DialogUpdaterNoInternetMessage": "¡No estás conectado a internet!",
"DialogUpdaterNoInternetSubMessage": "¡Por favor, verifica que tu conexión a Internet funciona!",
"DialogUpdaterDirtyBuildMessage": "¡No puedes actualizar una versión \"dirty\" de Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Por favor, descarga Ryujinx en https://https://github.com/GreemDev/Ryujinx/releases/ si buscas una versión con soporte.",
+ "DialogUpdaterDirtyBuildSubMessage": "Por favor, descarga Ryujinx en https://ryujinx.org/ si buscas una versión con soporte.",
"DialogRestartRequiredMessage": "Se necesita reiniciar",
"DialogThemeRestartMessage": "Tema guardado. Se necesita reiniciar para aplicar el tema.",
"DialogThemeRestartSubMessage": "¿Quieres reiniciar?",
"DialogFirmwareInstallEmbeddedMessage": "¿Quieres instalar el firmware incluido en este juego? (Firmware versión {0})",
- "DialogFirmwareInstallEmbeddedSuccessMessage": "No installed firmware was found but Ryujinx was able to install firmware {0} from the provided game.\nThe emulator will now start.",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "No se encontró ningún firmware instalado, pero Ryujinx pudo instalar el firmware {0} desde el juego suministrado.\nEl emulador ahora comenzará.",
"DialogFirmwareNoFirmwareInstalledMessage": "No hay firmware instalado",
"DialogFirmwareInstalledMessage": "Se instaló el firmware {0}",
"DialogInstallFileTypesSuccessMessage": "¡Tipos de archivos instalados con éxito!",
@@ -568,22 +556,18 @@
"AddGameDirBoxTooltip": "Elige un directorio de juegos para mostrar en la ventana principal",
"AddGameDirTooltip": "Agrega un directorio de juegos a la lista",
"RemoveGameDirTooltip": "Quita el directorio seleccionado de la lista",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "Activa o desactiva los temas personalizados para la interfaz",
"CustomThemePathTooltip": "Carpeta que contiene los temas personalizados para la interfaz",
"CustomThemeBrowseTooltip": "Busca un tema personalizado para la interfaz",
"DockModeToggleTooltip": "El modo dock o modo TV hace que la consola emulada se comporte como una Nintendo Switch en su dock. Esto mejora la calidad gráfica en la mayoría de los juegos. Del mismo modo, si lo desactivas, el sistema emulado se comportará como una Nintendo Switch en modo portátil, reduciendo la cálidad de los gráficos.\n\nConfigura los controles de \"Jugador\" 1 si planeas jugar en modo dock/TV; configura los controles de \"Portátil\" si planeas jugar en modo portátil.\n\nActívalo si no sabes qué hacer.",
- "DirectKeyboardTooltip": "Direct keyboard access (HID) support. Provides games access to your keyboard as a text entry device.\n\nOnly works with games that natively support keyboard usage on Switch hardware.\n\nLeave OFF if unsure.",
- "DirectMouseTooltip": "Direct mouse access (HID) support. Provides games access to your mouse as a pointing device.\n\nOnly works with games that natively support mouse controls on Switch hardware, which are few and far between.\n\nWhen enabled, touch screen functionality may not work.\n\nLeave OFF if unsure.",
+ "DirectKeyboardTooltip": "Acceso directo al teclado (HID). Proporciona acceso a los juegos a tu teclado como dispositivo de entrada de texto.\n\nSolo funciona con juegos que soportan nativamente el uso del teclado en la consola Switch.\n\nDeje APAGADO si no está seguro.",
+ "DirectMouseTooltip": "Acceso directo al ratón (HID). Proporciona acceso a los juegos a tu ratón como dispositivo apuntador.\n\nSolo funciona con juegos que soportan nativamente el uso del ratón en la consola Switch, los cuales son pocos.\n\nDeje APAGADO si no está seguro.",
"RegionTooltip": "Cambia la región del sistema",
"LanguageTooltip": "Cambia el idioma del sistema",
"TimezoneTooltip": "Cambia la zona horaria del sistema",
"TimeTooltip": "Cambia la hora del sistema",
- "VSyncToggleTooltip": "Emulated console's Vertical Sync. Essentially a frame-limiter for the majority of games; disabling it may cause games to run at higher speed or make loading screens take longer or get stuck.\n\nCan be toggled in-game with a hotkey of your preference (F1 by default). We recommend doing this if you plan on disabling it.\n\nLeave ON if unsure.",
+ "VSyncToggleTooltip": "Emula el Vertical Sync de la consola. Esencialmente es un limitante de fotogramas para la mayoria de juegos; deshabilitar esto puede hacer que los juegos corran a una velocidad incrementeda o hacer que las pantallas de carga duren mas o que se queden colgadas.\nPuede ser cambiado mientras el juego esta corriendo con una hotkey de tu preferencia (F1 por defecto). Recomendamos hacer esto si planeas en dehabilitarlo.\n\nDejar PRENDIDO si no esta seguro.",
"PptcToggleTooltip": "Guarda funciones de JIT traducidas para que no sea necesario traducirlas cada vez que el juego carga.\n\nReduce los tirones y acelera significativamente el tiempo de inicio de los juegos después de haberlos ejecutado al menos una vez.\n\nActívalo si no sabes qué hacer.",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
"FsIntegrityToggleTooltip": "Comprueba si hay archivos corruptos en los juegos que ejecutes al abrirlos, y si detecta archivos corruptos, muestra un error de Hash en los registros.\n\nEsto no tiene impacto alguno en el rendimiento y está pensado para ayudar a resolver problemas.\n\nActívalo si no sabes qué hacer.",
"AudioBackendTooltip": "Cambia el motor usado para renderizar audio.\n\nSDL2 es el preferido, mientras que OpenAL y SoundIO se usan si hay problemas con este. Dummy no produce audio.\n\nSelecciona SDL2 si no sabes qué hacer.",
"MemoryManagerTooltip": "Cambia la forma de mapear y acceder a la memoria del guest. Afecta en gran medida al rendimiento de la CPU emulada.\n\nSelecciona \"Host sin verificación\" si no sabes qué hacer.",
@@ -591,16 +575,15 @@
"MemoryManagerHostTooltip": "Mapea la memoria directamente en la dirección de espacio del host. Compilación y ejecución JIT mucho más rápida.",
"MemoryManagerUnsafeTooltip": "Mapea la memoria directamente, pero no enmascara la dirección dentro del espacio de dirección del guest antes del acceso. El modo más rápido, pero a costa de seguridad. La aplicación guest puede acceder a la memoria desde cualquier parte en Ryujinx, así que ejecuta solo programas en los que confíes cuando uses este modo.",
"UseHypervisorTooltip": "Usar Hypervisor en lugar de JIT. Mejora enormemente el rendimiento cuando está disponible, pero puede ser inestable en su estado actual.",
- "DRamTooltip": "Expande la memoria DRAM del sistema emulado de 4GiB a 6GiB.\n\nUtilizar solo con packs de texturas HD o mods de resolución 4K. NO mejora el rendimiento.\n\nDesactívalo si no sabes qué hacer.",
+ "DRamTooltip": "Utiliza un modo de memoria alternativa con 8GiB de DRAM para imitar un modelo de desarrollo de conmutación.\n\nEsto solo es útil para paquetes de texturizado de alta resolución o mods de resolución 4k. NO mejora el rendimiento.\n\nDeje APAGADO si no está seguro.",
"IgnoreMissingServicesTooltip": "Hack para ignorar servicios no implementados del Horizon OS. Esto puede ayudar a sobrepasar crasheos cuando inicies ciertos juegos.\n\nDesactívalo si no sabes qué hacer.",
- "IgnoreAppletTooltip": "El cuadro de diálogo externo \"Applet del controlador\" no aparecerá si el gamepad se desconecta durante el juego. No aparecerá ningún mensaje para cerrar el cuadro de diálogo o configurar un nuevo controlador. Una vez que se vuelva a conectar el controlador que se había desconectado anteriormente, el juego se reanudará automáticamente.",
"GraphicsBackendThreadingTooltip": "Ejecuta los comandos del motor gráfico en un segundo hilo. Acelera la compilación de sombreadores, reduce los tirones, y mejora el rendimiento en controladores gráficos que no realicen su propio procesamiento con múltiples hilos. Rendimiento ligeramente superior en controladores gráficos que soporten múltiples hilos.\n\nSelecciona \"Auto\" si no sabes qué hacer.",
"GalThreadingTooltip": "Ejecuta los comandos del motor gráfico en un segundo hilo. Acelera la compilación de sombreadores, reduce los tirones, y mejora el rendimiento en controladores gráficos que no realicen su propio procesamiento con múltiples hilos. Rendimiento ligeramente superior en controladores gráficos que soporten múltiples hilos.\n\nSelecciona \"Auto\" si no sabes qué hacer.",
"ShaderCacheToggleTooltip": "Guarda una caché de sombreadores en disco, la cual reduce los tirones a medida que vas jugando.\n\nActívalo si no sabes qué hacer.",
- "ResolutionScaleTooltip": "Multiplies the game's rendering resolution.\n\nA few games may not work with this and look pixelated even when the resolution is increased; for those games, you may need to find mods that remove anti-aliasing or that increase their internal rendering resolution. For using the latter, you'll likely want to select Native.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nKeep in mind 4x is overkill for virtually any setup.",
+ "ResolutionScaleTooltip": "Multiplica la resolución de renderizado del juego.\n\nPuede que algunos juegos no funcionen con esto y se vean pixelados incluso cuando la resolucion es incrementada; para estos juegos, puede ser que requieras de mods que remuevan el anti-aliasing o que incrementen la resolucion de renderizado interna. Para esto ultimo, probablemente querra elegir Nativo.\n\nEsta opcion puede ser cambiada mientras el juego esta en ejecucion al hacer click en el boton \"Aplicar\"; puedes simplemente move las ventana de opciones de lado y experimentar hasta que encuentres tu aparience preferida para un juego.\n\nTen en mente que 4x es un exceso para virtualmente cualquier maquina.",
"ResolutionScaleEntryTooltip": "Escalado de resolución de coma flotante, como por ejemplo 1,5. Los valores no íntegros pueden causar errores gráficos o crashes.",
- "AnisotropyTooltip": "Level of Anisotropic Filtering. Set to Auto to use the value requested by the game.",
- "AspectRatioTooltip": "Aspect Ratio applied to the renderer window.\n\nOnly change this if you're using an aspect ratio mod for your game, otherwise the graphics will be stretched.\n\nLeave on 16:9 if unsure.",
+ "AnisotropyTooltip": "Nivel de filtrado anisotrópico. Selecciona Auto para utilizar el valor solicitado por el juego.",
+ "AspectRatioTooltip": "Relación de Aspecto aplicada a la ventana de renderizado.\n\nCambia esto solo si estás usando un mod de Relación de Aspecto para tu juego, de otra forma tus gráficos se verán estrechos.\n\nDéjalo en 16:9 si no estás seguro.",
"ShaderDumpPathTooltip": "Directorio en el cual se volcarán los sombreadores de los gráficos",
"FileLogTooltip": "Guarda los registros de la consola en archivos en disco. No afectan al rendimiento.",
"StubLogTooltip": "Escribe mensajes de Stub en la consola. No afectan al rendimiento.",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "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.",
"LoadApplicationFileTooltip": "Abre el explorador de archivos para elegir un archivo compatible con Switch para cargar",
"LoadApplicationFolderTooltip": "Abre el explorador de archivos para elegir un archivo desempaquetado y compatible con Switch para cargar",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "Abre la carpeta de sistema de Ryujinx",
"OpenRyujinxLogsTooltip": "Abre la carpeta en la que se guardan los registros",
"ExitTooltip": "Cierra Ryujinx",
@@ -669,8 +650,8 @@
"OpenSetupGuideMessage": "Abrir la guía de instalación",
"NoUpdate": "No actualizado",
"TitleUpdateVersionLabel": "Versión {0} - {1}",
- "TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
- "TitleBundledDlcLabel": "Bundled:",
+ "TitleBundledUpdateVersionLabel": "Paquete: Versión {0}",
+ "TitleBundledDlcLabel": "Paquete:",
"RyujinxInfo": "Ryujinx - Info",
"RyujinxConfirm": "Ryujinx - Confirmación",
"FileDialogAllTypes": "Todos los tipos",
@@ -726,18 +707,11 @@
"UserProfileWindowTitle": "Administrar perfiles de usuario",
"CheatWindowTitle": "Administrar cheats",
"DlcWindowTitle": "Administrar contenido descargable",
- "ModWindowTitle": "Manage Mods for {0} ({1})",
+ "ModWindowTitle": "Administrar Mods para {0} ({1})",
"UpdateWindowTitle": "Administrar actualizaciones",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Cheats disponibles para {0} [{1}]",
"BuildId": "Id de compilación:",
"DlcWindowHeading": "Contenido descargable disponible para {0} [{1}]",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Editar selección",
"Cancel": "Cancelar",
@@ -753,9 +727,9 @@
"UserProfilesName": "Nombre:",
"UserProfilesUserId": "Id de Usuario:",
"SettingsTabGraphicsBackend": "Fondo de gráficos",
- "SettingsTabGraphicsBackendTooltip": "Select the graphics backend that will be used in the emulator.\n\nVulkan is overall better for all modern graphics cards, as long as their drivers are up to date. Vulkan also features faster shader compilation (less stuttering) on all GPU vendors.\n\nOpenGL may achieve better results on old Nvidia GPUs, on old AMD GPUs on Linux, or on GPUs with lower VRAM, though shader compilation stutters will be greater.\n\nSet to Vulkan if unsure. Set to OpenGL if your GPU does not support Vulkan even with the latest graphics drivers.",
+ "SettingsTabGraphicsBackendTooltip": "Selecciona el backend de gráficos que se utilizará en el emulador.\n\nVulkan es el mejor para todas las tarjetas gráficas modernas, siempre y cuando sus controladores estén actualizados. Vulkan también presenta una compilación de shaders más rápida (menos stuttering) en todos los proveedores de GPU.\n\nOpenGL puede lograr mejores resultados en GPUs viejas de Nvidia, en GPUs viejas de AMD en Linux, o en GPUs con VRAM bajo, aunque el stutter del compilador de shaders será mayor.\n\nSelecciona Vulkan si no estás seguro. Selecciona OpenGL si tu GPU no soporta Vulkan incluso con los últimos controladores gráficos.",
"SettingsEnableTextureRecompression": "Activar recompresión de texturas",
- "SettingsEnableTextureRecompressionTooltip": "Compresses ASTC textures in order to reduce VRAM usage.\n\nGames using this texture format include Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder and The Legend of Zelda: Tears of the Kingdom.\n\nGraphics cards with 4GiB VRAM or less will likely crash at some point while running these games.\n\nEnable only if you're running out of VRAM on the aforementioned games. Leave OFF if unsure.",
+ "SettingsEnableTextureRecompressionTooltip": "Comprime las texturas ASTC para reducir el uso de VRAM.\n\nLos juegos que usan este formato de texturas incluyen Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder y The Legend of Zelda: Tears of the Kingdom.\n\nLas tarjetas graficas con 4GBs de VRAM o menos probablemente se congelaran en algun punto mientras corran estos juegos.\n\nHabilitar solo si es que se te esta acabando el VRAM en los juegos previamente mencionados. Dejar APAGADO si no esta seguro.",
"SettingsTabGraphicsPreferredGpu": "GPU preferida",
"SettingsTabGraphicsPreferredGpuTooltip": "Selecciona la tarjeta gráfica que se utilizará con los back-end de gráficos Vulkan.\n\nNo afecta la GPU que utilizará OpenGL.\n\nFije a la GPU marcada como \"dGUP\" ante dudas. Si no hay una, no haga modificaciones.",
"SettingsAppRequiredRestartMessage": "Reinicio de Ryujinx requerido.",
@@ -781,14 +755,14 @@
"Recover": "Recuperar",
"UserProfilesRecoverHeading": "Datos de guardado fueron encontrados para las siguientes cuentas",
"UserProfilesRecoverEmptyList": "No hay perfiles a recuperar",
- "GraphicsAATooltip": "Applies anti-aliasing to the game render.\n\nFXAA will blur most of the image, while SMAA will attempt to find jagged edges and smooth them out.\n\nNot recommended to use in conjunction with the FSR scaling filter.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on NONE if unsure.",
+ "GraphicsAATooltip": "Aplica anti-aliasing al renderizado del juego.\n\nFXAA probablemente dejara la imagen borrosa, mientras que SMAA intentara encontrar bordes dentados y lijarlos.\n\nNo se recomienda usarlo en conjunto con el filtro de escalado FSR.\n\nEsta opcion puede ser cambiada mientras el juego esta en ejecucion al hacer click en el boton \"Aplicar\"; puedes simplemente move las ventana de opciones de lado y experimentar hasta que encuentres tu aparience preferida para un juego.\n\nDejalo en NINGUNO si no estas seguro.",
"GraphicsAALabel": "Suavizado de bordes:",
"GraphicsScalingFilterLabel": "Filtro de escalado:",
- "GraphicsScalingFilterTooltip": "Elija el filtro de escala que se aplicará al utilizar la escala de resolución.\n\nBilinear funciona bien para juegos 3D y es una opción predeterminada segura.\n\nSe recomienda el bilinear para juegos de pixel art.\n\nFSR 1.0 es simplemente un filtro de afilado, no se recomienda su uso con FXAA o SMAA.\n\nEsta opción se puede cambiar mientras se ejecuta un juego haciendo clic en \"Aplicar\" a continuación; simplemente puedes mover la ventana de configuración a un lado y experimentar hasta que encuentres tu estilo preferido para un juego.\n\nDéjelo en BILINEAR si no está seguro.",
+ "GraphicsScalingFilterTooltip": "Elija el filtro de escala que se aplicará al utilizar la escala de resolución.\n\nEl filtro bilineal funciona bien para juegos 3D y es una opción predeterminada segura.\n\nSe recomienda el bilineal para juegos de pixel art.\n\nFSR 1.0 es simplemente un filtro de afilado, no se recomienda su uso combinado con FXAA o SMAA.\n\nEscalar está recomendado bajar resoluciones más grandes que la resolución de pantalla. Se puede usar para conseguir un efecto de alisado cuando se reduce la escala más de un factor 2x.\n\nEsta opción se puede cambiar mientras se ejecuta un juego haciendo clic en \"Aplicar\" a continuación; simplemente puedes mover la ventana de configuración a un lado y experimentar hasta que encuentres tu estilo preferido para un juego.\n\nDéjelo en BILINEAR si no está seguro.",
"GraphicsScalingFilterBilinear": "Bilinear\n",
"GraphicsScalingFilterNearest": "Cercano",
"GraphicsScalingFilterFsr": "FSR",
- "GraphicsScalingFilterArea": "Area",
+ "GraphicsScalingFilterArea": "Área",
"GraphicsScalingFilterLevelLabel": "Nivel",
"GraphicsScalingFilterLevelTooltip": "Ajuste el nivel de nitidez FSR 1.0. Mayor es más nítido.",
"SmaaLow": "SMAA Bajo",
@@ -798,7 +772,7 @@
"UserEditorTitle": "Editar usuario",
"UserEditorTitleCreate": "Crear Usuario",
"SettingsTabNetworkInterface": "Interfaz de Red",
- "NetworkInterfaceTooltip": "Interfaz de red usada para características LAN/LDN.\n\njunto con una VPN o XLink Kai y un juego con soporte LAN, puede usarse para suplantar una conexión de la misma red a través de Internet.\n\nDeje en DEFAULT si no está seguro.",
+ "NetworkInterfaceTooltip": "Interfaz de red usada para características LAN/LDN.\n\nJunto con una VPN o XLink Kai y un juego con soporte LAN, puede usarse para suplantar una conexión de la misma red a través de Internet.\n\nDeje en DEFAULT si no está seguro.",
"NetworkInterfaceDefault": "Predeterminado",
"PackagingShaders": "Empaquetando sombreadores",
"AboutChangelogButton": "Ver registro de cambios en GitHub",
diff --git a/src/Ryujinx/Assets/Locales/fi_FI.json b/src/Ryujinx/Assets/Locales/fi_FI.json
new file mode 100644
index 000000000..4242b9259
--- /dev/null
+++ b/src/Ryujinx/Assets/Locales/fi_FI.json
@@ -0,0 +1,785 @@
+{
+ "Language": "Suomi",
+ "MenuBarFileOpenApplet": "Avaa Sovelma",
+ "MenuBarFileOpenAppletOpenMiiAppletToolTip": "Avaa Mii Muokkaus Sovelma erillisessä tilassa",
+ "SettingsTabInputDirectMouseAccess": "Suora Hiiren Käyttö",
+ "SettingsTabSystemMemoryManagerMode": "Muistinhallintatila:",
+ "SettingsTabSystemMemoryManagerModeSoftware": "Ohjelmisto",
+ "SettingsTabSystemMemoryManagerModeHost": "Isäntä (nopea)",
+ "SettingsTabSystemMemoryManagerModeHostUnchecked": "Tarkistamaton isäntä (Nopein, epäturvallinen)",
+ "SettingsTabSystemUseHypervisor": "Käytä Hypervisoria",
+ "MenuBarFile": "_Tiedosto",
+ "MenuBarFileOpenFromFile": "_Lataa Sovellus Tiedostosta",
+ "MenuBarFileOpenFromFileError": "Valitusta tiedostosta ei löydetty sovellusta.",
+ "MenuBarFileOpenUnpacked": "Lataa _Pakkaamaton Peli",
+ "MenuBarFileOpenEmuFolder": "Avaa Ryujinx Kansio",
+ "MenuBarFileOpenLogsFolder": "Avaa Logs Kansio",
+ "MenuBarFileExit": "_Poistu",
+ "MenuBarOptions": "_Asetukset",
+ "MenuBarOptionsToggleFullscreen": "Vaihda Koko Näyttö tilaan",
+ "MenuBarOptionsStartGamesInFullscreen": "Aloita Pelit Koko Näyttö Tilassa",
+ "MenuBarOptionsStopEmulation": "Lopeta Emulointi",
+ "MenuBarOptionsSettings": "_Asetukset",
+ "MenuBarOptionsManageUserProfiles": "_Hallitse Käyttäjäprofiileja",
+ "MenuBarActions": "_Toiminnot",
+ "MenuBarOptionsSimulateWakeUpMessage": "Simuloi Herätys viesti",
+ "MenuBarActionsScanAmiibo": "Skannaa Amiibo",
+ "MenuBarTools": "_Työkalut",
+ "MenuBarToolsInstallFirmware": "Asenna Laiteohjelmisto",
+ "MenuBarFileToolsInstallFirmwareFromFile": "Asenna laiteohjelmisto XCI- tai ZIP-tiedostosta",
+ "MenuBarFileToolsInstallFirmwareFromDirectory": "Asenna laiteohjelmisto kansiosta",
+ "MenuBarToolsManageFileTypes": "Hallitse tiedostotyyppejä",
+ "MenuBarToolsInstallFileTypes": "Asenna tiedostotyypit",
+ "MenuBarToolsUninstallFileTypes": "Poista tiedostotyypit",
+ "MenuBarView": "_Näkymä",
+ "MenuBarViewWindow": "Ikkunan koko",
+ "MenuBarViewWindow720": "720p",
+ "MenuBarViewWindow1080": "1080p",
+ "MenuBarHelp": "_Ohje",
+ "MenuBarHelpCheckForUpdates": "Tarkista päivitykset",
+ "MenuBarHelpAbout": "Tietoja",
+ "MenuSearch": "Hae...",
+ "GameListHeaderFavorite": "Suosikki",
+ "GameListHeaderIcon": "Kuvake",
+ "GameListHeaderApplication": "Nimi",
+ "GameListHeaderDeveloper": "Kehittäjä",
+ "GameListHeaderVersion": "Versio",
+ "GameListHeaderTimePlayed": "Peliaika",
+ "GameListHeaderLastPlayed": "Viimeksi pelattu",
+ "GameListHeaderFileExtension": "Tiedostotunniste",
+ "GameListHeaderFileSize": "Tiedoston koko",
+ "GameListHeaderPath": "Polku",
+ "GameListContextMenuOpenUserSaveDirectory": "Avaa Käyttäjän Tallennuskansio",
+ "GameListContextMenuOpenUserSaveDirectoryToolTip": "Avaa kansion, joka sisältää sovelluksen käyttäjä tallennuksen",
+ "GameListContextMenuOpenDeviceSaveDirectory": "Avaa Laitteen Tallennuskansio",
+ "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "Avaa kansion, joka sisältää sovelluksen laite tallennuksen",
+ "GameListContextMenuOpenBcatSaveDirectory": "Avaa BCAT Tallennuskansio",
+ "GameListContextMenuOpenBcatSaveDirectoryToolTip": "Avaa kansion, joka sisältää sovelluksen BCAT tallennuksen",
+ "GameListContextMenuManageTitleUpdates": "Hallitse Otsikon Päivityksiä",
+ "GameListContextMenuManageTitleUpdatesToolTip": "Avaa Otsikon Päivityksien hallinnan ikkunan",
+ "GameListContextMenuManageDlc": "Hallitse Ladattavaa Sisältöä",
+ "GameListContextMenuManageDlcToolTip": "Avaa Ladattavan Sisällön hallinnan ikkunan",
+ "GameListContextMenuCacheManagement": "Välimuistin hallinta",
+ "GameListContextMenuCacheManagementPurgePptc": "Jonota PPTC Uudelleenrakennus",
+ "GameListContextMenuCacheManagementPurgePptcToolTip": "Käynnistää PPTC uudelleenrakennuksen pelin käynnistyessä",
+ "GameListContextMenuCacheManagementPurgeShaderCache": "Puhdista Varjostus Lähimuisti",
+ "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "Poista sovelluksen varjostusvälimuisti",
+ "GameListContextMenuCacheManagementOpenPptcDirectory": "Avaa PPTC kansio",
+ "GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "Avaa kansion, joka sisältää sovelluksen PPTC välimuistin",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectory": "Avaa varjostin välimuisti kansion",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "Avaa kansion, joka sisältää sovelluksen varjostin lähimuistin",
+ "GameListContextMenuExtractData": "Pura Data",
+ "GameListContextMenuExtractDataExeFS": "ExeFS",
+ "GameListContextMenuExtractDataExeFSToolTip": "Pura ExeFS-osio sovelluksen nykyisestä kokoonpanosta (mukaan lukien päivitykset)",
+ "GameListContextMenuExtractDataRomFS": "RomFS",
+ "GameListContextMenuExtractDataRomFSToolTip": "Pura RomFS-osio sovelluksen nykyisestä kokoonpanosta (mukaan lukien päivitykset)",
+ "GameListContextMenuExtractDataLogo": "Logo",
+ "GameListContextMenuExtractDataLogoToolTip": "Pura logo sovelluksen nykyisestä kokoonpanosta (mukaan lukien päivitykset)",
+ "GameListContextMenuCreateShortcut": "Luo sovellus pikakuvake",
+ "GameListContextMenuCreateShortcutToolTip": "Luo työpöytä pikakuvake, joka käynnistään valitun sovelluksen",
+ "GameListContextMenuCreateShortcutToolTipMacOS": "Luo pikakuvake macOS:n sovelluskansioon, joka käynnistää valitun sovelluksen",
+ "GameListContextMenuOpenModsDirectory": "Avaa Mods kansio",
+ "GameListContextMenuOpenModsDirectoryToolTip": "Avaa kansion, joka sisältää sovelluksen Modit",
+ "GameListContextMenuOpenSdModsDirectory": "Avaa Atmosphere Mods kansio",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "Avaa vaihtoehtoisen SD-kortin Atmosphere kansion, joka sisältää sovelluksen Modit. Hyödyllisiä modeihin, jotka on pakattu oikeisiin laitteisiin.",
+ "StatusBarGamesLoaded": "{0}/{1} Pelejä Ladattu",
+ "StatusBarSystemVersion": "Järjestelmäversio: {0}",
+ "LinuxVmMaxMapCountDialogTitle": "Low limit for memory mappings detected",
+ "LinuxVmMaxMapCountDialogTextPrimary": "Halusisitko muuttaa arvoa vm.max_map_count arvoon {0}",
+ "LinuxVmMaxMapCountDialogTextSecondary": "",
+ "LinuxVmMaxMapCountDialogButtonUntilRestart": "Kyllä, seuraavaan uudelleenkäynnistykseen asti",
+ "LinuxVmMaxMapCountDialogButtonPersistent": "Kyllä, pysyvästi",
+ "LinuxVmMaxMapCountWarningTextPrimary": "",
+ "LinuxVmMaxMapCountWarningTextSecondary": "Arvon vm.max_map_count ({0}) on vähemmän kuin {1}. Jotkin pelit saattavat yrittää lisätä enemmän muistikartoituksia kuin on sallittu. Ryujinx kaattu, kun rajoitus ylitetään.\n\nSuosittelemme, että manuaalisesti nostat rajoitusta tai asennat pkexec -sovelluksen, joka autaa Ryujinxiä sen kanssa.",
+ "Settings": "Asetukset",
+ "SettingsTabGeneral": "Käyttöliittymä",
+ "SettingsTabGeneralGeneral": "Yleinen",
+ "SettingsTabGeneralEnableDiscordRichPresence": "Ota Discord Rich Presence käyttöön",
+ "SettingsTabGeneralCheckUpdatesOnLaunch": "Tarkista päivitykset käynnistyksen yhdeydessä",
+ "SettingsTabGeneralShowConfirmExitDialog": "Näytä \"Vahvista Poistuminen\"-ikkuna",
+ "SettingsTabGeneralRememberWindowState": "Muista Ikkunan Koko/Sijainti",
+ "SettingsTabGeneralHideCursor": "Piilota kursori:",
+ "SettingsTabGeneralHideCursorNever": "Ei koskaan",
+ "SettingsTabGeneralHideCursorOnIdle": "Käyttämättä",
+ "SettingsTabGeneralHideCursorAlways": "Aina",
+ "SettingsTabGeneralGameDirectories": "Pelikansiot",
+ "SettingsTabGeneralAdd": "Lisää",
+ "SettingsTabGeneralRemove": "Poista",
+ "SettingsTabSystem": "Järjestelmä",
+ "SettingsTabSystemCore": "Ydin",
+ "SettingsTabSystemSystemRegion": "Järjestelmän alue:",
+ "SettingsTabSystemSystemRegionJapan": "Japani",
+ "SettingsTabSystemSystemRegionUSA": "Yhdysvallat",
+ "SettingsTabSystemSystemRegionEurope": "Eurooppa",
+ "SettingsTabSystemSystemRegionAustralia": "Australia",
+ "SettingsTabSystemSystemRegionChina": "Kiina",
+ "SettingsTabSystemSystemRegionKorea": "Korea",
+ "SettingsTabSystemSystemRegionTaiwan": "Taiwan",
+ "SettingsTabSystemSystemLanguage": "Järjestelmän kieli:",
+ "SettingsTabSystemSystemLanguageJapanese": "Japani",
+ "SettingsTabSystemSystemLanguageAmericanEnglish": "Amerikanenglanti",
+ "SettingsTabSystemSystemLanguageFrench": "Ranska",
+ "SettingsTabSystemSystemLanguageGerman": "Saksa",
+ "SettingsTabSystemSystemLanguageItalian": "Italia",
+ "SettingsTabSystemSystemLanguageSpanish": "Espanja",
+ "SettingsTabSystemSystemLanguageChinese": "Kiina",
+ "SettingsTabSystemSystemLanguageKorean": "Korea",
+ "SettingsTabSystemSystemLanguageDutch": "Hollanti",
+ "SettingsTabSystemSystemLanguagePortuguese": "Portugali",
+ "SettingsTabSystemSystemLanguageRussian": "Venäjä",
+ "SettingsTabSystemSystemLanguageTaiwanese": "Taiwani",
+ "SettingsTabSystemSystemLanguageBritishEnglish": "Britannianenglanti",
+ "SettingsTabSystemSystemLanguageCanadianFrench": "Kanadanranska",
+ "SettingsTabSystemSystemLanguageLatinAmericanSpanish": "Amerikanespanja",
+ "SettingsTabSystemSystemLanguageSimplifiedChinese": "Yksinkertaistettu Kiina",
+ "SettingsTabSystemSystemLanguageTraditionalChinese": "Perinteinen Kiina",
+ "SettingsTabSystemSystemTimeZone": "Järjestelmän aikavyöhyke:",
+ "SettingsTabSystemSystemTime": "Järjestelmän aika:",
+ "SettingsTabSystemEnableVsync": "VSync",
+ "SettingsTabSystemEnablePptc": "PPTC (Profilioitu Pysyvä Käännösvälimuisti)",
+ "SettingsTabSystemEnableFsIntegrityChecks": "Tiedostojärjestelmän eheys tarkistukset",
+ "SettingsTabSystemAudioBackend": "Äänen taustaohjelma:",
+ "SettingsTabSystemAudioBackendDummy": "Nukke",
+ "SettingsTabSystemAudioBackendOpenAL": "OpenAL",
+ "SettingsTabSystemAudioBackendSoundIO": "SoundIO",
+ "SettingsTabSystemAudioBackendSDL2": "SDL2",
+ "SettingsTabSystemHacks": "Hackit",
+ "SettingsTabSystemHacksNote": "Voi aiheuttaa epävakautta",
+ "SettingsTabSystemExpandDramSize": "Laajenna DRAM 8GiB:iin",
+ "SettingsTabSystemIgnoreMissingServices": "Ohita Puuttuvat Palvelut",
+ "SettingsTabGraphics": "Grafiikka",
+ "SettingsTabGraphicsAPI": "Grafiikka API",
+ "SettingsTabGraphicsEnableShaderCache": "Ota varjostus lähimuisti käyttöön",
+ "SettingsTabGraphicsAnisotropicFiltering": "Anisotrooppinen suodatus:",
+ "SettingsTabGraphicsAnisotropicFilteringAuto": "Autom.",
+ "SettingsTabGraphicsAnisotropicFiltering2x": "2x",
+ "SettingsTabGraphicsAnisotropicFiltering4x": "4x",
+ "SettingsTabGraphicsAnisotropicFiltering8x": "8x",
+ "SettingsTabGraphicsAnisotropicFiltering16x": "16x",
+ "SettingsTabGraphicsResolutionScale": "Resoluutioasteikko:",
+ "SettingsTabGraphicsResolutionScaleCustom": "Mukautettu (Ei suositeltu)",
+ "SettingsTabGraphicsResolutionScaleNative": "Natiivi (720p/1080p)",
+ "SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
+ "SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
+ "SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Ei suositeltu)",
+ "SettingsTabGraphicsAspectRatio": "Kuvasuhde:",
+ "SettingsTabGraphicsAspectRatio4x3": "4:3",
+ "SettingsTabGraphicsAspectRatio16x9": "16:9",
+ "SettingsTabGraphicsAspectRatio16x10": "16:10",
+ "SettingsTabGraphicsAspectRatio21x9": "21:9",
+ "SettingsTabGraphicsAspectRatio32x9": "32:9",
+ "SettingsTabGraphicsAspectRatioStretch": "Venytä sopimaan ikkunaan",
+ "SettingsTabGraphicsDeveloperOptions": "Kehittäjäasetukset",
+ "SettingsTabGraphicsShaderDumpPath": "Graphics Shader Dump Path:",
+ "SettingsTabLogging": "Lokit",
+ "SettingsTabLoggingLogging": "Lokit",
+ "SettingsTabLoggingEnableLoggingToFile": "Ota lokitiedostoon kirjaaminen käyttöön",
+ "SettingsTabLoggingEnableStubLogs": "Ota Stub lokit käyttöön",
+ "SettingsTabLoggingEnableInfoLogs": "Ota Info lokit käyttöön",
+ "SettingsTabLoggingEnableWarningLogs": "Ota Varoitus lokit käyttöön",
+ "SettingsTabLoggingEnableErrorLogs": "Ota Virhe lokit käyttöön",
+ "SettingsTabLoggingEnableTraceLogs": "Ota Trace lokit käyttöön",
+ "SettingsTabLoggingEnableGuestLogs": "Ota Guest lokit käyttöön",
+ "SettingsTabLoggingEnableFsAccessLogs": "Ota Fs lokit käyttöön",
+ "SettingsTabLoggingFsGlobalAccessLogMode": "Tiedostojärjestelmän yleinen lokitila",
+ "SettingsTabLoggingDeveloperOptions": "Kehittäjäasetukset",
+ "SettingsTabLoggingDeveloperOptionsNote": "VAROITUS: Vähentää suorituskykyä",
+ "SettingsTabLoggingGraphicsBackendLogLevel": "Graphics Backend Log Level:",
+ "SettingsTabLoggingGraphicsBackendLogLevelNone": "Ei mitään",
+ "SettingsTabLoggingGraphicsBackendLogLevelError": "Virheet",
+ "SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Hidastukset",
+ "SettingsTabLoggingGraphicsBackendLogLevelAll": "Kaikki",
+ "SettingsTabLoggingEnableDebugLogs": "Ota Debugt lokit käyttöön",
+ "SettingsTabInput": "Ohjaus",
+ "SettingsTabInputEnableDockedMode": "Telakoitu-tila",
+ "SettingsTabInputDirectKeyboardAccess": "Suora Näppäimistön Käyttö",
+ "SettingsButtonSave": "Tallenna",
+ "SettingsButtonClose": "Sulje",
+ "SettingsButtonOk": "OK",
+ "SettingsButtonCancel": "Peruuta",
+ "SettingsButtonApply": "Käytä",
+ "ControllerSettingsPlayer": "Pelaaja",
+ "ControllerSettingsPlayer1": "Pelaaja 1",
+ "ControllerSettingsPlayer2": "Pelaaja 2",
+ "ControllerSettingsPlayer3": "Pelaaja 3",
+ "ControllerSettingsPlayer4": "Pelaaja 4",
+ "ControllerSettingsPlayer5": "Pelaaja 5",
+ "ControllerSettingsPlayer6": "Pelaaja 6",
+ "ControllerSettingsPlayer7": "Pelaaja 7",
+ "ControllerSettingsPlayer8": "Pelaaja 8",
+ "ControllerSettingsHandheld": "Kannettava",
+ "ControllerSettingsInputDevice": "Syöttölaite",
+ "ControllerSettingsRefresh": "Päivitä",
+ "ControllerSettingsDeviceDisabled": "Pois käytöstä",
+ "ControllerSettingsControllerType": "Ohjaintyyppi",
+ "ControllerSettingsControllerTypeHandheld": "Kannettava",
+ "ControllerSettingsControllerTypeProController": "Pro Controller",
+ "ControllerSettingsControllerTypeJoyConPair": "JoyCon Pari",
+ "ControllerSettingsControllerTypeJoyConLeft": "Vasen JoyCon",
+ "ControllerSettingsControllerTypeJoyConRight": "Oikea JoyCon",
+ "ControllerSettingsProfile": "Profiili",
+ "ControllerSettingsProfileDefault": "Oletus",
+ "ControllerSettingsLoad": "Lataa",
+ "ControllerSettingsAdd": "Lisää",
+ "ControllerSettingsRemove": "Poista",
+ "ControllerSettingsButtons": "Painikkeet",
+ "ControllerSettingsButtonA": "A",
+ "ControllerSettingsButtonB": "B",
+ "ControllerSettingsButtonX": "X",
+ "ControllerSettingsButtonY": "Y",
+ "ControllerSettingsButtonPlus": "+",
+ "ControllerSettingsButtonMinus": "-",
+ "ControllerSettingsDPad": "Ristiohjain",
+ "ControllerSettingsDPadUp": "Ylös",
+ "ControllerSettingsDPadDown": "Alas",
+ "ControllerSettingsDPadLeft": "Vasen",
+ "ControllerSettingsDPadRight": "Oikea",
+ "ControllerSettingsStickButton": "Painike",
+ "ControllerSettingsStickUp": "Ylös",
+ "ControllerSettingsStickDown": "Alas",
+ "ControllerSettingsStickLeft": "Vasen",
+ "ControllerSettingsStickRight": "Oikea",
+ "ControllerSettingsStickStick": "Sauva",
+ "ControllerSettingsStickInvertXAxis": "Käännä Sauvan X-akseli",
+ "ControllerSettingsStickInvertYAxis": "Käännä Sauvan Y-akseli",
+ "ControllerSettingsStickDeadzone": "Katvealue:",
+ "ControllerSettingsLStick": "Vasen ohjainsauva",
+ "ControllerSettingsRStick": "Oikea ohjainsauva",
+ "ControllerSettingsTriggersLeft": "Triggers Left",
+ "ControllerSettingsTriggersRight": "Triggers Right",
+ "ControllerSettingsTriggersButtonsLeft": "Trigger Buttons Left",
+ "ControllerSettingsTriggersButtonsRight": "Trigger Buttons Right",
+ "ControllerSettingsTriggers": "Liipaisimet",
+ "ControllerSettingsTriggerL": "L",
+ "ControllerSettingsTriggerR": "R",
+ "ControllerSettingsTriggerZL": "ZL",
+ "ControllerSettingsTriggerZR": "ZR",
+ "ControllerSettingsLeftSL": "SL",
+ "ControllerSettingsLeftSR": "SR",
+ "ControllerSettingsRightSL": "SL",
+ "ControllerSettingsRightSR": "SR",
+ "ControllerSettingsExtraButtonsLeft": "Painikkeet vasemmalla",
+ "ControllerSettingsExtraButtonsRight": "Buttons Right",
+ "ControllerSettingsMisc": "Sekalaiset",
+ "ControllerSettingsTriggerThreshold": "Liipaisinkynnys:",
+ "ControllerSettingsMotion": "Likke",
+ "ControllerSettingsMotionUseCemuhookCompatibleMotion": "Käytä CemuHook-yhteensopivaa liikettä",
+ "ControllerSettingsMotionControllerSlot": "Ohjaimen paikka:",
+ "ControllerSettingsMotionMirrorInput": "Peilaa syöte",
+ "ControllerSettingsMotionRightJoyConSlot": "Vasen JoyCon paikka:",
+ "ControllerSettingsMotionServerHost": "Palvelinisäntä:",
+ "ControllerSettingsMotionGyroSensitivity": "Gyroskoopin herkkyys:",
+ "ControllerSettingsMotionGyroDeadzone": "Gyroskoopin katvealue:",
+ "ControllerSettingsSave": "Tallenna",
+ "ControllerSettingsClose": "Sulje",
+ "KeyUnknown": "Tuntematon",
+ "KeyShiftLeft": "Vasen vaihto",
+ "KeyShiftRight": "Shift Right",
+ "KeyControlLeft": "Ctrl Left",
+ "KeyMacControlLeft": "⌃ Left",
+ "KeyControlRight": "Ctrl Right",
+ "KeyMacControlRight": "⌃ Right",
+ "KeyAltLeft": "Alt Left",
+ "KeyMacAltLeft": "⌥ Left",
+ "KeyAltRight": "Alt Right",
+ "KeyMacAltRight": "⌥ Right",
+ "KeyWinLeft": "⊞ Left",
+ "KeyMacWinLeft": "⌘ Left",
+ "KeyWinRight": "⊞ Right",
+ "KeyMacWinRight": "⌘ Right",
+ "KeyMenu": "Menu",
+ "KeyUp": "Up",
+ "KeyDown": "Down",
+ "KeyLeft": "Left",
+ "KeyRight": "Right",
+ "KeyEnter": "Enter",
+ "KeyEscape": "Escape",
+ "KeySpace": "Space",
+ "KeyTab": "Tab",
+ "KeyBackSpace": "Backspace",
+ "KeyInsert": "Insert",
+ "KeyDelete": "Delete",
+ "KeyPageUp": "Page Up",
+ "KeyPageDown": "Page Down",
+ "KeyHome": "Home",
+ "KeyEnd": "End",
+ "KeyCapsLock": "Caps Lock",
+ "KeyScrollLock": "Scroll Lock",
+ "KeyPrintScreen": "Print Screen",
+ "KeyPause": "Pause",
+ "KeyNumLock": "Num Lock",
+ "KeyClear": "Tyhjennä",
+ "KeyKeypad0": "Keypad 0",
+ "KeyKeypad1": "Keypad 1",
+ "KeyKeypad2": "Keypad 2",
+ "KeyKeypad3": "Keypad 3",
+ "KeyKeypad4": "Keypad 4",
+ "KeyKeypad5": "Keypad 5",
+ "KeyKeypad6": "Keypad 6",
+ "KeyKeypad7": "Keypad 7",
+ "KeyKeypad8": "Keypad 8",
+ "KeyKeypad9": "Keypad 9",
+ "KeyKeypadDivide": "Keypad Divide",
+ "KeyKeypadMultiply": "Keypad Multiply",
+ "KeyKeypadSubtract": "Keypad Subtract",
+ "KeyKeypadAdd": "Keypad Add",
+ "KeyKeypadDecimal": "Keypad Decimal",
+ "KeyKeypadEnter": "Keypad Enter",
+ "KeyNumber0": "0",
+ "KeyNumber1": "1",
+ "KeyNumber2": "2",
+ "KeyNumber3": "3",
+ "KeyNumber4": "4",
+ "KeyNumber5": "5",
+ "KeyNumber6": "6",
+ "KeyNumber7": "7",
+ "KeyNumber8": "8",
+ "KeyNumber9": "9",
+ "KeyTilde": "~",
+ "KeyGrave": "`",
+ "KeyMinus": "-",
+ "KeyPlus": "+",
+ "KeyBracketLeft": "[",
+ "KeyBracketRight": "]",
+ "KeySemicolon": ";",
+ "KeyQuote": "\"",
+ "KeyComma": ",",
+ "KeyPeriod": ".",
+ "KeySlash": "/",
+ "KeyBackSlash": "\\",
+ "KeyUnbound": "Unbound",
+ "GamepadLeftStick": "L Stick Button",
+ "GamepadRightStick": "R Stick Button",
+ "GamepadLeftShoulder": "Left Shoulder",
+ "GamepadRightShoulder": "Right Shoulder",
+ "GamepadLeftTrigger": "Left Trigger",
+ "GamepadRightTrigger": "Right Trigger",
+ "GamepadDpadUp": "Up",
+ "GamepadDpadDown": "Down",
+ "GamepadDpadLeft": "Left",
+ "GamepadDpadRight": "Right",
+ "GamepadMinus": "-",
+ "GamepadPlus": "+",
+ "GamepadGuide": "Guide",
+ "GamepadMisc1": "Misc",
+ "GamepadPaddle1": "Paddle 1",
+ "GamepadPaddle2": "Paddle 2",
+ "GamepadPaddle3": "Paddle 3",
+ "GamepadPaddle4": "Paddle 4",
+ "GamepadTouchpad": "Touchpad",
+ "GamepadSingleLeftTrigger0": "Left Trigger 0",
+ "GamepadSingleRightTrigger0": "Right Trigger 0",
+ "GamepadSingleLeftTrigger1": "Left Trigger 1",
+ "GamepadSingleRightTrigger1": "Right Trigger 1",
+ "StickLeft": "Left Stick",
+ "StickRight": "Right Stick",
+ "UserProfilesSelectedUserProfile": "Valittu käyttäjäprofiili:",
+ "UserProfilesSaveProfileName": "Tallenna profiilinimi",
+ "UserProfilesChangeProfileImage": "Vaihda profiilikuva",
+ "UserProfilesAvailableUserProfiles": "Saatavilla olevat käyttäjäprofiilit:",
+ "UserProfilesAddNewProfile": "Luo profiili",
+ "UserProfilesDelete": "Poista",
+ "UserProfilesClose": "Sulje",
+ "ProfileNameSelectionWatermark": "Valitse käyttäjänimi",
+ "ProfileImageSelectionTitle": "Profiilikuvan valinta",
+ "ProfileImageSelectionHeader": "Valitse profiilikuva",
+ "ProfileImageSelectionNote": "Voit tuoda oman profiilikuvan, tai valita yhden järjestelmästä",
+ "ProfileImageSelectionImportImage": "Tuo kuvatiedosto",
+ "ProfileImageSelectionSelectAvatar": "Valitse järjestelmä profiilikuva",
+ "InputDialogTitle": "Input Dialog",
+ "InputDialogOk": "OK",
+ "InputDialogCancel": "Peruuta",
+ "InputDialogAddNewProfileTitle": "Valitse profiilin nimi",
+ "InputDialogAddNewProfileHeader": "Syötä profiilin nimi",
+ "InputDialogAddNewProfileSubtext": "(Maksimi pituus: {0})",
+ "AvatarChoose": "Valitse profiilikuva",
+ "AvatarSetBackgroundColor": "Aseta taustaväri",
+ "AvatarClose": "Sulje",
+ "ControllerSettingsLoadProfileToolTip": "Lataa profiili",
+ "ControllerSettingsAddProfileToolTip": "Lisää profiili",
+ "ControllerSettingsRemoveProfileToolTip": "Poista profiili",
+ "ControllerSettingsSaveProfileToolTip": "Tallenna profiili",
+ "MenuBarFileToolsTakeScreenshot": "Ota kuvankaappaus",
+ "MenuBarFileToolsHideUi": "Piilota käyttöliittymä",
+ "GameListContextMenuRunApplication": "Suorita sovellus",
+ "GameListContextMenuToggleFavorite": "Lisää/poista suosikki",
+ "GameListContextMenuToggleFavoriteToolTip": "Vaihda pelin suosikkitila",
+ "SettingsTabGeneralTheme": "Teema:",
+ "SettingsTabGeneralThemeAuto": "Autom.",
+ "SettingsTabGeneralThemeDark": "Tumma",
+ "SettingsTabGeneralThemeLight": "Vaalea",
+ "ControllerSettingsConfigureGeneral": "Konfiguroi",
+ "ControllerSettingsRumble": "Tärinä",
+ "ControllerSettingsRumbleStrongMultiplier": "Vahva tärinä kerroin",
+ "ControllerSettingsRumbleWeakMultiplier": "Heikko tärinä kerroin",
+ "DialogMessageSaveNotAvailableMessage": "{0} [{1:x16}]:lle ei ole tallennusta",
+ "DialogMessageSaveNotAvailableCreateSaveMessage": "Haluatko luoda tallenuksen tälle pelille?",
+ "DialogConfirmationTitle": "Ryujinx - Vahvistus",
+ "DialogUpdaterTitle": "Ryujinx - Päivittäjä",
+ "DialogErrorTitle": "Ryujinx - Virhe",
+ "DialogWarningTitle": "Ryujinx - Varoitus",
+ "DialogExitTitle": "Ryujinx - Poistu",
+ "DialogErrorMessage": "Ryujinx on kohdannut virheen",
+ "DialogExitMessage": "Oletko varma, että haluat sulkea Ryujinxin?",
+ "DialogExitSubMessage": "Kaikki tallentamattomat tiedot menetetään!",
+ "DialogMessageCreateSaveErrorMessage": "Määritetyn tallennuksen luomisessa tapahtui virhe: {0}",
+ "DialogMessageFindSaveErrorMessage": "Määritetyn tallennuksen löytämisessä tapahtui virhe: {0}",
+ "FolderDialogExtractTitle": "Valitse kansio johon purkaa",
+ "DialogNcaExtractionMessage": "Puretaan {0}-osiota {1}...",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA lohkon purkamistyökalu",
+ "DialogNcaExtractionMainNcaNotFoundErrorMessage": "Purkamisvirhe. Ensisijaista NCA:ta ei löytydetty valitusta tiedostosta",
+ "DialogNcaExtractionCheckLogErrorMessage": "Purkamisvirhe. Lue lokitiedosto saadaksesi lisätietoja.",
+ "DialogNcaExtractionSuccessMessage": "Purkaminen suoritettu onnistuneesti.",
+ "DialogUpdaterConvertFailedMessage": "Nykyisen Ryujinx-version muuntamine epäonnistui.",
+ "DialogUpdaterCancelUpdateMessage": "Peruutetaan päivitys!",
+ "DialogUpdaterAlreadyOnLatestVersionMessage": "Käytät jo uusinta versiota Ryujinxistä!",
+ "DialogUpdaterFailedToGetVersionMessage": "Virhe tapahtui yrittäessä saada julkaisutietoja GitHubista. Tämä voi tapahtua, jos GitHub Actions on kokoamassa uutta julkaisua. Yritä uudelleen muutaman minuutin kuluttua.",
+ "DialogUpdaterConvertFailedGithubMessage": "Vastaanotetun Ryujinx-version muuntaminen Github-julkaisusta epäonnistui.",
+ "DialogUpdaterDownloadingMessage": "Ladataan päivitystä...",
+ "DialogUpdaterExtractionMessage": "Puretaan päivitystä...",
+ "DialogUpdaterRenamingMessage": "Uudelleennimetään päivitystä...",
+ "DialogUpdaterAddingFilesMessage": "Lisätään uusi päivitys...",
+ "DialogUpdaterCompleteMessage": "Päivitys valmis!",
+ "DialogUpdaterRestartMessage": "Haluatko käynnistään Ryujinxin uudelleen?",
+ "DialogUpdaterNoInternetMessage": "Et ole yhdistetty internettiin!",
+ "DialogUpdaterNoInternetSubMessage": "Varmista, että sinulla on toimiva Internet-yhteys!",
+ "DialogUpdaterDirtyBuildMessage": "Et voi päivittää likaista Ryujinx versioita!",
+ "DialogUpdaterDirtyBuildSubMessage": "Lataa Ryujinx osoitteesta https://ryujinx.org/ jos etsit tuettua versioita.",
+ "DialogRestartRequiredMessage": "Uudelleenkäynnistys vaaditaan",
+ "DialogThemeRestartMessage": "Teema on tallennettu. Teeman asettamiseen vaaditaan uudelleenkäynnistys.",
+ "DialogThemeRestartSubMessage": "Haluatko käynnistää uudelleen",
+ "DialogFirmwareInstallEmbeddedMessage": "Haluatko asentaa tähän peliin upotetun laiteohjelmiston? (Laiteohjelmisto versio {0})",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "Asennettua laiteohjelmistoa ei löytynyt, mutta Ryujinx pystyi asentamaan laiteohjelmiston pelistä {0}.\nEmulaattori käynnistyy nyt.",
+ "DialogFirmwareNoFirmwareInstalledMessage": "Laiteohjelmistoa ei ole asennettu",
+ "DialogFirmwareInstalledMessage": "Ohjelmisto {0} asennettiin",
+ "DialogInstallFileTypesSuccessMessage": "Tiedostotyyppien asennus onnistui!",
+ "DialogInstallFileTypesErrorMessage": "Tiedostotyyppien asennus epäonnistui.",
+ "DialogUninstallFileTypesSuccessMessage": "Tiedostotyyppien poisto onnistui!",
+ "DialogUninstallFileTypesErrorMessage": "Tiedostotyyppien poisto epäonnistui.",
+ "DialogOpenSettingsWindowLabel": "Avaa asetuksenikkuna",
+ "DialogControllerAppletTitle": "Ohjain Applet",
+ "DialogMessageDialogErrorExceptionMessage": "Virhe näyttäessä viesti dialogia",
+ "DialogSoftwareKeyboardErrorExceptionMessage": "Virhe näytettäessä ohjelmiston näppäimistöä",
+ "DialogErrorAppletErrorExceptionMessage": "Virhe näytettäessä viesti dialogia",
+ "DialogUserErrorDialogMessage": "{0}: {1}",
+ "DialogUserErrorDialogInfoMessage": "Jos haluat lisätietoja kuinka korjata tämän virheen, seuraa asennusopasta.",
+ "DialogUserErrorDialogTitle": "Ryujinx virhe ({0})",
+ "DialogAmiiboApiTitle": "Amiibo API",
+ "DialogAmiiboApiFailFetchMessage": "API:n tietojen haussa tapahtui virhe.",
+ "DialogAmiiboApiConnectErrorMessage": "Amiibo API-palvelimeen ei voitu yhdistää. Palvelu voi olla alhaalla, tai sinun täytyy tarkistaa internet-yhteytesi.",
+ "DialogProfileInvalidProfileErrorMessage": "Profiili {0} ei ole yhteensopiva nykyisen ohjain konfiguraatiojärjestelmän kanssa.",
+ "DialogProfileDefaultProfileOverwriteErrorMessage": "Oletusprofiilia ei voi ylikirjoittaa",
+ "DialogProfileDeleteProfileTitle": "Poistetaan profiilia",
+ "DialogProfileDeleteProfileMessage": "Tämä toiminto on peruuttamaton, oletko varma että haluat jatkaa?",
+ "DialogWarning": "Varoitus",
+ "DialogPPTCDeletionMessage": "Olet lisäämässä PPTC:n uudelleen rakentamisen suoritettavaksi kohteen seuraavassa käynnistyksessä:\n\n{0}\n\nHaluatko varmasti jatkaa?",
+ "DialogPPTCDeletionErrorMessage": "Virhe tyhjennettäessä PPTC välimuistia {0}: {1}",
+ "DialogShaderDeletionMessage": "Olet poistamassa Shader -välimuistin kohteelta:\n\n{0}\n\nHaluatko varmasti jatkaa?",
+ "DialogShaderDeletionErrorMessage": "Error purging Shader cache at {0}: {1}",
+ "DialogRyujinxErrorMessage": "Ryujinx on kohdannut virheen",
+ "DialogInvalidTitleIdErrorMessage": "UI error: The selected game did not have a valid title ID",
+ "DialogFirmwareInstallerFirmwareNotFoundErrorMessage": "A valid system firmware was not found in {0}.",
+ "DialogFirmwareInstallerFirmwareInstallTitle": "Asenna laitteistoversio {0}",
+ "DialogFirmwareInstallerFirmwareInstallMessage": "Järjestelmäversio {0} asennetaan.",
+ "DialogFirmwareInstallerFirmwareInstallSubMessage": "\n\nTämä korvaa nykyisen järjestelmäversion {0}.",
+ "DialogFirmwareInstallerFirmwareInstallConfirmMessage": "Haluatko jatkaa?",
+ "DialogFirmwareInstallerFirmwareInstallWaitMessage": "Asenna laiteohjelmistoa...",
+ "DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Järjestelmä versio {0} asennettu onnistuneesti",
+ "DialogUserProfileDeletionWarningMessage": "Muita profiileja ei olisi, jos valittu profiili poistettaisiin",
+ "DialogUserProfileDeletionConfirmMessage": "Haluatko poistaa valitun profiilin",
+ "DialogUserProfileUnsavedChangesTitle": "Varoitus - Tallentamattomia muokkauksia",
+ "DialogUserProfileUnsavedChangesMessage": "Olet tehnyt käyttäjäprofiiliin muutoksia, joita ei ole tallennettu",
+ "DialogUserProfileUnsavedChangesSubMessage": "Haluatko hylätä tehdyt muutokset",
+ "DialogControllerSettingsModifiedConfirmMessage": "Aktiivisen ohjaimen asetukset on päivitetty",
+ "DialogControllerSettingsModifiedConfirmSubMessage": "Haluatko tallentaa?",
+ "DialogLoadFileErrorMessage": "{0}: Virheellinen tiedosto: {1}",
+ "DialogModAlreadyExistsMessage": "Modi on jo olemassa",
+ "DialogModInvalidMessage": "Annettu kansio ei sisällä modia!",
+ "DialogModDeleteNoParentMessage": "Poistaminen epäonnistui: Ylähakemistoa ei löydetty modille \"{0}\"!",
+ "DialogDlcNoDlcErrorMessage": "Valittu tiedosto ei sisällä lisäosaa valitulle nimikkeelle",
+ "DialogPerformanceCheckLoggingEnabledMessage": "Jäljitysloki, joka on tarkoitettu kehittäjille on käytössä",
+ "DialogPerformanceCheckLoggingEnabledConfirmMessage": "For optimal performance, it's recommended to disable trace logging. Would you like to disable trace logging now?",
+ "DialogPerformanceCheckShaderDumpEnabledMessage": "Shader Dumping, joka on tarkoitettu kehittäjille on käytössä",
+ "DialogPerformanceCheckShaderDumpEnabledConfirmMessage": "Optimaalisen suorituskyvyn takaamiseksi on suositeltavaa, että otat shader dumpin pois käytöstä. Haluaisitko ottaa sen pois käytöstä nyt?",
+ "DialogLoadAppGameAlreadyLoadedMessage": "Peli on jo ladattuna",
+ "DialogLoadAppGameAlreadyLoadedSubMessage": "Pysäytä emulointi tai sulje emulaattori ennen toisen pelin käynnistystä.",
+ "DialogUpdateAddUpdateErrorMessage": "Valittu tiedosto ei sisällä päivitystä valitulle nimikkeelle",
+ "DialogSettingsBackendThreadingWarningTitle": "Warning - Backend Threading",
+ "DialogSettingsBackendThreadingWarningMessage": "Ryujinx on uudelleen käynnistettävä, kun tätä asetusta on muutettu, jotta kaikki muutokset onnistuvat. Alustastasi riippuen joudut manuaalisesti poistamaan ajurin multithreadingin käytöstä, kun käytän ryujinxin multithreadingiä.",
+ "DialogModManagerDeletionWarningMessage": "Olet poistamassa modin: {0}\n\nHaluatko varmasti jatkaa?",
+ "DialogModManagerDeletionAllWarningMessage": "Olet poistamassa kaikki modit tältä nimikkeeltä.\n\nHaluatko varmasti jatkaa?",
+ "SettingsTabGraphicsFeaturesOptions": "Ominaisuudet",
+ "SettingsTabGraphicsBackendMultithreading": "Graphics Backend Multithreading:",
+ "CommonAuto": "Automaattinen",
+ "CommonOff": "Pois käytöstä",
+ "CommonOn": "Käytössä",
+ "InputDialogYes": "Kyllä",
+ "InputDialogNo": "Ei",
+ "DialogProfileInvalidProfileNameErrorMessage": "The file name contains invalid characters. Please try again.",
+ "MenuBarOptionsPauseEmulation": "Pause",
+ "MenuBarOptionsResumeEmulation": "Resume",
+ "AboutUrlTooltipMessage": "Click to open the Ryujinx website in your default browser.",
+ "AboutDisclaimerMessage": "Ryujinx ei ole Nintendo™ kumppani tai sidoksissa siihen mitenkään.",
+ "AboutAmiiboDisclaimerMessage": "AmiiboAPI (www.amiiboapi.com) käytetään amiibojen emulointiin.",
+ "AboutPatreonUrlTooltipMessage": "Klikkaa avataksesi Ryujinxin Patreon sivun oletusselaimessasi.",
+ "AboutGithubUrlTooltipMessage": "Klikkaa avataksesi Ryujinxin GitHub sivun oletusselaimessasi.",
+ "AboutDiscordUrlTooltipMessage": "Klikkaa avataksesi kutsun Ryujinxin Discord palvelimelle oletusselaimessasi",
+ "AboutTwitterUrlTooltipMessage": "Klikkaa avataksesi Ryujinxin Twitter sivun oletusselaimessasi",
+ "AboutRyujinxAboutTitle": "Tietoja:",
+ "AboutRyujinxAboutContent": "Ryujinx on Nintendo Switch™ emulaattori.\nTue meitä Patreonissa.\nHanki uusimmat uutiset Twitteristä tai Discordista\nKehittäjät, jotka ovat kiinnostuneet osallistumisesta saavat lisätietoa GitHubista tai Discordista.",
+ "AboutRyujinxMaintainersTitle": "Ylläpitäjä:",
+ "AboutRyujinxMaintainersContentTooltipMessage": "Klikkaa avataksesi osallistuneiden sivun oletusselaimessasi",
+ "AboutRyujinxSupprtersTitle": "Patreonissa tukeneet:",
+ "AmiiboSeriesLabel": "Amiibo-sarja",
+ "AmiiboCharacterLabel": "Hahmo",
+ "AmiiboScanButtonLabel": "Skannaa se",
+ "AmiiboOptionsShowAllLabel": "Näytä kaikki Amiibot",
+ "AmiiboOptionsUsRandomTagLabel": "Huijaus: Käytä satunnaista Uuid tagia ",
+ "DlcManagerTableHeadingEnabledLabel": "Käytössä",
+ "DlcManagerTableHeadingTitleIdLabel": "Nimikkeen tunniste",
+ "DlcManagerTableHeadingContainerPathLabel": "Container Path",
+ "DlcManagerTableHeadingFullPathLabel": "Koko polku",
+ "DlcManagerRemoveAllButton": "Poista kaikki",
+ "DlcManagerEnableAllButton": "Ota kaikki käyttöön",
+ "DlcManagerDisableAllButton": "Poista kaikki käytöstä",
+ "ModManagerDeleteAllButton": "Poista kaikki",
+ "MenuBarOptionsChangeLanguage": "Vaihda kieli",
+ "MenuBarShowFileTypes": "Näytä tiedostotyypit",
+ "CommonSort": "Lajittele",
+ "CommonShowNames": "Näytä nimet",
+ "CommonFavorite": "Suosikki",
+ "OrderAscending": "Nouseva",
+ "OrderDescending": "Laskeva",
+ "SettingsTabGraphicsFeatures": "Ominaisuudet & parannukset",
+ "ErrorWindowTitle": "Virhe ikkuna",
+ "ToggleDiscordTooltip": "Valitse, haluatko Ryujinxin näkyttävän \"Pelaa tällä hetkellä\" Discordin tilana",
+ "AddGameDirBoxTooltip": "Syötä pelihakemisto lisätäksesi sen luetteloon",
+ "AddGameDirTooltip": "Lisää pelihakemisto luetteloon",
+ "RemoveGameDirTooltip": "Poista valittu pelihakemisto",
+ "CustomThemeCheckTooltip": "Use a custom Avalonia theme for the GUI to change the appearance of the emulator menus",
+ "CustomThemePathTooltip": "Polku mukautettuun käyttöliittymän teemaan",
+ "CustomThemeBrowseTooltip": "Selaa mukautettuja käyttöliittymä teemoja",
+ "DockModeToggleTooltip": "Docked mode makes the emulated system behave as a docked Nintendo Switch. This improves graphical fidelity in most games. Conversely, disabling this will make the emulated system behave as a handheld Nintendo Switch, reducing graphics quality.\n\nConfigure player 1 controls if planning to use docked mode; configure handheld controls if planning to use handheld mode.\n\nLeave ON if unsure.",
+ "DirectKeyboardTooltip": "Suoran näppäimistön käyttö (HID) tuki. Tarjoaa peleille suoran käytön näppäimistöön tekstinsyöttö laitteena.\n\nToimii vain pelien kanssa, jotka tukevat natiivisti näppäimistön käyttöä Switch laitteistossa.\n\nJätä pois päältä jos olet epävarma.",
+ "DirectMouseTooltip": "Suoran hiiren käyttö (HID) tuki. Tarjoaa peleille käytön hiireen osoittimena.\n\nToimii vain pelien kanssa, jotka natiivisti tukevat hiiren käyttöä Switch laitteistossa, jotka ovat harvoja.\n\nKun käytössä, kosketusnäyttö ei välttämättä toimi.\n\nJätä pois päältä jos olet epävarma.",
+ "RegionTooltip": "Muuta järjestelmän aluetta",
+ "LanguageTooltip": "Muuta järjestelmän kieltä",
+ "TimezoneTooltip": "Muuta järjestelmän aikavyöhykettä",
+ "TimeTooltip": "Muuta järjestelmän aikaa",
+ "VSyncToggleTooltip": "Emulated console's Vertical Sync. Essentially a frame-limiter for the majority of games; disabling it may cause games to run at higher speed or make loading screens take longer or get stuck.\n\nCan be toggled in-game with a hotkey of your preference (F1 by default). We recommend doing this if you plan on disabling it.\n\nLeave ON if unsure.",
+ "PptcToggleTooltip": "Saves translated JIT functions so that they do not need to be translated every time the game loads.\n\nReduces stuttering and significantly speeds up boot times after the first boot of a game.\n\nLeave ON if unsure.",
+ "FsIntegrityToggleTooltip": "Tarkistaa korruptuoituneet tiedoston käynnistäessä peliä ja jos korruptoituneita tiedostoja löytyy, näyttää hash -virheen lokissa.\n\nEi vaikuta suorituskykyyn ja on tarkoitettu vianetsintään.\n\nJätä päälle jos olet epävarma.",
+ "AudioBackendTooltip": "Changes the backend used to render audio.\n\nSDL2 is the preferred one, while OpenAL and SoundIO are used as fallbacks. Dummy will have no sound.\n\nSet to SDL2 if unsure.",
+ "MemoryManagerTooltip": "Muuta, kuinka vierasmuisti on varattu ja kuinka sitä käytetään. Vaikuttaa suuresti emuloituun prosessorin suorituskykyyn.\n\nAseta HOST UNCHECKED jos et ole varma.",
+ "MemoryManagerSoftwareTooltip": "Use a software page table for address translation. Highest accuracy but slowest performance.",
+ "MemoryManagerHostTooltip": "Directly map memory in the host address space. Much faster JIT compilation and execution.",
+ "MemoryManagerUnsafeTooltip": "Directly map memory, but do not mask the address within the guest address space before access. Faster, but at the cost of safety. The guest application can access memory from anywhere in Ryujinx, so only run programs you trust with this mode.",
+ "UseHypervisorTooltip": "Use Hypervisor instead of JIT. Greatly improves performance when available, but can be unstable in its current state.",
+ "DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
+ "IgnoreMissingServicesTooltip": "Ohittaa toteuttamattomat Horizon OS-pavelut. Tämä saattaa auttaa ohittamaan kaatumisia käynnistäessä tiettyjä pelejä.\n\nJätä pois päältä, jos olet epävarma.",
+ "GraphicsBackendThreadingTooltip": "Suorittaa grafiikka taustajärjestelmän komennot toisella säikeellä.\n\nNopeuttaa varjostuksen kääntämistä, vähentää pätkimistä, ja parantaa suorityskykyä näytönohjain ajureilla, joissa ei ole omaa monisäkeistystukea.\nHieman parempi suorituskyky ajureilla, joissa on monisäkeistystuki.\n\nAseta AUTO:ksi, jos olet epävarma.",
+ "GalThreadingTooltip": "Suorittaa grafiikka taustajärjestelmän komennot toisella säikeellä.\n\nNopeuttaa varjostuksen kääntämistä, vähentää pätkimistä, ja parantaa suorityskykyä näytönohjain ajureilla, joissa ei ole omaa monisäkeistystukea.\nHieman parempi suorituskyky ajureilla, joissa on monisäkeistystuki.\n\nAseta AUTO:ksi, jos olet epävarma.",
+ "ShaderCacheToggleTooltip": "Tallentaa varjostin välimuistin levylle, joka vähentää pätkimistä myöhemmin.\n\nJätä päälle, jos olet epävarma.",
+ "ResolutionScaleTooltip": "Moninkertaistaa pelin renderöintiresoluution.\n\nMuutama peli ei välttämättä toimi tämän kanssa ja näyttää pikselöidyltä, vaikka resoluution on suurennettu. Näille peleille, saatat joutua etsimään modin joka poistaa anti-aliasoinnin tai joka nostaa pelin sisäistä renderöintiresoluutiota. Jos käytät jälkimmäistä, haluat todennäköisesti valita Natiivin.\n\nTämän asetuksen voi vaihtaa samalla kun peli on päällä painamalla \"Käytä\". Voit siirtää asetus ikkunan sivuun ja kokeilla, kunnes löydät mielisen resoluution pelille.\n\nPidä mielessä, että 4x menee yli käytännöllisesti kaikelle laitteistolle.",
+ "ResolutionScaleEntryTooltip": "Floating point resolution scale, such as 1.5. Non-integral scales are more likely to cause issues or crash.",
+ "AnisotropyTooltip": "Level of Anisotropic Filtering. Set to Auto to use the value requested by the game.",
+ "AspectRatioTooltip": "Aspect Ratio applied to the renderer window.\n\nOnly change this if you're using an aspect ratio mod for your game, otherwise the graphics will be stretched.\n\nLeave on 16:9 if unsure.",
+ "ShaderDumpPathTooltip": "Grafiikka Shaderien Dump polku",
+ "FileLogTooltip": "Saves console logging to a log file on disk. Does not affect performance.",
+ "StubLogTooltip": "Prints stub log messages in the console. Does not affect performance.",
+ "InfoLogTooltip": "Prints info log messages in the console. Does not affect performance.",
+ "WarnLogTooltip": "Prints warning log messages in the console. Does not affect performance.",
+ "ErrorLogTooltip": "Prints error log messages in the console. Does not affect performance.",
+ "TraceLogTooltip": "Prints trace log messages in the console. Does not affect performance.",
+ "GuestLogTooltip": "Prints guest log messages in the console. Does not affect performance.",
+ "FileAccessLogTooltip": "Prints file access log messages in the console.",
+ "FSAccessLogModeTooltip": "Enables FS access log output to the console. Possible modes are 0-3",
+ "DeveloperOptionTooltip": "Käytä varovasti",
+ "OpenGlLogLevel": "Requires appropriate log levels enabled",
+ "DebugLogTooltip": "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.",
+ "LoadApplicationFileTooltip": "Open a file explorer to choose a Switch compatible file to load",
+ "LoadApplicationFolderTooltip": "Open a file explorer to choose a Switch compatible, unpacked application to load",
+ "OpenRyujinxFolderTooltip": "Open Ryujinx filesystem folder",
+ "OpenRyujinxLogsTooltip": "Opens the folder where logs are written to",
+ "ExitTooltip": "Sulje Ryujinx",
+ "OpenSettingsTooltip": "Avaa asetusikkuna",
+ "OpenProfileManagerTooltip": "Open User Profiles Manager window",
+ "StopEmulationTooltip": "Stop emulation of the current game and return to game selection",
+ "CheckUpdatesTooltip": "Check for updates to Ryujinx",
+ "OpenAboutTooltip": "Open About Window",
+ "GridSize": "Grid Size",
+ "GridSizeTooltip": "Change the size of grid items",
+ "SettingsTabSystemSystemLanguageBrazilianPortuguese": "Brasilian Portugali",
+ "AboutRyujinxContributorsButtonHeader": "See All Contributors",
+ "SettingsTabSystemAudioVolume": "Äänenvoimakkuus:",
+ "AudioVolumeTooltip": "Vaihda äänenvoimakkuutta",
+ "SettingsTabSystemEnableInternetAccess": "Guest Internet Access/LAN Mode",
+ "EnableInternetAccessTooltip": "Allows the emulated application to connect to the Internet.\n\nGames with a LAN mode can connect to each other when this is enabled and the systems are connected to the same access point. This includes real consoles as well.\n\nDoes NOT allow connecting to Nintendo servers. May cause crashing in certain games that try to connect to the Internet.\n\nLeave OFF if unsure.",
+ "GameListContextMenuManageCheatToolTip": "Hallitse Huijauksia",
+ "GameListContextMenuManageCheat": "Hallitse Huijauksia",
+ "GameListContextMenuManageModToolTip": "Hallitse Modeja",
+ "GameListContextMenuManageMod": "Hallitse Modeja",
+ "ControllerSettingsStickRange": "Alue:",
+ "DialogStopEmulationTitle": "Ryujinx - Pysäytä emulointi",
+ "DialogStopEmulationMessage": "Oletko varma, että haluat lopettaa emuloinnin?",
+ "SettingsTabCpu": "Prosessori",
+ "SettingsTabAudio": "Ääni",
+ "SettingsTabNetwork": "Verkko",
+ "SettingsTabNetworkConnection": "Verkkoyhteys",
+ "SettingsTabCpuCache": "CPU välimuisti",
+ "SettingsTabCpuMemory": "CPU tila",
+ "DialogUpdaterFlatpakNotSupportedMessage": "Päivitä Ryujinx FlatHubin kautta.",
+ "UpdaterDisabledWarningTitle": "Päivittäjä on pois päältä!",
+ "ControllerSettingsRotate90": "Käännä 90° myötäpäivään",
+ "IconSize": "Kuvakkeen koko",
+ "IconSizeTooltip": "Muuta pelikuvakkeiden kokoa",
+ "MenuBarOptionsShowConsole": "Näytä konsoli",
+ "ShaderCachePurgeError": "Virhe puhdistaessa varjostin välimuistia kohdassa {0}: {1}",
+ "UserErrorNoKeys": "Avaimia ei löytynyt",
+ "UserErrorNoFirmware": "Laiteohjelmistoa ei löytynyt",
+ "UserErrorFirmwareParsingFailed": "Laiteohjelmiston jäsennysvirhe",
+ "UserErrorApplicationNotFound": "Sovellusta ei löydetty",
+ "UserErrorUnknown": "Tuntematon virhe",
+ "UserErrorUndefined": "Määrittelemätön virhe",
+ "UserErrorNoKeysDescription": "Ryujinx ei löytänyt 'prod.keys' tiedostoa",
+ "UserErrorNoFirmwareDescription": "Ryujinx ei löytäny yhtään asennettua laiteohjelmistoa",
+ "UserErrorFirmwareParsingFailedDescription": "Ryujinx ei pystynyt jäsentämään annettua laiteohjelmistoa. Tämä usein johtuu vanhentuneista avaimista.",
+ "UserErrorApplicationNotFoundDescription": "Ryujinx ei löytänyt kelvollista sovellusta annetulta polulta.",
+ "UserErrorUnknownDescription": "Tapahtui tuntematon virhe!",
+ "UserErrorUndefinedDescription": "Määrittelemätön virhe! Tämän ei pitäisi tapahtua, ota yhteyttä ohjelmistokehittäjään!",
+ "OpenSetupGuideMessage": "Avaa asennusopas",
+ "NoUpdate": "Ei päivitystä",
+ "TitleUpdateVersionLabel": "Versio {0}",
+ "TitleBundledUpdateVersionLabel": "Paketoitu: Versio {0}",
+ "TitleBundledDlcLabel": "Paketoitu:",
+ "RyujinxInfo": "Ryujinx - Informaatio",
+ "RyujinxConfirm": "Ryujinx - Varmistus",
+ "FileDialogAllTypes": "Kaikki tyypit",
+ "Never": "Ei koskaan",
+ "SwkbdMinCharacters": "Täytyy olla vähintään {0} merkkiä pitkä",
+ "SwkbdMinRangeCharacters": "Täytyy olla {0}-{1} merkkiä pitkä",
+ "SoftwareKeyboard": "Ohjelmistonäppäimistö",
+ "SoftwareKeyboardModeNumeric": "Täytyy olla vain 0-9 tai '.'",
+ "SoftwareKeyboardModeAlphabet": "CJK-merkkejä ei saa olla",
+ "SoftwareKeyboardModeASCII": "Täytyy olla vain ASCII-tekstiä",
+ "ControllerAppletControllers": "Tuetut ohjaimet:",
+ "ControllerAppletPlayers": "Pelaajat:",
+ "ControllerAppletDescription": "Nykyinen konfiguraatiosi on virheellinen. Avaa asetukset ja tee ohjain konfiguraatiosi uudelleen.",
+ "ControllerAppletDocked": "Telakoitu tila asetettu. Kannettava ohjaus pitäisi olla pois päältä.",
+ "UpdaterRenaming": "Uudelleennimetään vanhoja tiedostoja...",
+ "UpdaterRenameFailed": "Päivittäjä ei pystynyt uudelleennimetä tiedostoa: {0}",
+ "UpdaterAddingFiles": "Lisätään uusia tiedostoja...",
+ "UpdaterExtracting": "Puretaan päivitystä...",
+ "UpdaterDownloading": "Ladataan päivitys...",
+ "Game": "Peli",
+ "Docked": "Telakoitu",
+ "Handheld": "Kannettava",
+ "ConnectionError": "Yhteysvirhe.",
+ "AboutPageDeveloperListMore": "{0} ja lisää...",
+ "ApiError": "API-virhe.",
+ "LoadingHeading": "Ladataan {0}",
+ "CompilingPPTC": "Käännetään PTC:tä",
+ "CompilingShaders": "Käännetään varjostimia",
+ "AllKeyboards": "Kaikki näppäimistöt",
+ "OpenFileDialogTitle": "Valitse tuettu tiedosto avattavaksi",
+ "OpenFolderDialogTitle": "Valitse pakkaamattoman pelin kansio",
+ "AllSupportedFormats": "Kaikki tuetut muodot",
+ "RyujinxUpdater": "Ryujinx päivittäjä",
+ "SettingsTabHotkeys": "Näppäimistön pikanäppäimet",
+ "SettingsTabHotkeysHotkeys": "Näppäimistön pikanäppäimet",
+ "SettingsTabHotkeysToggleVsyncHotkey": "Vaihda VSync tilaa:",
+ "SettingsTabHotkeysScreenshotHotkey": "Kuvankaappaus:",
+ "SettingsTabHotkeysShowUiHotkey": "Näytä UI:",
+ "SettingsTabHotkeysPauseHotkey": "Pysäytä:",
+ "SettingsTabHotkeysToggleMuteHotkey": "Vaimenna:",
+ "ControllerMotionTitle": "Liikkeen asetukset",
+ "ControllerRumbleTitle": "Tärinä asetukset",
+ "SettingsSelectThemeFileDialogTitle": "Valitse teematiedosto",
+ "SettingsXamlThemeFile": "Xaml teematiedosto",
+ "AvatarWindowTitle": "Hallitse tilejä - Profiilikuva",
+ "Amiibo": "Amiibo",
+ "Unknown": "Tuntematon",
+ "Usage": "Käyttö",
+ "Writable": "Kirjoitettava",
+ "SelectDlcDialogTitle": "Valitse DLC-tiedostot",
+ "SelectUpdateDialogTitle": "Valitse päivitystiedostot",
+ "SelectModDialogTitle": "Valitse modi hakemisto",
+ "UserProfileWindowTitle": "Käyttäjäprofiilien hallinta",
+ "CheatWindowTitle": "Huijauskoodien hallinta",
+ "DlcWindowTitle": "Hallitse ladattavaa sisältöä pelille {0} ({1})",
+ "ModWindowTitle": "Hallitse modeja pelille {0} ({1})",
+ "UpdateWindowTitle": "Otsikon päivitysten hallinta",
+ "CheatWindowHeading": "Huijauskoodit käytettävissä pelille {0} ({1})",
+ "BuildId": "Koontitunnus:",
+ "DlcWindowHeading": "{0} Ladattavaa sisältö(ä)",
+ "ModWindowHeading": "{0} Mod(ia)",
+ "UserProfilesEditProfile": "Muokkaa valittua",
+ "Cancel": "Peruuta",
+ "Save": "Tallenna",
+ "Discard": "Hylkää",
+ "Paused": "Keskeytetty",
+ "UserProfilesSetProfileImage": "Aseta profiilikuva",
+ "UserProfileEmptyNameError": "Nimi vaaditaan",
+ "UserProfileNoImageError": "Profiilikuva on asetettava",
+ "GameUpdateWindowHeading": "Hallitse päivityksiä pelille {0} ({1})",
+ "SettingsTabHotkeysResScaleUpHotkey": "Lisää resoluutiota:",
+ "SettingsTabHotkeysResScaleDownHotkey": "Vähennä resoluutiota:",
+ "UserProfilesName": "Nimi:",
+ "UserProfilesUserId": "Käyttäjän ID:",
+ "SettingsTabGraphicsBackend": "Grafiikka taustajärjestelmä",
+ "SettingsTabGraphicsBackendTooltip": "Valitse emulaattorissa käytettävä grafiikkataustajärjestelmä.\n\nVulkan on yleisesti parempi kaikille nykyaikaisille näytönohjaimille, kunhan niiden ajurit ovat ajan tasalla. Vulkan sisältää myös nopeamman varjostimen kääntämisen (vähemmän pätkimistä) kaikilla näytönohjain merkeillä.\n\nOpenGL voi saavuttaa parempia tuloksia vanhemmilla Nvidia näytönohjaimilla, vanhoilla AMD näytönohjaimilla Linuxilla, tai näytönohjaimilla, joissa on vähemmän VRAMia, mutta varjostin kääntäminen tulee pätkimään enemmän.\n\nAseta Vulkanille, jos olet epävarma. Aseta OpenGL:lle jos sinun näytönohjain ei tue Vulkania edes uusimmilla grafiikka ajureilla.",
+ "SettingsEnableTextureRecompression": "Ota käyttöön tekstuurejen uudelleenpakkaus",
+ "SettingsEnableTextureRecompressionTooltip": "Pakkaa ASTC-tekstuurit VRAM-muisitn käytön vähentämiseksi.\n\nPelit, jotka käyttävät tätä tekstuurimuotoa ovat Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder ja The Legend of Zelda: Tears of the Kingdom.\n\nNäytönohjaimet, joissa on 4 GB VRAMia tai vähemmän tulevät todennäköisesti kaatumaan jossain vaiheessa näitä pelejä pelatessa.\n\nOta käyttöön vain jos sinulta loppuu VRAM kesken näissä peleissä. Jätä pois päältä, jos olet epävarma.",
+ "SettingsTabGraphicsPreferredGpu": "Ensisijainen näytönohjain",
+ "SettingsTabGraphicsPreferredGpuTooltip": "Valitse näytönohjain, jota käytetään Vulkan grafiikka taustajärjestelmän kanssa.\n\nEi vaikuta OpenGL:n käyttämään näytönohjaimeen.\n\nAseta näytönohjain merkittynä \"dGPU\", jos olet epävarma. Jos tätä ei ole, jätä koskematta.",
+ "SettingsAppRequiredRestartMessage": "Ryujinxin uudelleenkäynnistys vaaditaan",
+ "SettingsGpuBackendRestartMessage": "Grafiikkataustajärjestelmä tai näytönohjain asetuksia on muutettu. Tämä vaatii uudelleenkäynnistyksen, jotta ne voidaan ottaa käyttöön.",
+ "SettingsGpuBackendRestartSubMessage": "Haluatko käynnistää uudelleen nyt?",
+ "RyujinxUpdaterMessage": "Haluatko päivittää Ryujinxin uusimpaan versioon?",
+ "SettingsTabHotkeysVolumeUpHotkey": "Lisää äänenvoimakkuutta:",
+ "SettingsTabHotkeysVolumeDownHotkey": "Vähennä äänenvoimakkuutta:",
+ "SettingsEnableMacroHLE": "Ota Macro HLE käyttöön",
+ "SettingsEnableMacroHLETooltip": "Korkean tason GPU Macro koodin emulointi.\n\nParantaa suorityskykyä, mutta voi aiheuttaa graafisia ongelmia joissain peleissä.\n\nJätä päälle, jos olet epävarma.",
+ "SettingsEnableColorSpacePassthrough": "Color Space Passthrough",
+ "SettingsEnableColorSpacePassthroughTooltip": "Directs the Vulkan backend to pass through color information without specifying a color space. For users with wide gamut displays, this may result in more vibrant colors, at the cost of color correctness.",
+ "VolumeShort": "Ääni",
+ "UserProfilesManageSaves": "Hallitse tallennuksia",
+ "DeleteUserSave": "Haluatko poistaa käyttäjän tallennuksen tästä pelistä?",
+ "IrreversibleActionNote": "Tätä toimintoa ei voi peruuttaa.",
+ "SaveManagerHeading": "Hallitse {0}:n tallennuksia ({1})",
+ "SaveManagerTitle": "Tallennusten hallinta",
+ "Name": "Nimi",
+ "Size": "Koko",
+ "Search": "Hae",
+ "UserProfilesRecoverLostAccounts": "Palauta menetetty tili",
+ "Recover": "Palauta",
+ "UserProfilesRecoverHeading": "Tallennuksia löydettiin seuraaville tileille",
+ "UserProfilesRecoverEmptyList": "Ei palautettavia profiileja",
+ "GraphicsAATooltip": "Applies anti-aliasing to the game render.\n\nFXAA will blur most of the image, while SMAA will attempt to find jagged edges and smooth them out.\n\nNot recommended to use in conjunction with the FSR scaling filter.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on NONE if unsure.",
+ "GraphicsAALabel": "Anti-Aliasing:",
+ "GraphicsScalingFilterLabel": "Skaalaus:",
+ "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nArea scaling is recommended when downscaling resolutions that are larger than the output window. It can be used to achieve a supersampled anti-aliasing effect when downscaling by more than 2x.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
+ "GraphicsScalingFilterBilinear": "Bilinear",
+ "GraphicsScalingFilterNearest": "Nearest",
+ "GraphicsScalingFilterFsr": "FSR",
+ "GraphicsScalingFilterArea": "Alue",
+ "GraphicsScalingFilterLevelLabel": "Taso",
+ "GraphicsScalingFilterLevelTooltip": "Aseta FSR 1.0 terävöitystaso. Korkeampi on terävempi.",
+ "SmaaLow": "SMAA Low",
+ "SmaaMedium": "SMAA Medium",
+ "SmaaHigh": "SMAA High",
+ "SmaaUltra": "SMAA Ultra",
+ "UserEditorTitle": "Muokkaa käyttäjää",
+ "UserEditorTitleCreate": "Luo käyttäjä",
+ "SettingsTabNetworkInterface": "Verkkon Käyttöliittymä",
+ "NetworkInterfaceTooltip": "The network interface used for LAN/LDN features.\n\nIn conjunction with a VPN or XLink Kai and a game with LAN support, can be used to spoof a same-network connection over the Internet.\n\nLeave on DEFAULT if unsure.",
+ "NetworkInterfaceDefault": "Oletus",
+ "PackagingShaders": "Pakataan varjostimia",
+ "AboutChangelogButton": "Näytä muutosloki GitHubissa",
+ "AboutChangelogButtonTooltipMessage": "Klikkaa avataksesi tämän version muutosloki oletusselaimessasi.",
+ "SettingsTabNetworkMultiplayer": "Moninpeli",
+ "MultiplayerMode": "Tila:",
+ "MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
+ "MultiplayerModeDisabled": "Pois käytöstä",
+ "MultiplayerModeLdnMitm": "ldn_mitm"
+}
diff --git a/src/Ryujinx/Assets/Locales/fr_FR.json b/src/Ryujinx/Assets/Locales/fr_FR.json
index e52333cea..c4fc8a0b1 100644
--- a/src/Ryujinx/Assets/Locales/fr_FR.json
+++ b/src/Ryujinx/Assets/Locales/fr_FR.json
@@ -1,7 +1,7 @@
{
"Language": "Français",
- "MenuBarFileOpenApplet": "Ouvrir un programme",
- "MenuBarFileOpenAppletOpenMiiAppletToolTip": "Ouvrir l'éditeur Mii en mode Standalone",
+ "MenuBarFileOpenApplet": "Ouvrir un applet",
+ "MenuBarFileOpenAppletOpenMiiAppletToolTip": "Ouvrir l'Applet Mii Editor en mode Standalone",
"SettingsTabInputDirectMouseAccess": "Accès direct à la souris",
"SettingsTabSystemMemoryManagerMode": "Mode de gestion de la mémoire :",
"SettingsTabSystemMemoryManagerModeSoftware": "Logiciel",
@@ -10,10 +10,8 @@
"SettingsTabSystemUseHypervisor": "Utiliser l'Hyperviseur",
"MenuBarFile": "_Fichier",
"MenuBarFileOpenFromFile": "_Charger un jeu depuis un fichier",
- "MenuBarFileOpenFromFileError": "Aucun jeu trouvé dans le fichier sélectionné",
+ "MenuBarFileOpenFromFileError": "Aucune application trouvée dans le fichier sélectionné.",
"MenuBarFileOpenUnpacked": "Charger un jeu extrait",
- "MenuBarFileLoadDlcFromFolder": "Charger les DLC depuis le dossier des DLC",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Charger les mises à jour depuis le dossier des mises à jour",
"MenuBarFileOpenEmuFolder": "Ouvrir le dossier Ryujinx",
"MenuBarFileOpenLogsFolder": "Ouvrir le dossier des journaux",
"MenuBarFileExit": "_Quitter",
@@ -33,8 +31,8 @@
"MenuBarToolsManageFileTypes": "Gérer les types de fichiers",
"MenuBarToolsInstallFileTypes": "Installer les types de fichiers",
"MenuBarToolsUninstallFileTypes": "Désinstaller les types de fichiers",
- "MenuBarView": "_Fenêtre",
- "MenuBarViewWindow": "Taille de la fenêtre",
+ "MenuBarView": "_Affichage",
+ "MenuBarViewWindow": "Taille de la Fenêtre",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "_Aide",
@@ -57,19 +55,19 @@
"GameListContextMenuOpenDeviceSaveDirectoryToolTip": "Ouvre le dossier contenant la sauvegarde console du jeu",
"GameListContextMenuOpenBcatSaveDirectory": "Ouvrir le dossier de sauvegarde BCAT",
"GameListContextMenuOpenBcatSaveDirectoryToolTip": "Ouvre le dossier contenant la sauvegarde BCAT du jeu",
- "GameListContextMenuManageTitleUpdates": "Gérer les mises à jour",
+ "GameListContextMenuManageTitleUpdates": "Gérer la mise à jour des titres",
"GameListContextMenuManageTitleUpdatesToolTip": "Ouvre la fenêtre de gestion des mises à jour du jeu",
"GameListContextMenuManageDlc": "Gérer les DLC",
"GameListContextMenuManageDlcToolTip": "Ouvre la fenêtre de gestion des DLC",
"GameListContextMenuCacheManagement": "Gestion des caches",
"GameListContextMenuCacheManagementPurgePptc": "Reconstruction du PPTC",
"GameListContextMenuCacheManagementPurgePptcToolTip": "Effectuer une reconstruction du PPTC au prochain démarrage du jeu",
- "GameListContextMenuCacheManagementPurgeShaderCache": "Purger les shaders",
- "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "Supprime les shaders du jeu",
+ "GameListContextMenuCacheManagementPurgeShaderCache": "Purger le cache des shaders",
+ "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "Supprime le cache des shaders du jeu",
"GameListContextMenuCacheManagementOpenPptcDirectory": "Ouvrir le dossier du PPTC",
"GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "Ouvre le dossier contenant le PPTC du jeu",
- "GameListContextMenuCacheManagementOpenShaderCacheDirectory": "Ouvrir le dossier des shaders",
- "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "Ouvre le dossier contenant les shaders du jeu",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectory": "Ouvrir le dossier du cache des shaders",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "Ouvre le dossier contenant le cache des shaders du jeu",
"GameListContextMenuExtractData": "Extraire les données",
"GameListContextMenuExtractDataExeFS": "ExeFS",
"GameListContextMenuExtractDataExeFSToolTip": "Extrait la section ExeFS du jeu (mise à jour incluse)",
@@ -77,13 +75,13 @@
"GameListContextMenuExtractDataRomFSToolTip": "Extrait la section RomFS du jeu (mise à jour incluse)",
"GameListContextMenuExtractDataLogo": "Logo",
"GameListContextMenuExtractDataLogoToolTip": "Extrait la section Logo du jeu (mise à jour incluse)",
- "GameListContextMenuCreateShortcut": "Créer un raccourci",
- "GameListContextMenuCreateShortcutToolTip": "Créer un raccourci sur le bureau qui lance le jeu sélectionné",
- "GameListContextMenuCreateShortcutToolTipMacOS": "Créer un raccourci dans le dossier Applications de macOS qui lance le jeu sélectionné",
+ "GameListContextMenuCreateShortcut": "Créer un raccourci d'application",
+ "GameListContextMenuCreateShortcutToolTip": "Créer un raccourci sur le bureau qui lance l'application sélectionnée",
+ "GameListContextMenuCreateShortcutToolTipMacOS": "Créer un raccourci dans le dossier Applications de macOS qui lance l'application sélectionnée",
"GameListContextMenuOpenModsDirectory": "Ouvrir le dossier des mods",
- "GameListContextMenuOpenModsDirectoryToolTip": "Ouvre le dossier contenant les mods du jeu",
+ "GameListContextMenuOpenModsDirectoryToolTip": "Ouvre le dossier contenant les mods de l'application",
"GameListContextMenuOpenSdModsDirectory": "Ouvrir le dossier des mods Atmosphère",
- "GameListContextMenuOpenSdModsDirectoryToolTip": "Ouvre le dossier alternatif de la carte SD Atmosphère qui contient les mods de l'application. Utile pour les mods conçus pour console.",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "Ouvre le dossier alternatif de la carte SD Atmosphère qui contient les mods de l'application. Utile pour les mods conçus pour du matériel réel.",
"StatusBarGamesLoaded": "{0}/{1} Jeux chargés",
"StatusBarSystemVersion": "Version du Firmware: {0}",
"LinuxVmMaxMapCountDialogTitle": "Limite basse pour les mappings mémoire détectée",
@@ -99,20 +97,17 @@
"SettingsTabGeneralEnableDiscordRichPresence": "Activer Discord Rich Presence",
"SettingsTabGeneralCheckUpdatesOnLaunch": "Vérifier les mises à jour au démarrage",
"SettingsTabGeneralShowConfirmExitDialog": "Afficher le message de \"Confirmation de sortie\"",
- "SettingsTabGeneralRememberWindowState": "Mémoriser la taille/position de la fenêtre",
- "SettingsTabGeneralShowTitleBar": "Afficher Barre de Titre (Nécessite redémarrage)",
+ "SettingsTabGeneralRememberWindowState": "Se souvenir de la taille/position de la fenêtre",
"SettingsTabGeneralHideCursor": "Masquer le Curseur :",
"SettingsTabGeneralHideCursorNever": "Jamais",
"SettingsTabGeneralHideCursorOnIdle": "Masquer le curseur si inactif",
"SettingsTabGeneralHideCursorAlways": "Toujours",
"SettingsTabGeneralGameDirectories": "Dossiers des jeux",
- "SettingsTabGeneralAutoloadDirectories": "Dossiers des mises à jour/DLC",
- "SettingsTabGeneralAutoloadNote": "Les DLC et les mises à jour faisant référence aux fichiers manquants seront automatiquement déchargés.",
"SettingsTabGeneralAdd": "Ajouter",
"SettingsTabGeneralRemove": "Retirer",
"SettingsTabSystem": "Système",
"SettingsTabSystemCore": "Cœur",
- "SettingsTabSystemSystemRegion": "Région du système :",
+ "SettingsTabSystemSystemRegion": "Région du système:",
"SettingsTabSystemSystemRegionJapan": "Japon",
"SettingsTabSystemSystemRegionUSA": "USA",
"SettingsTabSystemSystemRegionEurope": "Europe",
@@ -120,7 +115,7 @@
"SettingsTabSystemSystemRegionChina": "Chine",
"SettingsTabSystemSystemRegionKorea": "Corée",
"SettingsTabSystemSystemRegionTaiwan": "Taïwan",
- "SettingsTabSystemSystemLanguage": "Langue du système :",
+ "SettingsTabSystemSystemLanguage": "Langue du système:",
"SettingsTabSystemSystemLanguageJapanese": "Japonais",
"SettingsTabSystemSystemLanguageAmericanEnglish": "Anglais Américain",
"SettingsTabSystemSystemLanguageFrench": "Français",
@@ -133,41 +128,35 @@
"SettingsTabSystemSystemLanguagePortuguese": "Portugais",
"SettingsTabSystemSystemLanguageRussian": "Russe",
"SettingsTabSystemSystemLanguageTaiwanese": "Taïwanais",
- "SettingsTabSystemSystemLanguageBritishEnglish": "Anglais Britannique ",
+ "SettingsTabSystemSystemLanguageBritishEnglish": "Anglais britannique ",
"SettingsTabSystemSystemLanguageCanadianFrench": "Français Canadien",
- "SettingsTabSystemSystemLanguageLatinAmericanSpanish": "Espagnol Latino-Américain",
+ "SettingsTabSystemSystemLanguageLatinAmericanSpanish": "Espagnol latino-américain",
"SettingsTabSystemSystemLanguageSimplifiedChinese": "Chinois simplifié",
"SettingsTabSystemSystemLanguageTraditionalChinese": "Chinois traditionnel",
"SettingsTabSystemSystemTimeZone": "Fuseau horaire du système :",
- "SettingsTabSystemSystemTime": "Heure du système :",
+ "SettingsTabSystemSystemTime": "Heure du système:",
"SettingsTabSystemEnableVsync": "Synchronisation verticale (VSync)",
"SettingsTabSystemEnablePptc": "Activer le PPTC (Profiled Persistent Translation Cache)",
- "SettingsTabSystemEnableLowPowerPptc": "PPTC à faible puissance",
"SettingsTabSystemEnableFsIntegrityChecks": "Activer la vérification de l'intégrité du système de fichiers",
"SettingsTabSystemAudioBackend": "Bibliothèque Audio :",
- "SettingsTabSystemAudioBackendDummy": "Désactivée",
+ "SettingsTabSystemAudioBackendDummy": "Factice",
"SettingsTabSystemAudioBackendOpenAL": "OpenAL",
"SettingsTabSystemAudioBackendSoundIO": "SoundIO",
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Hacks",
"SettingsTabSystemHacksNote": "Cela peut causer des instabilités",
- "SettingsTabSystemDramSize": "Taille de la DRAM :",
- "SettingsTabSystemDramSize4GiB": "4GiO",
- "SettingsTabSystemDramSize6GiB": "6GiO",
- "SettingsTabSystemDramSize8GiB": "8GiO",
- "SettingsTabSystemDramSize12GiB": "12GiO",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
"SettingsTabSystemIgnoreMissingServices": "Ignorer les services manquants",
- "SettingsTabSystemIgnoreApplet": "Ignorer la déconnexion de la manette",
"SettingsTabGraphics": "Graphismes",
"SettingsTabGraphicsAPI": "API Graphique",
"SettingsTabGraphicsEnableShaderCache": "Activer le cache des shaders",
- "SettingsTabGraphicsAnisotropicFiltering": "Filtrage anisotrope :",
+ "SettingsTabGraphicsAnisotropicFiltering": "Filtrage anisotrope:",
"SettingsTabGraphicsAnisotropicFilteringAuto": "Auto",
"SettingsTabGraphicsAnisotropicFiltering2x": "x2",
"SettingsTabGraphicsAnisotropicFiltering4x": "x4",
"SettingsTabGraphicsAnisotropicFiltering8x": "x8",
"SettingsTabGraphicsAnisotropicFiltering16x": "x16",
- "SettingsTabGraphicsResolutionScale": "Échelle de résolution :",
+ "SettingsTabGraphicsResolutionScale": "Échelle de résolution:",
"SettingsTabGraphicsResolutionScaleCustom": "Personnalisée (Non recommandée)",
"SettingsTabGraphicsResolutionScaleNative": "Natif (720p/1080p)",
"SettingsTabGraphicsResolutionScale2x": "x2 (1440p/2160p)",
@@ -179,9 +168,9 @@
"SettingsTabGraphicsAspectRatio16x10": "16:10",
"SettingsTabGraphicsAspectRatio21x9": "21:9",
"SettingsTabGraphicsAspectRatio32x9": "32:9",
- "SettingsTabGraphicsAspectRatioStretch": "Étirer pour remplir la fenêtre",
+ "SettingsTabGraphicsAspectRatioStretch": "Écran étiré",
"SettingsTabGraphicsDeveloperOptions": "Options développeur",
- "SettingsTabGraphicsShaderDumpPath": "Chemin du dossier de copie des shaders :",
+ "SettingsTabGraphicsShaderDumpPath": "Chemin du dossier de copie des shaders:",
"SettingsTabLogging": "Journaux",
"SettingsTabLoggingLogging": "Journaux",
"SettingsTabLoggingEnableLoggingToFile": "Activer la sauvegarde des journaux vers un fichier",
@@ -189,10 +178,10 @@
"SettingsTabLoggingEnableInfoLogs": "Activer les journaux d'informations",
"SettingsTabLoggingEnableWarningLogs": "Activer les journaux d'avertissements",
"SettingsTabLoggingEnableErrorLogs": "Activer les journaux d'erreurs",
- "SettingsTabLoggingEnableTraceLogs": "Activer les journaux d'erreurs Trace",
+ "SettingsTabLoggingEnableTraceLogs": "Activer journaux d'erreurs Trace",
"SettingsTabLoggingEnableGuestLogs": "Activer les journaux du programme simulé",
"SettingsTabLoggingEnableFsAccessLogs": "Activer les journaux d'accès au système de fichiers",
- "SettingsTabLoggingFsGlobalAccessLogMode": "Niveau des journaux d'accès au système de fichiers :",
+ "SettingsTabLoggingFsGlobalAccessLogMode": "Niveau des journaux d'accès au système de fichiers:",
"SettingsTabLoggingDeveloperOptions": "Options développeur",
"SettingsTabLoggingDeveloperOptionsNote": "ATTENTION : Réduira les performances",
"SettingsTabLoggingGraphicsBackendLogLevel": "Niveau du journal du backend graphique :",
@@ -222,9 +211,9 @@
"ControllerSettingsInputDevice": "Périphériques",
"ControllerSettingsRefresh": "Actualiser",
"ControllerSettingsDeviceDisabled": "Désactivé",
- "ControllerSettingsControllerType": "Type de manette",
+ "ControllerSettingsControllerType": "Type de contrôleur",
"ControllerSettingsControllerTypeHandheld": "Portable",
- "ControllerSettingsControllerTypeProController": "Manette Switch Pro",
+ "ControllerSettingsControllerTypeProController": "Pro Controller",
"ControllerSettingsControllerTypeJoyConPair": "JoyCon Joints",
"ControllerSettingsControllerTypeJoyConLeft": "JoyCon Gauche",
"ControllerSettingsControllerTypeJoyConRight": "JoyCon Droite",
@@ -272,20 +261,20 @@
"ControllerSettingsExtraButtonsLeft": "Boutons Gauche",
"ControllerSettingsExtraButtonsRight": "Boutons Droite",
"ControllerSettingsMisc": "Divers",
- "ControllerSettingsTriggerThreshold": "Seuil de gachettes :",
+ "ControllerSettingsTriggerThreshold": "Seuil de gachettes:",
"ControllerSettingsMotion": "Mouvements",
"ControllerSettingsMotionUseCemuhookCompatibleMotion": "Utiliser un capteur de mouvements CemuHook",
- "ControllerSettingsMotionControllerSlot": "Contrôleur ID :",
+ "ControllerSettingsMotionControllerSlot": "Contrôleur ID:",
"ControllerSettingsMotionMirrorInput": "Inverser les contrôles",
- "ControllerSettingsMotionRightJoyConSlot": "JoyCon Droit ID :",
+ "ControllerSettingsMotionRightJoyConSlot": "JoyCon Droit ID:",
"ControllerSettingsMotionServerHost": "Serveur d'hébergement :",
- "ControllerSettingsMotionGyroSensitivity": "Sensibilitée du gyroscope :",
- "ControllerSettingsMotionGyroDeadzone": "Zone morte du gyroscope :",
+ "ControllerSettingsMotionGyroSensitivity": "Sensibilitée du gyroscope:",
+ "ControllerSettingsMotionGyroDeadzone": "Zone morte du gyroscope:",
"ControllerSettingsSave": "Enregistrer",
"ControllerSettingsClose": "Fermer",
- "KeyUnknown": "Touche inconnue",
- "KeyShiftLeft": "Maj Gauche",
- "KeyShiftRight": "Maj Droite",
+ "KeyUnknown": "Inconnu",
+ "KeyShiftLeft": "Shift Gauche",
+ "KeyShiftRight": "Shift Droit",
"KeyControlLeft": "Ctrl Gauche",
"KeyMacControlLeft": "⌃ Gauche",
"KeyControlRight": "Ctrl Droite",
@@ -304,38 +293,38 @@
"KeyLeft": "Gauche",
"KeyRight": "Droite",
"KeyEnter": "Entrée",
- "KeyEscape": "Esc",
+ "KeyEscape": "Échap",
"KeySpace": "Espace",
- "KeyTab": "Tab",
- "KeyBackSpace": "Supprimer",
- "KeyInsert": "Ins",
- "KeyDelete": "Sup",
- "KeyPageUp": "Page Up",
- "KeyPageDown": "Page Down",
- "KeyHome": "Home",
+ "KeyTab": "Tabulation",
+ "KeyBackSpace": "Effacer",
+ "KeyInsert": "Insérer",
+ "KeyDelete": "Supprimer",
+ "KeyPageUp": "Page Haut",
+ "KeyPageDown": "Page Bas",
+ "KeyHome": "Accueil",
"KeyEnd": "Fin",
- "KeyCapsLock": "Verr. Maj",
+ "KeyCapsLock": "Verr. Maj.",
"KeyScrollLock": "Arr. Déf.",
- "KeyPrintScreen": "Imp. Écran",
+ "KeyPrintScreen": "Impr. Écr.",
"KeyPause": "Pause",
- "KeyNumLock": "Verr. Num",
- "KeyClear": "Clear",
- "KeyKeypad0": "Num. 0",
- "KeyKeypad1": "Num. 1",
- "KeyKeypad2": "Num. 2",
- "KeyKeypad3": "Num. 3",
- "KeyKeypad4": "Num. 4",
- "KeyKeypad5": "Num. 5",
- "KeyKeypad6": "Num. 6",
- "KeyKeypad7": "Num. 7",
- "KeyKeypad8": "Num. 8",
- "KeyKeypad9": "Num. 9",
- "KeyKeypadDivide": "Num. Diviser",
- "KeyKeypadMultiply": "Num. Multiplier",
- "KeyKeypadSubtract": "Num. Soustraire",
- "KeyKeypadAdd": "Num. Ajouter",
- "KeyKeypadDecimal": "Num. Point",
- "KeyKeypadEnter": "Num. Ent",
+ "KeyNumLock": "Verr. Num.",
+ "KeyClear": "Vider",
+ "KeyKeypad0": "Pavé Numérique 0",
+ "KeyKeypad1": "Pavé Numérique 1",
+ "KeyKeypad2": "Pavé Numérique 2",
+ "KeyKeypad3": "Pavé Numérique 3",
+ "KeyKeypad4": "Pavé Numérique 4",
+ "KeyKeypad5": "Pavé Numérique 5",
+ "KeyKeypad6": "Pavé Numérique 6",
+ "KeyKeypad7": "Pavé Numérique 7",
+ "KeyKeypad8": "Pavé Numérique 8",
+ "KeyKeypad9": "Pavé Numérique 9",
+ "KeyKeypadDivide": "Pavé Numérique Diviser",
+ "KeyKeypadMultiply": "Pavé Numérique Multiplier",
+ "KeyKeypadSubtract": "Pavé Numérique Soustraction",
+ "KeyKeypadAdd": "Pavé Numérique Additionner",
+ "KeyKeypadDecimal": "Pavé Numérique Décimal",
+ "KeyKeypadEnter": "Pavé Numérique Entrée",
"KeyNumber0": "0",
"KeyNumber1": "1",
"KeyNumber2": "2",
@@ -358,13 +347,13 @@
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "Pas Attribuée",
- "GamepadLeftStick": "Bouton Joystick G.",
- "GamepadRightStick": "Bouton Joystick D.",
- "GamepadLeftShoulder": "Bouton Gachette G.",
- "GamepadRightShoulder": "Bouton Gachette D.",
- "GamepadLeftTrigger": "Gachette Gauche",
- "GamepadRightTrigger": "Gachette Droite",
+ "KeyUnbound": "Non lié",
+ "GamepadLeftStick": "Bouton Joystick Gauche",
+ "GamepadRightStick": "Bouton Joystick Droit",
+ "GamepadLeftShoulder": "Gâchette Haute Gauche",
+ "GamepadRightShoulder": "Gâchette Haute Droite",
+ "GamepadLeftTrigger": "Gâchette Gauche",
+ "GamepadRightTrigger": "Gâchette Droite",
"GamepadDpadUp": "Haut",
"GamepadDpadDown": "Bas",
"GamepadDpadLeft": "Gauche",
@@ -372,22 +361,22 @@
"GamepadMinus": "-",
"GamepadPlus": "+",
"GamepadGuide": "Guide",
- "GamepadMisc1": "Autre",
- "GamepadPaddle1": "Palette 1",
- "GamepadPaddle2": "Palette 2",
- "GamepadPaddle3": "Palette 3",
- "GamepadPaddle4": "Palette 4",
- "GamepadTouchpad": "Touchpad",
- "GamepadSingleLeftTrigger0": "Gachette Gauche 0",
- "GamepadSingleRightTrigger0": "Gachette Droite 0",
- "GamepadSingleLeftTrigger1": "Gachette Gauche 1",
- "GamepadSingleRightTrigger1": "Gachette Droite 1",
+ "GamepadMisc1": "Divers",
+ "GamepadPaddle1": "Paddle 1",
+ "GamepadPaddle2": "Paddle 2",
+ "GamepadPaddle3": "Paddle 3",
+ "GamepadPaddle4": "Paddle 4",
+ "GamepadTouchpad": "Pavé Tactile",
+ "GamepadSingleLeftTrigger0": "Gâchette Gauche 0",
+ "GamepadSingleRightTrigger0": "Gâchette Droite 0",
+ "GamepadSingleLeftTrigger1": "Gâchette Gauche 1",
+ "GamepadSingleRightTrigger1": "Gâchette Droite 1",
"StickLeft": "Joystick Gauche",
- "StickRight": "Joystick Droite",
+ "StickRight": "Joystick Droit",
"UserProfilesSelectedUserProfile": "Profil utilisateur sélectionné :",
"UserProfilesSaveProfileName": "Enregistrer le nom du profil",
"UserProfilesChangeProfileImage": "Changer l'image du profil",
- "UserProfilesAvailableUserProfiles": "Profils utilisateurs disponibles :",
+ "UserProfilesAvailableUserProfiles": "Profils utilisateurs disponibles:",
"UserProfilesAddNewProfile": "Créer un profil",
"UserProfilesDelete": "Supprimer",
"UserProfilesClose": "Fermer",
@@ -408,14 +397,13 @@
"AvatarClose": "Fermer",
"ControllerSettingsLoadProfileToolTip": "Charger un profil",
"ControllerSettingsAddProfileToolTip": "Ajouter un profil",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsRemoveProfileToolTip": "Supprimer un profil",
"ControllerSettingsSaveProfileToolTip": "Enregistrer un profil",
"MenuBarFileToolsTakeScreenshot": "Prendre une capture d'écran",
"MenuBarFileToolsHideUi": "Masquer l'interface utilisateur",
"GameListContextMenuRunApplication": "Démarrer l'application",
"GameListContextMenuToggleFavorite": "Ajouter/Retirer des favoris",
- "GameListContextMenuToggleFavoriteToolTip": "Définis un jeu comme faisant parti des favoris ou non",
+ "GameListContextMenuToggleFavoriteToolTip": "Activer/désactiver le statut favori du jeu",
"SettingsTabGeneralTheme": "Thème :",
"SettingsTabGeneralThemeAuto": "Auto",
"SettingsTabGeneralThemeDark": "Sombre",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "Une erreur s'est produite lors de la recherche de la sauvegarde spécifiée : {0}",
"FolderDialogExtractTitle": "Choisissez le dossier dans lequel extraire",
"DialogNcaExtractionMessage": "Extraction de la section {0} depuis {1}...",
- "DialogNcaExtractionTitle": "Extracteur de la section NCA",
+ "DialogNcaExtractionTitle": "Ryujinx - Extracteur de la section NCA",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "Échec de l'extraction. Le NCA principal n'était pas présent dans le fichier sélectionné.",
"DialogNcaExtractionCheckLogErrorMessage": "Échec de l'extraction. Lisez le fichier journal pour plus d'informations.",
"DialogNcaExtractionSuccessMessage": "Extraction terminée avec succès.",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "Vous n'êtes pas connecté à Internet !",
"DialogUpdaterNoInternetSubMessage": "Veuillez vérifier que vous disposez d'une connexion Internet fonctionnelle !",
"DialogUpdaterDirtyBuildMessage": "Vous ne pouvez pas mettre à jour une version Dirty de Ryujinx !",
- "DialogUpdaterDirtyBuildSubMessage": "Veuillez télécharger Ryujinx sur https://github.com/GreemDev/Ryujinx/releases/ si vous recherchez une version prise en charge.",
+ "DialogUpdaterDirtyBuildSubMessage": "Veuillez télécharger Ryujinx sur https://ryujinx.org/ si vous recherchez une version prise en charge.",
"DialogRestartRequiredMessage": "Redémarrage requis",
"DialogThemeRestartMessage": "Le thème a été enregistré. Un redémarrage est requis pour appliquer le thème.",
"DialogThemeRestartSubMessage": "Voulez-vous redémarrer",
@@ -469,14 +457,14 @@
"DialogUninstallFileTypesSuccessMessage": "Types de fichiers désinstallés avec succès!",
"DialogUninstallFileTypesErrorMessage": "Échec de la désinstallation des types de fichiers.",
"DialogOpenSettingsWindowLabel": "Ouvrir la fenêtre de configuration",
- "DialogControllerAppletTitle": "Programme Manette",
+ "DialogControllerAppletTitle": "Controller Applet",
"DialogMessageDialogErrorExceptionMessage": "Erreur lors de l'affichage de la boîte de dialogue : {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Erreur lors de l'affichage du clavier logiciel: {0}",
"DialogErrorAppletErrorExceptionMessage": "Erreur lors de l'affichage de la boîte de dialogue ErrorApplet: {0}",
"DialogUserErrorDialogMessage": "{0}: {1}",
"DialogUserErrorDialogInfoMessage": "\nPour plus d'informations sur la manière de corriger cette erreur, suivez notre Guide d'Installation.",
"DialogUserErrorDialogTitle": "Erreur Ryujinx ({0})",
- "DialogAmiiboApiTitle": "API Amiibo",
+ "DialogAmiiboApiTitle": "Amiibo API",
"DialogAmiiboApiFailFetchMessage": "Une erreur est survenue lors de la récupération des informations de l'API.",
"DialogAmiiboApiConnectErrorMessage": "Impossible de se connecter au serveur API Amiibo. Le service est peut-être hors service ou vous devriez peut-être vérifier que votre connexion internet est connectée.",
"DialogProfileInvalidProfileErrorMessage": "Le profil {0} est incompatible avec le système de configuration de manette actuel.",
@@ -502,7 +490,7 @@
"DialogUserProfileUnsavedChangesTitle": "Avertissement - Modifications non enregistrées",
"DialogUserProfileUnsavedChangesMessage": "Vous avez effectué des modifications sur ce profil d'utilisateur qui n'ont pas été enregistrées.",
"DialogUserProfileUnsavedChangesSubMessage": "Voulez-vous annuler les modifications ?",
- "DialogControllerSettingsModifiedConfirmMessage": "Les paramètres actuels de la manette ont été mis à jour.",
+ "DialogControllerSettingsModifiedConfirmMessage": "Les paramètres actuels du contrôleur ont été mis à jour.",
"DialogControllerSettingsModifiedConfirmSubMessage": "Voulez-vous sauvegarder ?",
"DialogLoadFileErrorMessage": "{0}. Fichier erroné : {1}",
"DialogModAlreadyExistsMessage": "Le mod existe déjà",
@@ -521,7 +509,7 @@
"DialogModManagerDeletionWarningMessage": "Vous êtes sur le point de supprimer le mod : {0}\n\nÊtes-vous sûr de vouloir continuer ?",
"DialogModManagerDeletionAllWarningMessage": "Vous êtes sur le point de supprimer tous les mods pour ce titre.\n\nÊtes-vous sûr de vouloir continuer ?",
"SettingsTabGraphicsFeaturesOptions": "Fonctionnalités",
- "SettingsTabGraphicsBackendMultithreading": "Interface graphique multithread :",
+ "SettingsTabGraphicsBackendMultithreading": "Interface graphique multithread",
"CommonAuto": "Auto",
"CommonOff": "Désactivé",
"CommonOn": "Activé",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "Entrez un répertoire de jeux à ajouter à la liste",
"AddGameDirTooltip": "Ajouter un répertoire de jeux à la liste",
"RemoveGameDirTooltip": "Supprimer le répertoire de jeu sélectionné",
- "AddAutoloadDirBoxTooltip": "Entrez un répertoire de mises à jour/DLC à ajouter à la liste",
- "AddAutoloadDirTooltip": "Ajouter un répertoire de mises à jour/DLC à la liste",
- "RemoveAutoloadDirTooltip": "Supprimer le répertoire de mises à jour/DLC sélectionné",
"CustomThemeCheckTooltip": "Utilisez un thème personnalisé Avalonia pour modifier l'apparence des menus de l'émulateur",
"CustomThemePathTooltip": "Chemin vers le thème personnalisé de l'interface utilisateur",
"CustomThemeBrowseTooltip": "Parcourir vers un thème personnalisé pour l'interface utilisateur",
@@ -583,41 +568,37 @@
"TimeTooltip": "Changer l'heure du système",
"VSyncToggleTooltip": "La synchronisation verticale de la console émulée. Essentiellement un limiteur de trame pour la majorité des jeux ; le désactiver peut entraîner un fonctionnement plus rapide des jeux ou prolonger ou bloquer les écrans de chargement.\n\nPeut être activé ou désactivé en jeu avec un raccourci clavier de votre choix (F1 par défaut). Nous recommandons de le faire si vous envisagez de le désactiver.\n\nLaissez activé si vous n'êtes pas sûr.",
"PptcToggleTooltip": "Sauvegarde les fonctions JIT afin qu'elles n'aient pas besoin d'être à chaque fois recompiler lorsque le jeu se charge.\n\nRéduit les lags et accélère considérablement le temps de chargement après le premier lancement d'un jeu.\n\nLaissez par défaut si vous n'êtes pas sûr.",
- "LowPowerPptcToggleTooltip": "Charger le PPTC en utilisant un tiers des coeurs.",
- "FsIntegrityToggleTooltip": "Vérifie si des fichiers sont corrompus lors du lancement d'un jeu, et si des fichiers corrompus sont détectés, affiche une erreur de hachage dans la console.\n\nN'a aucun impact sur les performances et est destiné à aider le dépannage.\n\nLaissez activé en cas d'incertitude.",
- "AudioBackendTooltip": "Modifie le backend utilisé pour donnée un rendu audio.\n\nSDL2 est recommandé, tandis que OpenAL et SoundIO sont utilisés comme backend secondaire. Le backend Dummy (Désactivé) ne rend aucun son.\n\nLaissez sur SDL2 si vous n'êtes pas sûr.",
- "MemoryManagerTooltip": "Change la façon dont la mémoire émulée est mappée et utilisée. Cela affecte grandement les performances du processeur.\n\nRéglez sur Hôte non vérifié en cas d'incertitude.",
- "MemoryManagerSoftwareTooltip": "Utilisez une table logicielle pour la traduction d'adresses. La plus grande précision est fournie, mais les performances en seront impactées.",
+ "FsIntegrityToggleTooltip": "Vérifie si des fichiers sont corrompus lors du lancement d'un jeu, et si des fichiers corrompus sont détectés, affiche une erreur de hachage dans la console.\n\nN'a aucun impact sur les performances et est destiné à aider le dépannage.\n\nLaissez activer en cas d'incertitude.",
+ "AudioBackendTooltip": "Modifie le backend utilisé pour donnée un rendu audio.\n\nSDL2 est préféré, tandis que OpenAL et SoundIO sont utilisés comme backend secondaire. Le backend Dummy (Factice) ne rends aucun son.\n\nLaissez sur SDL2 si vous n'êtes pas sûr.",
+ "MemoryManagerTooltip": "Change la façon dont la mémoire émulée est mappée et utiliser. Cela affecte grandement les performances du processeur.\n\nRéglez sur Host Uncheked en cas d'incertitude.",
+ "MemoryManagerSoftwareTooltip": "Utilisez une table logicielle pour la traduction d'adresses. La plus grande précision est fournie, mais les performances en seront impacter.",
"MemoryManagerHostTooltip": "Mappez directement la mémoire dans l'espace d'adresses de l'hôte. Compilation et exécution JIT beaucoup plus rapides.",
- "MemoryManagerUnsafeTooltip": "Mapper directement la mémoire dans la carte, mais ne pas masquer l'adresse dans l'espace d'adressage du client avant l'accès. Plus rapide, mais la sécurité sera négligée. L'application peut accéder à la mémoire depuis n'importe où dans Ryujinx, donc exécutez uniquement les programmes en qui vous avez confiance avec ce mode.",
+ "MemoryManagerUnsafeTooltip": "Mapper directement la mémoire dans la carte, mais ne pas masquer l'adresse dans l'espace d'adressage du client avant l'accès. Plus rapide, mais la sécurité sera négliger. L'application peut accéder à la mémoire depuis n'importe où dans Ryujinx, donc exécutez uniquement les programmes en qui vous avez confiance avec ce mode.",
"UseHypervisorTooltip": "Utiliser l'Hyperviseur au lieu du JIT. Améliore considérablement les performances lorsqu'il est disponible, mais peut être instable dans son état actuel.",
- "DRamTooltip": "Change le montant de DRAM qui est alloué.\n\nActivez cette option pour les packs de textures 4k ou les mods à résolution 4k.\nN'améliore pas les performances.\n\nLaissez à 4GiO en cas de doute.",
- "IgnoreMissingServicesTooltip": "Ignore les services Horizon OS non-intégrés. Cela peut aider à contourner les plantages lors du démarrage de certains jeux.\n\nLaissez désactivé en cas d'incertitude.",
- "IgnoreAppletTooltip": "La boîte de dialogue externe \"Programme Manette\" n'apparaîtra pas si la manette est déconnectée en jeu. Il n'y aura aucune boîte de dialogue ouverte pour configurer une nouvelle manette. Une fois que la manette précédemment déconnectée est reconnectée, le jeu reprendra automatiquement. \n\nLaissez désactivé en cas d'incertitude.",
+ "DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
+ "IgnoreMissingServicesTooltip": "Ignore les services Horizon OS non-intégré. Cela peut aider à contourner les plantages lors du démarrage de certains jeux.\n\nActivez-le en cas d'incertitude.",
"GraphicsBackendThreadingTooltip": "Exécute des commandes du backend graphiques sur un second thread.\n\nAccélère la compilation des shaders, réduit les crashs et les lags, améliore les performances sur les pilotes GPU sans support de multithreading. Légère augementation des performances sur les pilotes avec multithreading intégrer.\n\nRéglez sur Auto en cas d'incertitude.",
"GalThreadingTooltip": "Exécute des commandes du backend graphiques sur un second thread.\n\nAccélère la compilation des shaders, réduit les crashs et les lags, améliore les performances sur les pilotes GPU sans support de multithreading. Légère augementation des performances sur les pilotes avec multithreading intégrer.\n\nRéglez sur Auto en cas d'incertitude.",
- "ShaderCacheToggleTooltip": "Enregistre un cache de shaders sur le disque dur, réduit le lag lors de multiples exécutions.\n\nLaissez activé si vous n'êtes pas sûr.",
- "ResolutionScaleTooltip": "Multiplie la résolution de rendu du jeu.\n\nQuelques jeux peuvent ne pas fonctionner avec cette fonctionnalité et sembler pixelisés même lorsque la résolution est augmentée ; pour ces jeux, vous devrez peut-être trouver des mods qui suppriment l'anti-aliasing ou qui augmentent leur résolution de rendu interne. Pour utiliser cette dernière option, vous voudrez probablement sélectionner \"Natif\".\n\nCette option peut être modifiée pendant qu'un jeu est en cours d'exécution en cliquant sur \"Appliquer\" ci-dessous ; vous pouvez simplement déplacer la fenêtre des paramètres sur le côté et expérimenter jusqu'à ce que vous trouviez l'apparence souhaitée pour un jeu.\n\nGardez à l'esprit que 4x est excessif pour pratiquement n'importe quelle configuration.",
- "ResolutionScaleEntryTooltip": "Échelle de résolution à virgule, telle que : 1.5. Les échelles non intégrales sont plus susceptibles de causer des problèmes ou des crashs.",
+ "ShaderCacheToggleTooltip": "Enregistre un cache de shaders sur le disque dur, réduit le lag lors de multiples exécutions.\n\nLaissez Activer si vous n'êtes pas sûr.",
+ "ResolutionScaleTooltip": "Multiplie la résolution de rendu du jeu.\n\nQuelques jeux peuvent ne pas fonctionner avec cette fonctionnalité et sembler pixelisés même lorsque la résolution est augmentée ; pour ces jeux, vous devrez peut-être trouver des mods qui suppriment l'anti-aliasing ou qui augmentent leur résolution de rendu interne. Pour utiliser cette dernière option, vous voudrez probablement sélectionner \"Native\".\n\nCette option peut être modifiée pendant qu'un jeu est en cours d'exécution en cliquant sur \"Appliquer\" ci-dessous ; vous pouvez simplement déplacer la fenêtre des paramètres de côté et expérimenter jusqu'à ce que vous trouviez l'apparence souhaitée pour un jeu.\n\nGardez à l'esprit que 4x est excessif pour pratiquement n'importe quelle configuration.",
+ "ResolutionScaleEntryTooltip": "Échelle de résolution à virgule flottante, telle que : 1.5. Les échelles non intégrales sont plus susceptibles de causer des problèmes ou des crashs.",
"AnisotropyTooltip": "Niveau de filtrage anisotrope. Réglez sur Auto pour utiliser la valeur demandée par le jeu.",
- "AspectRatioTooltip": "Format d'affichage appliqué à la fenêtre du moteur de rendu.\n\nChangez cela uniquement si vous utilisez un mod changeant le format d'affichage pour votre jeu, sinon les graphismes seront étirés.\n\nLaissez sur 16:9 si vous n'êtes pas sûr.",
- "ShaderDumpPathTooltip": "Chemin de copie des Shaders :",
- "FileLogTooltip": "Sauvegarde le journal de la console dans un fichier journal sur le disque. Cela n'affecte pas les performances.",
- "StubLogTooltip": "Affiche les messages de journaux dans la console. N'affecte pas les performances.",
- "InfoLogTooltip": "Affiche les messages de journaux d'informations dans la console. N'affecte pas les performances.",
+ "AspectRatioTooltip": "Rapport d'aspect appliqué à la fenêtre du moteur de rendu.\n\nChangez cela uniquement si vous utilisez un mod de rapport d'aspect pour votre jeu, sinon les graphismes seront étirés.\n\nLaissez sur 16:9 si vous n'êtes pas sûr.",
+ "ShaderDumpPathTooltip": "Chemin de copie des Shaders Graphiques",
+ "FileLogTooltip": "Sauver le journal de la console dans un fichier journal sur le disque. Cela n'affecte pas les performances.",
+ "StubLogTooltip": "Affiche les messages de log dans la console. N'affecte pas les performances.",
+ "InfoLogTooltip": "Affiche les messages de log d'informations dans la console. N'affecte pas les performances.",
"WarnLogTooltip": "Affiche les messages d'avertissement dans la console. N'affecte pas les performances.",
- "ErrorLogTooltip": "Affiche les messages de journaux d'erreur dans la console. N'affecte pas les performances.",
- "TraceLogTooltip": "Affiche la trace des messages de journaux dans la console. N'affecte pas les performances.",
- "GuestLogTooltip": "Affiche les messages de journaux des invités dans la console. N'affecte pas les performances.",
- "FileAccessLogTooltip": "Affiche les messages de journaux d'accès aux fichiers dans la console.",
+ "ErrorLogTooltip": "Affiche les messages de log d'erreur dans la console. N'affecte pas les performances.",
+ "TraceLogTooltip": "Affiche la trace des messages de log dans la console. N'affecte pas les performances.",
+ "GuestLogTooltip": "Affiche les messages de log des invités dans la console. N'affecte pas les performances.",
+ "FileAccessLogTooltip": "Affiche les messages de log d'accès aux fichiers dans la console.",
"FSAccessLogModeTooltip": "Active la sortie du journal d'accès FS de la console. Les modes possibles sont 0-3",
- "DeveloperOptionTooltip": "À utiliser avec précaution",
+ "DeveloperOptionTooltip": "Utiliser avec précaution",
"OpenGlLogLevel": "Nécessite l'activation des niveaux de journalisation appropriés",
- "DebugLogTooltip": "Affiche les messages de débogage dans la console.\n\nN'utilisez ceci que si un développeur le demande, car cela rendra les logs difficiles à lire et réduit les performances de l'émulateur.",
- "LoadApplicationFileTooltip": "Ouvre l'explorateur de fichiers pour choisir un fichier compatible Switch à charger",
- "LoadApplicationFolderTooltip": "Ouvre l'explorateur de fichiers pour choisir une application Switch compatible et décompressée à charger",
- "LoadDlcFromFolderTooltip": "Ouvre l'explorateur de fichier pour choisir un ou plusieurs dossiers duquel charger les DLC",
- "LoadTitleUpdatesFromFolderTooltip": "Ouvre l'explorateur de fichier pour choisir un ou plusieurs dossiers duquel charger les mises à jour",
+ "DebugLogTooltip": "Affiche les messages de débogage dans la console.\n\nN'utilisez ceci que si un membre du personnel le demande, car cela rendra les logs difficiles à lire et réduit les performances de l'émulateur.",
+ "LoadApplicationFileTooltip": "Ouvrir un explorateur de fichiers pour choisir un fichier compatible Switch à charger",
+ "LoadApplicationFolderTooltip": "Ouvrir un explorateur de fichiers pour choisir une application Switch compatible et décompressée à charger",
"OpenRyujinxFolderTooltip": "Ouvrir le dossier du système de fichiers Ryujinx",
"OpenRyujinxLogsTooltip": "Ouvre le dossier dans lequel les journaux sont écrits",
"ExitTooltip": "Quitter Ryujinx",
@@ -628,32 +609,32 @@
"OpenAboutTooltip": "Ouvrir la fenêtre À Propos",
"GridSize": "Taille de la grille",
"GridSizeTooltip": "Modifier la taille des éléments de la grille",
- "SettingsTabSystemSystemLanguageBrazilianPortuguese": "Portugais Brésilien",
+ "SettingsTabSystemSystemLanguageBrazilianPortuguese": "Portugais brésilien",
"AboutRyujinxContributorsButtonHeader": "Voir tous les contributeurs",
"SettingsTabSystemAudioVolume": "Volume :",
"AudioVolumeTooltip": "Modifier le volume audio",
"SettingsTabSystemEnableInternetAccess": "Accès Internet Invité/Mode LAN",
"EnableInternetAccessTooltip": "Permet à l'application émulée de se connecter à Internet.\n\nLes jeux avec un mode LAN peuvent se connecter les uns aux autres lorsque cette option est cochée et que les systèmes sont connectés au même point d'accès. Cela inclut également les vrais consoles.\n\nCette option n'autorise PAS la connexion aux serveurs Nintendo. Elle peut faire planter certains jeux qui essaient de se connecter à l'Internet.\n\nLaissez DÉSACTIVÉ si vous n'êtes pas sûr.",
- "GameListContextMenuManageCheatToolTip": "Gérer les cheats",
- "GameListContextMenuManageCheat": "Gérer les cheats",
+ "GameListContextMenuManageCheatToolTip": "Gérer la triche",
+ "GameListContextMenuManageCheat": "Gérer la triche",
"GameListContextMenuManageModToolTip": "Gérer les mods",
"GameListContextMenuManageMod": "Gérer les mods",
"ControllerSettingsStickRange": "Intervalle :",
"DialogStopEmulationTitle": "Ryujinx - Arrêt de l'émulation",
"DialogStopEmulationMessage": "Êtes-vous sûr de vouloir arrêter l'émulation ?",
- "SettingsTabCpu": "Processeur",
+ "SettingsTabCpu": "CPU",
"SettingsTabAudio": "Audio",
"SettingsTabNetwork": "Réseau",
"SettingsTabNetworkConnection": "Connexion réseau",
- "SettingsTabCpuCache": "Cache Processeur",
- "SettingsTabCpuMemory": "Mémoire Processeur",
+ "SettingsTabCpuCache": "Cache CPU",
+ "SettingsTabCpuMemory": "Mémoire CPU",
"DialogUpdaterFlatpakNotSupportedMessage": "Merci de mettre à jour Ryujinx via FlatHub.",
- "UpdaterDisabledWarningTitle": "Mises à jour désactivées !",
+ "UpdaterDisabledWarningTitle": "Mise à jour désactivée !",
"ControllerSettingsRotate90": "Faire pivoter de 90° à droite",
"IconSize": "Taille d'icône",
"IconSizeTooltip": "Changer la taille des icônes de jeu",
"MenuBarOptionsShowConsole": "Afficher la console",
- "ShaderCachePurgeError": "Erreur lors de la purge des Shaders à {0}: {1}",
+ "ShaderCachePurgeError": "Erreur lors de la purge du cache du Shader à {0}: {1}",
"UserErrorNoKeys": "Clés introuvables",
"UserErrorNoFirmware": "Firmware introuvable",
"UserErrorFirmwareParsingFailed": "Erreur d'analyse du firmware",
@@ -661,7 +642,7 @@
"UserErrorUnknown": "Erreur inconnue",
"UserErrorUndefined": "Erreur non définie",
"UserErrorNoKeysDescription": "Ryujinx n'a pas pu trouver votre fichier 'prod.keys'",
- "UserErrorNoFirmwareDescription": "Ryujinx n'a pas trouvé de firmware installé",
+ "UserErrorNoFirmwareDescription": "Ryujinx n'a pas trouvé de firmwares installés",
"UserErrorFirmwareParsingFailedDescription": "Ryujinx n'a pas pu analyser le firmware fourni. Cela est généralement dû à des clés obsolètes.",
"UserErrorApplicationNotFoundDescription": "Ryujinx n'a pas pu trouver une application valide dans le chemin indiqué.",
"UserErrorUnknownDescription": "Une erreur inconnue est survenue !",
@@ -669,8 +650,8 @@
"OpenSetupGuideMessage": "Ouvrir le guide d'installation",
"NoUpdate": "Aucune mise à jour",
"TitleUpdateVersionLabel": "Version {0}",
- "TitleBundledUpdateVersionLabel": "Inclus avec le jeu: Version {0}",
- "TitleBundledDlcLabel": "Inclus avec le jeu :",
+ "TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
+ "TitleBundledDlcLabel": "Bundled:",
"RyujinxInfo": "Ryujinx - Info",
"RyujinxConfirm": "Ryujinx - Confirmation",
"FileDialogAllTypes": "Tous les types",
@@ -682,7 +663,7 @@
"SoftwareKeyboardModeAlphabet": "Doit être uniquement des caractères non CJK",
"SoftwareKeyboardModeASCII": "Doit être uniquement du texte ASCII",
"ControllerAppletControllers": "Contrôleurs pris en charge :",
- "ControllerAppletPlayers": "Joueurs :",
+ "ControllerAppletPlayers": "Joueurs :",
"ControllerAppletDescription": "Votre configuration actuelle n'est pas valide. Ouvrez les paramètres et reconfigurez vos contrôles.",
"ControllerAppletDocked": "Mode station d'accueil défini. Le mode contrôle portable doit être désactivé.",
"UpdaterRenaming": "Renommage des anciens fichiers...",
@@ -710,8 +691,8 @@
"SettingsTabHotkeysScreenshotHotkey": "Capture d'écran :",
"SettingsTabHotkeysShowUiHotkey": "Afficher UI :",
"SettingsTabHotkeysPauseHotkey": "Suspendre :",
- "SettingsTabHotkeysToggleMuteHotkey": "Couper le son :",
- "ControllerMotionTitle": "Réglages des contrôles par mouvement",
+ "SettingsTabHotkeysToggleMuteHotkey": "Muet : ",
+ "ControllerMotionTitle": "Réglages du contrôle par mouvement",
"ControllerRumbleTitle": "Paramètres de vibration",
"SettingsSelectThemeFileDialogTitle": "Sélectionner un fichier de thème",
"SettingsXamlThemeFile": "Fichier thème Xaml",
@@ -724,21 +705,13 @@
"SelectUpdateDialogTitle": "Sélectionner les fichiers de mise à jour",
"SelectModDialogTitle": "Sélectionner le répertoire du mod",
"UserProfileWindowTitle": "Gestionnaire de profils utilisateur",
- "CheatWindowTitle": "Gestionnaire de cheats",
+ "CheatWindowTitle": "Gestionnaire de triches",
"DlcWindowTitle": "Gérer le contenu téléchargeable pour {0} ({1})",
"ModWindowTitle": "Gérer les mods pour {0} ({1})",
"UpdateWindowTitle": "Gestionnaire de mises à jour",
- "UpdateWindowUpdateAddedMessage": "{0} nouvelle(s) mise(s) à jour ajoutée(s)",
- "UpdateWindowBundledContentNotice": "Les mises à jour incluses avec le jeu ne peuvent pas être supprimées mais peuvent être désactivées.",
"CheatWindowHeading": "Cheats disponibles pour {0} [{1}]",
- "BuildId": "BuildId :",
- "DlcWindowBundledContentNotice": "Les DLC inclus avec le jeu ne peuvent pas être supprimés mais peuvent être désactivés.",
+ "BuildId": "BuildId:",
"DlcWindowHeading": "{0} Contenu(s) téléchargeable(s)",
- "DlcWindowDlcAddedMessage": "{0} nouveau(x) contenu(s) téléchargeable(s) ajouté(s)",
- "AutoloadDlcAddedMessage": "{0} nouveau(x) contenu(s) téléchargeable(s) ajouté(s)",
- "AutoloadDlcRemovedMessage": "{0} contenu(s) téléchargeable(s) manquant(s) supprimé(s)",
- "AutoloadUpdateAddedMessage": "{0} nouvelle(s) mise(s) à jour ajoutée(s)",
- "AutoloadUpdateRemovedMessage": "{0} mises à jour manquantes supprimées",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Éditer la sélection",
"Cancel": "Annuler",
@@ -766,7 +739,7 @@
"SettingsTabHotkeysVolumeUpHotkey": "Augmenter le volume :",
"SettingsTabHotkeysVolumeDownHotkey": "Diminuer le volume :",
"SettingsEnableMacroHLE": "Activer les macros HLE",
- "SettingsEnableMacroHLETooltip": "Émulation de haut niveau du code de Macro GPU.\n\nAméliore les performances, mais peut causer des artefacts graphiques dans certains jeux.\n\nLaissez ACTIVÉ si vous n'êtes pas sûr.",
+ "SettingsEnableMacroHLETooltip": "Émulation de haut niveau du code de Macro GPU.\n\nAméliore les performances, mais peut causer des artefacts graphiques dans certains jeux.\n\nLaissez ACTIVER si vous n'êtes pas sûr.",
"SettingsEnableColorSpacePassthrough": "Traversée de l'espace colorimétrique",
"SettingsEnableColorSpacePassthroughTooltip": "Dirige l'interface graphique Vulkan pour qu'il transmette les informations de couleur sans spécifier d'espace colorimétrique. Pour les utilisateurs possédant des écrans Wide Color Gamut, cela peut entraîner des couleurs plus vives, au détriment de l'exactitude des couleurs.",
"VolumeShort": "Vol",
@@ -778,18 +751,18 @@
"Name": "Nom ",
"Size": "Taille",
"Search": "Rechercher",
- "UserProfilesRecoverLostAccounts": "Récupérer les profils perdus",
+ "UserProfilesRecoverLostAccounts": "Récupérer les comptes perdus",
"Recover": "Récupérer",
- "UserProfilesRecoverHeading": "Des sauvegardes ont été trouvées pour les profils suivants",
+ "UserProfilesRecoverHeading": "Des sauvegardes ont été trouvées pour les comptes suivants",
"UserProfilesRecoverEmptyList": "Aucun profil à restaurer",
- "GraphicsAATooltip": "FXAA floute la plupart de l'image, tandis que SMAA tente de détecter les contours dentelés et de les lisser.\n\nIl n'est pas recommandé de l'utiliser en conjonction avec le filtre de mise à l'échelle FSR.\n\nCette option peut être modifiée pendant qu'un jeu est en cours d'exécution en cliquant sur \"Appliquer\" ci-dessous ; vous pouvez simplement déplacer la fenêtre des paramètres sur le côté et expérimenter jusqu'à ce que vous trouviez l'apparence souhaitée pour un jeu.\n\nLaissez sur AUCUN si vous n'êtes pas sûr.",
+ "GraphicsAATooltip": "FXAA floute la plupart de l'image, tandis que SMAA tente de détecter les contours dentelés et de les lisser.\n\nIl n'est pas recommandé de l'utiliser en conjonction avec le filtre de mise à l'échelle FSR.\n\nCette option peut être modifiée pendant qu'un jeu est en cours d'exécution en cliquant sur \"Appliquer\" ci-dessous ; vous pouvez simplement déplacer la fenêtre des paramètres de côté et expérimenter jusqu'à ce que vous trouviez l'apparence souhaitée pour un jeu.\n\nLaissez sur NONE si vous n'êtes pas sûr.",
"GraphicsAALabel": "Anticrénelage :",
"GraphicsScalingFilterLabel": "Filtre de mise à l'échelle :",
- "GraphicsScalingFilterTooltip": "Choisissez le filtre de mise à l'échelle qui sera appliqué lors de l'utilisation de la mise à l'échelle de la résolution.\n\nLe filtre bilinéaire fonctionne bien pour les jeux en 3D et constitue une option par défaut sûre.\n\nLe filtre le plus proche est recommandé pour les jeux de pixel art.\n\nFSR 1.0 est simplement un filtre de netteté, non recommandé pour une utilisation avec FXAA ou SMAA.\n\nCette option peut être modifiée pendant qu'un jeu est en cours d'exécution en cliquant sur \"Appliquer\" ci-dessous ; vous pouvez simplement déplacer la fenêtre des paramètres de côté et expérimenter jusqu'à ce que vous trouviez l'aspect souhaité pour un jeu.\n\nLaissez sur BILINÉAIRE si vous n'êtes pas sûr.",
+ "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nArea scaling is recommended when downscaling resolutions that are larger than the output window. It can be used to achieve a supersampled anti-aliasing effect when downscaling by more than 2x.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
"GraphicsScalingFilterBilinear": "Bilinéaire",
"GraphicsScalingFilterNearest": "Le plus proche",
"GraphicsScalingFilterFsr": "FSR",
- "GraphicsScalingFilterArea": "Zone",
+ "GraphicsScalingFilterArea": "Area",
"GraphicsScalingFilterLevelLabel": "Niveau ",
"GraphicsScalingFilterLevelTooltip": "Définissez le niveau de netteté FSR 1.0. Plus élevé signifie plus net.",
"SmaaLow": "SMAA Faible",
@@ -799,7 +772,7 @@
"UserEditorTitle": "Modifier Utilisateur",
"UserEditorTitleCreate": "Créer Utilisateur",
"SettingsTabNetworkInterface": "Interface Réseau :",
- "NetworkInterfaceTooltip": "L'interface réseau utilisée pour les fonctionnalités LAN/LDN.\n\nEn conjonction avec un VPN ou XLink Kai et un jeu prenant en charge le LAN, peut être utilisée pour simuler une connexion sur le même réseau via Internet.\n\nLaissez sur PAR DÉFAUT si vous n'êtes pas sûr.",
+ "NetworkInterfaceTooltip": "L'interface réseau utilisée pour les fonctionnalités LAN/LDN.\n\nEn conjonction avec un VPN ou XLink Kai et un jeu prenant en charge le LAN, peut être utilisée pour simuler une connexion sur le même réseau via Internet.\n\nLaissez sur DEFAULT si vous n'êtes pas sûr.",
"NetworkInterfaceDefault": "Par défaut",
"PackagingShaders": "Empaquetage des Shaders",
"AboutChangelogButton": "Voir le Changelog sur GitHub",
diff --git a/src/Ryujinx/Assets/Locales/he_IL.json b/src/Ryujinx/Assets/Locales/he_IL.json
index d2bd21124..ef122a9a1 100644
--- a/src/Ryujinx/Assets/Locales/he_IL.json
+++ b/src/Ryujinx/Assets/Locales/he_IL.json
@@ -12,8 +12,6 @@
"MenuBarFileOpenFromFile": "_טען יישום מקובץ",
"MenuBarFileOpenFromFileError": "No applications found in selected file.",
"MenuBarFileOpenUnpacked": "טען משחק _שאינו ארוז",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
"MenuBarFileOpenEmuFolder": "פתח את תיקיית ריוג'ינקס",
"MenuBarFileOpenLogsFolder": "פתח את תיקיית קבצי הלוג",
"MenuBarFileExit": "_יציאה",
@@ -33,8 +31,8 @@
"MenuBarToolsManageFileTypes": "ניהול סוגי קבצים",
"MenuBarToolsInstallFileTypes": "סוגי קבצי התקנה",
"MenuBarToolsUninstallFileTypes": "סוגי קבצי הסרה",
- "MenuBarView": "_View",
- "MenuBarViewWindow": "Window Size",
+ "MenuBarView": "_תצוגה",
+ "MenuBarViewWindow": "גודל חלון",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "_עזרה",
@@ -99,15 +97,12 @@
"SettingsTabGeneralEnableDiscordRichPresence": "הפעלת תצוגה עשירה בדיסקורד",
"SettingsTabGeneralCheckUpdatesOnLaunch": "בדוק אם קיימים עדכונים בהפעלה",
"SettingsTabGeneralShowConfirmExitDialog": "הראה דיאלוג \"אשר יציאה\"",
- "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralRememberWindowState": "זכור גודל ומיקום חלון",
"SettingsTabGeneralHideCursor": "הסתר את הסמן",
"SettingsTabGeneralHideCursorNever": "אף פעם",
"SettingsTabGeneralHideCursorOnIdle": "במצב סרק",
"SettingsTabGeneralHideCursorAlways": "תמיד",
"SettingsTabGeneralGameDirectories": "תקיות משחקים",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "הוסף",
"SettingsTabGeneralRemove": "הסר",
"SettingsTabSystem": "מערכת",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "זמן מערכת:",
"SettingsTabSystemEnableVsync": "VSync",
"SettingsTabSystemEnablePptc": "PPTC (Profiled Persistent Translation Cache)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "FS בדיקות תקינות",
"SettingsTabSystemAudioBackend": "אחראי שמע:",
"SettingsTabSystemAudioBackendDummy": "גולם",
@@ -151,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "האצות",
"SettingsTabSystemHacksNote": "עלול לגרום לאי יציבות",
- "SettingsTabSystemDramSize": "השתמש בפריסת זיכרון חלופית (נועד למפתחים)",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
"SettingsTabSystemIgnoreMissingServices": "התעלם משירותים חסרים",
- "SettingsTabSystemIgnoreApplet": "Ignore Applet",
"SettingsTabGraphics": "גרפיקה",
"SettingsTabGraphicsAPI": "ממשק גראפי",
"SettingsTabGraphicsEnableShaderCache": "הפעל מטמון הצללות",
@@ -283,7 +272,7 @@
"ControllerSettingsMotionGyroDeadzone": "שטח מת של הג'ירוסקופ:",
"ControllerSettingsSave": "שמירה",
"ControllerSettingsClose": "סגירה",
- "KeyUnknown": "Unknown",
+ "KeyUnknown": "לא ידוע",
"KeyShiftLeft": "Shift Left",
"KeyShiftRight": "Shift Right",
"KeyControlLeft": "Ctrl Left",
@@ -298,23 +287,23 @@
"KeyMacWinLeft": "⌘ Left",
"KeyWinRight": "⊞ Right",
"KeyMacWinRight": "⌘ Right",
- "KeyMenu": "Menu",
- "KeyUp": "Up",
- "KeyDown": "Down",
- "KeyLeft": "Left",
- "KeyRight": "Right",
+ "KeyMenu": "תַפרִיט",
+ "KeyUp": "למעלה",
+ "KeyDown": "למטה",
+ "KeyLeft": "שמאלה",
+ "KeyRight": "ימינה",
"KeyEnter": "Enter",
"KeyEscape": "Escape",
- "KeySpace": "Space",
- "KeyTab": "Tab",
+ "KeySpace": "רווח",
+ "KeyTab": "טאב",
"KeyBackSpace": "Backspace",
"KeyInsert": "Insert",
"KeyDelete": "Delete",
- "KeyPageUp": "Page Up",
- "KeyPageDown": "Page Down",
+ "KeyPageUp": "דיפדוף מעלה",
+ "KeyPageDown": "דיפדוף כלפי מטה",
"KeyHome": "Home",
"KeyEnd": "End",
- "KeyCapsLock": "Caps Lock",
+ "KeyCapsLock": "נעילה אותיות גדולות",
"KeyScrollLock": "Scroll Lock",
"KeyPrintScreen": "Print Screen",
"KeyPause": "Pause",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "הגדר צבע רקע",
"AvatarClose": "סגור",
"ControllerSettingsLoadProfileToolTip": "טען פרופיל",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "הוסף פרופיל",
"ControllerSettingsRemoveProfileToolTip": "הסר פרופיל",
"ControllerSettingsSaveProfileToolTip": "שמור פרופיל",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "אירעה שגיאה במציאת שמור המשחק שצויין: {0}",
"FolderDialogExtractTitle": "בחרו את התיקייה לחילוץ",
"DialogNcaExtractionMessage": "מלחץ {0} ממקטע {1}...",
- "DialogNcaExtractionTitle": "מחלץ מקטע NCA",
+ "DialogNcaExtractionTitle": "ריוג'ינקס - מחלץ מקטע NCA",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "כשל בחילוץ. ה-NCA הראשי לא היה קיים בקובץ שנבחר.",
"DialogNcaExtractionCheckLogErrorMessage": "כשל בחילוץ. קרא את קובץ הרישום למידע נוסף.",
"DialogNcaExtractionSuccessMessage": "החילוץ הושלם בהצלחה.",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "אתם לא מחוברים לאינטרנט!",
"DialogUpdaterNoInternetSubMessage": "אנא ודא שיש לך חיבור אינטרנט תקין!",
"DialogUpdaterDirtyBuildMessage": "אתם לא יכולים לעדכן מבנה מלוכלך של ריוג'ינקס!",
- "DialogUpdaterDirtyBuildSubMessage": "אם אתם מחפשים גרסא נתמכת, אנא הורידו את ריוג'ינקס בכתובת https://https://github.com/GreemDev/Ryujinx/releases",
+ "DialogUpdaterDirtyBuildSubMessage": "אם אתם מחפשים גרסא נתמכת, אנא הורידו את ריוג'ינקס בכתובת https://ryujinx.org",
"DialogRestartRequiredMessage": "אתחול נדרש",
"DialogThemeRestartMessage": "ערכת הנושא נשמרה. יש צורך בהפעלה מחדש כדי להחיל את ערכת הנושא.",
"DialogThemeRestartSubMessage": "האם ברצונך להפעיל מחדש?",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "הזן תקיית משחקים כדי להוסיף לרשימה",
"AddGameDirTooltip": "הוסף תקיית משחקים לרשימה",
"RemoveGameDirTooltip": "הסר את תקיית המשחקים שנבחרה",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "השתמש בעיצוב מותאם אישית של אבלוניה עבור ה-ממשק הגראפי כדי לשנות את המראה של תפריטי האמולטור",
"CustomThemePathTooltip": "נתיב לערכת נושא לממשק גראפי מותאם אישית",
"CustomThemeBrowseTooltip": "חפש עיצוב ממשק גראפי מותאם אישית",
@@ -583,7 +568,6 @@
"TimeTooltip": "שנה זמן מערכת",
"VSyncToggleTooltip": "Emulated console's Vertical Sync. Essentially a frame-limiter for the majority of games; disabling it may cause games to run at higher speed or make loading screens take longer or get stuck.\n\nCan be toggled in-game with a hotkey of your preference (F1 by default). We recommend doing this if you plan on disabling it.\n\nLeave ON if unsure.",
"PptcToggleTooltip": "שומר את פונקציות ה-JIT המתורגמות כך שלא יצטרכו לעבור תרגום שוב כאשר משחק עולה.\n\nמפחית תקיעות ומשפר מהירות עלייה של המערכת אחרי הפתיחה הראשונה של המשחק.\n\nמוטב להשאיר דלוק אם לא בטוחים.",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
"FsIntegrityToggleTooltip": "בודק לקבצים שגויים כאשר משחק עולה, ואם מתגלים כאלו, מציג את מזהה השגיאה שלהם לקובץ הלוג.\n\nאין לכך השפעה על הביצועים ונועד לעזור לבדיקה וניפוי שגיאות של האמולטור.\n\nמוטב להשאיר דלוק אם לא בטוחים.",
"AudioBackendTooltip": "משנה את אחראי השמע.\n\nSDL2 הוא הנבחר, למראת שOpenAL וגם SoundIO משומשים כאפשרויות חלופיות. אפשרות הDummy לא תשמיע קול כלל.\n\nמוטב להשאיר על SDL2 אם לא בטוחים.",
"MemoryManagerTooltip": "שנה איך שזיכרון מארח מיוחד ומונגד. משפיע מאוד על ביצועי המעבד המדומה.\n\nמוטב להשאיר על מארח לא מבוקר אם לא בטוחים.",
@@ -591,9 +575,8 @@
"MemoryManagerHostTooltip": "ממפה זיכרון ישירות לכתובת המארח. מהיר בהרבה ביכולות קימפול ה-JIT והריצה.",
"MemoryManagerUnsafeTooltip": "ממפה זיכרון ישירות, אך לא ממסך את הכתובת בתוך כתובת המארח לפני הגישה. מהיר, אך במחיר של הגנה. יישום המארח בעל גישה לזיכרון מכל מקום בריוג'ינקס, לכן הריצו איתו רק קבצים שאתם סומכים עליהם.",
"UseHypervisorTooltip": "השתמש ב- Hypervisor במקום JIT. משפר מאוד ביצועים כשניתן, אבל יכול להיות לא יציב במצבו הנוכחי.",
- "DRamTooltip": "מנצל תצורת מצב-זיכרון חלופית לחכות את מכשיר הפיתוח של הסוויץ'.\n\nזה שימושי להחלפת חבילות מרקמים באיכותיים יותר או כאלו ברזולוציית 4k. לא משפר ביצועים.\n\nמוטב להשאיר כבוי אם לא בטוחים.",
+ "DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
"IgnoreMissingServicesTooltip": "מתעלם מפעולות שלא קיבלו מימוש במערכת ההפעלה Horizon OS. זה עלול לעזור לעקוף קריסות של היישום במשחקים מסויימים.\n\nמוטב להשאיר כבוי אם לא בטוחים.",
- "IgnoreAppletTooltip": "תיבת הדו-שיח החיצונית \"Controller Applet\" לא תופיע אם ה-Gamepad מנותק במהלך המשחק. לא תהיה הנחיה לסגור את תיבת הדו-שיח או להגדיר בקר חדש. ברגע שהבקר שנותק בעבר יתחבר מחדש, המשחק יתחדש אוטומטית.",
"GraphicsBackendThreadingTooltip": "מריץ פקודות גראפיקה בתהליך שני נפרד.\n\nמאיץ עיבוד הצללות, מפחית תקיעות ומשפר ביצועים של דרייבר כרטיסי מסך אשר לא תומכים בהרצה רב-תהליכית.\n\nמוטב להשאיר על אוטומטי אם לא בטוחים.",
"GalThreadingTooltip": "מריץ פקודות גראפיקה בתהליך שני נפרד.\n\nמאיץ עיבוד הצללות, מפחית תקיעות ומשפר ביצועים של דרייבר כרטיסי מסך אשר לא תומכים בהרצה רב-תהליכית.\n\nמוטב להשאיר על אוטומטי אם לא בטוחים.",
"ShaderCacheToggleTooltip": "שומר זכרון מטמון של הצללות, דבר שמפחית תקיעות בריצות מסוימות.\n\nמוטב להשאיר דלוק אם לא בטוחים.",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "מדפיס הודעות יומן ניפוי באגים בשורת הפקודות.",
"LoadApplicationFileTooltip": "פתח סייר קבצים כדי לבחור קובץ תואם סוויץ' לטעינה",
"LoadApplicationFolderTooltip": "פתח סייר קבצים כדי לבחור יישום תואם סוויץ', לא ארוז לטעינה.",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "פתח את תיקיית מערכת הקבצים ריוג'ינקס",
"OpenRyujinxLogsTooltip": "פותח את התיקיה שאליה נכתבים רישומים",
"ExitTooltip": "צא מריוג'ינקס",
@@ -728,17 +709,9 @@
"DlcWindowTitle": "נהל הרחבות משחק עבור {0} ({1})",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "נהל עדכוני משחקים",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "צ'יטים זמינים עבור {0} [{1}]",
"BuildId": "מזהה בניה:",
- "DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
"DlcWindowHeading": "{0} הרחבות משחק",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} מוד(ים)",
"UserProfilesEditProfile": "ערוך נבחר/ים",
"Cancel": "בטל",
@@ -785,7 +758,7 @@
"GraphicsAATooltip": "Applies anti-aliasing to the game render.\n\nFXAA will blur most of the image, while SMAA will attempt to find jagged edges and smooth them out.\n\nNot recommended to use in conjunction with the FSR scaling filter.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on NONE if unsure.",
"GraphicsAALabel": "החלקת-עקומות:",
"GraphicsScalingFilterLabel": "מסנן מידת איכות:",
- "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
+ "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nArea scaling is recommended when downscaling resolutions that are larger than the output window. It can be used to achieve a supersampled anti-aliasing effect when downscaling by more than 2x.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
"GraphicsScalingFilterBilinear": "Bilinear",
"GraphicsScalingFilterNearest": "Nearest",
"GraphicsScalingFilterFsr": "FSR",
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index ee2bd3a16..ef8d5a9bd 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -10,6 +10,7 @@
"SettingsTabSystemUseHypervisor": "Usa Hypervisor",
"MenuBarFile": "_File",
"MenuBarFileOpenFromFile": "_Carica applicazione da un file",
+ "MenuBarFileOpenFromFileError": "Applicazione non trovata nel file selezionato",
"MenuBarFileOpenUnpacked": "Carica _gioco estratto",
"MenuBarFileOpenEmuFolder": "Apri cartella di Ryujinx",
"MenuBarFileOpenLogsFolder": "Apri cartella dei log",
@@ -30,11 +31,8 @@
"MenuBarToolsManageFileTypes": "Gestisci i tipi di file",
"MenuBarToolsInstallFileTypes": "Installa i tipi di file",
"MenuBarToolsUninstallFileTypes": "Disinstalla i tipi di file",
- "MenuBarFileLoadDlcFromFolder": "Carica DLC Da una Cartella",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Carica Aggiornamenti Da una Cartella",
- "MenuBarFileOpenFromFileError": "Nessuna applicazione trovata nel file selezionato",
- "MenuBarView": "_View",
- "MenuBarViewWindow": "Window Size",
+ "MenuBarView": "_Visualizza",
+ "MenuBarViewWindow": "Dimensione finestra",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "_Aiuto",
@@ -99,8 +97,7 @@
"SettingsTabGeneralEnableDiscordRichPresence": "Attiva Discord Rich Presence",
"SettingsTabGeneralCheckUpdatesOnLaunch": "Controlla aggiornamenti all'avvio",
"SettingsTabGeneralShowConfirmExitDialog": "Mostra dialogo \"Conferma Uscita\"",
- "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralRememberWindowState": "Ricorda la dimensione e la posizione della finestra",
"SettingsTabGeneralHideCursor": "Nascondi il cursore:",
"SettingsTabGeneralHideCursorNever": "Mai",
"SettingsTabGeneralHideCursorOnIdle": "Quando è inattivo",
@@ -114,8 +111,6 @@
"SettingsTabSystemSystemRegionJapan": "Giappone",
"SettingsTabSystemSystemRegionUSA": "Stati Uniti d'America",
"SettingsTabSystemSystemRegionEurope": "Europa",
- "SettingsTabGeneralAutoloadDirectories": "Directory di Caricamento Automatico per DLC/Aggiornamenti",
- "SettingsTabGeneralAutoloadNote": "Aggiornamenti e DLC che collegano a file mancanti verranno disabilitati automaticamente",
"SettingsTabSystemSystemRegionAustralia": "Australia",
"SettingsTabSystemSystemRegionChina": "Cina",
"SettingsTabSystemSystemRegionKorea": "Corea",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "Data e ora del sistema:",
"SettingsTabSystemEnableVsync": "Attiva VSync",
"SettingsTabSystemEnablePptc": "Attiva PPTC (Profiled Persistent Translation Cache)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "Attiva controlli d'integrità FS",
"SettingsTabSystemAudioBackend": "Backend audio:",
"SettingsTabSystemAudioBackendDummy": "Dummy",
@@ -151,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Espedienti",
"SettingsTabSystemHacksNote": "Possono causare instabilità",
- "SettingsTabSystemDramSize": "Usa layout di memoria alternativo (per sviluppatori)",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Espandi DRAM a 8GiB",
"SettingsTabSystemIgnoreMissingServices": "Ignora servizi mancanti",
- "SettingsTabSystemIgnoreApplet": "Ignora l'applet",
"SettingsTabGraphics": "Grafica",
"SettingsTabGraphicsAPI": "API grafica",
"SettingsTabGraphicsEnableShaderCache": "Attiva la cache degli shader",
@@ -319,7 +308,7 @@
"KeyPrintScreen": "Stamp",
"KeyPause": "Pausa",
"KeyNumLock": "Bloc Num",
- "KeyClear": "Clear",
+ "KeyClear": "Elimina",
"KeyKeypad0": "Tast. num. 0",
"KeyKeypad1": "Tast. num. 1",
"KeyKeypad2": "Tast. num. 2",
@@ -371,12 +360,12 @@
"GamepadDpadRight": "Destra",
"GamepadMinus": "-",
"GamepadPlus": "+",
- "GamepadGuide": "Guide",
- "GamepadMisc1": "Misc",
- "GamepadPaddle1": "Paddle 1",
- "GamepadPaddle2": "Paddle 2",
- "GamepadPaddle3": "Paddle 3",
- "GamepadPaddle4": "Paddle 4",
+ "GamepadGuide": "Guida",
+ "GamepadMisc1": "Altro",
+ "GamepadPaddle1": "Tasto extra 1",
+ "GamepadPaddle2": "Tasto extra 2",
+ "GamepadPaddle3": "Tasto extra 3",
+ "GamepadPaddle4": "Tasto extra 4",
"GamepadTouchpad": "Touchpad",
"GamepadSingleLeftTrigger0": "Grilletto sinistro 0",
"GamepadSingleRightTrigger0": "Grilletto destro 0",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "Imposta colore di sfondo",
"AvatarClose": "Chiudi",
"ControllerSettingsLoadProfileToolTip": "Carica profilo",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "Aggiungi profilo",
"ControllerSettingsRemoveProfileToolTip": "Rimuovi profilo",
"ControllerSettingsSaveProfileToolTip": "Salva profilo",
@@ -417,7 +405,7 @@
"GameListContextMenuToggleFavorite": "Preferito",
"GameListContextMenuToggleFavoriteToolTip": "Segna il gioco come preferito",
"SettingsTabGeneralTheme": "Tema:",
- "SettingsTabGeneralThemeAuto": "Auto",
+ "SettingsTabGeneralThemeAuto": "Automatico",
"SettingsTabGeneralThemeDark": "Scuro",
"SettingsTabGeneralThemeLight": "Chiaro",
"ControllerSettingsConfigureGeneral": "Configura",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "C'è stato un errore durante la ricerca dei dati di salvataggio: {0}",
"FolderDialogExtractTitle": "Scegli una cartella in cui estrarre",
"DialogNcaExtractionMessage": "Estrazione della sezione {0} da {1}...",
- "DialogNcaExtractionTitle": "Estrazione sezione NCA",
+ "DialogNcaExtractionTitle": "Ryujinx - Estrazione sezione NCA",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "L'estrazione è fallita. L'NCA principale non era presente nel file selezionato.",
"DialogNcaExtractionCheckLogErrorMessage": "L'estrazione è fallita. Consulta il file di log per maggiori informazioni.",
"DialogNcaExtractionSuccessMessage": "Estrazione completata con successo.",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "Non sei connesso ad Internet!",
"DialogUpdaterNoInternetSubMessage": "Verifica di avere una connessione ad Internet funzionante!",
"DialogUpdaterDirtyBuildMessage": "Non puoi aggiornare una Dirty build di Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Scarica Ryujinx da https://https://github.com/GreemDev/Ryujinx/releases/ se stai cercando una versione supportata.",
+ "DialogUpdaterDirtyBuildSubMessage": "Scarica Ryujinx da https://ryujinx.org/ se stai cercando una versione supportata.",
"DialogRestartRequiredMessage": "Riavvio richiesto",
"DialogThemeRestartMessage": "Il tema è stato salvato. È richiesto un riavvio per applicare il tema.",
"DialogThemeRestartSubMessage": "Vuoi riavviare?",
@@ -571,7 +559,6 @@
"CustomThemeCheckTooltip": "Attiva o disattiva temi personalizzati nella GUI",
"CustomThemePathTooltip": "Percorso al tema GUI personalizzato",
"CustomThemeBrowseTooltip": "Sfoglia per cercare un tema GUI personalizzato",
- "RemoveAutoloadDirTooltip": "Rimuovi la directory di autoload selezionata",
"DockModeToggleTooltip": "La modalità TV fa sì che il sistema emulato si comporti come una Nintendo Switch posizionata nella sua base. Ciò migliora la qualità grafica nella maggior parte dei giochi. Al contrario, disabilitandola il sistema emulato si comporterà come una Nintendo Switch in modalità portatile, riducendo la qualità grafica.\n\nConfigura i controlli del giocatore 1 se intendi usare la modalità TV; configura i controlli della modalità portatile se intendi usare quest'ultima.\n\nNel dubbio, lascia l'opzione attiva.",
"DirectKeyboardTooltip": "Supporto per l'accesso diretto alla tastiera (HID). Fornisce ai giochi l'accesso alla tastiera come dispositivo di inserimento del testo.\n\nFunziona solo con i giochi che supportano nativamente l'utilizzo della tastiera su hardware Switch.\n\nNel dubbio, lascia l'opzione disattivata.",
"DirectMouseTooltip": "Supporto per l'accesso diretto al mouse (HID). Fornisce ai giochi l'accesso al mouse come dispositivo di puntamento.\n\nFunziona solo con i rari giochi che supportano nativamente l'utilizzo del mouse su hardware Switch.\n\nQuando questa opzione è attivata, il touchscreen potrebbe non funzionare.\n\nNel dubbio, lascia l'opzione disattivata.",
@@ -581,9 +568,6 @@
"TimeTooltip": "Cambia data e ora di sistema",
"VSyncToggleTooltip": "Sincronizzazione verticale della console Emulata. Essenzialmente un limitatore di frame per la maggior parte dei giochi; disabilitarlo può far girare giochi a velocità più alta, allungare le schermate di caricamento o farle bloccare.\n\nPuò essere attivata in gioco con un tasto di scelta rapida (F1 per impostazione predefinita). Ti consigliamo di farlo se hai intenzione di disabilitarlo.\n\nLascia ON se non sei sicuro.",
"PptcToggleTooltip": "Salva le funzioni JIT tradotte in modo che non debbano essere tradotte tutte le volte che si avvia un determinato gioco.\n\nRiduce i fenomeni di stuttering e velocizza sensibilmente gli avvii successivi del gioco.\n\nNel dubbio, lascia l'opzione attiva.",
- "AddAutoloadDirBoxTooltip": "Inserisci una directory di \"autoload\" da aggiungere alla lista",
- "AddAutoloadDirTooltip": "Aggiungi una directory di \"autoload\" alla lista",
- "LowPowerPptcToggleTooltip": "Carica il PPTC usando un terzo dei core.",
"FsIntegrityToggleTooltip": "Controlla la presenza di file corrotti quando si avvia un gioco. Se vengono rilevati dei file corrotti, verrà mostrato un errore di hash nel log.\n\nQuesta opzione non influisce sulle prestazioni ed è pensata per facilitare la risoluzione dei problemi.\n\nNel dubbio, lascia l'opzione attiva.",
"AudioBackendTooltip": "Cambia il backend usato per riprodurre l'audio.\n\nSDL2 è quello preferito, mentre OpenAL e SoundIO sono usati come ripiego. Dummy non riprodurrà alcun suono.\n\nNel dubbio, imposta l'opzione su SDL2.",
"MemoryManagerTooltip": "Cambia il modo in cui la memoria guest è mappata e vi si accede. Influisce notevolmente sulle prestazioni della CPU emulata.\n\nNel dubbio, imposta l'opzione su Host Unchecked.",
@@ -591,9 +575,8 @@
"MemoryManagerHostTooltip": "Mappa direttamente la memoria nello spazio degli indirizzi dell'host. Compilazione ed esecuzione JIT molto più veloce.",
"MemoryManagerUnsafeTooltip": "Mappa direttamente la memoria, ma non maschera l'indirizzo all'interno dello spazio degli indirizzi guest prima dell'accesso. Più veloce, ma a costo della sicurezza. L'applicazione guest può accedere alla memoria da qualsiasi punto di Ryujinx, quindi esegui solo programmi di cui ti fidi con questa modalità.",
"UseHypervisorTooltip": "Usa Hypervisor invece di JIT. Migliora notevolmente le prestazioni quando disponibile, ma può essere instabile nel suo stato attuale.",
- "DRamTooltip": "Utilizza un layout di memoria alternativo per imitare un'unità di sviluppo di Switch.\n\nQuesta opzione è utile soltanto per i pacchetti di texture ad alta risoluzione o per le mod che aumentano la risoluzione a 4K. NON migliora le prestazioni.\n\nNel dubbio, lascia l'opzione disattivata.",
+ "DRamTooltip": "Utilizza una modalità di memoria alternativa con 8GiB di DRAM per imitare un'unità di sviluppo di Switch.\n\nÈ utile solo per i pacchetti di texture ad alta risoluzione o per le mod in 4K. NON migliora le prestazioni.\n\nNel dubbio, lascia l'opzione disattivata.",
"IgnoreMissingServicesTooltip": "Ignora i servizi non implementati del sistema operativo Horizon. Può aiutare ad aggirare gli arresti anomali che si verificano avviando alcuni giochi.\n\nNel dubbio, lascia l'opzione disattivata.",
- "IgnoreAppletTooltip": "La finestra di dialogo esterna \"Controller Applet\" non apparirà se il gamepad viene disconnesso durante il gioco. Non ci sarà alcun prompt per chiudere la finestra di dialogo o impostare un nuovo controller. Una volta che il controller disconnesso in precedenza viene ricollegato, il gioco riprenderà automaticamente.",
"GraphicsBackendThreadingTooltip": "Esegue i comandi del backend grafico su un secondo thread.\n\nVelocizza la compilazione degli shader, riduce lo stuttering e migliora le prestazioni sui driver grafici senza il supporto integrato al multithreading. Migliora leggermente le prestazioni sui driver che supportano il multithreading.\n\nNel dubbio, imposta l'opzione su Auto.",
"GalThreadingTooltip": "Esegue i comandi del backend grafico su un secondo thread.\n\nVelocizza la compilazione degli shader, riduce lo stuttering e migliora le prestazioni sui driver grafici senza il supporto integrato al multithreading. Migliora leggermente le prestazioni sui driver che supportano il multithreading.\n\nNel dubbio, imposta l'opzione su Auto.",
"ShaderCacheToggleTooltip": "Salva una cache degli shader su disco che riduce i fenomeni di stuttering nelle esecuzioni successive.\n\nNel dubbio, lascia l'opzione attiva.",
@@ -628,8 +611,6 @@
"GridSizeTooltip": "Cambia la dimensione dei riquadri della griglia",
"SettingsTabSystemSystemLanguageBrazilianPortuguese": "Portoghese brasiliano",
"AboutRyujinxContributorsButtonHeader": "Mostra tutti i contributori",
- "LoadDlcFromFolderTooltip": "Apri un esploratore file per scegliere una o più cartelle dalle quali caricare DLC in massa",
- "LoadTitleUpdatesFromFolderTooltip": "Apri un esploratore file per scegliere una o più cartelle dalle quali caricare aggiornamenti in massa",
"SettingsTabSystemAudioVolume": "Volume: ",
"AudioVolumeTooltip": "Cambia volume audio",
"SettingsTabSystemEnableInternetAccess": "Attiva l'accesso a Internet da parte del guest/Modalità LAN",
@@ -669,7 +650,7 @@
"OpenSetupGuideMessage": "Apri la guida all'installazione",
"NoUpdate": "Nessun aggiornamento",
"TitleUpdateVersionLabel": "Versione {0}",
- "TitleBundledUpdateVersionLabel": "Incluso: Version {0}",
+ "TitleBundledUpdateVersionLabel": "Incluso: Versione {0}",
"TitleBundledDlcLabel": "Incluso:",
"RyujinxInfo": "Ryujinx - Info",
"RyujinxConfirm": "Ryujinx - Conferma",
@@ -736,14 +717,6 @@
"Cancel": "Annulla",
"Save": "Salva",
"Discard": "Scarta",
- "UpdateWindowBundledContentNotice": "Gli aggiornamenti inclusi non possono essere eliminati, ma solo disattivati",
- "AutoloadDlcAddedMessage": "{0} contenuto/i scaricabile/i aggiunto/i",
- "AutoloadDlcRemovedMessage": "{0} contenuto/i scaricabile/i mancante/i rimosso/i",
- "AutoloadUpdateAddedMessage": "{0} aggiornamento/i aggiunto/i",
- "AutoloadUpdateRemovedMessage": "{0} aggiornamento/i mancante/i rimosso/i",
- "DlcWindowBundledContentNotice": "i DLC \"impacchettati\" non possono essere rimossi, ma solo disabilitati.",
- "DlcWindowDlcAddedMessage": "{0} nuovo/i contenuto/i scaricabile/i aggiunto/i",
- "UpdateWindowUpdateAddedMessage": "{0} aggiornamento/i aggiunto/i",
"Paused": "In pausa",
"UserProfilesSetProfileImage": "Imposta immagine profilo",
"UserProfileEmptyNameError": "Il nome è obbligatorio",
@@ -758,9 +731,9 @@
"SettingsEnableTextureRecompression": "Attiva la ricompressione delle texture",
"SettingsEnableTextureRecompressionTooltip": "Comprime le texture ASTC per ridurre l'utilizzo di VRAM.\n\nI giochi che utilizzano questo formato di texture includono Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder e The Legend of Zelda: Tears of the Kingdom.\n\nLe schede grafiche con 4GiB o meno di VRAM probabilmente si bloccheranno ad un certo punto durante l'esecuzione di questi giochi.\n\nAttiva questa opzione solo se sei a corto di VRAM nei giochi sopra menzionati. Nel dubbio, lascia l'opzione disattivata.",
"SettingsTabGraphicsPreferredGpu": "GPU preferita",
- "SettingsTabGraphicsPreferredGpuTooltip": "Seleziona la scheda grafica che verrà usata con la backend grafica Vulkan.\n\nNon influenza la GPU che userà OpenGL.\n\nImposta la GPU contrassegnata come \"dGPU\" se non sei sicuro. Se non ce n'è una, lascia intatta quest'impostazione.",
+ "SettingsTabGraphicsPreferredGpuTooltip": "Seleziona la scheda grafica che verrà usata con il backend grafico Vulkan.\n\nL'opzione non modifica la GPU usata da OpenGL.\n\nNel dubbio, seleziona la GPU contrassegnata come \"dGPU\". Se non ce n'è una, lascia intatta questa opzione.",
"SettingsAppRequiredRestartMessage": "È richiesto un riavvio di Ryujinx",
- "SettingsGpuBackendRestartMessage": "Le impostazioni della backend grafica o della GPU sono state modificate. Questo richiederà un riavvio perché le modifiche siano applicate",
+ "SettingsGpuBackendRestartMessage": "Le impostazioni del backend grafico o della GPU sono state modificate. È necessario un riavvio per applicare le modifiche",
"SettingsGpuBackendRestartSubMessage": "Vuoi riavviare ora?",
"RyujinxUpdaterMessage": "Vuoi aggiornare Ryujinx all'ultima versione?",
"SettingsTabHotkeysVolumeUpHotkey": "Alza il volume:",
@@ -782,10 +755,10 @@
"Recover": "Recupera",
"UserProfilesRecoverHeading": "Sono stati trovati dei salvataggi per i seguenti account",
"UserProfilesRecoverEmptyList": "Nessun profilo da recuperare",
- "GraphicsAATooltip": "Applica anti-aliasing al rendering del gioco.\n\nFXAA sfocerà la maggior parte dell'immagine, mentre SMAA tenterà di trovare bordi frastagliati e lisciarli.\n\nNon si consiglia di usarlo in combinazione con il filtro di scala FSR.\n\nQuesta opzione può essere modificata mentre un gioco è in esecuzione facendo clic su \"Applica\" qui sotto; puoi semplicemente spostare la finestra delle impostazioni da parte e sperimentare fino a quando non trovi il tuo look preferito per un gioco.\n\nLasciare su Nessuno se incerto.",
+ "GraphicsAATooltip": "Applica l'anti-aliasing al rendering del gioco.\n\nFXAA rende la maggior parte dell'immagine sfocata, mentre SMAA tenta di rilevare e smussare i bordi frastagliati.\n\nSi consiglia di non usarlo in combinazione con il filtro di scaling FSR.\n\nQuesta opzione può essere modificata mentre un gioco è in esecuzione facendo clic su \"Applica\" qui sotto; puoi semplicemente spostare la finestra delle impostazioni da parte e sperimentare fino a quando non trovi il tuo look preferito per un gioco.\n\nNel dubbio, lascia su Nessuno.",
"GraphicsAALabel": "Anti-Aliasing:",
"GraphicsScalingFilterLabel": "Filtro di scala:",
- "GraphicsScalingFilterTooltip": "Scegli il filtro di scaling che verrà applicato quando si utilizza o scaling di risoluzione.\n\nBilineare funziona bene per i giochi 3D ed è un'opzione predefinita affidabile.\n\nNearest è consigliato per i giochi in pixel art.\n\nFSR 1.0 è solo un filtro di nitidezza, non raccomandato per l'uso con FXAA o SMAA.\n\nQuesta opzione può essere modificata mentre un gioco è in esecuzione facendo clic su \"Applica\" qui sotto; puoi semplicemente spostare la finestra delle impostazioni da parte e sperimentare fino a quando non trovi il tuo look preferito per un gioco.\n\nLasciare su Bilineare se incerto.",
+ "GraphicsScalingFilterTooltip": "Scegli il filtro di scaling che verrà applicato quando si utilizza lo scaling della risoluzione.\n\nBilineare funziona bene per i giochi 3D ed è un'opzione predefinita affidabile.\n\nNearest è consigliato per i giochi in pixel art.\n\nFSR 1.0 è solo un filtro di nitidezza, sconsigliato per l'uso con FXAA o SMAA.\n\nLo scaling ad area è consigliato quando si riducono delle risoluzioni che sono più grandi della finestra di output. Può essere usato per ottenere un effetto di anti-aliasing supercampionato quando si riduce di più di 2x.\n\nQuesta opzione può essere modificata mentre un gioco è in esecuzione facendo clic su \"Applica\" qui sotto; puoi semplicemente spostare la finestra delle impostazioni da parte e sperimentare fino a quando non trovi il tuo look preferito per un gioco.\n\nNel dubbio, lascia su BILINEARE.",
"GraphicsScalingFilterBilinear": "Bilineare",
"GraphicsScalingFilterNearest": "Nearest",
"GraphicsScalingFilterFsr": "FSR",
diff --git a/src/Ryujinx/Assets/Locales/ja_JP.json b/src/Ryujinx/Assets/Locales/ja_JP.json
index 8d15ab678..4d91d3639 100644
--- a/src/Ryujinx/Assets/Locales/ja_JP.json
+++ b/src/Ryujinx/Assets/Locales/ja_JP.json
@@ -12,8 +12,6 @@
"MenuBarFileOpenFromFile": "ファイルからアプリケーションをロード(_L)",
"MenuBarFileOpenFromFileError": "No applications found in selected file.",
"MenuBarFileOpenUnpacked": "展開されたゲームをロード",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
"MenuBarFileOpenEmuFolder": "Ryujinx フォルダを開く",
"MenuBarFileOpenLogsFolder": "ログフォルダを開く",
"MenuBarFileExit": "終了(_E)",
@@ -33,8 +31,8 @@
"MenuBarToolsManageFileTypes": "ファイル形式を管理",
"MenuBarToolsInstallFileTypes": "ファイル形式をインストール",
"MenuBarToolsUninstallFileTypes": "ファイル形式をアンインストール",
- "MenuBarView": "_View",
- "MenuBarViewWindow": "Window Size",
+ "MenuBarView": "表示(_V)",
+ "MenuBarViewWindow": "ウィンドウサイズ",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "ヘルプ(_H)",
@@ -99,15 +97,12 @@
"SettingsTabGeneralEnableDiscordRichPresence": "Discord リッチプレゼンスを有効にする",
"SettingsTabGeneralCheckUpdatesOnLaunch": "起動時にアップデートを確認する",
"SettingsTabGeneralShowConfirmExitDialog": "\"終了を確認\" ダイアログを表示する",
- "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralRememberWindowState": "ウィンドウのサイズと位置を記憶する",
"SettingsTabGeneralHideCursor": "マウスカーソルを非表示",
"SettingsTabGeneralHideCursorNever": "決して",
"SettingsTabGeneralHideCursorOnIdle": "アイドル時",
"SettingsTabGeneralHideCursorAlways": "常時",
"SettingsTabGeneralGameDirectories": "ゲームディレクトリ",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "追加",
"SettingsTabGeneralRemove": "削除",
"SettingsTabSystem": "システム",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "時刻:",
"SettingsTabSystemEnableVsync": "VSync",
"SettingsTabSystemEnablePptc": "PPTC (Profiled Persistent Translation Cache)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "ファイルシステム整合性チェック",
"SettingsTabSystemAudioBackend": "音声バックエンド:",
"SettingsTabSystemAudioBackendDummy": "ダミー",
@@ -151,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "ハック",
"SettingsTabSystemHacksNote": " (挙動が不安定になる可能性があります)",
- "SettingsTabSystemDramSize": "DRAMサイズ:",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
"SettingsTabSystemIgnoreMissingServices": "未実装サービスを無視する",
- "SettingsTabSystemIgnoreApplet": "アプレットを無視する",
"SettingsTabGraphics": "グラフィックス",
"SettingsTabGraphicsAPI": "グラフィックスAPI",
"SettingsTabGraphicsEnableShaderCache": "シェーダーキャッシュを有効にする",
@@ -358,7 +347,7 @@
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "Unbound",
+ "KeyUnbound": "未登録",
"GamepadLeftStick": "L Stick Button",
"GamepadRightStick": "R Stick Button",
"GamepadLeftShoulder": "Left Shoulder",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "背景色を指定",
"AvatarClose": "閉じる",
"ControllerSettingsLoadProfileToolTip": "プロファイルをロード",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "プロファイルを追加",
"ControllerSettingsRemoveProfileToolTip": "プロファイルを削除",
"ControllerSettingsSaveProfileToolTip": "プロファイルをセーブ",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "セーブデータ: {0} の検索中にエラーが発生しました",
"FolderDialogExtractTitle": "展開フォルダを選択",
"DialogNcaExtractionMessage": "{1} から {0} セクションを展開中...",
- "DialogNcaExtractionTitle": "NCA セクション展開",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA セクション展開",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "展開に失敗しました. 選択されたファイルにはメイン NCA が存在しません.",
"DialogNcaExtractionCheckLogErrorMessage": "展開に失敗しました. 詳細はログを確認してください.",
"DialogNcaExtractionSuccessMessage": "展開が正常終了しました",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "インターネットに接続されていません!",
"DialogUpdaterNoInternetSubMessage": "インターネット接続が正常動作しているか確認してください!",
"DialogUpdaterDirtyBuildMessage": "Dirty ビルドの Ryujinx はアップデートできません!",
- "DialogUpdaterDirtyBuildSubMessage": "サポートされているバージョンをお探しなら, https://https://github.com/GreemDev/Ryujinx/releases/ で Ryujinx をダウンロードしてください.",
+ "DialogUpdaterDirtyBuildSubMessage": "サポートされているバージョンをお探しなら, https://ryujinx.org/ で Ryujinx をダウンロードしてください.",
"DialogRestartRequiredMessage": "再起動が必要",
"DialogThemeRestartMessage": "テーマがセーブされました. テーマを適用するには再起動が必要です.",
"DialogThemeRestartSubMessage": "再起動しますか",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "リストに追加するゲームディレクトリを入力します",
"AddGameDirTooltip": "リストにゲームディレクトリを追加します",
"RemoveGameDirTooltip": "選択したゲームディレクトリを削除します",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "エミュレータのメニュー外観を変更するためカスタム Avalonia テーマを使用します",
"CustomThemePathTooltip": "カスタム GUI テーマのパスです",
"CustomThemeBrowseTooltip": "カスタム GUI テーマを参照します",
@@ -583,7 +568,6 @@
"TimeTooltip": "システムの時刻を変更します",
"VSyncToggleTooltip": "エミュレートされたゲーム機の垂直同期です. 多くのゲームにおいて, フレームリミッタとして機能します. 無効にすると, ゲームが高速で実行されたり, ロード中に時間がかかったり, 止まったりすることがあります.\n\n設定したホットキー(デフォルトではF1)で, ゲーム内で切り替え可能です. 無効にする場合は, この操作を行うことをおすすめします.\n\nよくわからない場合はオンのままにしてください.",
"PptcToggleTooltip": "翻訳されたJIT関数をセーブすることで, ゲームをロードするたびに毎回翻訳する処理を不要とします.\n\n一度ゲームを起動すれば,二度目以降の起動時遅延を大きく軽減できます.\n\nよくわからない場合はオンのままにしてください.",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
"FsIntegrityToggleTooltip": "ゲーム起動時にファイル破損をチェックし,破損が検出されたらログにハッシュエラーを表示します..\n\nパフォーマンスには影響なく, トラブルシューティングに役立ちます.\n\nよくわからない場合はオンのままにしてください.",
"AudioBackendTooltip": "音声レンダリングに使用するバックエンドを変更します.\n\nSDL2 が優先され, OpenAL と SoundIO はフォールバックとして使用されます. ダミーは音声出力しません.\n\nよくわからない場合は SDL2 を設定してください.",
"MemoryManagerTooltip": "ゲストメモリのマップ/アクセス方式を変更します. エミュレートされるCPUのパフォーマンスに大きな影響を与えます.\n\nよくわからない場合は「ホスト,チェックなし」を設定してください.",
@@ -591,9 +575,8 @@
"MemoryManagerHostTooltip": "ホストのアドレス空間にメモリを直接マップします.JITのコンパイルと実行速度が大きく向上します.",
"MemoryManagerUnsafeTooltip": "メモリを直接マップしますが, アクセス前にゲストのアドレス空間内のアドレスをマスクしません. より高速になりますが, 安全性が犠牲になります. ゲストアプリケーションは Ryujinx のどこからでもメモリにアクセスできるので,このモードでは信頼できるプログラムだけを実行するようにしてください.",
"UseHypervisorTooltip": "JIT の代わりにハイパーバイザーを使用します. 利用可能な場合, パフォーマンスが大幅に向上しますが, 現在の状態では不安定になる可能性があります.",
- "DRamTooltip": "エミュレートされたシステムのメモリ容量を 4GiB から 6GiB に増加します.\n\n高解像度のテクスチャパックや 4K解像度の mod を使用する場合に有用です. パフォーマンスを改善するものではありません.\n\nよくわからない場合はオフのままにしてください.",
+ "DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
"IgnoreMissingServicesTooltip": "未実装の Horizon OS サービスを無視します. 特定のゲームにおいて起動時のクラッシュを回避できる場合があります.\n\nよくわからない場合はオフのままにしてください.",
- "IgnoreAppletTooltip": "ゲームプレイ中にゲームパッドが切断された場合、外部ダイアログ「コントローラーアプレット」は表示されません。このダイアログを閉じるか、新しいコントローラーを設定するように求めるプロンプトは表示されません。以前に切断されたコントローラーが再接続されると、ゲームは自動的に再開されます。",
"GraphicsBackendThreadingTooltip": "グラフィックスバックエンドのコマンドを別スレッドで実行します.\n\nシェーダのコンパイルを高速化し, 遅延を軽減し, マルチスレッド非対応の GPU ドライバにおいてパフォーマンスを改善します. マルチスレッド対応のドライバでも若干パフォーマンス改善が見られます.\n\nよくわからない場合は自動に設定してください.",
"GalThreadingTooltip": "グラフィックスバックエンドのコマンドを別スレッドで実行します.\n\nシェーダのコンパイルを高速化し, 遅延を軽減し, マルチスレッド非対応の GPU ドライバにおいてパフォーマンスを改善します. マルチスレッド対応のドライバでも若干パフォーマンス改善が見られます.\n\nよくわからない場合は自動に設定してください.",
"ShaderCacheToggleTooltip": "ディスクシェーダーキャッシュをセーブし,次回以降の実行時遅延を軽減します.\n\nよくわからない場合はオンのままにしてください.",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "デバッグログメッセージをコンソールに出力します.\n\nログが読みづらくなり,エミュレータのパフォーマンスが低下するため,開発者から特別な指示がある場合のみ使用してください.",
"LoadApplicationFileTooltip": "ロードする Switch 互換のファイルを選択するためファイルエクスプローラを開きます",
"LoadApplicationFolderTooltip": "ロードする Switch 互換の展開済みアプリケーションを選択するためファイルエクスプローラを開きます",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "Ryujinx ファイルシステムフォルダを開きます",
"OpenRyujinxLogsTooltip": "ログが格納されるフォルダを開きます",
"ExitTooltip": "Ryujinx を終了します",
@@ -637,7 +618,7 @@
"GameListContextMenuManageCheatToolTip": "チートを管理します",
"GameListContextMenuManageCheat": "チートを管理",
"GameListContextMenuManageModToolTip": "Modを管理します",
- "GameListContextMenuManageMod": "Manage Mods",
+ "GameListContextMenuManageMod": "Modを管理",
"ControllerSettingsStickRange": "範囲:",
"DialogStopEmulationTitle": "Ryujinx - エミュレーションを中止",
"DialogStopEmulationMessage": "エミュレーションを中止してよろしいですか?",
@@ -728,16 +709,9 @@
"DlcWindowTitle": "DLC 管理",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "アップデート管理",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "利用可能なチート {0} [{1}]",
"BuildId": "ビルドID:",
"DlcWindowHeading": "利用可能な DLC {0} [{1}]",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "編集",
"Cancel": "キャンセル",
@@ -784,7 +758,7 @@
"GraphicsAATooltip": "ゲームレンダリングにアンチエイリアスを適用します.\n\nFXAAは画像の大部分をぼかし, SMAAはギザギザのエッジを見つけて滑らかにします.\n\nFSRスケーリングフィルタとの併用は推奨しません.\n\nこのオプションは, ゲーム実行中に下の「適用」をクリックして変更できます. 設定ウィンドウを脇に移動し, ゲームが好みの表示になるように試してみてください.\n\n不明な場合は「なし」のままにしておいてください.",
"GraphicsAALabel": "アンチエイリアス:",
"GraphicsScalingFilterLabel": "スケーリングフィルタ:",
- "GraphicsScalingFilterTooltip": "解像度変更時に適用されるスケーリングフィルタを選択します.\n\nBilinearは3Dゲームに適しており, 安全なデフォルトオプションです.\n\nピクセルアートゲームにはNearestを推奨します.\n\nFSR 1.0は単なるシャープニングフィルタであり, FXAAやSMAAとの併用は推奨されません.\n\nこのオプションは, ゲーム実行中に下の「適用」をクリックすることで変更できます. 設定ウィンドウを脇に移動し, ゲームが好みの表示になるように試してみてください.\n\n不明な場合はBilinearのままにしておいてください.",
+ "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nArea scaling is recommended when downscaling resolutions that are larger than the output window. It can be used to achieve a supersampled anti-aliasing effect when downscaling by more than 2x.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
"GraphicsScalingFilterBilinear": "Bilinear",
"GraphicsScalingFilterNearest": "Nearest",
"GraphicsScalingFilterFsr": "FSR",
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index bcac40138..8e23f7872 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -2,101 +2,95 @@
"Language": "한국어",
"MenuBarFileOpenApplet": "애플릿 열기",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "독립 실행형 모드로 Mii 편집기 애플릿 열기",
- "SettingsTabInputDirectMouseAccess": "마우스 직접 접근",
- "SettingsTabSystemMemoryManagerMode": "메모리 관리자 모드 :",
+ "SettingsTabInputDirectMouseAccess": "다이렉트 마우스 접근",
+ "SettingsTabSystemMemoryManagerMode": "메모리 관리자 모드:",
"SettingsTabSystemMemoryManagerModeSoftware": "소프트웨어",
- "SettingsTabSystemMemoryManagerModeHost": "호스트(빠름)",
- "SettingsTabSystemMemoryManagerModeHostUnchecked": "호스트 확인 안함(가장 빠르나 위험)",
- "SettingsTabSystemUseHypervisor": "하이퍼바이저 사용",
- "MenuBarFile": "파일(_F)",
- "MenuBarFileOpenFromFile": "파일에서 앱 불러오기(_L)",
- "MenuBarFileOpenFromFileError": "선택한 파일에서 앱을 찾을 수 없습니다.",
- "MenuBarFileOpenUnpacked": "압축 푼 게임 불러오기(_U)",
- "MenuBarFileLoadDlcFromFolder": "폴더에서 DLC 불러오기",
- "MenuBarFileLoadTitleUpdatesFromFolder": "폴더에서 타이틀 업데이트 불러오기",
+ "SettingsTabSystemMemoryManagerModeHost": "호스트 (빠름)",
+ "SettingsTabSystemMemoryManagerModeHostUnchecked": "호스트 확인 안함 (가장 빠르나 안전하지 않음)",
+ "SettingsTabSystemUseHypervisor": "하이퍼바이저 사용하기",
+ "MenuBarFile": "_파일",
+ "MenuBarFileOpenFromFile": "_파일에서 응용 프로그램 불러오기",
+ "MenuBarFileOpenFromFileError": "선택한 파일에서 애플리케이션을 찾을 수 없습니다.",
+ "MenuBarFileOpenUnpacked": "_압축을 푼 게임 불러오기",
"MenuBarFileOpenEmuFolder": "Ryujinx 폴더 열기",
"MenuBarFileOpenLogsFolder": "로그 폴더 열기",
- "MenuBarFileExit": "종료(_E)",
+ "MenuBarFileExit": "_종료",
"MenuBarOptions": "옵션(_O)",
- "MenuBarOptionsToggleFullscreen": "전체 화면 전환",
- "MenuBarOptionsStartGamesInFullscreen": "전체 화면 모드로 게임 시작",
+ "MenuBarOptionsToggleFullscreen": "전체화면 전환",
+ "MenuBarOptionsStartGamesInFullscreen": "전체 화면 모드에서 게임 시작",
"MenuBarOptionsStopEmulation": "에뮬레이션 중지",
- "MenuBarOptionsSettings": "설정(_S)",
- "MenuBarOptionsManageUserProfiles": "사용자 프로필 관리(_M)",
- "MenuBarActions": "동작(_A)",
- "MenuBarOptionsSimulateWakeUpMessage": "웨이크업 메시지 시뮬레이션",
+ "MenuBarOptionsSettings": "_설정",
+ "MenuBarOptionsManageUserProfiles": "_사용자 프로파일 관리",
+ "MenuBarActions": "_동작",
+ "MenuBarOptionsSimulateWakeUpMessage": "깨우기 메시지 시뮬레이션",
"MenuBarActionsScanAmiibo": "Amiibo 스캔",
- "MenuBarTools": "도구(_T)",
+ "MenuBarTools": "_도구",
"MenuBarToolsInstallFirmware": "펌웨어 설치",
- "MenuBarFileToolsInstallFirmwareFromFile": "XCI 또는 ZIP으로 펌웨어 설치",
+ "MenuBarFileToolsInstallFirmwareFromFile": "XCI 또는 ZIP에서 펌웨어 설치",
"MenuBarFileToolsInstallFirmwareFromDirectory": "디렉터리에서 펌웨어 설치",
"MenuBarToolsManageFileTypes": "파일 형식 관리",
"MenuBarToolsInstallFileTypes": "파일 형식 설치",
- "MenuBarToolsUninstallFileTypes": "파일 형식 제거",
- "MenuBarToolsXCITrimmer": "XCI 파일 트리머",
- "MenuBarView": "보기(_V)",
- "MenuBarViewWindow": "윈도 창",
+ "MenuBarToolsUninstallFileTypes": "파일 형식 설치 제거",
+ "MenuBarView": "_보기",
+ "MenuBarViewWindow": "창 크기",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "도움말(_H)",
"MenuBarHelpCheckForUpdates": "업데이트 확인",
"MenuBarHelpAbout": "정보",
- "MenuSearch": "찾기...",
+ "MenuSearch": "검색...",
"GameListHeaderFavorite": "즐겨찾기",
"GameListHeaderIcon": "아이콘",
"GameListHeaderApplication": "이름",
"GameListHeaderDeveloper": "개발자",
"GameListHeaderVersion": "버전",
- "GameListHeaderTimePlayed": "플레이 타임",
+ "GameListHeaderTimePlayed": "플레이 시간",
"GameListHeaderLastPlayed": "마지막 플레이",
"GameListHeaderFileExtension": "파일 확장자",
"GameListHeaderFileSize": "파일 크기",
"GameListHeaderPath": "경로",
"GameListContextMenuOpenUserSaveDirectory": "사용자 저장 디렉터리 열기",
- "GameListContextMenuOpenUserSaveDirectoryToolTip": "앱의 사용자 저장이 포함된 디렉터리 열기",
- "GameListContextMenuOpenDeviceSaveDirectory": "기기 저장 디렉터리 열기",
- "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "앱의 장치 저장이 포함된 디렉터리 열기",
+ "GameListContextMenuOpenUserSaveDirectoryToolTip": "응용프로그램의 사용자 저장이 포함된 디렉터리 열기",
+ "GameListContextMenuOpenDeviceSaveDirectory": "사용자 장치 디렉토리 열기",
+ "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "응용프로그램의 장치 저장이 포함된 디렉터리 열기",
"GameListContextMenuOpenBcatSaveDirectory": "BCAT 저장 디렉터리 열기",
- "GameListContextMenuOpenBcatSaveDirectoryToolTip": "앱의 BCAT 저장이 포함된 디렉터리 열기",
+ "GameListContextMenuOpenBcatSaveDirectoryToolTip": "응용프로그램의 BCAT 저장이 포함된 디렉터리 열기",
"GameListContextMenuManageTitleUpdates": "타이틀 업데이트 관리",
"GameListContextMenuManageTitleUpdatesToolTip": "타이틀 업데이트 관리 창 열기",
"GameListContextMenuManageDlc": "DLC 관리",
"GameListContextMenuManageDlcToolTip": "DLC 관리 창 열기",
"GameListContextMenuCacheManagement": "캐시 관리",
"GameListContextMenuCacheManagementPurgePptc": "대기열 PPTC 재구성",
- "GameListContextMenuCacheManagementPurgePptcToolTip": "다음 게임 실행 부팅 시, PPTC를 트리거하여 다시 구성",
- "GameListContextMenuCacheManagementPurgeShaderCache": "퍼지 셰이더 캐시",
- "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "앱의 셰이더 캐시 삭제",
+ "GameListContextMenuCacheManagementPurgePptcToolTip": "다음 게임 시작에서 부팅 시 PPTC가 다시 빌드하도록 트리거",
+ "GameListContextMenuCacheManagementPurgeShaderCache": "셰이더 캐시 제거",
+ "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "응용프로그램 셰이더 캐시 삭제\n",
"GameListContextMenuCacheManagementOpenPptcDirectory": "PPTC 디렉터리 열기",
- "GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "앱의 PPTC 캐시가 포함된 디렉터리 열기",
+ "GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "응용프로그램 PPTC 캐시가 포함된 디렉터리 열기",
"GameListContextMenuCacheManagementOpenShaderCacheDirectory": "셰이더 캐시 디렉터리 열기",
- "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "앱의 셰이더 캐시가 포함된 디렉터리 열기",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "응용프로그램 셰이더 캐시가 포함된 디렉터리 열기",
"GameListContextMenuExtractData": "데이터 추출",
"GameListContextMenuExtractDataExeFS": "ExeFS",
- "GameListContextMenuExtractDataExeFSToolTip": "앱의 현재 구성에서 ExeFS 추출(업데이트 포함)",
+ "GameListContextMenuExtractDataExeFSToolTip": "응용프로그램의 현재 구성에서 ExeFS 추출 (업데이트 포함)",
"GameListContextMenuExtractDataRomFS": "RomFS",
- "GameListContextMenuExtractDataRomFSToolTip": "앱의 현재 구성에서 RomFS 추출(업데이트 포함)",
+ "GameListContextMenuExtractDataRomFSToolTip": "응용 프로그램의 현재 구성에서 RomFS 추출 (업데이트 포함)",
"GameListContextMenuExtractDataLogo": "로고",
- "GameListContextMenuExtractDataLogoToolTip": "앱의 현재 구성에서 로고 섹션 추출 (업데이트 포함)",
- "GameListContextMenuCreateShortcut": "바로 가기 만들기",
- "GameListContextMenuCreateShortcutToolTip": "선택한 앱을 실행하는 바탕 화면에 바로 가기를 생성",
- "GameListContextMenuCreateShortcutToolTipMacOS": "선택한 앱을 실행하는 macOS 앱 폴더에 바로 가기 만들기",
- "GameListContextMenuOpenModsDirectory": "모드 디렉터리 열기",
- "GameListContextMenuOpenModsDirectoryToolTip": "앱의 모드가 포함된 디렉터리 열기",
- "GameListContextMenuOpenSdModsDirectory": "Atmosphere 모드 디렉터리 열기",
- "GameListContextMenuOpenSdModsDirectoryToolTip": "해당 게임의 모드가 포함된 대체 SD 카드 Atmosphere 디렉터리를 엽니다. 실제 하드웨어용으로 패키징된 모드에 유용합니다.",
- "GameListContextMenuTrimXCI": "XCI 파일 확인 및 트림",
- "GameListContextMenuTrimXCIToolTip": "디스크 공간을 절약하기 위해 XCI 파일 확인 및 트림",
+ "GameListContextMenuExtractDataLogoToolTip": "응용프로그램의 현재 구성에서 로고 섹션 추출 (업데이트 포함)",
+ "GameListContextMenuCreateShortcut": "애플리케이션 바로 가기 만들기",
+ "GameListContextMenuCreateShortcutToolTip": "선택한 애플리케이션을 실행하는 바탕 화면 바로 가기를 만듭니다.",
+ "GameListContextMenuCreateShortcutToolTipMacOS": "해당 게임을 실행할 수 있는 바로가기를 macOS의 응용 프로그램 폴더에 추가합니다.",
+ "GameListContextMenuOpenModsDirectory": "Mod 디렉터리 열기",
+ "GameListContextMenuOpenModsDirectoryToolTip": "해당 게임의 Mod가 저장된 디렉터리 열기",
+ "GameListContextMenuOpenSdModsDirectory": "Atmosphere Mod 디렉터리 열기",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "해당 게임의 Mod가 포함된 대체 SD 카드 Atmosphere 디렉터리를 엽니다. 실제 하드웨어용으로 패키징된 Mod에 유용합니다.",
"StatusBarGamesLoaded": "{0}/{1}개의 게임 불러옴",
"StatusBarSystemVersion": "시스템 버전 : {0}",
- "StatusBarXCIFileTrimming": "XCI 파일 '{0}' 트리밍",
- "LinuxVmMaxMapCountDialogTitle": "메모리 매핑 한계 감지",
+ "LinuxVmMaxMapCountDialogTitle": "감지된 메모리 매핑의 하한선",
"LinuxVmMaxMapCountDialogTextPrimary": "vm.max_map_count의 값을 {0}으로 늘리시겠습니까?",
- "LinuxVmMaxMapCountDialogTextSecondary": "일부 게임은 현재 허용된 것보다 더 많은 메모리 매핑을 만들려고 할 수 있습니다. 이 제한을 초과하면 Ryujinx가 충돌이 발생할 수 있습니다.",
+ "LinuxVmMaxMapCountDialogTextSecondary": "일부 게임은 현재 허용된 것보다 더 많은 메모리 매핑을 생성하려고 시도할 수 있습니다. 이 제한을 초과하는 즉시 Ryujinx에 문제가 발생합니다.",
"LinuxVmMaxMapCountDialogButtonUntilRestart": "예, 다음에 다시 시작할 때까지",
"LinuxVmMaxMapCountDialogButtonPersistent": "예, 영구적으로",
- "LinuxVmMaxMapCountWarningTextPrimary": "메모리 매핑의 최대 용량이 권장 용량보다 부족합니다.",
- "LinuxVmMaxMapCountWarningTextSecondary": "vm.max_map_count({0})의 현재 값은 {1}보다 낮습니다. 일부 게임은 현재 허용된 것보다 더 많은 메모리 매핑을 만들려고 할 수 있습니다. Ryujinx는 이 제한을 초과하자마자 충돌할 것입니다.\n\n제한을 수동으로 늘리거나 Ryujinx가 이를 지원할 수 있도록 pkexec를 설치하는 것을 추천합니다.",
+ "LinuxVmMaxMapCountWarningTextPrimary": "메모리 매핑의 최대 용량이 권장 용량보다 적습니다.",
+ "LinuxVmMaxMapCountWarningTextSecondary": "vm.max_map_count({0})의 현재 값이 {1}보다 낮습니다. 일부 게임은 현재 허용된 것보다 더 많은 메모리 매핑을 생성하려고 시도할 수 있습니다. 이 제한을 초과하는 즉시 Ryujinx에 문제가 발생합니다.\n\n수동으로 제한을 늘리거나 Ryujinx의 도움을 받을 수 있는 pkexec을 설치하는 것이 좋습니다.",
"Settings": "설정",
"SettingsTabGeneral": "사용자 인터페이스",
"SettingsTabGeneralGeneral": "일반",
@@ -104,19 +98,16 @@
"SettingsTabGeneralCheckUpdatesOnLaunch": "시작 시, 업데이트 확인",
"SettingsTabGeneralShowConfirmExitDialog": "\"종료 확인\" 대화 상자 표시",
"SettingsTabGeneralRememberWindowState": "창 크기/위치 기억",
- "SettingsTabGeneralShowTitleBar": "제목 표시줄 표시(다시 시작해야 함)",
- "SettingsTabGeneralHideCursor": "커서 숨기기 :",
+ "SettingsTabGeneralHideCursor": "마우스 커서 숨기기",
"SettingsTabGeneralHideCursorNever": "절대 안 함",
"SettingsTabGeneralHideCursorOnIdle": "유휴 상태",
- "SettingsTabGeneralHideCursorAlways": "항상",
- "SettingsTabGeneralGameDirectories": "게임 데릭터리",
- "SettingsTabGeneralAutoloadDirectories": "DLC/업데이트 디렉터리 자동 불러오기",
- "SettingsTabGeneralAutoloadNote": "누락된 파일을 참조하는 DLC 및 업데이트가 자동으로 언로드",
+ "SettingsTabGeneralHideCursorAlways": "언제나",
+ "SettingsTabGeneralGameDirectories": "게임 디렉터리",
"SettingsTabGeneralAdd": "추가",
"SettingsTabGeneralRemove": "제거",
"SettingsTabSystem": "시스템",
"SettingsTabSystemCore": "코어",
- "SettingsTabSystemSystemRegion": "시스템 지역 :",
+ "SettingsTabSystemSystemRegion": "시스템 지역:",
"SettingsTabSystemSystemRegionJapan": "일본",
"SettingsTabSystemSystemRegionUSA": "미국",
"SettingsTabSystemSystemRegionEurope": "유럽",
@@ -126,7 +117,7 @@
"SettingsTabSystemSystemRegionTaiwan": "대만",
"SettingsTabSystemSystemLanguage": "시스템 언어 :",
"SettingsTabSystemSystemLanguageJapanese": "일본어",
- "SettingsTabSystemSystemLanguageAmericanEnglish": "미국 영어",
+ "SettingsTabSystemSystemLanguageAmericanEnglish": "영어(미국)",
"SettingsTabSystemSystemLanguageFrench": "프랑스어",
"SettingsTabSystemSystemLanguageGerman": "독일어",
"SettingsTabSystemSystemLanguageItalian": "이탈리아어",
@@ -137,31 +128,25 @@
"SettingsTabSystemSystemLanguagePortuguese": "포르투갈어",
"SettingsTabSystemSystemLanguageRussian": "러시아어",
"SettingsTabSystemSystemLanguageTaiwanese": "대만어",
- "SettingsTabSystemSystemLanguageBritishEnglish": "영국 영어",
- "SettingsTabSystemSystemLanguageCanadianFrench": "캐나다 프랑스어",
- "SettingsTabSystemSystemLanguageLatinAmericanSpanish": "남미 스페인어",
+ "SettingsTabSystemSystemLanguageBritishEnglish": "영어(영국)",
+ "SettingsTabSystemSystemLanguageCanadianFrench": "프랑스어(캐나다)",
+ "SettingsTabSystemSystemLanguageLatinAmericanSpanish": "스페인어(라틴 아메리카)",
"SettingsTabSystemSystemLanguageSimplifiedChinese": "중국어 간체",
"SettingsTabSystemSystemLanguageTraditionalChinese": "중국어 번체",
- "SettingsTabSystemSystemTimeZone": "시스템 시간대 :",
- "SettingsTabSystemSystemTime": "시스템 시간 :",
+ "SettingsTabSystemSystemTimeZone": "시스템 시간대:",
+ "SettingsTabSystemSystemTime": "시스템 시간:",
"SettingsTabSystemEnableVsync": "수직 동기화",
"SettingsTabSystemEnablePptc": "PPTC(프로파일된 영구 번역 캐시)",
- "SettingsTabSystemEnableLowPowerPptc": "저전력 PPTC 캐시",
"SettingsTabSystemEnableFsIntegrityChecks": "파일 시스템 무결성 검사",
"SettingsTabSystemAudioBackend": "음향 후단부 :",
"SettingsTabSystemAudioBackendDummy": "더미",
"SettingsTabSystemAudioBackendOpenAL": "OpenAL",
- "SettingsTabSystemAudioBackendSoundIO": "SoundIO",
+ "SettingsTabSystemAudioBackendSoundIO": "사운드IO",
"SettingsTabSystemAudioBackendSDL2": "SDL2",
- "SettingsTabSystemHacks": "핵",
+ "SettingsTabSystemHacks": "해킹",
"SettingsTabSystemHacksNote": "불안정성을 유발할 수 있음",
- "SettingsTabSystemDramSize": "DRAM 크기 :",
- "SettingsTabSystemDramSize4GiB": "4GB",
- "SettingsTabSystemDramSize6GiB": "6GB",
- "SettingsTabSystemDramSize8GiB": "8GB",
- "SettingsTabSystemDramSize12GiB": "12GB",
+ "SettingsTabSystemExpandDramSize": "DRAM을 8GiB로 확장",
"SettingsTabSystemIgnoreMissingServices": "누락된 서비스 무시",
- "SettingsTabSystemIgnoreApplet": "애플릿 무시",
"SettingsTabGraphics": "그래픽",
"SettingsTabGraphicsAPI": "그래픽 API",
"SettingsTabGraphicsEnableShaderCache": "셰이더 캐시 활성화",
@@ -176,38 +161,38 @@
"SettingsTabGraphicsResolutionScaleNative": "원본(720p/1080p)",
"SettingsTabGraphicsResolutionScale2x": "2배(1440p/2160p)",
"SettingsTabGraphicsResolutionScale3x": "3배(2160p/3240p)",
- "SettingsTabGraphicsResolutionScale4x": "4배(2880p/4320p) (권장하지 않음)",
+ "SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (권장하지 않음)",
"SettingsTabGraphicsAspectRatio": "종횡비 :",
"SettingsTabGraphicsAspectRatio4x3": "4:3",
"SettingsTabGraphicsAspectRatio16x9": "16:9",
"SettingsTabGraphicsAspectRatio16x10": "16:10",
"SettingsTabGraphicsAspectRatio21x9": "21:9",
"SettingsTabGraphicsAspectRatio32x9": "32:9",
- "SettingsTabGraphicsAspectRatioStretch": "창에 맞춰 늘리기",
+ "SettingsTabGraphicsAspectRatioStretch": "창에 맞게 늘리기",
"SettingsTabGraphicsDeveloperOptions": "개발자 옵션",
"SettingsTabGraphicsShaderDumpPath": "그래픽 셰이더 덤프 경로 :",
"SettingsTabLogging": "로그 기록",
"SettingsTabLoggingLogging": "로그 기록",
"SettingsTabLoggingEnableLoggingToFile": "파일에 로그 기록 활성화",
- "SettingsTabLoggingEnableStubLogs": "조각 기록 활성화",
- "SettingsTabLoggingEnableInfoLogs": "정보 기록 활성화",
- "SettingsTabLoggingEnableWarningLogs": "경고 기록 활성화",
- "SettingsTabLoggingEnableErrorLogs": "오류 기록 활성화",
- "SettingsTabLoggingEnableTraceLogs": "추적 기록 활성화",
- "SettingsTabLoggingEnableGuestLogs": "방문 기록 활성화",
- "SettingsTabLoggingEnableFsAccessLogs": "파일 시스템 접속 기록 활성화",
- "SettingsTabLoggingFsGlobalAccessLogMode": "파일 시스템 전역 접속 로그 모드 :",
+ "SettingsTabLoggingEnableStubLogs": "스텁 로그 활성화",
+ "SettingsTabLoggingEnableInfoLogs": "정보 로그 활성화",
+ "SettingsTabLoggingEnableWarningLogs": "경고 로그 활성화",
+ "SettingsTabLoggingEnableErrorLogs": "오류 로그 활성화",
+ "SettingsTabLoggingEnableTraceLogs": "추적 로그 활성화",
+ "SettingsTabLoggingEnableGuestLogs": "게스트 로그 활성화",
+ "SettingsTabLoggingEnableFsAccessLogs": "Fs 접속 로그 활성화",
+ "SettingsTabLoggingFsGlobalAccessLogMode": "Fs 전역 접속 로그 모드 :",
"SettingsTabLoggingDeveloperOptions": "개발자 옵션",
- "SettingsTabLoggingDeveloperOptionsNote": "경고 : 성능이 감소합니다.",
- "SettingsTabLoggingGraphicsBackendLogLevel": "그래픽 후단부 기록 레벨 :",
+ "SettingsTabLoggingDeveloperOptionsNote": "경고: 성능이 저하됨",
+ "SettingsTabLoggingGraphicsBackendLogLevel": "그래픽 후단부 로그 수준 :",
"SettingsTabLoggingGraphicsBackendLogLevelNone": "없음",
"SettingsTabLoggingGraphicsBackendLogLevelError": "오류",
- "SettingsTabLoggingGraphicsBackendLogLevelPerformance": "감속",
+ "SettingsTabLoggingGraphicsBackendLogLevelPerformance": "느려짐",
"SettingsTabLoggingGraphicsBackendLogLevelAll": "모두",
- "SettingsTabLoggingEnableDebugLogs": "디버그 기록 활성화",
+ "SettingsTabLoggingEnableDebugLogs": "디버그 로그 활성화",
"SettingsTabInput": "입력",
"SettingsTabInputEnableDockedMode": "도킹 모드",
- "SettingsTabInputDirectKeyboardAccess": "키보드 직접 접속",
+ "SettingsTabInputDirectKeyboardAccess": "직접 키보드 접속",
"SettingsButtonSave": "저장",
"SettingsButtonClose": "닫기",
"SettingsButtonOk": "확인",
@@ -222,12 +207,12 @@
"ControllerSettingsPlayer6": "플레이어 6",
"ControllerSettingsPlayer7": "플레이어 7",
"ControllerSettingsPlayer8": "플레이어 8",
- "ControllerSettingsHandheld": "휴대",
+ "ControllerSettingsHandheld": "휴대 모드",
"ControllerSettingsInputDevice": "입력 장치",
"ControllerSettingsRefresh": "새로 고침",
"ControllerSettingsDeviceDisabled": "비활성화됨",
"ControllerSettingsControllerType": "컨트롤러 유형",
- "ControllerSettingsControllerTypeHandheld": "휴대용",
+ "ControllerSettingsControllerTypeHandheld": "휴대 모드",
"ControllerSettingsControllerTypeProController": "프로 컨트롤러",
"ControllerSettingsControllerTypeJoyConPair": "조이콘 페어링",
"ControllerSettingsControllerTypeJoyConLeft": "좌측 조이콘",
@@ -244,7 +229,7 @@
"ControllerSettingsButtonY": "Y",
"ControllerSettingsButtonPlus": "+",
"ControllerSettingsButtonMinus": "-",
- "ControllerSettingsDPad": "방향키",
+ "ControllerSettingsDPad": "방향 패드",
"ControllerSettingsDPadUp": "↑",
"ControllerSettingsDPadDown": "↓",
"ControllerSettingsDPadLeft": "←",
@@ -254,17 +239,17 @@
"ControllerSettingsStickDown": "↓",
"ControllerSettingsStickLeft": "←",
"ControllerSettingsStickRight": "→",
- "ControllerSettingsStickStick": "스틴",
- "ControllerSettingsStickInvertXAxis": "스틱 X축 반전",
- "ControllerSettingsStickInvertYAxis": "스틱 Y축 반전",
- "ControllerSettingsStickDeadzone": "데드존 :",
+ "ControllerSettingsStickStick": "스틱",
+ "ControllerSettingsStickInvertXAxis": "스틱 X 축 반전",
+ "ControllerSettingsStickInvertYAxis": "스틱 Y 축 반전",
+ "ControllerSettingsStickDeadzone": "사각지대 :",
"ControllerSettingsLStick": "좌측 스틱",
"ControllerSettingsRStick": "우측 스틱",
"ControllerSettingsTriggersLeft": "좌측 트리거",
"ControllerSettingsTriggersRight": "우측 트리거",
"ControllerSettingsTriggersButtonsLeft": "좌측 트리거 버튼",
"ControllerSettingsTriggersButtonsRight": "우측 트리거 버튼",
- "ControllerSettingsTriggers": "트리거",
+ "ControllerSettingsTriggers": "트리거 버튼",
"ControllerSettingsTriggerL": "L",
"ControllerSettingsTriggerR": "R",
"ControllerSettingsTriggerZL": "ZL",
@@ -277,50 +262,50 @@
"ControllerSettingsExtraButtonsRight": "우측 버튼",
"ControllerSettingsMisc": "기타",
"ControllerSettingsTriggerThreshold": "트리거 임계값 :",
- "ControllerSettingsMotion": "모션",
+ "ControllerSettingsMotion": "동작",
"ControllerSettingsMotionUseCemuhookCompatibleMotion": "CemuHook 호환 모션 사용",
"ControllerSettingsMotionControllerSlot": "컨트롤러 슬롯 :",
"ControllerSettingsMotionMirrorInput": "미러 입력",
- "ControllerSettingsMotionRightJoyConSlot": "우측 조이콘 슬롯:",
+ "ControllerSettingsMotionRightJoyConSlot": "우측 조이콘 슬롯 :",
"ControllerSettingsMotionServerHost": "서버 호스트 :",
"ControllerSettingsMotionGyroSensitivity": "자이로 감도 :",
- "ControllerSettingsMotionGyroDeadzone": "자이로 데드존 :",
+ "ControllerSettingsMotionGyroDeadzone": "자이로 사각지대 :",
"ControllerSettingsSave": "저장",
"ControllerSettingsClose": "닫기",
"KeyUnknown": "알 수 없음",
- "KeyShiftLeft": "좌측 Shift",
- "KeyShiftRight": "우측 Shift",
- "KeyControlLeft": "좌측 Ctrl",
- "KeyMacControlLeft": "좌측 ⌃",
- "KeyControlRight": "우측 Ctrl",
- "KeyMacControlRight": "우측 ⌃",
- "KeyAltLeft": "좌측 Alt",
- "KeyMacAltLeft": "좌측 ⌥",
- "KeyAltRight": "우측 Alt",
- "KeyMacAltRight": "우측 ⌥",
- "KeyWinLeft": "좌측 ⊞",
- "KeyMacWinLeft": "좌측 ⌘",
- "KeyWinRight": "우측 ⊞",
- "KeyMacWinRight": "우측 ⌘",
+ "KeyShiftLeft": "왼쪽 Shift",
+ "KeyShiftRight": "오른쪽 Shift",
+ "KeyControlLeft": "왼쪽 Ctrl",
+ "KeyMacControlLeft": "왼쪽 ^",
+ "KeyControlRight": "오른쪽 Ctrl",
+ "KeyMacControlRight": "오른쪽 ^",
+ "KeyAltLeft": "왼쪽 Alt",
+ "KeyMacAltLeft": "왼쪽 ⌥",
+ "KeyAltRight": "오른쪽 Alt",
+ "KeyMacAltRight": "오른쪽 ⌥",
+ "KeyWinLeft": "왼쪽 ⊞",
+ "KeyMacWinLeft": "왼쪽 ⌘",
+ "KeyWinRight": "오른쪽 ⊞",
+ "KeyMacWinRight": "오른쪽 ⌘",
"KeyMenu": "메뉴",
"KeyUp": "↑",
"KeyDown": "↓",
"KeyLeft": "←",
"KeyRight": "→",
"KeyEnter": "엔터",
- "KeyEscape": "Esc",
+ "KeyEscape": "이스케이프",
"KeySpace": "스페이스",
"KeyTab": "탭",
"KeyBackSpace": "백스페이스",
- "KeyInsert": "Insert",
- "KeyDelete": "Delete",
+ "KeyInsert": "Ins",
+ "KeyDelete": "Del",
"KeyPageUp": "Page Up",
"KeyPageDown": "Page Down",
"KeyHome": "Home",
"KeyEnd": "End",
"KeyCapsLock": "Caps Lock",
"KeyScrollLock": "Scroll Lock",
- "KeyPrintScreen": "Print Screen",
+ "KeyPrintScreen": "프린트 스크린",
"KeyPause": "Pause",
"KeyNumLock": "Num Lock",
"KeyClear": "지우기",
@@ -339,7 +324,7 @@
"KeyKeypadSubtract": "키패드 빼기",
"KeyKeypadAdd": "키패드 추가",
"KeyKeypadDecimal": "숫자 키패드",
- "KeyKeypadEnter": "키패드 입력",
+ "KeyKeypadEnter": "키패드 엔터",
"KeyNumber0": "0",
"KeyNumber1": "1",
"KeyNumber2": "2",
@@ -362,9 +347,9 @@
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "연동 해제",
- "GamepadLeftStick": "좌측 스틱 버튼",
- "GamepadRightStick": "우측 스틱 버튼",
+ "KeyUnbound": "바인딩 해제",
+ "GamepadLeftStick": "L 스틱 버튼",
+ "GamepadRightStick": "R 스틱 버튼",
"GamepadLeftShoulder": "좌측 숄더",
"GamepadRightShoulder": "우측 숄더",
"GamepadLeftTrigger": "좌측 트리거",
@@ -375,186 +360,182 @@
"GamepadDpadRight": "→",
"GamepadMinus": "-",
"GamepadPlus": "+",
- "GamepadGuide": "가이드",
+ "GamepadGuide": "안내",
"GamepadMisc1": "기타",
"GamepadPaddle1": "패들 1",
"GamepadPaddle2": "패들 2",
"GamepadPaddle3": "패들 3",
"GamepadPaddle4": "패들 4",
"GamepadTouchpad": "터치패드",
- "GamepadSingleLeftTrigger0": "좌측 트리거 0",
- "GamepadSingleRightTrigger0": "우측 트리거 0",
- "GamepadSingleLeftTrigger1": "좌측 트리거 1",
- "GamepadSingleRightTrigger1": "우측 트리거 1",
+ "GamepadSingleLeftTrigger0": "왼쪽 트리거 0",
+ "GamepadSingleRightTrigger0": "오른쪽 트리거 0",
+ "GamepadSingleLeftTrigger1": "왼쪽 트리거 1",
+ "GamepadSingleRightTrigger1": "오른쪽 트리거 1",
"StickLeft": "좌측 스틱",
"StickRight": "우측 스틱",
- "UserProfilesSelectedUserProfile": "선택된 사용자 프로필 :",
+ "UserProfilesSelectedUserProfile": "선택한 사용자 프로필 :",
"UserProfilesSaveProfileName": "프로필 이름 저장",
"UserProfilesChangeProfileImage": "프로필 이미지 변경",
"UserProfilesAvailableUserProfiles": "사용 가능한 사용자 프로필 :",
- "UserProfilesAddNewProfile": "프로필 만들기",
+ "UserProfilesAddNewProfile": "프로필 생성",
"UserProfilesDelete": "삭제",
"UserProfilesClose": "닫기",
- "ProfileNameSelectionWatermark": "별명 선택",
+ "ProfileNameSelectionWatermark": "닉네임을 입력하세요",
"ProfileImageSelectionTitle": "프로필 이미지 선택",
- "ProfileImageSelectionHeader": "프로필 이미지를 선택",
+ "ProfileImageSelectionHeader": "프로필 이미지 선택",
"ProfileImageSelectionNote": "사용자 지정 프로필 이미지를 가져오거나 시스템 펌웨어에서 아바타 선택 가능",
"ProfileImageSelectionImportImage": "이미지 파일 가져오기",
"ProfileImageSelectionSelectAvatar": "펌웨어 아바타 선택",
- "InputDialogTitle": "대화 상자 입력",
+ "InputDialogTitle": "입력 대화상자",
"InputDialogOk": "확인",
"InputDialogCancel": "취소",
- "InputDialogCancelling": "취소하기",
- "InputDialogClose": "닫기",
"InputDialogAddNewProfileTitle": "프로필 이름 선택",
- "InputDialogAddNewProfileHeader": "프로필 이름을 입력",
+ "InputDialogAddNewProfileHeader": "프로필 이름 입력",
"InputDialogAddNewProfileSubtext": "(최대 길이 : {0})",
- "AvatarChoose": "아바타 선택",
+ "AvatarChoose": "선택",
"AvatarSetBackgroundColor": "배경색 설정",
"AvatarClose": "닫기",
"ControllerSettingsLoadProfileToolTip": "프로필 불러오기",
- "ControllerSettingsViewProfileToolTip": "프로필 보기",
"ControllerSettingsAddProfileToolTip": "프로필 추가",
- "ControllerSettingsRemoveProfileToolTip": "프로필 삭제",
- "ControllerSettingsSaveProfileToolTip": "프로필 추가",
- "MenuBarFileToolsTakeScreenshot": "스크린샷 찍기",
+ "ControllerSettingsRemoveProfileToolTip": "프로필 제거",
+ "ControllerSettingsSaveProfileToolTip": "프로필 저장",
+ "MenuBarFileToolsTakeScreenshot": "스크린 샷 찍기",
"MenuBarFileToolsHideUi": "UI 숨기기",
- "GameListContextMenuRunApplication": "앱 실행",
+ "GameListContextMenuRunApplication": "응용프로그램 실행",
"GameListContextMenuToggleFavorite": "즐겨찾기 전환",
- "GameListContextMenuToggleFavoriteToolTip": "게임의 즐겨찾기 상태 전환",
- "SettingsTabGeneralTheme": "테마 :",
+ "GameListContextMenuToggleFavoriteToolTip": "게임 즐겨찾기 상태 전환",
+ "SettingsTabGeneralTheme": "테마:",
"SettingsTabGeneralThemeAuto": "자동",
- "SettingsTabGeneralThemeDark": "다크",
- "SettingsTabGeneralThemeLight": "라이트",
- "ControllerSettingsConfigureGeneral": "설정",
+ "SettingsTabGeneralThemeDark": "어두운 테마",
+ "SettingsTabGeneralThemeLight": "밝은 테마",
+ "ControllerSettingsConfigureGeneral": "구성",
"ControllerSettingsRumble": "진동",
"ControllerSettingsRumbleStrongMultiplier": "강력한 진동 증폭기",
"ControllerSettingsRumbleWeakMultiplier": "약한 진동 증폭기",
"DialogMessageSaveNotAvailableMessage": "{0} [{1:x16}]에 대한 저장 데이터가 없음",
- "DialogMessageSaveNotAvailableCreateSaveMessage": "이 게임의 저장 데이터를 만들겠습니까?",
+ "DialogMessageSaveNotAvailableCreateSaveMessage": "이 게임에 대한 저장 데이터를 생성하겠습니까?",
"DialogConfirmationTitle": "Ryujinx - 확인",
"DialogUpdaterTitle": "Ryujinx - 업데이터",
"DialogErrorTitle": "Ryujinx - 오류",
"DialogWarningTitle": "Ryujinx - 경고",
"DialogExitTitle": "Ryujinx - 종료",
- "DialogErrorMessage": "Ryujinx에서 오류 발생",
- "DialogExitMessage": "정말 Ryujinx를 닫으시겠습니까?",
- "DialogExitSubMessage": "저장되지 않은 모든 데이터는 손실됩니다!",
- "DialogMessageCreateSaveErrorMessage": "지정된 저장 데이터를 생성하는 동안 오류가 발생 : {0}",
- "DialogMessageFindSaveErrorMessage": "지정된 저장 데이터를 찾는 중 오류가 발생 : {0}",
- "FolderDialogExtractTitle": "압축을 풀 폴더를 선택",
- "DialogNcaExtractionMessage": "{1}에서 {0} 단면 추출 중...",
- "DialogNcaExtractionTitle": "NCA 단면 추출기",
- "DialogNcaExtractionMainNcaNotFoundErrorMessage": "추출에 실패했습니다. 선택한 파일에 기본 NCA가 없습니다.",
- "DialogNcaExtractionCheckLogErrorMessage": "추출에 실패했습니다. 자세한 내용은 로그 파일을 확인하시기 바랍니다.",
- "DialogNcaExtractionSuccessMessage": "성공적으로 추출이 완료되었습니다.",
- "DialogUpdaterConvertFailedMessage": "현재 Ryujinx 버전을 변환할 수 없습니다.",
- "DialogUpdaterCancelUpdateMessage": "업데이트가 취소되었습니다!",
- "DialogUpdaterAlreadyOnLatestVersionMessage": "이미 최신 버전의 Ryujinx를 사용 중입니다!",
- "DialogUpdaterFailedToGetVersionMessage": "GitHub에서 릴리스 정보를 검색하는 동안 오류가 발생했습니다. 현재 GitHub Actions에서 새 릴리스를 컴파일하는 중일 때 발생할 수 있습니다. 몇 분 후에 다시 시도해 주세요.",
- "DialogUpdaterConvertFailedGithubMessage": "GitHub에서 받은 Ryujinx 버전을 변환하지 못했습니다.",
- "DialogUpdaterDownloadingMessage": "업데이트 내려받는 중...",
+ "DialogErrorMessage": "Ryujinx 오류 발생",
+ "DialogExitMessage": "Ryujinx를 종료하겠습니까?",
+ "DialogExitSubMessage": "저장하지 않은 모든 데이터는 손실됩니다!",
+ "DialogMessageCreateSaveErrorMessage": "지정된 저장 데이터를 작성하는 중에 오류 발생: {0}",
+ "DialogMessageFindSaveErrorMessage": "지정된 저장 데이터를 찾는 중에 오류 발생: {0}",
+ "FolderDialogExtractTitle": "추출할 폴더 선택",
+ "DialogNcaExtractionMessage": "{1}에서 {0} 섹션을 추출하는 중...",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA 섹션 추출기",
+ "DialogNcaExtractionMainNcaNotFoundErrorMessage": "추출 실패하였습니다. 선택한 파일에 기본 NCA가 없습니다.",
+ "DialogNcaExtractionCheckLogErrorMessage": "추출 실패하였습니다. 자세한 내용은 로그 파일을 읽으세요.",
+ "DialogNcaExtractionSuccessMessage": "추출이 성공적으로 완료되었습니다.",
+ "DialogUpdaterConvertFailedMessage": "현재 Ryujinx 버전을 변환하지 못했습니다.",
+ "DialogUpdaterCancelUpdateMessage": "업데이트 취소 중 입니다!",
+ "DialogUpdaterAlreadyOnLatestVersionMessage": "이미 최신 버전의 Ryujinx를 사용하고 있습니다!",
+ "DialogUpdaterFailedToGetVersionMessage": "GitHub 릴리스에서 릴리스 정보를 가져오는 중에 오류가 발생했습니다. 이는 GitHub Actions에서 새 릴리스를 컴파일하는 경우 발생할 수 있습니다. 몇 분 후에 다시 시도하세요.",
+ "DialogUpdaterConvertFailedGithubMessage": "Github 개정에서 받은 Ryujinx 버전을 변환하지 못했습니다.",
+ "DialogUpdaterDownloadingMessage": "업데이트 다운로드 중...",
"DialogUpdaterExtractionMessage": "업데이트 추출 중...",
- "DialogUpdaterRenamingMessage": "이름 변경 업데이트...",
+ "DialogUpdaterRenamingMessage": "업데이트 이름 바꾸는 중...",
"DialogUpdaterAddingFilesMessage": "새 업데이트 추가 중...",
- "DialogUpdaterCompleteMessage": "업데이트가 완료되었습니다!",
- "DialogUpdaterRestartMessage": "지금 Ryujinx를 다시 시작하시겠습니까?",
+ "DialogUpdaterCompleteMessage": "업데이트를 완료했습니다!",
+ "DialogUpdaterRestartMessage": "지금 Ryujinx를 다시 시작하겠습니까?",
"DialogUpdaterNoInternetMessage": "인터넷에 연결되어 있지 않습니다!",
- "DialogUpdaterNoInternetSubMessage": "인터넷이 제대로 연결되어 있는지 확인하세요!",
- "DialogUpdaterDirtyBuildMessage": "Ryujinx의 더티 빌드는 업데이트할 수 없습니다!",
- "DialogUpdaterDirtyBuildSubMessage": "지원되는 버전을 찾으신다면 https://github.com/GreemDev/Ryujinx/releases/에서 Ryujinx를 내려받으세요.",
- "DialogRestartRequiredMessage": "다시 시작 필요",
- "DialogThemeRestartMessage": "테마를 저장했습니다. 테마를 적용하려면 다시 시작해야 합니다.",
- "DialogThemeRestartSubMessage": "다시 시작하시겠습니까?",
- "DialogFirmwareInstallEmbeddedMessage": "이 게임에 포함된 펌웨어를 설치하시겠습니까?(Firmware {0})",
- "DialogFirmwareInstallEmbeddedSuccessMessage": "설치된 펌웨어를 찾을 수 없지만 Ryujinx는 제공된 게임에서 펌웨어 {0}을(를) 설치할 수 있습니다.\n이제 에뮬레이터가 시작됩니다.",
- "DialogFirmwareNoFirmwareInstalledMessage": "펌웨어가 설치되어 있지 않음",
+ "DialogUpdaterNoInternetSubMessage": "인터넷 연결이 작동하는지 확인하세요!",
+ "DialogUpdaterDirtyBuildMessage": "Ryujinx의 나쁜 빌드는 업데이트할 수 없습니다!\n",
+ "DialogUpdaterDirtyBuildSubMessage": "지원되는 버전을 찾고 있다면 https://ryujinx.org/에서 Ryujinx를 다운로드하세요.",
+ "DialogRestartRequiredMessage": "재시작 필요",
+ "DialogThemeRestartMessage": "테마가 저장되었습니다. 테마를 적용하려면 다시 시작해야 합니다.",
+ "DialogThemeRestartSubMessage": "다시 시작하겠습니까?",
+ "DialogFirmwareInstallEmbeddedMessage": "이 게임에 내장된 펌웨어를 설치하겠습니까? (펌웨어 {0})",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "설치된 펌웨어가 없지만 Ryujinx가 제공된 게임에서 펌웨어 {0}을(를) 설치할 수 있었습니다.\n이제 에뮬레이터가 시작됩니다.",
+ "DialogFirmwareNoFirmwareInstalledMessage": "설치된 펌웨어 없음",
"DialogFirmwareInstalledMessage": "펌웨어 {0}이(가) 설치됨",
"DialogInstallFileTypesSuccessMessage": "파일 형식을 성공적으로 설치했습니다!",
"DialogInstallFileTypesErrorMessage": "파일 형식을 설치하지 못했습니다.",
- "DialogUninstallFileTypesSuccessMessage": "파일 형식이 성공적으로 제거되었습니다!",
+ "DialogUninstallFileTypesSuccessMessage": "파일 형식을 성공적으로 제거했습니다!",
"DialogUninstallFileTypesErrorMessage": "파일 형식을 제거하지 못했습니다.",
"DialogOpenSettingsWindowLabel": "설정 창 열기",
- "DialogOpenXCITrimmerWindowLabel": "XCI 트리머 창",
"DialogControllerAppletTitle": "컨트롤러 애플릿",
- "DialogMessageDialogErrorExceptionMessage": "메시지 대화 상자 표시 오류 : {0}",
- "DialogSoftwareKeyboardErrorExceptionMessage": "소프트웨어 키보드 표시 오류 : {0}",
- "DialogErrorAppletErrorExceptionMessage": "ErrorApplet 대화 상자 표시 오류 : {0}",
+ "DialogMessageDialogErrorExceptionMessage": "메시지 대화상자를 표시하는 동안 오류 발생 : {0}",
+ "DialogSoftwareKeyboardErrorExceptionMessage": "소프트웨어 키보드를 표시하는 동안 오류 발생 : {0}",
+ "DialogErrorAppletErrorExceptionMessage": "오류에플릿 대화상자를 표시하는 동안 오류 발생 : {0}",
"DialogUserErrorDialogMessage": "{0}: {1}",
- "DialogUserErrorDialogInfoMessage": "\n이 오류를 해결하는 방법에 대한 자세한 내용은 설정 가이드를 참조하세요.",
- "DialogUserErrorDialogTitle": "Ryujinx 오류 ({0})",
+ "DialogUserErrorDialogInfoMessage": "\n이 오류를 수정하는 방법에 대한 자세한 내용은 설정 가이드를 따르세요.",
+ "DialogUserErrorDialogTitle": "Ryuijnx 오류 ({0})",
"DialogAmiiboApiTitle": "Amiibo API",
- "DialogAmiiboApiFailFetchMessage": "API에서 정보를 가져오는 중에 오류가 발생했습니다.",
- "DialogAmiiboApiConnectErrorMessage": "Amiibo API 서버에 연결할 수 없습니다. 서비스가 다운되었거나 인터넷 연결이 온라인 상태인지 확인이 필요합니다.",
- "DialogProfileInvalidProfileErrorMessage": "프로필 {0}은(는) 현재 입력 구성 시스템과 호환되지 않습니다.",
- "DialogProfileDefaultProfileOverwriteErrorMessage": "기본 프로필은 덮어쓸 수 없음",
- "DialogProfileDeleteProfileTitle": "프로필 삭제하기",
- "DialogProfileDeleteProfileMessage": "이 작업은 되돌릴 수 없습니다. 계속하시겠습니까?",
+ "DialogAmiiboApiFailFetchMessage": "API에서 정보를 가져오는 동안 오류가 발생했습니다.",
+ "DialogAmiiboApiConnectErrorMessage": "Amiibo API 서버에 연결할 수 없습니다. 서비스가 다운되었거나 인터넷 연결이 온라인 상태인지 확인해야 할 수 있습니다.",
+ "DialogProfileInvalidProfileErrorMessage": "{0} 프로필은 현재 입력 구성 시스템과 호환되지 않습니다.",
+ "DialogProfileDefaultProfileOverwriteErrorMessage": "기본 프로필을 덮어쓸 수 없음",
+ "DialogProfileDeleteProfileTitle": "프로필 삭제",
+ "DialogProfileDeleteProfileMessage": "이 작업은 되돌릴 수 없습니다. 계속하겠습니까?",
"DialogWarning": "경고",
- "DialogPPTCDeletionMessage": "다음에 부팅할 때, PPTC 재구축을 대기열에 추가하려고 합니다.\n\n{0}\n\n계속하시겠습니까?",
- "DialogPPTCDeletionErrorMessage": "{0}에서 PPTC 캐시를 지우는 중 오류 발생 : {1}",
- "DialogShaderDeletionMessage": "다음 셰이더 캐시를 삭제 :\n\n{0}\n\n계속하시겠습니까?",
- "DialogShaderDeletionErrorMessage": "{0}에서 셰이더 캐시를 삭제하는 중 오류 발생 : {1}",
- "DialogRyujinxErrorMessage": "Ryujinx에서 오류 발생",
+ "DialogPPTCDeletionMessage": "다음 부팅 시, PPTC 재구축을 대기열에 추가 :\n\n{0}\n\n계속하겠습니까?",
+ "DialogPPTCDeletionErrorMessage": "{0}에서 PPTC 캐시 삭제 오류 : {1}",
+ "DialogShaderDeletionMessage": "다음에 대한 셰이더 캐시 삭제 :\n\n{0}\n\n계속하겠습니까?",
+ "DialogShaderDeletionErrorMessage": "{0}에서 셰이더 캐시 제거 오류 : {1}",
+ "DialogRyujinxErrorMessage": "Ryujinx에 오류 발생",
"DialogInvalidTitleIdErrorMessage": "UI 오류 : 선택한 게임에 유효한 타이틀 ID가 없음",
"DialogFirmwareInstallerFirmwareNotFoundErrorMessage": "{0}에서 유효한 시스템 펌웨어를 찾을 수 없습니다.",
"DialogFirmwareInstallerFirmwareInstallTitle": "펌웨어 {0} 설치",
"DialogFirmwareInstallerFirmwareInstallMessage": "시스템 버전 {0}이(가) 설치됩니다.",
- "DialogFirmwareInstallerFirmwareInstallSubMessage": "\n\n현재 시스템 버전 {0}을(를) 대체합니다.",
- "DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\n계속하시겠습니까?",
+ "DialogFirmwareInstallerFirmwareInstallSubMessage": "\n\n이것은 현재 시스템 버전 {0}을(를) 대체합니다.",
+ "DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\n계속하겠습니까?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "펌웨어 설치 중...",
- "DialogFirmwareInstallerFirmwareInstallSuccessMessage": "시스템 버전 {0}이(가) 설치되었습니다.",
- "DialogUserProfileDeletionWarningMessage": "선택한 프로필을 삭제하면 다른 프로필을 열 수 없음",
- "DialogUserProfileDeletionConfirmMessage": "선택한 프로필을 삭제하시겠습니까?",
- "DialogUserProfileUnsavedChangesTitle": "경고 - 저장되지 않은 변경 사항",
- "DialogUserProfileUnsavedChangesMessage": "저장되지 않은 사용자 프로필의 변경 사항이 있습니다.",
- "DialogUserProfileUnsavedChangesSubMessage": "변경 사항을 취소하시겠습니까?",
+ "DialogFirmwareInstallerFirmwareInstallSuccessMessage": "시스템 버전 {0}이(가) 성공적으로 설치되었습니다.",
+ "DialogUserProfileDeletionWarningMessage": "선택한 프로파일이 삭제되면 사용 가능한 다른 프로파일이 없음",
+ "DialogUserProfileDeletionConfirmMessage": "선택한 프로파일을 삭제하겠습니까?",
+ "DialogUserProfileUnsavedChangesTitle": "경고 - 변경사항 저장되지 않음",
+ "DialogUserProfileUnsavedChangesMessage": "저장되지 않은 사용자 프로파일을 수정했습니다.",
+ "DialogUserProfileUnsavedChangesSubMessage": "변경사항을 저장하지 않으시겠습니까?",
"DialogControllerSettingsModifiedConfirmMessage": "현재 컨트롤러 설정이 업데이트되었습니다.",
- "DialogControllerSettingsModifiedConfirmSubMessage": "저장하시겠습니까?",
- "DialogLoadFileErrorMessage": "{0}. 오류 파일 : {1}",
- "DialogModAlreadyExistsMessage": "이미 존재하는 모드",
- "DialogModInvalidMessage": "지정한 디렉터리에 모드가 없습니다!",
- "DialogModDeleteNoParentMessage": "삭제 실패 : \"{0}\" 모드의 상위 디렉터리를 찾을 수 없습니다!",
- "DialogDlcNoDlcErrorMessage": "지정된 파일에 선택한 타이틀의 DLC가 포함되어 있지 않습니다!",
- "DialogPerformanceCheckLoggingEnabledMessage": "개발자만 사용하도록 설계된 추적 기록이 활성화되어 있습니다.",
- "DialogPerformanceCheckLoggingEnabledConfirmMessage": "최적의 성능을 위해서는 추적 기록을 비활성화하는 것이 좋습니다. 지금 추적 기록을 비활성화하시겠습니까?",
- "DialogPerformanceCheckShaderDumpEnabledMessage": "개발자만 사용하도록 설계된 셰이더 덤핑이 활성화되어 있습니다.",
- "DialogPerformanceCheckShaderDumpEnabledConfirmMessage": "최적의 성능을 위해서는 셰이더 덤핑을 비활성화하는 것이 좋습니다. 지금 셰이더 덤핑을 비활성화하시겠습니까?",
- "DialogLoadAppGameAlreadyLoadedMessage": "이미 게임을 불러옴",
- "DialogLoadAppGameAlreadyLoadedSubMessage": "다른 게임을 실행하기 전에 에뮬레이션을 중지하거나 에뮬레이터를 닫으세요.",
- "DialogUpdateAddUpdateErrorMessage": "지정한 파일에 선택한 타이틀에 대한 업데이트가 포함되어 있지 않습니다!",
+ "DialogControllerSettingsModifiedConfirmSubMessage": "저장하겠습니까?",
+ "DialogLoadFileErrorMessage": "{0}. 오류 발생 파일 : {1}",
+ "DialogModAlreadyExistsMessage": "Mod가 이미 존재합니다.",
+ "DialogModInvalidMessage": "지정된 디렉터리에 Mod가 없습니다!",
+ "DialogModDeleteNoParentMessage": "삭제 실패: \"{0}\" Mod의 상위 디렉터리를 찾을 수 없습니다!",
+ "DialogDlcNoDlcErrorMessage": "지정된 파일에 선택한 타이틀에 대한 DLC가 포함되어 있지 않습니다!",
+ "DialogPerformanceCheckLoggingEnabledMessage": "개발자만 사용하도록 설계된 추적 로그 기록이 활성화되어 있습니다.",
+ "DialogPerformanceCheckLoggingEnabledConfirmMessage": "최적의 성능을 위해 추적 로그 생성을 비활성화하는 것이 좋습니다. 지금 추적 로그 기록을 비활성화하겠습니까?",
+ "DialogPerformanceCheckShaderDumpEnabledMessage": "개발자만 사용하도록 설계된 셰이더 덤프를 활성화했습니다.",
+ "DialogPerformanceCheckShaderDumpEnabledConfirmMessage": "최적의 성능을 위해 세이더 덤핑을 비활성화하는 것이 좋습니다. 지금 세이더 덤핑을 비활성화하겠습니까?",
+ "DialogLoadAppGameAlreadyLoadedMessage": "이미 게임 불러옴",
+ "DialogLoadAppGameAlreadyLoadedSubMessage": "다른 게임을 시작하기 전에 에뮬레이션을 중지하거나 에뮬레이터를 닫으세요.",
+ "DialogUpdateAddUpdateErrorMessage": "지정된 파일에 선택한 제목에 대한 업데이트가 포함되어 있지 않습니다!",
"DialogSettingsBackendThreadingWarningTitle": "경고 - 후단부 스레딩",
- "DialogSettingsBackendThreadingWarningMessage": "완전히 적용하려면 이 옵션을 변경한 후 Ryujinx를 다시 시작해야 합니다. 플랫폼에 따라 Ryujinx를 사용할 때 드라이버 자체의 다중 스레딩을 수동으로 비활성화해야 할 수도 있습니다.",
- "DialogModManagerDeletionWarningMessage": "모드 삭제 : {0}\n\n계속하시겠습니까?",
- "DialogModManagerDeletionAllWarningMessage": "이 타이틀에 대한 모드를 모두 삭제하려고 합니다.\n\n계속하시겠습니까?",
+ "DialogSettingsBackendThreadingWarningMessage": "변경 사항을 완전히 적용하려면 이 옵션을 변경한 후, Ryujinx를 다시 시작해야 합니다. 플랫폼에 따라 Ryujinx를 사용할 때 드라이버 자체의 멀티스레딩을 수동으로 비활성화해야 할 수도 있습니다.",
+ "DialogModManagerDeletionWarningMessage": "해당 Mod를 삭제하려고 합니다: {0}\n\n정말로 삭제하시겠습니까?",
+ "DialogModManagerDeletionAllWarningMessage": "해당 타이틀에 대한 모든 Mod들을 삭제하려고 합니다.\n\n정말로 삭제하시겠습니까?",
"SettingsTabGraphicsFeaturesOptions": "기능",
- "SettingsTabGraphicsBackendMultithreading": "그래픽 후단부 다중 스레딩 :",
+ "SettingsTabGraphicsBackendMultithreading": "그래픽 후단부 멀티스레딩 :",
"CommonAuto": "자동",
"CommonOff": "끔",
"CommonOn": "켬",
"InputDialogYes": "예",
"InputDialogNo": "아니오",
"DialogProfileInvalidProfileNameErrorMessage": "파일 이름에 잘못된 문자가 포함되어 있습니다. 다시 시도하세요.",
- "MenuBarOptionsPauseEmulation": "일시 중지",
+ "MenuBarOptionsPauseEmulation": "일시 정지",
"MenuBarOptionsResumeEmulation": "다시 시작",
- "AboutUrlTooltipMessage": "클릭하면 기본 브라우저에서 Ryujinx 웹사이트가 열립니다.",
- "AboutDisclaimerMessage": "Ryujinx는 Nintendo™\n또는 그 파트너와 제휴한 바가 없습니다.",
- "AboutAmiiboDisclaimerMessage": "AmiiboAPI(www.amiiboapi.com)는\nAmiibo 에뮬레이션에 사용됩니다.",
- "AboutPatreonUrlTooltipMessage": "클릭하면 기본 브라우저에서 Ryujinx Patreon 페이지가 열립니다.",
- "AboutGithubUrlTooltipMessage": "클릭하면 기본 브라우저에서 Ryujinx GitHub 페이지가 열립니다.",
- "AboutDiscordUrlTooltipMessage": "클릭하면 기본 브라우저에서 Ryujinx 디스코드 서버 초대장이 열립니다.",
- "AboutTwitterUrlTooltipMessage": "클릭하면 기본 브라우저에서 Ryujinx 트위터 페이지가 열립니다.",
+ "AboutUrlTooltipMessage": "기본 브라우저에서 Ryujinx 웹사이트를 열려면 클릭하세요.",
+ "AboutDisclaimerMessage": "Ryujinx는 닌텐도™,\n또는 그 파트너와 제휴한 바가 없습니다.",
+ "AboutAmiiboDisclaimerMessage": "AmiiboAPI (www.amiiboapi.com)는\nAmiibo 에뮬레이션에 사용됩니다.",
+ "AboutPatreonUrlTooltipMessage": "기본 브라우저에서 Ryujinx Patreon 페이지를 열려면 클릭하세요.",
+ "AboutGithubUrlTooltipMessage": "기본 브라우저에서 Ryujinx GitHub 페이지를 열려면 클릭하세요.",
+ "AboutDiscordUrlTooltipMessage": "기본 브라우저에서 Ryujinx 디스코드 서버에 대한 초대를 열려면 클릭하세요.",
+ "AboutTwitterUrlTooltipMessage": "기본 브라우저에서 Ryujinx 트위터 페이지를 열려면 클릭하세요.",
"AboutRyujinxAboutTitle": "정보 :",
- "AboutRyujinxAboutContent": "Ryujinx는 Nintendo Switch™용 에뮬레이터입니다.\nPatreon에서 저희를 후원해 주세요.\nTwitter나 Discord에서 최신 뉴스를 모두 받아보세요.\n기여에 관심이 있는 개발자는 GitHub이나 Discord에서 자세한 내용을 알아볼 수 있습니다.",
+ "AboutRyujinxAboutContent": "Ryujinx는 닌텐도 스위치™용 에뮬레이터입니다.\nPatreon에서 지원해 주세요.\n트위터나 디스코드에서 최신 소식을 받아보세요.\n기여에 참여하고자 하는 개발자는 GitHub 또는 디스코드에서 자세한 내용을 확인할 수 있습니다.",
"AboutRyujinxMaintainersTitle": "유지 관리 :",
- "AboutRyujinxMaintainersContentTooltipMessage": "클릭하면 기본 브라우저에서 기여자 페이지가 열립니다.",
- "AboutRyujinxSupprtersTitle": "Patreon에서 후원 :",
+ "AboutRyujinxMaintainersContentTooltipMessage": "기본 브라우저에서 기여자 페이지를 열려면 클릭하세요.",
+ "AboutRyujinxSupprtersTitle": "Patreon에서 후원:",
"AmiiboSeriesLabel": "Amiibo 시리즈",
"AmiiboCharacterLabel": "캐릭터",
- "AmiiboScanButtonLabel": "스캔하기",
+ "AmiiboScanButtonLabel": "스캔",
"AmiiboOptionsShowAllLabel": "모든 Amiibo 표시",
- "AmiiboOptionsUsRandomTagLabel": "핵 : 무작위 태그 Uuid 사용",
- "DlcManagerTableHeadingEnabledLabel": "활성화",
+ "AmiiboOptionsUsRandomTagLabel": "해킹: 임의의 태그 UUID 사용",
+ "DlcManagerTableHeadingEnabledLabel": "활성화됨",
"DlcManagerTableHeadingTitleIdLabel": "타이틀 ID",
"DlcManagerTableHeadingContainerPathLabel": "컨테이너 경로",
"DlcManagerTableHeadingFullPathLabel": "전체 경로",
@@ -563,158 +544,145 @@
"DlcManagerDisableAllButton": "모두 비활성화",
"ModManagerDeleteAllButton": "모두 삭제",
"MenuBarOptionsChangeLanguage": "언어 변경",
- "MenuBarShowFileTypes": "파일 형식 표시",
+ "MenuBarShowFileTypes": "파일 유형 표시",
"CommonSort": "정렬",
"CommonShowNames": "이름 표시",
"CommonFavorite": "즐겨찾기",
"OrderAscending": "오름차순",
"OrderDescending": "내림차순",
- "SettingsTabGraphicsFeatures": "기능 및 개선 사항",
+ "SettingsTabGraphicsFeatures": "기능ㆍ개선 사항",
"ErrorWindowTitle": "오류 창",
- "ToggleDiscordTooltip": "\"현재 진행 중인\" 디스코드 활동에 Ryujinx를 표시할지 여부를 선택",
- "AddGameDirBoxTooltip": "목록에 추가할 게임 디렉터리를 입력",
+ "ToggleDiscordTooltip": "\"현재 재생 중인\" 디스코드 활동에 Ryujinx를 표시할지 여부 선택",
+ "AddGameDirBoxTooltip": "목록에 추가할 게임 디렉터리 입력",
"AddGameDirTooltip": "목록에 게임 디렉터리 추가",
"RemoveGameDirTooltip": "선택한 게임 디렉터리 제거",
- "AddAutoloadDirBoxTooltip": "목록에 추가할 자동 불러오기 디렉터리를 입력",
- "AddAutoloadDirTooltip": "목록에 자동 불러오기 디렉터리 추가",
- "RemoveAutoloadDirTooltip": "선택한 자동 불러오기 디렉터리 제거",
- "CustomThemeCheckTooltip": "GUI용 사용자 정의 Avalonia 테마를 사용하여 에뮬레이터 메뉴의 모양 변경",
+ "CustomThemeCheckTooltip": "GUI에 사용자 지정 Avalonia 테마를 사용하여 에뮬레이터 메뉴의 모양 변경",
"CustomThemePathTooltip": "사용자 정의 GUI 테마 경로",
"CustomThemeBrowseTooltip": "사용자 정의 GUI 테마 찾아보기",
- "DockModeToggleTooltip": "도킹 모드를 사용하면 에뮬레이트된 시스템이 도킹된 Nintendo Switch처럼 동작합니다. 이 경우, 대부분의 게임에서 그래픽 충실도를 향상시킵니다. 반대로 이 기능을 비활성화하면 에뮬레이트된 시스템이 휴대용 Nintendo Switch처럼 작동하여 그래픽 품질이 저하됩니다.\n\n도킹 모드를 사용할 계획이라면 플레이어 1 컨트롤을 구성하세요. 휴대용 모드를 사용하려는 경우 휴대용 컨트롤을 구성하십시오.\n\n모르면 켬으로 두세요.",
- "DirectKeyboardTooltip": "키보드 직접 접속(HID)을 지원합니다. 텍스트 입력 장치로 키보드에 대한 게임 접속을 제공합니다.\n\nSwitch 하드웨어에서 키보드 사용을 기본적으로 지원하는 게임에서만 작동합니다.\n\n모르면 끔으로 두세요.",
- "DirectMouseTooltip": "마우스 직접 접속(HID)을 지원합니다. 마우스에 대한 게임 접속을 포인팅 장치로 제공합니다.\n\nSwitch 하드웨어에서 마우스 컨트롤을 기본적으로 지원하는 게임에서만 작동하며 거의 없습니다.\n\n활성화하면 터치 스크린 기능이 작동하지 않을 수 있습니다.\n\n모르면 끔으로 두세요.",
+ "DockModeToggleTooltip": "독 모드에서는 에뮬레이트된 시스템이 도킹된 닌텐도 스위치처럼 작동합니다. 이것은 대부분의 게임에서 그래픽 품질을 향상시킵니다. 반대로 이 기능을 비활성화하면 에뮬레이트된 시스템이 휴대용 닌텐도 스위치처럼 작동하여 그래픽 품질이 저하됩니다.\n\n독 모드를 사용하려는 경우 플레이어 1의 컨트롤을 구성하세요. 휴대 모드를 사용하려는 경우 휴대용 컨트롤을 구성하세요.\n\n확실하지 않으면 켜 두세요.",
+ "DirectKeyboardTooltip": "다이렉트 키보드 접근(HID)은 게임에서 사용자의 키보드를 텍스트 입력 장치로 사용할 수 있게끔 제공합니다.\n\n스위치 하드웨어에서 키보드 사용을 네이티브로 지원하는 게임에서만 작동합니다.\n\n이 옵션에 대해 잘 모른다면 끄기를 권장합니다.",
+ "DirectMouseTooltip": "다이렉트 마우스 접근(HID)은 게임에서 사용자의 마우스를 포인터 장치로 사용할 수 있게끔 제공합니다.\n\n스위치 하드웨어에서 마우스 사용을 네이티브로 지원하는 극히 일부 게임에서만 작동합니다.\n\n이 옵션이 활성화된 경우, 터치 스크린 기능이 작동하지 않을 수 있습니다.\n\n이 옵션에 대해 잘 모른다면 끄기를 권장합니다.",
"RegionTooltip": "시스템 지역 변경",
"LanguageTooltip": "시스템 언어 변경",
"TimezoneTooltip": "시스템 시간대 변경",
"TimeTooltip": "시스템 시간 변경",
- "VSyncToggleTooltip": "에뮬레이트된 콘솔의 수직 동기화입니다. 기본적으로 대부분의 게임에서 프레임 제한 기능으로, 비활성화하면 게임이 더 빠른 속도로 실행되거나 로딩 화면이 더 오래 걸리거나 멈출 수 있습니다.\n\n게임 내에서 원하는 단축키(기본값은 F1)로 전환할 수 있습니다. 비활성화하려면 이 작업을 수행하는 것이 좋습니다.\n\n모르면 켬으로 두세요.",
- "PptcToggleTooltip": "번역된 JIT 함수를 저장하여 게임을 불러올 때마다 번역할 필요가 없도록 합니다.\n\n게임을 처음 부팅한 후 끊김 현상을 줄이고 부팅 시간을 크게 단축합니다.\n\n모르면 켬으로 두세요.",
- "LowPowerPptcToggleTooltip": "코어의 3분의 1을 사용하여 PPTC를 불러옵니다.",
- "FsIntegrityToggleTooltip": "게임을 부팅할 때 손상된 파일을 확인하고, 손상된 파일이 감지되면 로그에 해시 오류를 표시합니다.\n\n성능에 영향을 미치지 않으며 문제 해결에 도움이 됩니다.\n\n모르면 켬으로 두세요.",
- "AudioBackendTooltip": "오디오 렌더링에 사용되는 백엔드를 변경합니다.\n\nSDL2가 선호되는 반면 OpenAL 및 SoundIO는 대체 수단으로 사용됩니다. 더미에는 소리가 나지 않습니다.\n\n모르면 SDL2로 설정하세요.",
- "MemoryManagerTooltip": "게스트 메모리 매핑 및 접속 방법을 변경합니다. 에뮬레이트된 CPU 성능에 큰 영향을 미칩니다.\n\n모르면 호스트 확인 안 함으로 설정합니다.",
- "MemoryManagerSoftwareTooltip": "주소 번역에 소프트웨어 페이지 테이블을 사용합니다. 정확도는 가장 높지만 가장 느립니다.",
- "MemoryManagerHostTooltip": "호스트 주소 공간에 메모리를 직접 매핑합니다. JIT 컴파일 및 실행 속도가 훨씬 빨라집니다.",
- "MemoryManagerUnsafeTooltip": "메모리를 직접 매핑하되 접속하기 전에 게스트 주소 공간 내의 주소를 마스킹하지 않습니다. 더 빠르지만 안전성이 희생됩니다. 게스트 애플리케이션은 Ryujinx의 어느 곳에서나 메모리에 접속할 수 있으므로 이 모드에서는 신뢰할 수 있는 프로그램만 실행하세요.",
- "UseHypervisorTooltip": "JIT 대신 Hypervisor를 사용하세요. 사용 가능한 경우 성능이 크게 향상되지만 현재 상태에서는 불안정할 수 있습니다.",
- "DRamTooltip": "Switch 개발 모델을 모방하기 위해 8GB DRAM이 포함된 대체 메모리 모드를 활용합니다.\n\n이는 고해상도 텍스처 팩 또는 4K 해상도 모드에만 유용합니다. 성능을 개선하지 않습니다.\n\n모르면 끔으로 두세요.",
- "IgnoreMissingServicesTooltip": "구현되지 않은 Horizon OS 서비스는 무시됩니다. 특정 게임을 부팅할 때, 발생하는 충돌을 우회하는 데 도움이 될 수 있습니다.\n\n모르면 끔으로 두세요.",
- "IgnoreAppletTooltip": "게임 플레이 중에 게임패드 연결이 끊어지면 외부 대화 상자 \"컨트롤러 애플릿\"이 나타나지 않습니다. 대화 상자를 닫거나 새 컨트롤러를 설정하라는 메시지가 표시되지 않습니다. 이전에 연결이 끊어진 컨트롤러가 다시 연결되면 게임이 자동으로 다시 시작됩니다.",
- "GraphicsBackendThreadingTooltip": "2번째 스레드에서 그래픽 후단부 명령을 실행합니다.\n\n셰이더 컴파일 속도를 높이고, 끊김 현상을 줄이며, 자체 다중 스레딩 지원 없이 GPU 드라이버의 성능을 향상시킵니다. 다중 스레딩이 있는 드라이버에서 성능이 좀 더 좋습니다.\n\n모르면 자동으로 설정합니다.",
- "GalThreadingTooltip": "2번째 스레드에서 그래픽 후단부 명령을 실행합니다.\n\n셰이더 컴파일 속도를 높이고 끊김 현상을 줄이며 자체 다중 스레딩 지원 없이 GPU 드라이버의 성능을 향상시킵니다. 다중 스레딩이 있는 드라이버에서 성능이 좀 더 좋습니다.\n\n모르면 자동으로 설정합니다.",
- "ShaderCacheToggleTooltip": "후속 실행 시 끊김 현상을 줄이는 디스크 셰이더 캐시를 저장합니다.\n\n모르면 켬으로 두세요.",
- "ResolutionScaleTooltip": "게임의 렌더링 해상도를 배가시킵니다.\n\n일부 게임에서는 이 기능이 작동하지 않고 해상도가 높아져도 픽셀화되어 보일 수 있습니다. 해당 게임의 경우 앤티 앨리어싱을 제거하거나 내부 렌더링 해상도를 높이는 모드를 찾아야 할 수 있습니다. 후자를 사용하려면 기본을 선택하는 것이 좋습니다.\n\n이 옵션은 아래의 \"적용\"을 클릭하여 게임이 실행되는 동안 변경할 수 있습니다. 설정 창을 옆으로 옮기고 원하는 게임 모양을 찾을 때까지 실험해 보세요.\n\n4배는 거의 모든 설정에서 과하다는 점을 명심하세요.",
- "ResolutionScaleEntryTooltip": "부동 소수점 해상도 스케일(예: 1.5)입니다. 적분이 아닌 스케일은 문제나 충돌을 일으킬 가능성이 높습니다.",
- "AnisotropyTooltip": "이방성 필터링 수준입니다. 게임에서 요청한 값을 사용하려면 자동으로 설정하세요.",
- "AspectRatioTooltip": "렌더러 창에 적용되는 종횡비입니다.\n\n게임에 종횡비 모드를 사용하는 경우에만 이 설정을 변경하세요. 그렇지 않으면 그래픽이 늘어납니다.\n\n모르면 16:9로 두세요.",
+ "VSyncToggleTooltip": "에뮬레이트된 콘솔의 수직 동기화. 기본적으로 대부분의 게임에 대한 프레임 제한 장치로, 비활성화시 게임이 더 빠른 속도로 실행되거나 로딩 화면이 더 오래 걸리거나 멈출 수 있습니다.\n\n게임 내에서 선호하는 핫키로 전환할 수 있습니다(기본값 F1). 핫키를 비활성화할 계획이라면 이 작업을 수행하는 것이 좋습니다.\n\n이 옵션에 대해 잘 모른다면 켜기를 권장드립니다.",
+ "PptcToggleTooltip": "게임이 불러올 때마다 번역할 필요가 없도록 번역된 JIT 기능을 저장합니다.\n\n게임을 처음 부팅한 후 끊김 현상을 줄이고 부팅 시간을 크게 단축합니다.\n\n확실하지 않으면 켜 두세요.",
+ "FsIntegrityToggleTooltip": "게임을 부팅할 때 손상된 파일을 확인하고 손상된 파일이 감지되면 로그에 해시 오류를 표시합니다.\n\n성능에 영향을 미치지 않으며 문제 해결에 도움이 됩니다.\n\n확실하지 않으면 켜 두세요.",
+ "AudioBackendTooltip": "오디오를 렌더링하는 데 사용되는 백엔드를 변경합니다.\n\nSDL2가 선호되는 반면 OpenAL 및 사운드IO는 폴백으로 사용됩니다. 더미는 소리가 나지 않습니다.\n\n확실하지 않으면 SDL2로 설정하세요.",
+ "MemoryManagerTooltip": "게스트 메모리가 매핑되고 접속되는 방식을 변경합니다. 에뮬레이트된 CPU 성능에 크게 영향을 미칩니다.\n\n확실하지 않은 경우 호스트 확인 안함으로 설정하세요.",
+ "MemoryManagerSoftwareTooltip": "주소 변환을 위해 소프트웨어 페이지 테이블을 사용하세요. 정확도는 가장 높지만 성능은 가장 느립니다.",
+ "MemoryManagerHostTooltip": "호스트 주소 공간의 메모리를 직접 매핑합니다. 훨씬 빠른 JIT 컴파일 및 실행합니다.",
+ "MemoryManagerUnsafeTooltip": "메모리를 직접 매핑하지만 접속하기 전에 게스트 주소 공간 내의 주소를 마스킹하지 마십시오. 더 빠르지만 안전을 희생해야 합니다. 게스트 응용 프로그램은 Ryujinx의 어디에서나 메모리에 접속할 수 있으므로 이 모드에서는 신뢰할 수 있는 프로그램만 실행하세요.",
+ "UseHypervisorTooltip": "JIT 대신 하이퍼바이저를 사용합니다. 하이퍼바이저를 사용할 수 있을 때 성능을 향상시키지만, 현재 상태에서는 불안정할 수 있습니다.",
+ "DRamTooltip": "스위치 개발 모델을 모방하기 위해 8GiB DRAM을 사용하는 대체 메모리 모드를 활용합니다.\n\n이는 고해상도 텍스처 팩이나 4k 해상도 모드에만 유용합니다. 성능을 개선하지 않습니다.\n\n확실하지 않으면 꺼 두세요.",
+ "IgnoreMissingServicesTooltip": "구현되지 않은 호라이즌 OS 서비스를 무시합니다. 이것은 특정 게임을 부팅할 때 충돌을 우회하는 데 도움이 될 수 있습니다.\n\n확실하지 않으면 꺼 두세요.",
+ "GraphicsBackendThreadingTooltip": "두 번째 스레드에서 그래픽 백엔드 명령을 실행합니다.\n\n세이더 컴파일 속도를 높이고 끊김 현상을 줄이며 자체 멀티스레딩 지원 없이 GPU 드라이버의 성능을 향상시킵니다. 멀티스레딩이 있는 드라이버에서 성능이 약간 향상되었습니다.\n\n잘 모르겠으면 자동으로 설정하세요.",
+ "GalThreadingTooltip": "두 번째 스레드에서 그래픽 백엔드 명령을 실행합니다.\n\n세이더 컴파일 속도를 높이고 끊김 현상을 줄이며 자체 멀티스레딩 지원 없이 GPU 드라이버의 성능을 향상시킵니다. 멀티스레딩이 있는 드라이버에서 성능이 약간 향상되었습니다.\n\n잘 모르겠으면 자동으로 설정하세요.",
+ "ShaderCacheToggleTooltip": "후속 실행에서 끊김 현상을 줄이는 디스크 세이더 캐시를 저장합니다.\n\n확실하지 않으면 켜 두세요.",
+ "ResolutionScaleTooltip": "게임의 렌더링 해상도를 늘립니다.\n\n일부 게임에서는 해당 기능을 지원하지 않거나 해상도가 늘어났음에도 픽셀이 자글자글해 보일 수 있습니다; 이러한 게임들의 경우 사용자가 직접 안티 앨리어싱 기능을 끄는 Mod나 내부 렌더링 해상도를 증가시키는 Mod 등을 찾아보아야 합니다. 후자의 Mod를 사용 시에는 해당 옵션을 네이티브로 두시는 것이 좋습니다.\n\n이 옵션은 게임이 구동중일 때에도 아래 Apply 버튼을 눌러서 변경할 수 있습니다; 설정 창을 게임 창 옆에 두고 사용자가 선호하는 해상도를 실험하여 고를 수 있습니다.\n\n4x 설정은 어떤 셋업에서도 무리인 점을 유의하세요.",
+ "ResolutionScaleEntryTooltip": "1.5와 같은 부동 소수점 분해능 스케일입니다. 비통합 척도는 문제나 충돌을 일으킬 가능성이 더 큽니다.",
+ "AnisotropyTooltip": "비등방성 필터링 레벨. 게임에서 요청한 값을 사용하려면 자동으로 설정하세요.",
+ "AspectRatioTooltip": "렌더러 창에 적용될 화면비.\n\n화면비를 변경하는 Mod를 사용할 때에만 이 옵션을 바꾸세요, 그렇지 않을 경우 그래픽이 늘어나 보일 수 있습니다.\n\n이 옵션에 대해 잘 모른다면 16:9로 설정하세요.",
"ShaderDumpPathTooltip": "그래픽 셰이더 덤프 경로",
- "FileLogTooltip": "디스크의 로그 파일에 콘솔 기록을 저장합니다. 성능에 영향을 주지 않습니다.",
- "StubLogTooltip": "콘솔에 조각 기록 메시지를 출력합니다. 성능에 영향을 주지 않습니다.",
- "InfoLogTooltip": "콘솔에 정보 기록 메시지를 출력합니다. 성능에 영향을 주지 않습니다.",
- "WarnLogTooltip": "콘솔에 경고 기록 메시지를 출력합니다. 성능에 영향을 주지 않습니다.",
- "ErrorLogTooltip": "콘솔에 오류 기록 메시지를 출력합니다. 성능에 영향을 주지 않습니다.",
- "TraceLogTooltip": "콘솔에 추적 기록 메시지를 출력합니다. 성능에 영향을 주지 않습니다.",
- "GuestLogTooltip": "콘솔에 게스트 로그 메시지를 출력합니다. 성능에 영향을 주지 않습니다.",
- "FileAccessLogTooltip": "콘솔에 파일 접속 기록 메시지를 출력합니다.",
- "FSAccessLogModeTooltip": "콘솔에 파일 시스템 접속 기록 출력을 활성화합니다. 가능한 모드는 0-3",
+ "FileLogTooltip": "디스크의 로그 파일에 콘솔 로깅을 저장합니다. 성능에 영향을 미치지 않습니다.",
+ "StubLogTooltip": "콘솔에 스텁 로그 메시지를 인쇄합니다. 성능에 영향을 미치지 않습니다.",
+ "InfoLogTooltip": "콘솔에 정보 로그 메시지를 인쇄합니다. 성능에 영향을 미치지 않습니다.",
+ "WarnLogTooltip": "콘솔에 경고 로그 메시지를 인쇄합니다. 성능에 영향을 미치지 않습니다.",
+ "ErrorLogTooltip": "콘솔에 오류 로그 메시지를 인쇄합니다. 성능에 영향을 미치지 않습니다.",
+ "TraceLogTooltip": "콘솔에 추적 로그 메시지를 인쇄합니다. 성능에 영향을 미치지 않습니다.",
+ "GuestLogTooltip": "콘솔에 게스트 로그 메시지를 인쇄합니다. 성능에 영향을 미치지 않습니다.",
+ "FileAccessLogTooltip": "콘솔에 파일 액세스 로그 메시지를 인쇄합니다.",
+ "FSAccessLogModeTooltip": "콘솔에 대한 FS 접속 로그 출력을 활성화합니다. 가능한 모드는 0-3\t\t\t\t",
"DeveloperOptionTooltip": "주의해서 사용",
- "OpenGlLogLevel": "적절한 기록 수준이 활성화되어 있어야 함",
- "DebugLogTooltip": "콘솔에 디버그 기록 메시지를 출력합니다.\n\n담당자가 특별히 요청한 경우에만 이 기능을 사용하십시오. 로그를 읽기 어렵게 만들고 에뮬레이터 성능을 저하시킬 수 있기 때문입니다.",
- "LoadApplicationFileTooltip": "파일 탐색기를 열어 불러올 Switch 호환 파일을 선택",
- "LoadApplicationFolderTooltip": "Switch와 호환되는 압축 해제된 앱을 선택하여 불러오려면 파일 탐색기를 엽니다.",
- "LoadDlcFromFolderTooltip": "파일 탐색기를 열어 DLC를 일괄 불러오기할 폴더를 하나 이상 선택",
- "LoadTitleUpdatesFromFolderTooltip": "파일 탐색기를 열어 하나 이상의 폴더를 선택하여 대량으로 타이틀 업데이트 불러오기",
+ "OpenGlLogLevel": "적절한 로그 수준을 활성화해야 함",
+ "DebugLogTooltip": "콘솔에 디버그 로그 메시지를 인쇄합니다.\n\n로그를 읽기 어렵게 만들고 에뮬레이터 성능을 악화시키므로 직원이 구체적으로 지시한 경우에만 사용하세요.",
+ "LoadApplicationFileTooltip": "파일 탐색기를 열어 불러올 스위치 호환 파일 선택",
+ "LoadApplicationFolderTooltip": "파일 탐색기를 열어 불러올 스위치 호환 압축 해제 응용 프로그램 선택",
"OpenRyujinxFolderTooltip": "Ryujinx 파일 시스템 폴더 열기",
- "OpenRyujinxLogsTooltip": "로그가 기록되는 폴더 열기",
+ "OpenRyujinxLogsTooltip": "로그가 기록된 폴더 열기",
"ExitTooltip": "Ryujinx 종료",
"OpenSettingsTooltip": "설정 창 열기",
- "OpenProfileManagerTooltip": "사용자 프로필 관리자 창 열기",
- "StopEmulationTooltip": "현재 게임의 에뮬레이션을 중지하고 게임 선택으로 돌아가기",
+ "OpenProfileManagerTooltip": "사용자 프로파일 관리자 창 열기",
+ "StopEmulationTooltip": "현재 게임의 에뮬레이션을 중지하고 게임 선택으로 돌아감",
"CheckUpdatesTooltip": "Ryujinx 업데이트 확인",
"OpenAboutTooltip": "정보 창 열기",
- "GridSize": "그리드 크기",
- "GridSizeTooltip": "그리드 항목의 크기 변경",
- "SettingsTabSystemSystemLanguageBrazilianPortuguese": "브라질 포르투갈어",
+ "GridSize": "격자 크기",
+ "GridSizeTooltip": "격자 항목의 크기 변경",
+ "SettingsTabSystemSystemLanguageBrazilianPortuguese": "포르투갈어(브라질)",
"AboutRyujinxContributorsButtonHeader": "모든 기여자 보기",
"SettingsTabSystemAudioVolume": "음량 : ",
- "AudioVolumeTooltip": "음량 변경",
+ "AudioVolumeTooltip": "음향 음량 변경",
"SettingsTabSystemEnableInternetAccess": "게스트 인터넷 접속/LAN 모드",
- "EnableInternetAccessTooltip": "에뮬레이트된 앱을 인터넷에 연결할 수 있습니다.\n\nLAN 모드가 있는 게임은 이 기능이 활성화되고 시스템이 동일한 접속 포인트에 연결되어 있을 때 서로 연결할 수 있습니다. 이는 실제 콘솔도 포함됩니다.\n\nNintendo 서버 연결을 허용하지 않습니다. 인터넷에 연결을 시도하는 특정 게임에서 충돌이 발생할 수 있습니다.\n\n모르면 끔으로 두세요.",
+ "EnableInternetAccessTooltip": "에뮬레이션된 응용프로그램이 인터넷에 연결되도록 허용합니다.\n\nLAN 모드가 있는 게임은 이 모드가 활성화되고 시스템이 동일한 접속 포인트에 연결된 경우 서로 연결할 수 있습니다. 여기에는 실제 콘솔도 포함됩니다.\n\n닌텐도 서버에 연결할 수 없습니다. 인터넷에 연결을 시도하는 특정 게임에서 충돌이 발생할 수 있습니다.\n\n확실하지 않으면 꺼두세요.",
"GameListContextMenuManageCheatToolTip": "치트 관리",
"GameListContextMenuManageCheat": "치트 관리",
- "GameListContextMenuManageModToolTip": "모드 관리",
- "GameListContextMenuManageMod": "모드 관리",
+ "GameListContextMenuManageModToolTip": "Mod 관리",
+ "GameListContextMenuManageMod": "Mod 관리",
"ControllerSettingsStickRange": "범위 :",
"DialogStopEmulationTitle": "Ryujinx - 에뮬레이션 중지",
- "DialogStopEmulationMessage": "에뮬레이션을 중지하시겠습니까?",
+ "DialogStopEmulationMessage": "에뮬레이션을 중지하겠습니까?",
"SettingsTabCpu": "CPU",
- "SettingsTabAudio": "음향",
+ "SettingsTabAudio": "오디오",
"SettingsTabNetwork": "네트워크",
"SettingsTabNetworkConnection": "네트워크 연결",
"SettingsTabCpuCache": "CPU 캐시",
"SettingsTabCpuMemory": "CPU 모드",
"DialogUpdaterFlatpakNotSupportedMessage": "FlatHub를 통해 Ryujinx를 업데이트하세요.",
- "UpdaterDisabledWarningTitle": "업데이터가 비활성화되었습니다!",
+ "UpdaterDisabledWarningTitle": "업데이터 비활성화입니다!",
"ControllerSettingsRotate90": "시계 방향으로 90° 회전",
"IconSize": "아이콘 크기",
"IconSizeTooltip": "게임 아이콘 크기 변경",
"MenuBarOptionsShowConsole": "콘솔 표시",
- "ShaderCachePurgeError": "{0}에서 셰이더 캐시를 삭제하는 중 오류 발생 : {1}",
+ "ShaderCachePurgeError": "{0}에서 셰이더 캐시를 제거하는 중 오류 발생: {1}",
"UserErrorNoKeys": "키를 찾을 수 없음",
"UserErrorNoFirmware": "펌웨어를 찾을 수 없음",
"UserErrorFirmwareParsingFailed": "펌웨어 구문 분석 오류",
- "UserErrorApplicationNotFound": "앱을 찾을 수 없음",
+ "UserErrorApplicationNotFound": "응용 프로그램을 찾을 수 없음",
"UserErrorUnknown": "알 수 없는 오류",
"UserErrorUndefined": "정의되지 않은 오류",
- "UserErrorNoKeysDescription": "Ryujinx가 'prod.keys' 파일을 찾지 못함",
- "UserErrorNoFirmwareDescription": "설치된 펌웨어를 찾을 수 없음",
- "UserErrorFirmwareParsingFailedDescription": "Ryujinx가 제공된 펌웨어를 구문 분석하지 못했습니다. 이는 일반적으로 오래된 키로 인해 발생합니다.",
- "UserErrorApplicationNotFoundDescription": "Ryujinx가 해당 경로에서 유효한 앱을 찾을 수 없습니다.",
+ "UserErrorNoKeysDescription": "Ryujinx가 'prod.keys' 파일을 찾을 수 없음",
+ "UserErrorNoFirmwareDescription": "Ryujinx가 설치된 펌웨어를 찾을 수 없음",
+ "UserErrorFirmwareParsingFailedDescription": "Ryujinx가 제공된 펌웨어를 구문 분석할 수 없습니다. 일반적으로 오래된 키가 원인입니다.",
+ "UserErrorApplicationNotFoundDescription": "Ryujinx가 지정된 경로에서 유효한 응용 프로그램을 찾을 수 없습니다.",
"UserErrorUnknownDescription": "알 수 없는 오류가 발생했습니다!",
- "UserErrorUndefinedDescription": "정의되지 않은 오류가 발생했습니다! 이런 일이 발생하면 안 되니 개발자에게 문의하세요!",
+ "UserErrorUndefinedDescription": "정의되지 않은 오류가 발생했습니다! 이런 일이 발생하면 안 되므로, 개발자에게 문의하세요!",
"OpenSetupGuideMessage": "설정 가이드 열기",
"NoUpdate": "업데이트 없음",
"TitleUpdateVersionLabel": "버전 {0}",
"TitleBundledUpdateVersionLabel": "번들 : 버전 {0}",
"TitleBundledDlcLabel": "번들 :",
- "TitleXCIStatusPartialLabel": "일부",
- "TitleXCIStatusTrimmableLabel": "트리밍되지 않음",
- "TitleXCIStatusUntrimmableLabel": "트리밍됨",
- "TitleXCIStatusFailedLabel": "(실패)",
- "TitleXCICanSaveLabel": "{0:n0} Mb 저장",
- "TitleXCISavingLabel": "{0:n0}Mb 저장됨",
"RyujinxInfo": "Ryujinx - 정보",
"RyujinxConfirm": "Ryujinx - 확인",
- "FileDialogAllTypes": "모든 형식",
+ "FileDialogAllTypes": "모든 유형",
"Never": "절대 안 함",
"SwkbdMinCharacters": "{0}자 이상이어야 함",
- "SwkbdMinRangeCharacters": "{0}-{1}자 길이여야 함",
+ "SwkbdMinRangeCharacters": "{0}-{1}자여야 함",
"SoftwareKeyboard": "소프트웨어 키보드",
- "SoftwareKeyboardModeNumeric": "0-9 또는 '.'만 가능",
- "SoftwareKeyboardModeAlphabet": "CJK 문자가 아닌 문자만 가능",
+ "SoftwareKeyboardModeNumeric": "'0~9' 또는 '.'만 가능",
+ "SoftwareKeyboardModeAlphabet": "한중일 문자가 아닌 문자만 가능",
"SoftwareKeyboardModeASCII": "ASCII 텍스트만 가능",
- "ControllerAppletControllers": "지원되는 컨트롤러 :",
- "ControllerAppletPlayers": "플레이어 :",
- "ControllerAppletDescription": "현재 구성이 유효하지 않습니다. 설정을 열고 입력을 다시 구성하십시오.",
- "ControllerAppletDocked": "도킹 모드가 설정되었습니다. 휴대용 제어 기능을 비활성화해야 합니다.",
- "UpdaterRenaming": "오래된 파일 이름 바꾸기...",
- "UpdaterRenameFailed": "업데이터가 파일 이름을 바꿀 수 없음 : {0}",
- "UpdaterAddingFiles": "새 파일 추가...",
- "UpdaterExtracting": "업데이트 추출...",
- "UpdaterDownloading": "업데이트 내려받기 중...",
+ "ControllerAppletControllers": "지원하는 컨트롤러:",
+ "ControllerAppletPlayers": "플레이어:",
+ "ControllerAppletDescription": "현재 설정은 유효하지 않습니다. 설정을 열어 입력 장치를 다시 설정하세요.",
+ "ControllerAppletDocked": "독 모드가 설정되었습니다. 핸드헬드 컨트롤은 비활성화됩니다.",
+ "UpdaterRenaming": "이전 파일 이름 바꾸는 중...",
+ "UpdaterRenameFailed": "업데이터가 파일 이름을 바꿀 수 없음: {0}",
+ "UpdaterAddingFiles": "새로운 파일을 추가하는 중...",
+ "UpdaterExtracting": "업데이트를 추출하는 중...",
+ "UpdaterDownloading": "업데이트 다운로드 중...",
"Game": "게임",
- "Docked": "도킹",
- "Handheld": "휴대",
- "ConnectionError": "연결 오류가 발생했습니다.",
- "AboutPageDeveloperListMore": "{0} 외...",
- "ApiError": "API 오류.",
- "LoadingHeading": "{0} 불러오는 중",
- "CompilingPPTC": "PTC 컴파일",
- "CompilingShaders": "셰이더 컴파일",
+ "Docked": "도킹됨",
+ "Handheld": "휴대용",
+ "ConnectionError": "연결 오류입니다.",
+ "AboutPageDeveloperListMore": "{0} 등...",
+ "ApiError": "API 오류입니다.",
+ "LoadingHeading": "{0} 로딩 중",
+ "CompilingPPTC": "PTC 컴파일 중",
+ "CompilingShaders": "셰이더 컴파일 중",
"AllKeyboards": "모든 키보드",
- "OpenFileDialogTitle": "지원되는 파일을 선택하여 열기",
- "OpenFolderDialogTitle": "압축 해제된 게임이 있는 폴더를 선택",
+ "OpenFileDialogTitle": "지원되는 파일을 선택",
+ "OpenFolderDialogTitle": "압축을 푼 게임이 있는 폴더 선택",
"AllSupportedFormats": "지원되는 모든 형식",
"RyujinxUpdater": "Ryujinx 업데이터",
"SettingsTabHotkeys": "키보드 단축키",
@@ -722,9 +690,9 @@
"SettingsTabHotkeysToggleVsyncHotkey": "수직 동기화 전환 :",
"SettingsTabHotkeysScreenshotHotkey": "스크린샷 :",
"SettingsTabHotkeysShowUiHotkey": "UI 표시 :",
- "SettingsTabHotkeysPauseHotkey": "중지 :",
- "SettingsTabHotkeysToggleMuteHotkey": "음소거 :",
- "ControllerMotionTitle": "모션 컨트롤 설정",
+ "SettingsTabHotkeysPauseHotkey": "일시 중지 :",
+ "SettingsTabHotkeysToggleMuteHotkey": "음 소거 :",
+ "ControllerMotionTitle": "동작 제어 설정",
"ControllerRumbleTitle": "진동 설정",
"SettingsSelectThemeFileDialogTitle": "테마 파일 선택",
"SettingsXamlThemeFile": "Xaml 테마 파일",
@@ -735,130 +703,83 @@
"Writable": "쓰기 가능",
"SelectDlcDialogTitle": "DLC 파일 선택",
"SelectUpdateDialogTitle": "업데이트 파일 선택",
- "SelectModDialogTitle": "모드 디렉터리 선택",
- "TrimXCIFileDialogTitle": "XCI 파일 확인 및 정리",
- "TrimXCIFileDialogPrimaryText": "이 기능은 먼저 충분한 공간을 확보한 다음 XCI 파일을 트리밍하여 디스크 공간을 절약합니다.",
- "TrimXCIFileDialogSecondaryText": "현재 파일 크기 : {0:n}MB\n게임 데이터 크기 : {1:n}MB\n디스크 공간 절약 : {2:n}MB",
- "TrimXCIFileNoTrimNecessary": "XCI 파일은 트리밍할 필요가 없습니다. 자세한 내용은 로그를 확인",
- "TrimXCIFileNoUntrimPossible": "XCI 파일은 트리밍을 해제할 수 없습니다. 자세한 내용은 로그를 확인",
- "TrimXCIFileReadOnlyFileCannotFix": "XCI 파일은 읽기 전용이므로 쓰기 가능하게 만들 수 없습니다. 자세한 내용은 로그를 확인",
- "TrimXCIFileFileSizeChanged": "XCI 파일이 스캔된 후 크기가 변경되었습니다. 파일이 쓰여지고 있지 않은지 확인하고 다시 시도하세요.",
- "TrimXCIFileFreeSpaceCheckFailed": "XCI 파일에 여유 공간 영역에 데이터가 있으므로 트리밍하는 것이 안전하지 않음",
- "TrimXCIFileInvalidXCIFile": "XCI 파일에 유효하지 않은 데이터가 포함되어 있습니다. 자세한 내용은 로그를 확인",
- "TrimXCIFileFileIOWriteError": "XCI 파일을 쓰기 위해 열 수 없습니다. 자세한 내용은 로그를 확인",
- "TrimXCIFileFailedPrimaryText": "XCI 파일 트리밍에 실패",
- "TrimXCIFileCancelled": "작업이 취소됨",
- "TrimXCIFileFileUndertermined": "작업이 수행되지 않음",
- "UserProfileWindowTitle": "사용자 프로필 관리자",
+ "SelectModDialogTitle": "Mod 디렉터리 선택",
+ "UserProfileWindowTitle": "사용자 프로파일 관리자",
"CheatWindowTitle": "치트 관리자",
- "DlcWindowTitle": "{0} ({1})의 내려받기 가능한 콘텐츠 관리",
- "ModWindowTitle": "{0}({1})의 모드 관리",
+ "DlcWindowTitle": "{0} ({1})의 다운로드 가능한 콘텐츠 관리",
+ "ModWindowTitle": "{0} ({1})의 Mod 관리",
"UpdateWindowTitle": "타이틀 업데이트 관리자",
- "XCITrimmerWindowTitle": "XCI 파일 트리머",
- "XCITrimmerTitleStatusCount": "{1}개 타이틀 중 {0}개 선택됨",
- "XCITrimmerTitleStatusCountWithFilter": "{1}개 타이틀 중 {0}개 선택됨({2}개 표시됨)",
- "XCITrimmerTitleStatusTrimming": "{0}개의 타이틀을 트리밍 중...",
- "XCITrimmerTitleStatusUntrimming": "{0}개의 타이틀을 트리밍 해제 중...",
- "XCITrimmerTitleStatusFailed": "실패",
- "XCITrimmerPotentialSavings": "잠재적 비용 절감",
- "XCITrimmerActualSavings": "실제 비용 절감",
- "XCITrimmerSavingsMb": "{0:n0} Mb",
- "XCITrimmerSelectDisplayed": "표시됨 선택",
- "XCITrimmerDeselectDisplayed": "표시됨 선택 취소",
- "XCITrimmerSortName": "타이틀",
- "XCITrimmerSortSaved": "공간 절약s",
- "UpdateWindowUpdateAddedMessage": "{0}개의 새 업데이트가 추가됨",
- "UpdateWindowBundledContentNotice": "번들 업데이트는 제거할 수 없으며, 비활성화만 가능합니다.",
- "CheatWindowHeading": "{0} [{1}]에 사용 가능한 치트",
- "BuildId": "빌드ID:",
- "DlcWindowBundledContentNotice": "번들 DLC는 제거할 수 없으며 비활성화만 가능합니다.",
- "DlcWindowHeading": "{1} ({2})에 내려받기 가능한 콘텐츠 {0}개 사용 가능",
- "DlcWindowDlcAddedMessage": "{0}개의 새로운 내려받기 가능한 콘텐츠가 추가됨",
- "AutoloadDlcAddedMessage": "{0}개의 새로운 내려받기 가능한 콘텐츠가 추가됨",
- "AutoloadDlcRemovedMessage": "{0}개의 내려받기 가능한 콘텐츠가 제거됨",
- "AutoloadUpdateAddedMessage": "{0}개의 새 업데이트가 추가됨",
- "AutoloadUpdateRemovedMessage": "누락된 업데이트 {0}개 삭제",
- "ModWindowHeading": "{0} 모드",
- "UserProfilesEditProfile": "선택 항목 편집",
- "Continue": "계속",
+ "CheatWindowHeading": "{0} [{1}]에 사용할 수 있는 치트",
+ "BuildId": "빌드ID :",
+ "DlcWindowHeading": "{0} 내려받기 가능한 콘텐츠",
+ "ModWindowHeading": "{0} Mod(s)",
+ "UserProfilesEditProfile": "선택된 항목 편집",
"Cancel": "취소",
"Save": "저장",
- "Discard": "폐기",
- "Paused": "일시 중지됨",
- "UserProfilesSetProfileImage": "프로필 이미지 설정",
- "UserProfileEmptyNameError": "이름 필수 입력",
- "UserProfileNoImageError": "프로필 이미지를 설정해야 함",
+ "Discard": "삭제",
+ "Paused": "일시 중지",
+ "UserProfilesSetProfileImage": "프로파일 이미지 설정",
+ "UserProfileEmptyNameError": "이름 필요",
+ "UserProfileNoImageError": "프로파일 이미지를 설정해야 함",
"GameUpdateWindowHeading": "{0} ({1})에 대한 업데이트 관리",
"SettingsTabHotkeysResScaleUpHotkey": "해상도 증가 :",
"SettingsTabHotkeysResScaleDownHotkey": "해상도 감소 :",
"UserProfilesName": "이름 :",
"UserProfilesUserId": "사용자 ID :",
"SettingsTabGraphicsBackend": "그래픽 후단부",
- "SettingsTabGraphicsBackendTooltip": "에뮬레이터에서 사용할 그래픽 후단부를 선택합니다.\n\nVulkan은 드라이버가 최신 상태인 한 모든 최신 그래픽 카드에 전반적으로 더 좋습니다. Vulkan은 또한 모든 GPU 공급업체에서 더 빠른 셰이더 컴파일(덜 끊김)을 제공합니다.\n\nOpenGL은 오래된 Nvidia GPU, Linux의 오래된 AMD GPU 또는 VRAM이 낮은 GPU에서 더 나은 결과를 얻을 수 있지만 셰이더 컴파일 끊김이 더 큽니다.\n\n모르면 Vulkan으로 설정합니다. 최신 그래픽 드라이버를 사용해도 GPU가 Vulkan을 지원하지 않는 경우 OpenGL로 설정하세요..",
+ "SettingsTabGraphicsBackendTooltip": "에뮬레이터에 사용될 그래픽 백엔드를 선택합니다.\n\nVulkan이 드라이버가 최신이기 때문에 모든 현대 그래픽 카드들에서 더 좋은 성능을 발휘합니다. 또한 Vulkan은 모든 벤더사의 GPU에서 더 빠른 쉐이더 컴파일을 지원하여 스터터링이 적습니다.\n\nOpenGL의 경우 오래된 Nvidia GPU나 오래된 AMD GPU(리눅스 한정), 혹은 VRAM이 적은 GPU에서 더 나은 성능을 발휘할 수는 있으나 쉐이더 컴파일로 인한 스터터링이 Vulkan보다 심할 수 있습니다.\n\n이 옵션에 대해 잘 모른다면 Vulkan으로 설정하세요. 사용하는 GPU가 최신 그래픽 드라이버에서도 Vulkan을 지원하지 않는다면 그 땐 OpenGL로 설정하세요.",
"SettingsEnableTextureRecompression": "텍스처 재압축 활성화",
- "SettingsEnableTextureRecompressionTooltip": "VRAM 사용량을 줄이기 위해 ASTC 텍스처를 압축합니다.\n\n이 텍스처 형식을 사용하는 게임에는 Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder, The Legend of Zelda: Tears of the Kingdom이 있습니다.\n\n4GiB VRAM 이하의 그래픽 카드는 이러한 게임을 실행하는 동안 어느 시점에서 충돌할 가능성이 있습니다.\n\n위에서 언급한 게임에서 VRAM이 부족한 경우에만 활성화합니다. 모르면 끔으로 두세요.",
- "SettingsTabGraphicsPreferredGpu": "기본 GPU",
- "SettingsTabGraphicsPreferredGpuTooltip": "Vulkan 그래픽 후단부와 함께 사용할 그래픽 카드를 선택하세요.\n\nOpenGL에서 사용할 GPU에는 영향을 미치지 않습니다.\n\n모르면 \"dGPU\"로 플래그가 지정된 GPU로 설정하세요. 없으면 그대로 두세요.",
+ "SettingsEnableTextureRecompressionTooltip": "ASTC 텍스처를 압축하여 VRAM 사용량을 줄입니다.\n\n애스트럴 체인, 바요네타 3, 파이어 엠블렘 인게이지, 메트로이드 프라임 리마스터, 슈퍼 마리오브라더스 원더, 젤다의 전설: 티어스 오브 더 킹덤 등이 이러한 텍스처 포맷을 사용합니다.\n\nVRAM이 4GiB 이하인 그래픽 카드로 위와 같은 게임들을 구동할시 특정 지점에서 크래시가 발생할 수 있습니다.\n\n위에 서술된 게임들에서 VRAM이 부족한 경우에만 해당 옵션을 켜고, 그 외의 경우에는 끄기를 권장드립니다.",
+ "SettingsTabGraphicsPreferredGpu": "선호하는 GPU",
+ "SettingsTabGraphicsPreferredGpuTooltip": "Vulkan 그래픽 후단부와 함께 사용할 그래픽 카드를 선택하세요.\n\nOpenGL이 사용할 GPU에는 영향을 미치지 않습니다.\n\n확실하지 않은 경우 \"dGPU\" 플래그가 지정된 GPU로 설정하세요. 없는 경우, 그대로 두세요.",
"SettingsAppRequiredRestartMessage": "Ryujinx 다시 시작 필요",
- "SettingsGpuBackendRestartMessage": "그래픽 후단부 또는 GPU 설정이 수정되었습니다. 이를 적용하려면 다시 시작이 필요",
- "SettingsGpuBackendRestartSubMessage": "지금 다시 시작하시겠습니까?",
- "RyujinxUpdaterMessage": "Ryujinx를 최신 버전으로 업데이트하시겠습니까?",
+ "SettingsGpuBackendRestartMessage": "그래픽 후단부 또는 GPU 설정이 수정되었습니다. 적용하려면 다시 시작해야 합니다.",
+ "SettingsGpuBackendRestartSubMessage": "지금 다시 시작하겠습니까?",
+ "RyujinxUpdaterMessage": "Ryujinx를 최신 버전으로 업데이트하겠습니까?",
"SettingsTabHotkeysVolumeUpHotkey": "음량 증가 :",
"SettingsTabHotkeysVolumeDownHotkey": "음량 감소 :",
"SettingsEnableMacroHLE": "매크로 HLE 활성화",
- "SettingsEnableMacroHLETooltip": "GPU 매크로 코드의 고수준 에뮬레이션입니다.\n\n성능은 향상되지만 일부 게임에서 그래픽 오류가 발생할 수 있습니다.\n\n모르면 켬으로 두세요.",
+ "SettingsEnableMacroHLETooltip": "GPU 매크로 코드의 높은 수준 에뮬레이션입니다.\n\n성능이 향상되지만 일부 게임에서 그래픽 결함이 발생할 수 있습니다.\n\n확실하지 않으면 켜 두세요.",
"SettingsEnableColorSpacePassthrough": "색 공간 통과",
- "SettingsEnableColorSpacePassthroughTooltip": "Vulkan 후단부가 색 공간을 지정하지 않고 색상 정보를 전달하도록 지시합니다. 넓은 색역 화면 표시 장치를 사용하는 사용자의 경우 색상 정확성을 희생하고 더 생생한 색상이 나올 수 있습니다.",
+ "SettingsEnableColorSpacePassthroughTooltip": "색 공간을 지정하지 않고 색상 정보를 전달하도록 Vulkan 후단에 지시합니다. 와이드 가멋 디스플레이를 사용하는 사용자의 경우 색 정확도가 저하되지만 더 생생한 색상을 얻을 수 있습니다.",
"VolumeShort": "음량",
"UserProfilesManageSaves": "저장 관리",
- "DeleteUserSave": "이 게임의 사용자 저장을 삭제하시겠습니까?",
+ "DeleteUserSave": "이 게임에 대한 사용자 저장을 삭제하겠습니까?",
"IrreversibleActionNote": "이 작업은 되돌릴 수 없습니다.",
- "SaveManagerHeading": "{0} ({1})에 대한 저장 관리",
- "SaveManagerTitle": "관리자 저장",
+ "SaveManagerHeading": "{0} ({1})의 저장 관리",
+ "SaveManagerTitle": "저장 관리자",
"Name": "이름",
"Size": "크기",
- "Search": "찾기",
+ "Search": "검색",
"UserProfilesRecoverLostAccounts": "잃어버린 계정 복구",
"Recover": "복구",
"UserProfilesRecoverHeading": "다음 계정에 대한 저장 발견",
- "UserProfilesRecoverEmptyList": "복구할 프로필 없음",
- "GraphicsAATooltip": "게임 렌더에 앤티 앨리어싱을 적용합니다.\n\nFXAA는 이미지 대부분을 흐리게 처리하지만 SMAA는 들쭉날쭉한 가장자리를 찾아 부드럽게 처리합니다.\n\nFSR 스케일링 필터와 함께 사용하지 않는 것이 좋습니다.\n\n이 옵션은 아래의 \"적용\"을 클릭하여 게임을 실행하는 동안 변경할 수 있습니다. 설정 창을 옆으로 옮겨 원하는 게임의 모습을 찾을 때까지 실험해 볼 수 있습니다.\n\n모르면 없음으로 두세요.",
- "GraphicsAALabel": "앤티 앨리어싱 :",
- "GraphicsScalingFilterLabel": "크기 조정 필터 :",
- "GraphicsScalingFilterTooltip": "해상도 스케일을 사용할 때 적용될 스케일링 필터를 선택합니다.\n\n쌍선형은 3D 게임에 적합하며 안전한 기본 옵션입니다.\n\nNearest는 픽셀 아트 게임에 권장됩니다.\n\nFSR 1.0은 단순히 선명도 필터일 뿐이며 FXAA 또는 SMAA와 함께 사용하는 것은 권장되지 않습니다.\n\nArea 스케일링은 출력 창보다 큰 해상도를 다운스케일링할 때 권장됩니다. 2배 이상 다운스케일링할 때 슈퍼샘플링된 앤티앨리어싱 효과를 얻는 데 사용할 수 있습니다.\n\n이 옵션은 아래의 \"적용\"을 클릭하여 게임을 실행하는 동안 변경할 수 있습니다. 설정 창을 옆으로 옮겨 원하는 게임 모양을 찾을 때까지 실험하면 됩니다.\n\n모르면 쌍선형을 그대로 두세요.",
- "GraphicsScalingFilterBilinear": "쌍선형",
- "GraphicsScalingFilterNearest": "근린",
+ "UserProfilesRecoverEmptyList": "복구할 프로파일이 없습니다",
+ "GraphicsAATooltip": "게임 렌더에 안티 앨리어싱을 적용합니다.\n\nFXAA는 대부분의 이미지를 뿌옇게 만들지만, SMAA는 들쭉날쭉한 모서리 부분들을 찾아 부드럽게 만듭니다.\n\nFSR 스케일링 필터와 같이 사용하는 것은 권장하지 않습니다.\n\n이 옵션은 게임이 구동중일 때에도 아래 Apply 버튼을 눌러서 변경할 수 있습니다; 설정 창을 게임 창 옆에 두고 사용자가 선호하는 옵션을 실험하여 고를 수 있습니다.\n\n이 옵션에 대해 잘 모른다면 끄기를 권장드립니다.",
+ "GraphicsAALabel": "안티 앨리어싱:",
+ "GraphicsScalingFilterLabel": "스케일링 필터:",
+ "GraphicsScalingFilterTooltip": "해상도 스케일을 사용할 때 적용될 스케일링 필터를 선택하세요.\n\nBilinear는 3D 게임에 적합하며 안전한 기본 옵션입니다.\n\nNearest는 픽셀 아트 게임에 권장됩니다.\n\nFSR 1.0은 단순히 선명화 필터일 뿐이며 FXAA 또는 SMAA와 함께 사용하는 것은 권장되지 않습니다.\n\n출력창보다 큰 해상도를 다운스케일링할 때는 영역 스케일링을 권장합니다. 2배 이상 다운스케일링할 때 슈퍼샘플링된 앤티앨리어싱 효과를 얻는 데 사용할 수 있습니다.\n\n이 옵션은 아래의 \"적용\"을 클릭하여 게임을 실행하는 동안 변경할 수 있습니다. 설정 창을 옆으로 옮겨 원하는 게임 모양을 찾을 때까지 실험하면 됩니다.\n\n확실하지 않으면 BILINEAR로 두세요.",
+ "GraphicsScalingFilterBilinear": "Bilinear",
+ "GraphicsScalingFilterNearest": "Nearest",
"GraphicsScalingFilterFsr": "FSR",
"GraphicsScalingFilterArea": "영역",
- "GraphicsScalingFilterLevelLabel": "레벨",
- "GraphicsScalingFilterLevelTooltip": "FSR 1.0 선명도 레벨을 설정합니다. 높을수록 더 선명합니다.",
+ "GraphicsScalingFilterLevelLabel": "수준",
+ "GraphicsScalingFilterLevelTooltip": "FSR 1.0의 샤프닝 레벨을 설정하세요. 높을수록 더 또렷해집니다.",
"SmaaLow": "SMAA 낮음",
"SmaaMedium": "SMAA 중간",
"SmaaHigh": "SMAA 높음",
"SmaaUltra": "SMAA 울트라",
- "UserEditorTitle": "사용자 편집",
- "UserEditorTitleCreate": "사용자 만들기",
+ "UserEditorTitle": "사용자 수정",
+ "UserEditorTitleCreate": "사용자 생성",
"SettingsTabNetworkInterface": "네트워크 인터페이스:",
- "NetworkInterfaceTooltip": "LAN/LDN 기능에 사용되는 네트워크 인터페이스입니다.\n\nVPN이나 XLink Kai와 LAN 지원 게임과 함께 사용하면 인터넷을 통한 동일 네트워크 연결을 스푸핑하는 데 사용할 수 있습니다.\n\n모르면 기본값으로 두세요.",
- "NetworkInterfaceDefault": "기본값",
- "PackagingShaders": "패키징 셰이더",
- "AboutChangelogButton": "GitHub에서 변경 내역 보기",
- "AboutChangelogButtonTooltipMessage": "기본 브라우저에서 이 버전의 변경 내역을 열람하려면 클릭하세요.",
- "SettingsTabNetworkMultiplayer": "멀티플레이어",
+ "NetworkInterfaceTooltip": "LAN/LDN 기능에 사용될 네트워크 인터페이스입니다.\n\nLAN 기능을 지원하는 게임에서 VPN이나 XLink Kai 등을 동시에 사용하면, 인터넷을 통해 동일 네트워크 연결인 것을 속일 수 있습니다.\n\n이 옵션에 대해 잘 모른다면 기본값으로 설정하세요.",
+ "NetworkInterfaceDefault": "기본",
+ "PackagingShaders": "셰이더 패키징 중",
+ "AboutChangelogButton": "GitHub에서 변경 로그 보기",
+ "AboutChangelogButtonTooltipMessage": "기본 브라우저에서 이 버전의 변경 로그를 열려면 클릭합니다.",
+ "SettingsTabNetworkMultiplayer": "멀티 플레이어",
"MultiplayerMode": "모드 :",
- "MultiplayerModeTooltip": "LDN 멀티플레이어 모드를 변경합니다.\n\nLdnMitm은 게임의 로컬 무선/로컬 플레이 기능을 LAN처럼 작동하도록 수정하여 다른 Ryujinx 인스턴스나 ldn_mitm 모듈이 설치된 해킹된 Nintendo Switch 콘솔과 로컬, 동일 네트워크 연결이 가능합니다.\n\n멀티플레이어는 모든 플레이어가 동일한 게임 버전을 사용해야 합니다(예: Super Smash Bros. Ultimate v13.0.1은 v13.0.0에 연결할 수 없음).\n\n모르면 비활성화 상태로 두세요.",
+ "MultiplayerModeTooltip": "LDN 멀티플레이어 모드를 변경합니다.\n\nLdnMitm은 로컬 무선/로컬 플레이 기능을 수정하여 LAN 모드에 있는 것처럼 만들어 로컬이나 동일한 네트워크 상에 있는 다른 Ryujinx 인스턴스나 커펌된 닌텐도 스위치 콘솔(ldn_mitm 모듈 설치 필요)과 연결할 수 있습니다.\n\n멀티플레이어 모드는 모든 플레이어들이 동일한 게임 버전을 요구합니다. 예를 들어 슈퍼 스매시브라더스 얼티밋 v13.0.1 사용자는 v13.0.0 사용자와 연결할 수 없습니다.\n\n해당 옵션에 대해 잘 모른다면 비활성화해두세요.",
"MultiplayerModeDisabled": "비활성화됨",
- "MultiplayerModeLdnMitm": "ldn_mitm",
- "MultiplayerModeLdnRyu": "RyuLDN",
- "MultiplayerDisableP2P": "P2P 네트워크 호스팅 비활성화(대기 시간이 늘어날 수 있음)",
- "MultiplayerDisableP2PTooltip": "P2P 네트워크 호스팅을 비활성화하면 피어가 직접 연결하지 않고 마스터 서버를 통해 프록시합니다.",
- "LdnPassphrase": "네트워크 암호 문구 :",
- "LdnPassphraseTooltip": "귀하는 귀하와 동일한 암호를 사용하는 호스팅 게임만 볼 수 있습니다.",
- "LdnPassphraseInputTooltip": "Ryujinx-<8 hex chars> 형식으로 암호를 입력하세요. 귀하는 귀하와 동일한 암호를 사용하는 호스팅 게임만 볼 수 있습니다.",
- "LdnPassphraseInputPublic": "(일반)",
- "GenLdnPass": "무작위 생성",
- "GenLdnPassTooltip": "다른 플레이어와 공유할 수 있는 새로운 암호 문구를 생성합니다.",
- "ClearLdnPass": "지우기",
- "ClearLdnPassTooltip": "현재 암호를 지우고 공용 네트워크로 돌아갑니다.",
- "InvalidLdnPassphrase": "유효하지 않은 암호입니다! \"Ryujinx-<8 hex chars>\" 형식이어야 합니다."
- }
+ "MultiplayerModeLdnMitm": "ldn_mitm"
+}
diff --git a/src/Ryujinx/Assets/Locales/no_NO.json b/src/Ryujinx/Assets/Locales/no_NO.json
new file mode 100644
index 000000000..267b28c81
--- /dev/null
+++ b/src/Ryujinx/Assets/Locales/no_NO.json
@@ -0,0 +1,785 @@
+{
+ "Language": "Norsk",
+ "MenuBarFileOpenApplet": "Open Applet",
+ "MenuBarFileOpenAppletOpenMiiAppletToolTip": "Open Mii Editor Applet in Standalone mode",
+ "SettingsTabInputDirectMouseAccess": "Direct Mouse Access",
+ "SettingsTabSystemMemoryManagerMode": "Memory Manager Mode:",
+ "SettingsTabSystemMemoryManagerModeSoftware": "Software",
+ "SettingsTabSystemMemoryManagerModeHost": "Host (fast)",
+ "SettingsTabSystemMemoryManagerModeHostUnchecked": "Host Unchecked (fastest, unsafe)",
+ "SettingsTabSystemUseHypervisor": "Use Hypervisor",
+ "MenuBarFile": "_File",
+ "MenuBarFileOpenFromFile": "_Load Application From File",
+ "MenuBarFileOpenFromFileError": "No applications found in selected file.",
+ "MenuBarFileOpenUnpacked": "Load _Unpacked Game",
+ "MenuBarFileOpenEmuFolder": "Open Ryujinx Folder",
+ "MenuBarFileOpenLogsFolder": "Open Logs Folder",
+ "MenuBarFileExit": "_Exit",
+ "MenuBarOptions": "_Options",
+ "MenuBarOptionsToggleFullscreen": "Toggle Fullscreen",
+ "MenuBarOptionsStartGamesInFullscreen": "Start Games in Fullscreen Mode",
+ "MenuBarOptionsStopEmulation": "Stop Emulation",
+ "MenuBarOptionsSettings": "_Settings",
+ "MenuBarOptionsManageUserProfiles": "_Manage User Profiles",
+ "MenuBarActions": "_Actions",
+ "MenuBarOptionsSimulateWakeUpMessage": "Simulate Wake-up message",
+ "MenuBarActionsScanAmiibo": "Scan An Amiibo",
+ "MenuBarTools": "_Tools",
+ "MenuBarToolsInstallFirmware": "Install Firmware",
+ "MenuBarFileToolsInstallFirmwareFromFile": "Install a firmware from XCI or ZIP",
+ "MenuBarFileToolsInstallFirmwareFromDirectory": "Install a firmware from a directory",
+ "MenuBarToolsManageFileTypes": "Manage file types",
+ "MenuBarToolsInstallFileTypes": "Install file types",
+ "MenuBarToolsUninstallFileTypes": "Uninstall file types",
+ "MenuBarView": "_View",
+ "MenuBarViewWindow": "Window Size",
+ "MenuBarViewWindow720": "720p",
+ "MenuBarViewWindow1080": "1080p",
+ "MenuBarHelp": "_Help",
+ "MenuBarHelpCheckForUpdates": "Check for Updates",
+ "MenuBarHelpAbout": "About",
+ "MenuSearch": "Search...",
+ "GameListHeaderFavorite": "Fav",
+ "GameListHeaderIcon": "Icon",
+ "GameListHeaderApplication": "Name",
+ "GameListHeaderDeveloper": "Developer",
+ "GameListHeaderVersion": "Version",
+ "GameListHeaderTimePlayed": "Play Time",
+ "GameListHeaderLastPlayed": "Last Played",
+ "GameListHeaderFileExtension": "File Ext",
+ "GameListHeaderFileSize": "File Size",
+ "GameListHeaderPath": "Path",
+ "GameListContextMenuOpenUserSaveDirectory": "Open User Save Directory",
+ "GameListContextMenuOpenUserSaveDirectoryToolTip": "Opens the directory which contains Application's User Save",
+ "GameListContextMenuOpenDeviceSaveDirectory": "Open Device Save Directory",
+ "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "Opens the directory which contains Application's Device Save",
+ "GameListContextMenuOpenBcatSaveDirectory": "Open BCAT Save Directory",
+ "GameListContextMenuOpenBcatSaveDirectoryToolTip": "Opens the directory which contains Application's BCAT Save",
+ "GameListContextMenuManageTitleUpdates": "Manage Title Updates",
+ "GameListContextMenuManageTitleUpdatesToolTip": "Opens the Title Update management window",
+ "GameListContextMenuManageDlc": "Manage DLC",
+ "GameListContextMenuManageDlcToolTip": "Opens the DLC management window",
+ "GameListContextMenuCacheManagement": "Cache Management",
+ "GameListContextMenuCacheManagementPurgePptc": "Queue PPTC Rebuild",
+ "GameListContextMenuCacheManagementPurgePptcToolTip": "Trigger PPTC to rebuild at boot time on the next game launch",
+ "GameListContextMenuCacheManagementPurgeShaderCache": "Purge Shader Cache",
+ "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "Deletes Application's shader cache",
+ "GameListContextMenuCacheManagementOpenPptcDirectory": "Open PPTC Directory",
+ "GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "Opens the directory which contains Application's PPTC cache",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectory": "Open Shader Cache Directory",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "Opens the directory which contains Application's shader cache",
+ "GameListContextMenuExtractData": "Extract Data",
+ "GameListContextMenuExtractDataExeFS": "ExeFS",
+ "GameListContextMenuExtractDataExeFSToolTip": "Extract the ExeFS section from Application's current config (including updates)",
+ "GameListContextMenuExtractDataRomFS": "RomFS",
+ "GameListContextMenuExtractDataRomFSToolTip": "Extract the RomFS section from Application's current config (including updates)",
+ "GameListContextMenuExtractDataLogo": "Logo",
+ "GameListContextMenuExtractDataLogoToolTip": "Extract the Logo section from Application's current config (including updates)",
+ "GameListContextMenuCreateShortcut": "Create Application Shortcut",
+ "GameListContextMenuCreateShortcutToolTip": "Create a Desktop Shortcut that launches the selected Application",
+ "GameListContextMenuCreateShortcutToolTipMacOS": "Create a shortcut in macOS's Applications folder that launches the selected Application",
+ "GameListContextMenuOpenModsDirectory": "Open Mods Directory",
+ "GameListContextMenuOpenModsDirectoryToolTip": "Opens the directory which contains Application's Mods",
+ "GameListContextMenuOpenSdModsDirectory": "Open Atmosphere Mods Directory",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "Opens the alternative SD card Atmosphere directory which contains Application's Mods. Useful for mods that are packaged for real hardware.",
+ "StatusBarGamesLoaded": "{0}/{1} Games Loaded",
+ "StatusBarSystemVersion": "System Version: {0}",
+ "LinuxVmMaxMapCountDialogTitle": "Low limit for memory mappings detected",
+ "LinuxVmMaxMapCountDialogTextPrimary": "Would you like to increase the value of vm.max_map_count to {0}",
+ "LinuxVmMaxMapCountDialogTextSecondary": "Some games might try to create more memory mappings than currently allowed. Ryujinx will crash as soon as this limit gets exceeded.",
+ "LinuxVmMaxMapCountDialogButtonUntilRestart": "Yes, until the next restart",
+ "LinuxVmMaxMapCountDialogButtonPersistent": "Yes, permanently",
+ "LinuxVmMaxMapCountWarningTextPrimary": "Max amount of memory mappings is lower than recommended.",
+ "LinuxVmMaxMapCountWarningTextSecondary": "The current value of vm.max_map_count ({0}) is lower than {1}. Some games might try to create more memory mappings than currently allowed. Ryujinx will crash as soon as this limit gets exceeded.\n\nYou might want to either manually increase the limit or install pkexec, which allows Ryujinx to assist with that.",
+ "Settings": "Settings",
+ "SettingsTabGeneral": "User Interface",
+ "SettingsTabGeneralGeneral": "General",
+ "SettingsTabGeneralEnableDiscordRichPresence": "Enable Discord Rich Presence",
+ "SettingsTabGeneralCheckUpdatesOnLaunch": "Check for Updates on Launch",
+ "SettingsTabGeneralShowConfirmExitDialog": "Show \"Confirm Exit\" Dialog",
+ "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
+ "SettingsTabGeneralHideCursor": "Hide Cursor:",
+ "SettingsTabGeneralHideCursorNever": "Never",
+ "SettingsTabGeneralHideCursorOnIdle": "On Idle",
+ "SettingsTabGeneralHideCursorAlways": "Always",
+ "SettingsTabGeneralGameDirectories": "Game Directories",
+ "SettingsTabGeneralAdd": "Add",
+ "SettingsTabGeneralRemove": "Remove",
+ "SettingsTabSystem": "System",
+ "SettingsTabSystemCore": "Core",
+ "SettingsTabSystemSystemRegion": "System Region:",
+ "SettingsTabSystemSystemRegionJapan": "Japan",
+ "SettingsTabSystemSystemRegionUSA": "USA",
+ "SettingsTabSystemSystemRegionEurope": "Europe",
+ "SettingsTabSystemSystemRegionAustralia": "Australia",
+ "SettingsTabSystemSystemRegionChina": "China",
+ "SettingsTabSystemSystemRegionKorea": "Korea",
+ "SettingsTabSystemSystemRegionTaiwan": "Taiwan",
+ "SettingsTabSystemSystemLanguage": "System Language:",
+ "SettingsTabSystemSystemLanguageJapanese": "Japanese",
+ "SettingsTabSystemSystemLanguageAmericanEnglish": "American English",
+ "SettingsTabSystemSystemLanguageFrench": "French",
+ "SettingsTabSystemSystemLanguageGerman": "German",
+ "SettingsTabSystemSystemLanguageItalian": "Italian",
+ "SettingsTabSystemSystemLanguageSpanish": "Spanish",
+ "SettingsTabSystemSystemLanguageChinese": "Chinese",
+ "SettingsTabSystemSystemLanguageKorean": "Korean",
+ "SettingsTabSystemSystemLanguageDutch": "Dutch",
+ "SettingsTabSystemSystemLanguagePortuguese": "Portuguese",
+ "SettingsTabSystemSystemLanguageRussian": "Russian",
+ "SettingsTabSystemSystemLanguageTaiwanese": "Taiwanese",
+ "SettingsTabSystemSystemLanguageBritishEnglish": "British English",
+ "SettingsTabSystemSystemLanguageCanadianFrench": "Canadian French",
+ "SettingsTabSystemSystemLanguageLatinAmericanSpanish": "Latin American Spanish",
+ "SettingsTabSystemSystemLanguageSimplifiedChinese": "Simplified Chinese",
+ "SettingsTabSystemSystemLanguageTraditionalChinese": "Traditional Chinese",
+ "SettingsTabSystemSystemTimeZone": "System TimeZone:",
+ "SettingsTabSystemSystemTime": "System Time:",
+ "SettingsTabSystemEnableVsync": "VSync",
+ "SettingsTabSystemEnablePptc": "PPTC (Profiled Persistent Translation Cache)",
+ "SettingsTabSystemEnableFsIntegrityChecks": "FS Integrity Checks",
+ "SettingsTabSystemAudioBackend": "Audio Backend:",
+ "SettingsTabSystemAudioBackendDummy": "Dummy",
+ "SettingsTabSystemAudioBackendOpenAL": "OpenAL",
+ "SettingsTabSystemAudioBackendSoundIO": "SoundIO",
+ "SettingsTabSystemAudioBackendSDL2": "SDL2",
+ "SettingsTabSystemHacks": "Hacks",
+ "SettingsTabSystemHacksNote": "May cause instability",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
+ "SettingsTabSystemIgnoreMissingServices": "Ignore Missing Services",
+ "SettingsTabGraphics": "Graphics",
+ "SettingsTabGraphicsAPI": "Graphics API",
+ "SettingsTabGraphicsEnableShaderCache": "Enable Shader Cache",
+ "SettingsTabGraphicsAnisotropicFiltering": "Anisotropic Filtering:",
+ "SettingsTabGraphicsAnisotropicFilteringAuto": "Auto",
+ "SettingsTabGraphicsAnisotropicFiltering2x": "2x",
+ "SettingsTabGraphicsAnisotropicFiltering4x": "4x",
+ "SettingsTabGraphicsAnisotropicFiltering8x": "8x",
+ "SettingsTabGraphicsAnisotropicFiltering16x": "16x",
+ "SettingsTabGraphicsResolutionScale": "Resolution Scale:",
+ "SettingsTabGraphicsResolutionScaleCustom": "Custom (Not recommended)",
+ "SettingsTabGraphicsResolutionScaleNative": "Native (720p/1080p)",
+ "SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
+ "SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
+ "SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (Not recommended)",
+ "SettingsTabGraphicsAspectRatio": "Aspect Ratio:",
+ "SettingsTabGraphicsAspectRatio4x3": "4:3",
+ "SettingsTabGraphicsAspectRatio16x9": "16:9",
+ "SettingsTabGraphicsAspectRatio16x10": "16:10",
+ "SettingsTabGraphicsAspectRatio21x9": "21:9",
+ "SettingsTabGraphicsAspectRatio32x9": "32:9",
+ "SettingsTabGraphicsAspectRatioStretch": "Stretch to Fit Window",
+ "SettingsTabGraphicsDeveloperOptions": "Developer Options",
+ "SettingsTabGraphicsShaderDumpPath": "Graphics Shader Dump Path:",
+ "SettingsTabLogging": "Logging",
+ "SettingsTabLoggingLogging": "Logging",
+ "SettingsTabLoggingEnableLoggingToFile": "Enable Logging to File",
+ "SettingsTabLoggingEnableStubLogs": "Enable Stub Logs",
+ "SettingsTabLoggingEnableInfoLogs": "Enable Info Logs",
+ "SettingsTabLoggingEnableWarningLogs": "Enable Warning Logs",
+ "SettingsTabLoggingEnableErrorLogs": "Enable Error Logs",
+ "SettingsTabLoggingEnableTraceLogs": "Enable Trace Logs",
+ "SettingsTabLoggingEnableGuestLogs": "Enable Guest Logs",
+ "SettingsTabLoggingEnableFsAccessLogs": "Enable Fs Access Logs",
+ "SettingsTabLoggingFsGlobalAccessLogMode": "Fs Global Access Log Mode:",
+ "SettingsTabLoggingDeveloperOptions": "Developer Options",
+ "SettingsTabLoggingDeveloperOptionsNote": "WARNING: Will reduce performance",
+ "SettingsTabLoggingGraphicsBackendLogLevel": "Graphics Backend Log Level:",
+ "SettingsTabLoggingGraphicsBackendLogLevelNone": "None",
+ "SettingsTabLoggingGraphicsBackendLogLevelError": "Error",
+ "SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Slowdowns",
+ "SettingsTabLoggingGraphicsBackendLogLevelAll": "All",
+ "SettingsTabLoggingEnableDebugLogs": "Enable Debug Logs",
+ "SettingsTabInput": "Input",
+ "SettingsTabInputEnableDockedMode": "Docked Mode",
+ "SettingsTabInputDirectKeyboardAccess": "Direct Keyboard Access",
+ "SettingsButtonSave": "Save",
+ "SettingsButtonClose": "Close",
+ "SettingsButtonOk": "OK",
+ "SettingsButtonCancel": "Cancel",
+ "SettingsButtonApply": "Apply",
+ "ControllerSettingsPlayer": "Player",
+ "ControllerSettingsPlayer1": "Player 1",
+ "ControllerSettingsPlayer2": "Player 2",
+ "ControllerSettingsPlayer3": "Player 3",
+ "ControllerSettingsPlayer4": "Player 4",
+ "ControllerSettingsPlayer5": "Player 5",
+ "ControllerSettingsPlayer6": "Player 6",
+ "ControllerSettingsPlayer7": "Player 7",
+ "ControllerSettingsPlayer8": "Player 8",
+ "ControllerSettingsHandheld": "Handheld",
+ "ControllerSettingsInputDevice": "Input Device",
+ "ControllerSettingsRefresh": "Refresh",
+ "ControllerSettingsDeviceDisabled": "Disabled",
+ "ControllerSettingsControllerType": "Controller Type",
+ "ControllerSettingsControllerTypeHandheld": "Handheld",
+ "ControllerSettingsControllerTypeProController": "Pro Controller",
+ "ControllerSettingsControllerTypeJoyConPair": "JoyCon Pair",
+ "ControllerSettingsControllerTypeJoyConLeft": "JoyCon Left",
+ "ControllerSettingsControllerTypeJoyConRight": "JoyCon Right",
+ "ControllerSettingsProfile": "Profile",
+ "ControllerSettingsProfileDefault": "Default",
+ "ControllerSettingsLoad": "Load",
+ "ControllerSettingsAdd": "Add",
+ "ControllerSettingsRemove": "Remove",
+ "ControllerSettingsButtons": "Buttons",
+ "ControllerSettingsButtonA": "A",
+ "ControllerSettingsButtonB": "B",
+ "ControllerSettingsButtonX": "X",
+ "ControllerSettingsButtonY": "Y",
+ "ControllerSettingsButtonPlus": "+",
+ "ControllerSettingsButtonMinus": "-",
+ "ControllerSettingsDPad": "Directional Pad",
+ "ControllerSettingsDPadUp": "Up",
+ "ControllerSettingsDPadDown": "Down",
+ "ControllerSettingsDPadLeft": "Left",
+ "ControllerSettingsDPadRight": "Right",
+ "ControllerSettingsStickButton": "Button",
+ "ControllerSettingsStickUp": "Up",
+ "ControllerSettingsStickDown": "Down",
+ "ControllerSettingsStickLeft": "Left",
+ "ControllerSettingsStickRight": "Right",
+ "ControllerSettingsStickStick": "Stick",
+ "ControllerSettingsStickInvertXAxis": "Invert Stick X",
+ "ControllerSettingsStickInvertYAxis": "Invert Stick Y",
+ "ControllerSettingsStickDeadzone": "Deadzone:",
+ "ControllerSettingsLStick": "Left Stick",
+ "ControllerSettingsRStick": "Right Stick",
+ "ControllerSettingsTriggersLeft": "Triggers Left",
+ "ControllerSettingsTriggersRight": "Triggers Right",
+ "ControllerSettingsTriggersButtonsLeft": "Trigger Buttons Left",
+ "ControllerSettingsTriggersButtonsRight": "Trigger Buttons Right",
+ "ControllerSettingsTriggers": "Triggers",
+ "ControllerSettingsTriggerL": "L",
+ "ControllerSettingsTriggerR": "R",
+ "ControllerSettingsTriggerZL": "ZL",
+ "ControllerSettingsTriggerZR": "ZR",
+ "ControllerSettingsLeftSL": "SL",
+ "ControllerSettingsLeftSR": "SR",
+ "ControllerSettingsRightSL": "SL",
+ "ControllerSettingsRightSR": "SR",
+ "ControllerSettingsExtraButtonsLeft": "Buttons Left",
+ "ControllerSettingsExtraButtonsRight": "Buttons Right",
+ "ControllerSettingsMisc": "Miscellaneous",
+ "ControllerSettingsTriggerThreshold": "Trigger Threshold:",
+ "ControllerSettingsMotion": "Motion",
+ "ControllerSettingsMotionUseCemuhookCompatibleMotion": "Use CemuHook compatible motion",
+ "ControllerSettingsMotionControllerSlot": "Controller Slot:",
+ "ControllerSettingsMotionMirrorInput": "Mirror Input",
+ "ControllerSettingsMotionRightJoyConSlot": "Right JoyCon Slot:",
+ "ControllerSettingsMotionServerHost": "Server Host:",
+ "ControllerSettingsMotionGyroSensitivity": "Gyro Sensitivity:",
+ "ControllerSettingsMotionGyroDeadzone": "Gyro Deadzone:",
+ "ControllerSettingsSave": "Save",
+ "ControllerSettingsClose": "Close",
+ "KeyUnknown": "Unknown",
+ "KeyShiftLeft": "Shift Left",
+ "KeyShiftRight": "Shift Right",
+ "KeyControlLeft": "Ctrl Left",
+ "KeyMacControlLeft": "⌃ Left",
+ "KeyControlRight": "Ctrl Right",
+ "KeyMacControlRight": "⌃ Right",
+ "KeyAltLeft": "Alt Left",
+ "KeyMacAltLeft": "⌥ Left",
+ "KeyAltRight": "Alt Right",
+ "KeyMacAltRight": "⌥ Right",
+ "KeyWinLeft": "⊞ Left",
+ "KeyMacWinLeft": "⌘ Left",
+ "KeyWinRight": "⊞ Right",
+ "KeyMacWinRight": "⌘ Right",
+ "KeyMenu": "Menu",
+ "KeyUp": "Up",
+ "KeyDown": "Down",
+ "KeyLeft": "Left",
+ "KeyRight": "Right",
+ "KeyEnter": "Enter",
+ "KeyEscape": "Escape",
+ "KeySpace": "Space",
+ "KeyTab": "Tab",
+ "KeyBackSpace": "Backspace",
+ "KeyInsert": "Insert",
+ "KeyDelete": "Delete",
+ "KeyPageUp": "Page Up",
+ "KeyPageDown": "Page Down",
+ "KeyHome": "Home",
+ "KeyEnd": "End",
+ "KeyCapsLock": "Caps Lock",
+ "KeyScrollLock": "Scroll Lock",
+ "KeyPrintScreen": "Print Screen",
+ "KeyPause": "Pause",
+ "KeyNumLock": "Num Lock",
+ "KeyClear": "Clear",
+ "KeyKeypad0": "Keypad 0",
+ "KeyKeypad1": "Keypad 1",
+ "KeyKeypad2": "Keypad 2",
+ "KeyKeypad3": "Keypad 3",
+ "KeyKeypad4": "Keypad 4",
+ "KeyKeypad5": "Keypad 5",
+ "KeyKeypad6": "Keypad 6",
+ "KeyKeypad7": "Keypad 7",
+ "KeyKeypad8": "Keypad 8",
+ "KeyKeypad9": "Keypad 9",
+ "KeyKeypadDivide": "Keypad Divide",
+ "KeyKeypadMultiply": "Keypad Multiply",
+ "KeyKeypadSubtract": "Keypad Subtract",
+ "KeyKeypadAdd": "Keypad Add",
+ "KeyKeypadDecimal": "Keypad Decimal",
+ "KeyKeypadEnter": "Keypad Enter",
+ "KeyNumber0": "0",
+ "KeyNumber1": "1",
+ "KeyNumber2": "2",
+ "KeyNumber3": "3",
+ "KeyNumber4": "4",
+ "KeyNumber5": "5",
+ "KeyNumber6": "6",
+ "KeyNumber7": "7",
+ "KeyNumber8": "8",
+ "KeyNumber9": "9",
+ "KeyTilde": "~",
+ "KeyGrave": "`",
+ "KeyMinus": "-",
+ "KeyPlus": "+",
+ "KeyBracketLeft": "[",
+ "KeyBracketRight": "]",
+ "KeySemicolon": ";",
+ "KeyQuote": "\"",
+ "KeyComma": ",",
+ "KeyPeriod": ".",
+ "KeySlash": "/",
+ "KeyBackSlash": "\\",
+ "KeyUnbound": "Unbound",
+ "GamepadLeftStick": "L Stick Button",
+ "GamepadRightStick": "R Stick Button",
+ "GamepadLeftShoulder": "Left Shoulder",
+ "GamepadRightShoulder": "Right Shoulder",
+ "GamepadLeftTrigger": "Left Trigger",
+ "GamepadRightTrigger": "Right Trigger",
+ "GamepadDpadUp": "Up",
+ "GamepadDpadDown": "Down",
+ "GamepadDpadLeft": "Left",
+ "GamepadDpadRight": "Right",
+ "GamepadMinus": "-",
+ "GamepadPlus": "+",
+ "GamepadGuide": "Guide",
+ "GamepadMisc1": "Misc",
+ "GamepadPaddle1": "Paddle 1",
+ "GamepadPaddle2": "Paddle 2",
+ "GamepadPaddle3": "Paddle 3",
+ "GamepadPaddle4": "Paddle 4",
+ "GamepadTouchpad": "Touchpad",
+ "GamepadSingleLeftTrigger0": "Left Trigger 0",
+ "GamepadSingleRightTrigger0": "Right Trigger 0",
+ "GamepadSingleLeftTrigger1": "Left Trigger 1",
+ "GamepadSingleRightTrigger1": "Right Trigger 1",
+ "StickLeft": "Left Stick",
+ "StickRight": "Right Stick",
+ "UserProfilesSelectedUserProfile": "Selected User Profile:",
+ "UserProfilesSaveProfileName": "Save Profile Name",
+ "UserProfilesChangeProfileImage": "Change Profile Image",
+ "UserProfilesAvailableUserProfiles": "Available User Profiles:",
+ "UserProfilesAddNewProfile": "Create Profile",
+ "UserProfilesDelete": "Delete",
+ "UserProfilesClose": "Close",
+ "ProfileNameSelectionWatermark": "Choose a nickname",
+ "ProfileImageSelectionTitle": "Profile Image Selection",
+ "ProfileImageSelectionHeader": "Choose a profile Image",
+ "ProfileImageSelectionNote": "You may import a custom profile image, or select an avatar from system firmware",
+ "ProfileImageSelectionImportImage": "Import Image File",
+ "ProfileImageSelectionSelectAvatar": "Select Firmware Avatar",
+ "InputDialogTitle": "Input Dialog",
+ "InputDialogOk": "OK",
+ "InputDialogCancel": "Cancel",
+ "InputDialogAddNewProfileTitle": "Choose the Profile Name",
+ "InputDialogAddNewProfileHeader": "Please Enter a Profile Name",
+ "InputDialogAddNewProfileSubtext": "(Max Length: {0})",
+ "AvatarChoose": "Choose Avatar",
+ "AvatarSetBackgroundColor": "Set Background Color",
+ "AvatarClose": "Close",
+ "ControllerSettingsLoadProfileToolTip": "Load Profile",
+ "ControllerSettingsAddProfileToolTip": "Add Profile",
+ "ControllerSettingsRemoveProfileToolTip": "Remove Profile",
+ "ControllerSettingsSaveProfileToolTip": "Save Profile",
+ "MenuBarFileToolsTakeScreenshot": "Take Screenshot",
+ "MenuBarFileToolsHideUi": "Hide UI",
+ "GameListContextMenuRunApplication": "Run Application",
+ "GameListContextMenuToggleFavorite": "Toggle Favorite",
+ "GameListContextMenuToggleFavoriteToolTip": "Toggle Favorite status of Game",
+ "SettingsTabGeneralTheme": "Theme:",
+ "SettingsTabGeneralThemeAuto": "Auto",
+ "SettingsTabGeneralThemeDark": "Dark",
+ "SettingsTabGeneralThemeLight": "Light",
+ "ControllerSettingsConfigureGeneral": "Configure",
+ "ControllerSettingsRumble": "Rumble",
+ "ControllerSettingsRumbleStrongMultiplier": "Strong Rumble Multiplier",
+ "ControllerSettingsRumbleWeakMultiplier": "Weak Rumble Multiplier",
+ "DialogMessageSaveNotAvailableMessage": "There is no savedata for {0} [{1:x16}]",
+ "DialogMessageSaveNotAvailableCreateSaveMessage": "Would you like to create savedata for this game?",
+ "DialogConfirmationTitle": "Ryujinx - Confirmation",
+ "DialogUpdaterTitle": "Ryujinx - Updater",
+ "DialogErrorTitle": "Ryujinx - Error",
+ "DialogWarningTitle": "Ryujinx - Warning",
+ "DialogExitTitle": "Ryujinx - Exit",
+ "DialogErrorMessage": "Ryujinx has encountered an error",
+ "DialogExitMessage": "Are you sure you want to close Ryujinx?",
+ "DialogExitSubMessage": "All unsaved data will be lost!",
+ "DialogMessageCreateSaveErrorMessage": "There was an error creating the specified savedata: {0}",
+ "DialogMessageFindSaveErrorMessage": "There was an error finding the specified savedata: {0}",
+ "FolderDialogExtractTitle": "Choose the folder to extract into",
+ "DialogNcaExtractionMessage": "Extracting {0} section from {1}...",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA Section Extractor",
+ "DialogNcaExtractionMainNcaNotFoundErrorMessage": "Extraction failure. The main NCA was not present in the selected file.",
+ "DialogNcaExtractionCheckLogErrorMessage": "Extraction failure. Read the log file for further information.",
+ "DialogNcaExtractionSuccessMessage": "Extraction completed successfully.",
+ "DialogUpdaterConvertFailedMessage": "Failed to convert the current Ryujinx version.",
+ "DialogUpdaterCancelUpdateMessage": "Cancelling Update!",
+ "DialogUpdaterAlreadyOnLatestVersionMessage": "You are already using the most updated version of Ryujinx!",
+ "DialogUpdaterFailedToGetVersionMessage": "An error has occurred when trying to get release information from GitHub Release. This can be caused if a new release is being compiled by GitHub Actions. Try again in a few minutes.",
+ "DialogUpdaterConvertFailedGithubMessage": "Failed to convert the received Ryujinx version from Github Release.",
+ "DialogUpdaterDownloadingMessage": "Downloading Update...",
+ "DialogUpdaterExtractionMessage": "Extracting Update...",
+ "DialogUpdaterRenamingMessage": "Renaming Update...",
+ "DialogUpdaterAddingFilesMessage": "Adding New Update...",
+ "DialogUpdaterCompleteMessage": "Update Complete!",
+ "DialogUpdaterRestartMessage": "Do you want to restart Ryujinx now?",
+ "DialogUpdaterNoInternetMessage": "You are not connected to the Internet!",
+ "DialogUpdaterNoInternetSubMessage": "Please verify that you have a working Internet connection!",
+ "DialogUpdaterDirtyBuildMessage": "You Cannot update a Dirty build of Ryujinx!",
+ "DialogUpdaterDirtyBuildSubMessage": "Please download Ryujinx at https://ryujinx.org/ if you are looking for a supported version.",
+ "DialogRestartRequiredMessage": "Restart Required",
+ "DialogThemeRestartMessage": "Theme has been saved. A restart is needed to apply the theme.",
+ "DialogThemeRestartSubMessage": "Do you want to restart",
+ "DialogFirmwareInstallEmbeddedMessage": "Would you like to install the firmware embedded in this game? (Firmware {0})",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "No installed firmware was found but Ryujinx was able to install firmware {0} from the provided game.\nThe emulator will now start.",
+ "DialogFirmwareNoFirmwareInstalledMessage": "No Firmware Installed",
+ "DialogFirmwareInstalledMessage": "Firmware {0} was installed",
+ "DialogInstallFileTypesSuccessMessage": "Successfully installed file types!",
+ "DialogInstallFileTypesErrorMessage": "Failed to install file types.",
+ "DialogUninstallFileTypesSuccessMessage": "Successfully uninstalled file types!",
+ "DialogUninstallFileTypesErrorMessage": "Failed to uninstall file types.",
+ "DialogOpenSettingsWindowLabel": "Open Settings Window",
+ "DialogControllerAppletTitle": "Controller Applet",
+ "DialogMessageDialogErrorExceptionMessage": "Error displaying Message Dialog: {0}",
+ "DialogSoftwareKeyboardErrorExceptionMessage": "Error displaying Software Keyboard: {0}",
+ "DialogErrorAppletErrorExceptionMessage": "Error displaying ErrorApplet Dialog: {0}",
+ "DialogUserErrorDialogMessage": "{0}: {1}",
+ "DialogUserErrorDialogInfoMessage": "\nFor more information on how to fix this error, follow our Setup Guide.",
+ "DialogUserErrorDialogTitle": "Ryujinx Error ({0})",
+ "DialogAmiiboApiTitle": "Amiibo API",
+ "DialogAmiiboApiFailFetchMessage": "An error occured while fetching information from the API.",
+ "DialogAmiiboApiConnectErrorMessage": "Unable to connect to Amiibo API server. The service may be down or you may need to verify your internet connection is online.",
+ "DialogProfileInvalidProfileErrorMessage": "Profile {0} is incompatible with the current input configuration system.",
+ "DialogProfileDefaultProfileOverwriteErrorMessage": "Default Profile can not be overwritten",
+ "DialogProfileDeleteProfileTitle": "Deleting Profile",
+ "DialogProfileDeleteProfileMessage": "This action is irreversible, are you sure you want to continue?",
+ "DialogWarning": "Warning",
+ "DialogPPTCDeletionMessage": "You are about to queue a PPTC rebuild on the next boot of:\n\n{0}\n\nAre you sure you want to proceed?",
+ "DialogPPTCDeletionErrorMessage": "Error purging PPTC cache at {0}: {1}",
+ "DialogShaderDeletionMessage": "You are about to delete the Shader cache for :\n\n{0}\n\nAre you sure you want to proceed?",
+ "DialogShaderDeletionErrorMessage": "Error purging Shader cache at {0}: {1}",
+ "DialogRyujinxErrorMessage": "Ryujinx has encountered an error",
+ "DialogInvalidTitleIdErrorMessage": "UI error: The selected game did not have a valid title ID",
+ "DialogFirmwareInstallerFirmwareNotFoundErrorMessage": "A valid system firmware was not found in {0}.",
+ "DialogFirmwareInstallerFirmwareInstallTitle": "Install Firmware {0}",
+ "DialogFirmwareInstallerFirmwareInstallMessage": "System version {0} will be installed.",
+ "DialogFirmwareInstallerFirmwareInstallSubMessage": "\n\nThis will replace the current system version {0}.",
+ "DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogFirmwareInstallerFirmwareInstallWaitMessage": "Installing firmware...",
+ "DialogFirmwareInstallerFirmwareInstallSuccessMessage": "System version {0} successfully installed.",
+ "DialogUserProfileDeletionWarningMessage": "There would be no other profiles to be opened if selected profile is deleted",
+ "DialogUserProfileDeletionConfirmMessage": "Do you want to delete the selected profile",
+ "DialogUserProfileUnsavedChangesTitle": "Warning - Unsaved Changes",
+ "DialogUserProfileUnsavedChangesMessage": "You have made changes to this user profile that have not been saved.",
+ "DialogUserProfileUnsavedChangesSubMessage": "Do you want to discard your changes?",
+ "DialogControllerSettingsModifiedConfirmMessage": "The current controller settings has been updated.",
+ "DialogControllerSettingsModifiedConfirmSubMessage": "Do you want to save?",
+ "DialogLoadFileErrorMessage": "{0}. Errored File: {1}",
+ "DialogModAlreadyExistsMessage": "Mod already exists",
+ "DialogModInvalidMessage": "The specified directory does not contain a mod!",
+ "DialogModDeleteNoParentMessage": "Failed to Delete: Could not find the parent directory for mod \"{0}\"!",
+ "DialogDlcNoDlcErrorMessage": "The specified file does not contain a DLC for the selected title!",
+ "DialogPerformanceCheckLoggingEnabledMessage": "You have trace logging enabled, which is designed to be used by developers only.",
+ "DialogPerformanceCheckLoggingEnabledConfirmMessage": "For optimal performance, it's recommended to disable trace logging. Would you like to disable trace logging now?",
+ "DialogPerformanceCheckShaderDumpEnabledMessage": "You have shader dumping enabled, which is designed to be used by developers only.",
+ "DialogPerformanceCheckShaderDumpEnabledConfirmMessage": "For optimal performance, it's recommended to disable shader dumping. Would you like to disable shader dumping now?",
+ "DialogLoadAppGameAlreadyLoadedMessage": "A game has already been loaded",
+ "DialogLoadAppGameAlreadyLoadedSubMessage": "Please stop emulation or close the emulator before launching another game.",
+ "DialogUpdateAddUpdateErrorMessage": "The specified file does not contain an update for the selected title!",
+ "DialogSettingsBackendThreadingWarningTitle": "Warning - Backend Threading",
+ "DialogSettingsBackendThreadingWarningMessage": "Ryujinx must be restarted after changing this option for it to apply fully. Depending on your platform, you may need to manually disable your driver's own multithreading when using Ryujinx's.",
+ "DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
+ "DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
+ "SettingsTabGraphicsFeaturesOptions": "Features",
+ "SettingsTabGraphicsBackendMultithreading": "Graphics Backend Multithreading:",
+ "CommonAuto": "Auto",
+ "CommonOff": "Off",
+ "CommonOn": "On",
+ "InputDialogYes": "Yes",
+ "InputDialogNo": "No",
+ "DialogProfileInvalidProfileNameErrorMessage": "The file name contains invalid characters. Please try again.",
+ "MenuBarOptionsPauseEmulation": "Pause",
+ "MenuBarOptionsResumeEmulation": "Resume",
+ "AboutUrlTooltipMessage": "Click to open the Ryujinx website in your default browser.",
+ "AboutDisclaimerMessage": "Ryujinx is not affiliated with Nintendo™,\nor any of its partners, in any way.",
+ "AboutAmiiboDisclaimerMessage": "AmiiboAPI (www.amiiboapi.com) is used\nin our Amiibo emulation.",
+ "AboutPatreonUrlTooltipMessage": "Click to open the Ryujinx Patreon page in your default browser.",
+ "AboutGithubUrlTooltipMessage": "Click to open the Ryujinx GitHub page in your default browser.",
+ "AboutDiscordUrlTooltipMessage": "Click to open an invite to the Ryujinx Discord server in your default browser.",
+ "AboutTwitterUrlTooltipMessage": "Click to open the Ryujinx Twitter page in your default browser.",
+ "AboutRyujinxAboutTitle": "About:",
+ "AboutRyujinxAboutContent": "Ryujinx is an emulator for the Nintendo Switch™.\nPlease support us on Patreon.\nGet all the latest news on our Twitter or Discord.\nDevelopers interested in contributing can find out more on our GitHub or Discord.",
+ "AboutRyujinxMaintainersTitle": "Maintained By:",
+ "AboutRyujinxMaintainersContentTooltipMessage": "Click to open the Contributors page in your default browser.",
+ "AboutRyujinxSupprtersTitle": "Supported on Patreon By:",
+ "AmiiboSeriesLabel": "Amiibo Series",
+ "AmiiboCharacterLabel": "Character",
+ "AmiiboScanButtonLabel": "Scan It",
+ "AmiiboOptionsShowAllLabel": "Show All Amiibo",
+ "AmiiboOptionsUsRandomTagLabel": "Hack: Use Random tag Uuid",
+ "DlcManagerTableHeadingEnabledLabel": "Enabled",
+ "DlcManagerTableHeadingTitleIdLabel": "Title ID",
+ "DlcManagerTableHeadingContainerPathLabel": "Container Path",
+ "DlcManagerTableHeadingFullPathLabel": "Full Path",
+ "DlcManagerRemoveAllButton": "Remove All",
+ "DlcManagerEnableAllButton": "Enable All",
+ "DlcManagerDisableAllButton": "Disable All",
+ "ModManagerDeleteAllButton": "Delete All",
+ "MenuBarOptionsChangeLanguage": "Change Language",
+ "MenuBarShowFileTypes": "Show File Types",
+ "CommonSort": "Sort",
+ "CommonShowNames": "Show Names",
+ "CommonFavorite": "Favorite",
+ "OrderAscending": "Ascending",
+ "OrderDescending": "Descending",
+ "SettingsTabGraphicsFeatures": "Features & Enhancements",
+ "ErrorWindowTitle": "Error Window",
+ "ToggleDiscordTooltip": "Choose whether or not to display Ryujinx on your \"currently playing\" Discord activity",
+ "AddGameDirBoxTooltip": "Enter a game directory to add to the list",
+ "AddGameDirTooltip": "Add a game directory to the list",
+ "RemoveGameDirTooltip": "Remove selected game directory",
+ "CustomThemeCheckTooltip": "Use a custom Avalonia theme for the GUI to change the appearance of the emulator menus",
+ "CustomThemePathTooltip": "Path to custom GUI theme",
+ "CustomThemeBrowseTooltip": "Browse for a custom GUI theme",
+ "DockModeToggleTooltip": "Docked mode makes the emulated system behave as a docked Nintendo Switch. This improves graphical fidelity in most games. Conversely, disabling this will make the emulated system behave as a handheld Nintendo Switch, reducing graphics quality.\n\nConfigure player 1 controls if planning to use docked mode; configure handheld controls if planning to use handheld mode.\n\nLeave ON if unsure.",
+ "DirectKeyboardTooltip": "Direct keyboard access (HID) support. Provides games access to your keyboard as a text entry device.\n\nOnly works with games that natively support keyboard usage on Switch hardware.\n\nLeave OFF if unsure.",
+ "DirectMouseTooltip": "Direct mouse access (HID) support. Provides games access to your mouse as a pointing device.\n\nOnly works with games that natively support mouse controls on Switch hardware, which are few and far between.\n\nWhen enabled, touch screen functionality may not work.\n\nLeave OFF if unsure.",
+ "RegionTooltip": "Change System Region",
+ "LanguageTooltip": "Change System Language",
+ "TimezoneTooltip": "Change System TimeZone",
+ "TimeTooltip": "Change System Time",
+ "VSyncToggleTooltip": "Emulated console's Vertical Sync. Essentially a frame-limiter for the majority of games; disabling it may cause games to run at higher speed or make loading screens take longer or get stuck.\n\nCan be toggled in-game with a hotkey of your preference (F1 by default). We recommend doing this if you plan on disabling it.\n\nLeave ON if unsure.",
+ "PptcToggleTooltip": "Saves translated JIT functions so that they do not need to be translated every time the game loads.\n\nReduces stuttering and significantly speeds up boot times after the first boot of a game.\n\nLeave ON if unsure.",
+ "FsIntegrityToggleTooltip": "Checks for corrupt files when booting a game, and if corrupt files are detected, displays a hash error in the log.\n\nHas no impact on performance and is meant to help troubleshooting.\n\nLeave ON if unsure.",
+ "AudioBackendTooltip": "Changes the backend used to render audio.\n\nSDL2 is the preferred one, while OpenAL and SoundIO are used as fallbacks. Dummy will have no sound.\n\nSet to SDL2 if unsure.",
+ "MemoryManagerTooltip": "Change how guest memory is mapped and accessed. Greatly affects emulated CPU performance.\n\nSet to HOST UNCHECKED if unsure.",
+ "MemoryManagerSoftwareTooltip": "Use a software page table for address translation. Highest accuracy but slowest performance.",
+ "MemoryManagerHostTooltip": "Directly map memory in the host address space. Much faster JIT compilation and execution.",
+ "MemoryManagerUnsafeTooltip": "Directly map memory, but do not mask the address within the guest address space before access. Faster, but at the cost of safety. The guest application can access memory from anywhere in Ryujinx, so only run programs you trust with this mode.",
+ "UseHypervisorTooltip": "Use Hypervisor instead of JIT. Greatly improves performance when available, but can be unstable in its current state.",
+ "DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
+ "IgnoreMissingServicesTooltip": "Ignores unimplemented Horizon OS services. This may help in bypassing crashes when booting certain games.\n\nLeave OFF if unsure.",
+ "GraphicsBackendThreadingTooltip": "Executes graphics backend commands on a second thread.\n\nSpeeds up shader compilation, reduces stuttering, and improves performance on GPU drivers without multithreading support of their own. Slightly better performance on drivers with multithreading.\n\nSet to AUTO if unsure.",
+ "GalThreadingTooltip": "Executes graphics backend commands on a second thread.\n\nSpeeds up shader compilation, reduces stuttering, and improves performance on GPU drivers without multithreading support of their own. Slightly better performance on drivers with multithreading.\n\nSet to AUTO if unsure.",
+ "ShaderCacheToggleTooltip": "Saves a disk shader cache which reduces stuttering in subsequent runs.\n\nLeave ON if unsure.",
+ "ResolutionScaleTooltip": "Multiplies the game's rendering resolution.\n\nA few games may not work with this and look pixelated even when the resolution is increased; for those games, you may need to find mods that remove anti-aliasing or that increase their internal rendering resolution. For using the latter, you'll likely want to select Native.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nKeep in mind 4x is overkill for virtually any setup.",
+ "ResolutionScaleEntryTooltip": "Floating point resolution scale, such as 1.5. Non-integral scales are more likely to cause issues or crash.",
+ "AnisotropyTooltip": "Level of Anisotropic Filtering. Set to Auto to use the value requested by the game.",
+ "AspectRatioTooltip": "Aspect Ratio applied to the renderer window.\n\nOnly change this if you're using an aspect ratio mod for your game, otherwise the graphics will be stretched.\n\nLeave on 16:9 if unsure.",
+ "ShaderDumpPathTooltip": "Graphics Shaders Dump Path",
+ "FileLogTooltip": "Saves console logging to a log file on disk. Does not affect performance.",
+ "StubLogTooltip": "Prints stub log messages in the console. Does not affect performance.",
+ "InfoLogTooltip": "Prints info log messages in the console. Does not affect performance.",
+ "WarnLogTooltip": "Prints warning log messages in the console. Does not affect performance.",
+ "ErrorLogTooltip": "Prints error log messages in the console. Does not affect performance.",
+ "TraceLogTooltip": "Prints trace log messages in the console. Does not affect performance.",
+ "GuestLogTooltip": "Prints guest log messages in the console. Does not affect performance.",
+ "FileAccessLogTooltip": "Prints file access log messages in the console.",
+ "FSAccessLogModeTooltip": "Enables FS access log output to the console. Possible modes are 0-3",
+ "DeveloperOptionTooltip": "Use with care",
+ "OpenGlLogLevel": "Requires appropriate log levels enabled",
+ "DebugLogTooltip": "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.",
+ "LoadApplicationFileTooltip": "Open a file explorer to choose a Switch compatible file to load",
+ "LoadApplicationFolderTooltip": "Open a file explorer to choose a Switch compatible, unpacked application to load",
+ "OpenRyujinxFolderTooltip": "Open Ryujinx filesystem folder",
+ "OpenRyujinxLogsTooltip": "Opens the folder where logs are written to",
+ "ExitTooltip": "Exit Ryujinx",
+ "OpenSettingsTooltip": "Open settings window",
+ "OpenProfileManagerTooltip": "Open User Profiles Manager window",
+ "StopEmulationTooltip": "Stop emulation of the current game and return to game selection",
+ "CheckUpdatesTooltip": "Check for updates to Ryujinx",
+ "OpenAboutTooltip": "Open About Window",
+ "GridSize": "Grid Size",
+ "GridSizeTooltip": "Change the size of grid items",
+ "SettingsTabSystemSystemLanguageBrazilianPortuguese": "Brazilian Portuguese",
+ "AboutRyujinxContributorsButtonHeader": "See All Contributors",
+ "SettingsTabSystemAudioVolume": "Volume: ",
+ "AudioVolumeTooltip": "Change Audio Volume",
+ "SettingsTabSystemEnableInternetAccess": "Guest Internet Access/LAN Mode",
+ "EnableInternetAccessTooltip": "Allows the emulated application to connect to the Internet.\n\nGames with a LAN mode can connect to each other when this is enabled and the systems are connected to the same access point. This includes real consoles as well.\n\nDoes NOT allow connecting to Nintendo servers. May cause crashing in certain games that try to connect to the Internet.\n\nLeave OFF if unsure.",
+ "GameListContextMenuManageCheatToolTip": "Manage Cheats",
+ "GameListContextMenuManageCheat": "Manage Cheats",
+ "GameListContextMenuManageModToolTip": "Manage Mods",
+ "GameListContextMenuManageMod": "Manage Mods",
+ "ControllerSettingsStickRange": "Range:",
+ "DialogStopEmulationTitle": "Ryujinx - Stop Emulation",
+ "DialogStopEmulationMessage": "Are you sure you want to stop emulation?",
+ "SettingsTabCpu": "CPU",
+ "SettingsTabAudio": "Audio",
+ "SettingsTabNetwork": "Network",
+ "SettingsTabNetworkConnection": "Network Connection",
+ "SettingsTabCpuCache": "CPU Cache",
+ "SettingsTabCpuMemory": "CPU Mode",
+ "DialogUpdaterFlatpakNotSupportedMessage": "Please update Ryujinx via FlatHub.",
+ "UpdaterDisabledWarningTitle": "Updater Disabled!",
+ "ControllerSettingsRotate90": "Rotate 90° Clockwise",
+ "IconSize": "Icon Size",
+ "IconSizeTooltip": "Change the size of game icons",
+ "MenuBarOptionsShowConsole": "Show Console",
+ "ShaderCachePurgeError": "Error purging shader cache at {0}: {1}",
+ "UserErrorNoKeys": "Keys not found",
+ "UserErrorNoFirmware": "Firmware not found",
+ "UserErrorFirmwareParsingFailed": "Firmware parsing error",
+ "UserErrorApplicationNotFound": "Application not found",
+ "UserErrorUnknown": "Unknown error",
+ "UserErrorUndefined": "Undefined error",
+ "UserErrorNoKeysDescription": "Ryujinx was unable to find your 'prod.keys' file",
+ "UserErrorNoFirmwareDescription": "Ryujinx was unable to find any firmwares installed",
+ "UserErrorFirmwareParsingFailedDescription": "Ryujinx was unable to parse the provided firmware. This is usually caused by outdated keys.",
+ "UserErrorApplicationNotFoundDescription": "Ryujinx couldn't find a valid application at the given path.",
+ "UserErrorUnknownDescription": "An unknown error occured!",
+ "UserErrorUndefinedDescription": "An undefined error occured! This shouldn't happen, please contact a dev!",
+ "OpenSetupGuideMessage": "Open the Setup Guide",
+ "NoUpdate": "No Update",
+ "TitleUpdateVersionLabel": "Version {0}",
+ "TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
+ "TitleBundledDlcLabel": "Bundled:",
+ "RyujinxInfo": "Ryujinx - Info",
+ "RyujinxConfirm": "Ryujinx - Confirmation",
+ "FileDialogAllTypes": "All types",
+ "Never": "Never",
+ "SwkbdMinCharacters": "Must be at least {0} characters long",
+ "SwkbdMinRangeCharacters": "Must be {0}-{1} characters long",
+ "SoftwareKeyboard": "Software Keyboard",
+ "SoftwareKeyboardModeNumeric": "Must be 0-9 or '.' only",
+ "SoftwareKeyboardModeAlphabet": "Must be non CJK-characters only",
+ "SoftwareKeyboardModeASCII": "Must be ASCII text only",
+ "ControllerAppletControllers": "Supported Controllers:",
+ "ControllerAppletPlayers": "Players:",
+ "ControllerAppletDescription": "Your current configuration is invalid. Open settings and reconfigure your inputs.",
+ "ControllerAppletDocked": "Docked mode set. Handheld control should be disabled.",
+ "UpdaterRenaming": "Renaming Old Files...",
+ "UpdaterRenameFailed": "Updater was unable to rename file: {0}",
+ "UpdaterAddingFiles": "Adding New Files...",
+ "UpdaterExtracting": "Extracting Update...",
+ "UpdaterDownloading": "Downloading Update...",
+ "Game": "Game",
+ "Docked": "Docked",
+ "Handheld": "Handheld",
+ "ConnectionError": "Connection Error.",
+ "AboutPageDeveloperListMore": "{0} and more...",
+ "ApiError": "API Error.",
+ "LoadingHeading": "Loading {0}",
+ "CompilingPPTC": "Compiling PTC",
+ "CompilingShaders": "Compiling Shaders",
+ "AllKeyboards": "All keyboards",
+ "OpenFileDialogTitle": "Select a supported file to open",
+ "OpenFolderDialogTitle": "Select a folder with an unpacked game",
+ "AllSupportedFormats": "All Supported Formats",
+ "RyujinxUpdater": "Ryujinx Updater",
+ "SettingsTabHotkeys": "Keyboard Hotkeys",
+ "SettingsTabHotkeysHotkeys": "Keyboard Hotkeys",
+ "SettingsTabHotkeysToggleVsyncHotkey": "Toggle VSync:",
+ "SettingsTabHotkeysScreenshotHotkey": "Screenshot:",
+ "SettingsTabHotkeysShowUiHotkey": "Show UI:",
+ "SettingsTabHotkeysPauseHotkey": "Pause:",
+ "SettingsTabHotkeysToggleMuteHotkey": "Mute:",
+ "ControllerMotionTitle": "Motion Control Settings",
+ "ControllerRumbleTitle": "Rumble Settings",
+ "SettingsSelectThemeFileDialogTitle": "Select Theme File",
+ "SettingsXamlThemeFile": "Xaml Theme File",
+ "AvatarWindowTitle": "Manage Accounts - Avatar",
+ "Amiibo": "Amiibo",
+ "Unknown": "Unknown",
+ "Usage": "Usage",
+ "Writable": "Writable",
+ "SelectDlcDialogTitle": "Select DLC files",
+ "SelectUpdateDialogTitle": "Select update files",
+ "SelectModDialogTitle": "Select mod directory",
+ "UserProfileWindowTitle": "User Profiles Manager",
+ "CheatWindowTitle": "Cheats Manager",
+ "DlcWindowTitle": "Manage Downloadable Content for {0} ({1})",
+ "ModWindowTitle": "Manage Mods for {0} ({1})",
+ "UpdateWindowTitle": "Title Update Manager",
+ "CheatWindowHeading": "Cheats Available for {0} [{1}]",
+ "BuildId": "BuildId:",
+ "DlcWindowHeading": "{0} Downloadable Content(s)",
+ "ModWindowHeading": "{0} Mod(s)",
+ "UserProfilesEditProfile": "Edit Selected",
+ "Cancel": "Cancel",
+ "Save": "Save",
+ "Discard": "Discard",
+ "Paused": "Paused",
+ "UserProfilesSetProfileImage": "Set Profile Image",
+ "UserProfileEmptyNameError": "Name is required",
+ "UserProfileNoImageError": "Profile image must be set",
+ "GameUpdateWindowHeading": "Manage Updates for {0} ({1})",
+ "SettingsTabHotkeysResScaleUpHotkey": "Increase resolution:",
+ "SettingsTabHotkeysResScaleDownHotkey": "Decrease resolution:",
+ "UserProfilesName": "Name:",
+ "UserProfilesUserId": "User ID:",
+ "SettingsTabGraphicsBackend": "Graphics Backend",
+ "SettingsTabGraphicsBackendTooltip": "Select the graphics backend that will be used in the emulator.\n\nVulkan is overall better for all modern graphics cards, as long as their drivers are up to date. Vulkan also features faster shader compilation (less stuttering) on all GPU vendors.\n\nOpenGL may achieve better results on old Nvidia GPUs, on old AMD GPUs on Linux, or on GPUs with lower VRAM, though shader compilation stutters will be greater.\n\nSet to Vulkan if unsure. Set to OpenGL if your GPU does not support Vulkan even with the latest graphics drivers.",
+ "SettingsEnableTextureRecompression": "Enable Texture Recompression",
+ "SettingsEnableTextureRecompressionTooltip": "Compresses ASTC textures in order to reduce VRAM usage.\n\nGames using this texture format include Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder and The Legend of Zelda: Tears of the Kingdom.\n\nGraphics cards with 4GiB VRAM or less will likely crash at some point while running these games.\n\nEnable only if you're running out of VRAM on the aforementioned games. Leave OFF if unsure.",
+ "SettingsTabGraphicsPreferredGpu": "Preferred GPU",
+ "SettingsTabGraphicsPreferredGpuTooltip": "Select the graphics card that will be used with the Vulkan graphics backend.\n\nDoes not affect the GPU that OpenGL will use.\n\nSet to the GPU flagged as \"dGPU\" if unsure. If there isn't one, leave untouched.",
+ "SettingsAppRequiredRestartMessage": "Ryujinx Restart Required",
+ "SettingsGpuBackendRestartMessage": "Graphics Backend or GPU settings have been modified. This will require a restart to be applied",
+ "SettingsGpuBackendRestartSubMessage": "Do you want to restart now?",
+ "RyujinxUpdaterMessage": "Do you want to update Ryujinx to the latest version?",
+ "SettingsTabHotkeysVolumeUpHotkey": "Increase Volume:",
+ "SettingsTabHotkeysVolumeDownHotkey": "Decrease Volume:",
+ "SettingsEnableMacroHLE": "Enable Macro HLE",
+ "SettingsEnableMacroHLETooltip": "High-level emulation of GPU Macro code.\n\nImproves performance, but may cause graphical glitches in some games.\n\nLeave ON if unsure.",
+ "SettingsEnableColorSpacePassthrough": "Color Space Passthrough",
+ "SettingsEnableColorSpacePassthroughTooltip": "Directs the Vulkan backend to pass through color information without specifying a color space. For users with wide gamut displays, this may result in more vibrant colors, at the cost of color correctness.",
+ "VolumeShort": "Vol",
+ "UserProfilesManageSaves": "Manage Saves",
+ "DeleteUserSave": "Do you want to delete user save for this game?",
+ "IrreversibleActionNote": "This action is not reversible.",
+ "SaveManagerHeading": "Manage Saves for {0} ({1})",
+ "SaveManagerTitle": "Save Manager",
+ "Name": "Name",
+ "Size": "Size",
+ "Search": "Search",
+ "UserProfilesRecoverLostAccounts": "Recover Lost Accounts",
+ "Recover": "Recover",
+ "UserProfilesRecoverHeading": "Saves were found for the following accounts",
+ "UserProfilesRecoverEmptyList": "No profiles to recover",
+ "GraphicsAATooltip": "Applies anti-aliasing to the game render.\n\nFXAA will blur most of the image, while SMAA will attempt to find jagged edges and smooth them out.\n\nNot recommended to use in conjunction with the FSR scaling filter.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on NONE if unsure.",
+ "GraphicsAALabel": "Anti-Aliasing:",
+ "GraphicsScalingFilterLabel": "Scaling Filter:",
+ "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nArea scaling is recommended when downscaling resolutions that are larger than the output window. It can be used to achieve a supersampled anti-aliasing effect when downscaling by more than 2x.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
+ "GraphicsScalingFilterBilinear": "Bilinear",
+ "GraphicsScalingFilterNearest": "Nearest",
+ "GraphicsScalingFilterFsr": "FSR",
+ "GraphicsScalingFilterArea": "Area",
+ "GraphicsScalingFilterLevelLabel": "Level",
+ "GraphicsScalingFilterLevelTooltip": "Set FSR 1.0 sharpening level. Higher is sharper.",
+ "SmaaLow": "SMAA Low",
+ "SmaaMedium": "SMAA Medium",
+ "SmaaHigh": "SMAA High",
+ "SmaaUltra": "SMAA Ultra",
+ "UserEditorTitle": "Edit User",
+ "UserEditorTitleCreate": "Create User",
+ "SettingsTabNetworkInterface": "Network Interface:",
+ "NetworkInterfaceTooltip": "The network interface used for LAN/LDN features.\n\nIn conjunction with a VPN or XLink Kai and a game with LAN support, can be used to spoof a same-network connection over the Internet.\n\nLeave on DEFAULT if unsure.",
+ "NetworkInterfaceDefault": "Default",
+ "PackagingShaders": "Packaging Shaders",
+ "AboutChangelogButton": "View Changelog on GitHub",
+ "AboutChangelogButtonTooltipMessage": "Click to open the changelog for this version in your default browser.",
+ "SettingsTabNetworkMultiplayer": "Multiplayer",
+ "MultiplayerMode": "Mode:",
+ "MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
+ "MultiplayerModeDisabled": "Disabled",
+ "MultiplayerModeLdnMitm": "ldn_mitm"
+}
diff --git a/src/Ryujinx/Assets/Locales/pl_PL.json b/src/Ryujinx/Assets/Locales/pl_PL.json
index d6356dc76..a09643293 100644
--- a/src/Ryujinx/Assets/Locales/pl_PL.json
+++ b/src/Ryujinx/Assets/Locales/pl_PL.json
@@ -12,8 +12,6 @@
"MenuBarFileOpenFromFile": "_Załaduj aplikację z pliku",
"MenuBarFileOpenFromFileError": "No applications found in selected file.",
"MenuBarFileOpenUnpacked": "Załaduj _rozpakowaną grę",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
"MenuBarFileOpenEmuFolder": "Otwórz folder Ryujinx",
"MenuBarFileOpenLogsFolder": "Otwórz folder plików dziennika zdarzeń",
"MenuBarFileExit": "_Wyjdź",
@@ -33,8 +31,8 @@
"MenuBarToolsManageFileTypes": "Zarządzaj rodzajami plików",
"MenuBarToolsInstallFileTypes": "Typy plików instalacyjnych",
"MenuBarToolsUninstallFileTypes": "Typy plików dezinstalacyjnych",
- "MenuBarView": "_View",
- "MenuBarViewWindow": "Window Size",
+ "MenuBarView": "_Widok",
+ "MenuBarViewWindow": "Rozmiar okna",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "_Pomoc",
@@ -61,7 +59,7 @@
"GameListContextMenuManageTitleUpdatesToolTip": "Otwiera okno zarządzania aktualizacjami danej aplikacji",
"GameListContextMenuManageDlc": "Zarządzaj dodatkową zawartością (DLC)",
"GameListContextMenuManageDlcToolTip": "Otwiera okno zarządzania dodatkową zawartością",
- "GameListContextMenuCacheManagement": "Zarządzanie Cache",
+ "GameListContextMenuCacheManagement": "Zarządzanie pamięcią podreczną",
"GameListContextMenuCacheManagementPurgePptc": "Zakolejkuj rekompilację PPTC",
"GameListContextMenuCacheManagementPurgePptcToolTip": "Zainicjuj Rekompilację PPTC przy następnym uruchomieniu gry",
"GameListContextMenuCacheManagementPurgeShaderCache": "Wyczyść pamięć podręczną cieni",
@@ -96,18 +94,15 @@
"Settings": "Ustawienia",
"SettingsTabGeneral": "Interfejs użytkownika",
"SettingsTabGeneralGeneral": "Ogólne",
- "SettingsTabGeneralEnableDiscordRichPresence": "Włącz Bogatą Obecność Discord",
+ "SettingsTabGeneralEnableDiscordRichPresence": "Włącz Discord Rich Presence",
"SettingsTabGeneralCheckUpdatesOnLaunch": "Sprawdzaj aktualizacje przy uruchomieniu",
"SettingsTabGeneralShowConfirmExitDialog": "Pokazuj okno dialogowe \"Potwierdź wyjście\"",
- "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralRememberWindowState": "Pamiętaj rozmiar/pozycję okna",
"SettingsTabGeneralHideCursor": "Ukryj kursor:",
"SettingsTabGeneralHideCursorNever": "Nigdy",
"SettingsTabGeneralHideCursorOnIdle": "Gdy bezczynny",
"SettingsTabGeneralHideCursorAlways": "Zawsze",
"SettingsTabGeneralGameDirectories": "Katalogi gier",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "Dodaj",
"SettingsTabGeneralRemove": "Usuń",
"SettingsTabSystem": "System",
@@ -142,22 +137,16 @@
"SettingsTabSystemSystemTime": "Czas systemu:",
"SettingsTabSystemEnableVsync": "Synchronizacja pionowa",
"SettingsTabSystemEnablePptc": "PPTC (Profilowana pamięć podręczna trwałych łłumaczeń)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "Sprawdzanie integralności systemu plików",
- "SettingsTabSystemAudioBackend": "Backend Dżwięku:",
+ "SettingsTabSystemAudioBackend": "Sterownik dżwięku:",
"SettingsTabSystemAudioBackendDummy": "Atrapa",
"SettingsTabSystemAudioBackendOpenAL": "OpenAL",
"SettingsTabSystemAudioBackendSoundIO": "SoundIO",
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Hacki",
"SettingsTabSystemHacksNote": " (mogą powodować niestabilność)",
- "SettingsTabSystemDramSize": "Użyj alternatywnego układu pamięci (Deweloperzy)",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
"SettingsTabSystemIgnoreMissingServices": "Ignoruj Brakujące Usługi",
- "SettingsTabSystemIgnoreApplet": "Ignoruj aplet",
"SettingsTabGraphics": "Grafika",
"SettingsTabGraphicsAPI": "Graficzne API",
"SettingsTabGraphicsEnableShaderCache": "Włącz pamięć podręczną cieni",
@@ -254,8 +243,8 @@
"ControllerSettingsStickInvertXAxis": "Odwróć gałkę X",
"ControllerSettingsStickInvertYAxis": "Odwróć gałkę Y",
"ControllerSettingsStickDeadzone": "Martwa strefa:",
- "ControllerSettingsLStick": "Lewa Gałka",
- "ControllerSettingsRStick": "Prawa Gałka",
+ "ControllerSettingsLStick": "Lewa gałka",
+ "ControllerSettingsRStick": "Prawa gałka",
"ControllerSettingsTriggersLeft": "Lewe Triggery",
"ControllerSettingsTriggersRight": "Prawe Triggery",
"ControllerSettingsTriggersButtonsLeft": "Lewe Przyciski Triggerów",
@@ -283,29 +272,29 @@
"ControllerSettingsMotionGyroDeadzone": "Deadzone Żyroskopu:",
"ControllerSettingsSave": "Zapisz",
"ControllerSettingsClose": "Zamknij",
- "KeyUnknown": "Unknown",
- "KeyShiftLeft": "Shift Left",
- "KeyShiftRight": "Shift Right",
- "KeyControlLeft": "Ctrl Left",
- "KeyMacControlLeft": "⌃ Left",
- "KeyControlRight": "Ctrl Right",
- "KeyMacControlRight": "⌃ Right",
- "KeyAltLeft": "Alt Left",
- "KeyMacAltLeft": "⌥ Left",
- "KeyAltRight": "Alt Right",
- "KeyMacAltRight": "⌥ Right",
+ "KeyUnknown": "Nieznane",
+ "KeyShiftLeft": "Lewy Shift ",
+ "KeyShiftRight": "Prawy Shift ",
+ "KeyControlLeft": "Lewy Ctrl ",
+ "KeyMacControlLeft": "Lewy Ctrl (⌃)",
+ "KeyControlRight": "Prawy Ctrl ",
+ "KeyMacControlRight": "Prawy Ctrl (⌃)",
+ "KeyAltLeft": "Lewy alt",
+ "KeyMacAltLeft": "Lewy Option (⌥)",
+ "KeyAltRight": "Lewy Alt",
+ "KeyMacAltRight": "Prawy Option (⌥)",
"KeyWinLeft": "⊞ Left",
- "KeyMacWinLeft": "⌘ Left",
+ "KeyMacWinLeft": "Lewy Command (⌘)",
"KeyWinRight": "⊞ Right",
- "KeyMacWinRight": "⌘ Right",
+ "KeyMacWinRight": "Prawy Command (⌘)",
"KeyMenu": "Menu",
- "KeyUp": "Up",
- "KeyDown": "Down",
- "KeyLeft": "Left",
- "KeyRight": "Right",
+ "KeyUp": "Góra",
+ "KeyDown": "Dół",
+ "KeyLeft": "Lewo",
+ "KeyRight": "Prawo",
"KeyEnter": "Enter",
"KeyEscape": "Escape",
- "KeySpace": "Space",
+ "KeySpace": "Spacja",
"KeyTab": "Tab",
"KeyBackSpace": "Backspace",
"KeyInsert": "Insert",
@@ -319,21 +308,21 @@
"KeyPrintScreen": "Print Screen",
"KeyPause": "Pause",
"KeyNumLock": "Num Lock",
- "KeyClear": "Clear",
- "KeyKeypad0": "Keypad 0",
- "KeyKeypad1": "Keypad 1",
- "KeyKeypad2": "Keypad 2",
- "KeyKeypad3": "Keypad 3",
- "KeyKeypad4": "Keypad 4",
- "KeyKeypad5": "Keypad 5",
- "KeyKeypad6": "Keypad 6",
- "KeyKeypad7": "Keypad 7",
- "KeyKeypad8": "Keypad 8",
- "KeyKeypad9": "Keypad 9",
- "KeyKeypadDivide": "Keypad Divide",
- "KeyKeypadMultiply": "Keypad Multiply",
+ "KeyClear": "Wyczyść",
+ "KeyKeypad0": "Klawiatura numeryczna - 0",
+ "KeyKeypad1": "Klawiatura numeryczna - 1",
+ "KeyKeypad2": "Klawiatura numeryczna - 2",
+ "KeyKeypad3": "Klawiatura numeryczna - 3",
+ "KeyKeypad4": "Klawiatura numeryczna - 4",
+ "KeyKeypad5": "Klawiatura numeryczna - 5",
+ "KeyKeypad6": "Klawiatura numeryczna - 6",
+ "KeyKeypad7": "Klawiatura numeryczna - 7",
+ "KeyKeypad8": "Klawiatura numeryczna - 8",
+ "KeyKeypad9": "Klawiatura numeryczna - 9",
+ "KeyKeypadDivide": "Klawiatura numeryczna - znak dzielenia",
+ "KeyKeypadMultiply": "Klawiatura numeryczna - znak mnożenia",
"KeyKeypadSubtract": "Keypad Subtract",
- "KeyKeypadAdd": "Keypad Add",
+ "KeyKeypadAdd": "Klawiatura numeryczna - Dodawanie",
"KeyKeypadDecimal": "Keypad Decimal",
"KeyKeypadEnter": "Keypad Enter",
"KeyNumber0": "0",
@@ -358,17 +347,17 @@
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "Unbound",
- "GamepadLeftStick": "L Stick Button",
- "GamepadRightStick": "R Stick Button",
- "GamepadLeftShoulder": "Left Shoulder",
- "GamepadRightShoulder": "Right Shoulder",
- "GamepadLeftTrigger": "Left Trigger",
- "GamepadRightTrigger": "Right Trigger",
- "GamepadDpadUp": "Up",
- "GamepadDpadDown": "Down",
- "GamepadDpadLeft": "Left",
- "GamepadDpadRight": "Right",
+ "KeyUnbound": "Nieprzypisany",
+ "GamepadLeftStick": "Przycisk lewej gałki",
+ "GamepadRightStick": "Przycisk prawej gałki",
+ "GamepadLeftShoulder": "Lewy bumper",
+ "GamepadRightShoulder": "Prawy bumper",
+ "GamepadLeftTrigger": "Lewy spust",
+ "GamepadRightTrigger": "Prawy spust",
+ "GamepadDpadUp": "Góra ",
+ "GamepadDpadDown": "Dół ",
+ "GamepadDpadLeft": "Lewo",
+ "GamepadDpadRight": "Prawo",
"GamepadMinus": "-",
"GamepadPlus": "+",
"GamepadGuide": "Guide",
@@ -377,13 +366,13 @@
"GamepadPaddle2": "Paddle 2",
"GamepadPaddle3": "Paddle 3",
"GamepadPaddle4": "Paddle 4",
- "GamepadTouchpad": "Touchpad",
- "GamepadSingleLeftTrigger0": "Left Trigger 0",
- "GamepadSingleRightTrigger0": "Right Trigger 0",
- "GamepadSingleLeftTrigger1": "Left Trigger 1",
- "GamepadSingleRightTrigger1": "Right Trigger 1",
- "StickLeft": "Left Stick",
- "StickRight": "Right Stick",
+ "GamepadTouchpad": "Panel dotykowy",
+ "GamepadSingleLeftTrigger0": "Lewy spust 0",
+ "GamepadSingleRightTrigger0": "Prawy spust 0",
+ "GamepadSingleLeftTrigger1": "Lewy spust 1",
+ "GamepadSingleRightTrigger1": "Prawy spust 1",
+ "StickLeft": "Lewa gałka",
+ "StickRight": "Prawa gałka",
"UserProfilesSelectedUserProfile": "Wybrany profil użytkownika:",
"UserProfilesSaveProfileName": "Zapisz nazwę profilu",
"UserProfilesChangeProfileImage": "Zmień obrazek profilu",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "Ustaw kolor tła",
"AvatarClose": "Zamknij",
"ControllerSettingsLoadProfileToolTip": "Wczytaj profil",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "Dodaj profil",
"ControllerSettingsRemoveProfileToolTip": "Usuń profil",
"ControllerSettingsSaveProfileToolTip": "Zapisz profil",
@@ -417,7 +405,7 @@
"GameListContextMenuToggleFavorite": "Przełącz na ulubione",
"GameListContextMenuToggleFavoriteToolTip": "Przełącz status Ulubionej Gry",
"SettingsTabGeneralTheme": "Motyw:",
- "SettingsTabGeneralThemeAuto": "Auto",
+ "SettingsTabGeneralThemeAuto": "Automatyczne",
"SettingsTabGeneralThemeDark": "Ciemny",
"SettingsTabGeneralThemeLight": "Jasny",
"ControllerSettingsConfigureGeneral": "Konfiguruj",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "Wystąpił błąd podczas próby znalezienia określonych zapisanych danych: {0}",
"FolderDialogExtractTitle": "Wybierz folder, do którego chcesz rozpakować",
"DialogNcaExtractionMessage": "Wypakowywanie sekcji {0} z {1}...",
- "DialogNcaExtractionTitle": "Asystent wypakowania sekcji NCA",
+ "DialogNcaExtractionTitle": "Ryujinx - Asystent wypakowania sekcji NCA",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "Niepowodzenie podczas wypakowywania. W wybranym pliku nie było głównego NCA.",
"DialogNcaExtractionCheckLogErrorMessage": "Niepowodzenie podczas wypakowywania. Przeczytaj plik dziennika, aby uzyskać więcej informacji.",
"DialogNcaExtractionSuccessMessage": "Wypakowywanie zakończone pomyślnie.",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "Nie masz połączenia z Internetem!",
"DialogUpdaterNoInternetSubMessage": "Sprawdź, czy masz działające połączenie internetowe!",
"DialogUpdaterDirtyBuildMessage": "Nie możesz zaktualizować Dirty wersji Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Pobierz Ryujinx ze strony https://https://github.com/GreemDev/Ryujinx/releases/, jeśli szukasz obsługiwanej wersji.",
+ "DialogUpdaterDirtyBuildSubMessage": "Pobierz Ryujinx ze strony https://ryujinx.org/, jeśli szukasz obsługiwanej wersji.",
"DialogRestartRequiredMessage": "Wymagane Ponowne Uruchomienie",
"DialogThemeRestartMessage": "Motyw został zapisany. Aby zastosować motyw, konieczne jest ponowne uruchomienie.",
"DialogThemeRestartSubMessage": "Czy chcesz uruchomić ponownie?",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "Wprowadź katalog gier aby dodać go do listy",
"AddGameDirTooltip": "Dodaj katalog gier do listy",
"RemoveGameDirTooltip": "Usuń wybrany katalog gier",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "Użyj niestandardowego motywu Avalonia dla GUI, aby zmienić wygląd menu emulatora",
"CustomThemePathTooltip": "Ścieżka do niestandardowego motywu GUI",
"CustomThemeBrowseTooltip": "Wyszukaj niestandardowy motyw GUI",
@@ -583,17 +568,15 @@
"TimeTooltip": "Zmień czas systemowy",
"VSyncToggleTooltip": "Synchronizacja pionowa emulowanej konsoli. Zasadniczo ogranicznik klatek dla większości gier; wyłączenie jej może spowodować, że gry będą działać z większą szybkością, ekrany wczytywania wydłużą się lub nawet utkną.\n\nMoże być przełączana w grze za pomocą preferowanego skrótu klawiszowego. Zalecamy to zrobić, jeśli planujesz ją wyłączyć.\n\nW razie wątpliwości pozostaw WŁĄCZONĄ.",
"PptcToggleTooltip": "Zapisuje przetłumaczone funkcje JIT, dzięki czemu nie muszą być tłumaczone za każdym razem, gdy gra się ładuje.\n\nZmniejsza zacinanie się i znacznie przyspiesza uruchamianie po pierwszym uruchomieniu gry.\n\nJeśli nie masz pewności, pozostaw WŁĄCZONE",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
"FsIntegrityToggleTooltip": "Sprawdza pliki podczas uruchamiania gry i jeśli zostaną wykryte uszkodzone pliki, wyświetla w dzienniku błąd hash.\n\nNie ma wpływu na wydajność i ma pomóc w rozwiązywaniu problemów.\n\nPozostaw WŁĄCZONE, jeśli nie masz pewności.",
"AudioBackendTooltip": "Zmienia backend używany do renderowania dźwięku.\n\nSDL2 jest preferowany, podczas gdy OpenAL i SoundIO są używane jako rezerwy. Dummy nie będzie odtwarzać dźwięku.\n\nW razie wątpliwości ustaw SDL2.",
- "MemoryManagerTooltip": "Zmień sposób mapowania i uzyskiwania dostępu do pamięci gości. Znacznie wpływa na wydajność emulowanego procesora.\n\nUstaw na HOST UNCHECKED, jeśli nie masz pewności.",
+ "MemoryManagerTooltip": "Zmień sposób przypisywania i uzyskiwania dostępu do pamięci gościa. Znacznie wpływa na wydajność emulowanego procesora.\n\nUstaw na \"Gospodarza (NIESPRAWDZONY)\", jeśli nie masz pewności.",
"MemoryManagerSoftwareTooltip": "Użyj tabeli stron oprogramowania do translacji adresów. Najwyższa celność, ale najwolniejsza wydajność.",
"MemoryManagerHostTooltip": "Bezpośrednio mapuj pamięć w przestrzeni adresowej hosta. Znacznie szybsza kompilacja i wykonanie JIT.",
"MemoryManagerUnsafeTooltip": "Bezpośrednio mapuj pamięć, ale nie maskuj adresu w przestrzeni adresowej gościa przed uzyskaniem dostępu. Szybciej, ale kosztem bezpieczeństwa. Aplikacja gościa może uzyskać dostęp do pamięci z dowolnego miejsca w Ryujinx, więc w tym trybie uruchamiaj tylko programy, którym ufasz.",
"UseHypervisorTooltip": "Użyj Hiperwizora zamiast JIT. Znacznie poprawia wydajność, gdy jest dostępny, ale może być niestabilny w swoim obecnym stanie ",
- "DRamTooltip": "Wykorzystuje alternatywny układ MemoryMode, aby naśladować model rozwojowy Switcha.\n\nJest to przydatne tylko w przypadku pakietów tekstur o wyższej rozdzielczości lub modów w rozdzielczości 4k. NIE poprawia wydajności.\n\nW razie wątpliwości pozostaw WYŁĄCZONE.",
+ "DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
"IgnoreMissingServicesTooltip": "Ignoruje niezaimplementowane usługi Horizon OS. Może to pomóc w ominięciu awarii podczas uruchamiania niektórych gier.\n\nW razie wątpliwości pozostaw WYŁĄCZONE.",
- "IgnoreAppletTooltip": "Zewnętrzny dialog \"Controller Applet\" nie pojawi się, jeśli gamepad zostanie odłączony podczas rozgrywki. Nie pojawi się monit o zamknięcie dialogu lub skonfigurowanie nowego kontrolera. Po ponownym podłączeniu poprzednio odłączonego kontrolera gra zostanie automatycznie wznowiona.",
"GraphicsBackendThreadingTooltip": "Wykonuje polecenia backend'u graficznego w drugim wątku.\n\nPrzyspiesza kompilację shaderów, zmniejsza zacinanie się i poprawia wydajność sterowników GPU bez własnej obsługi wielowątkowości. Nieco lepsza wydajność w sterownikach z wielowątkowością.\n\nUstaw na AUTO, jeśli nie masz pewności.",
"GalThreadingTooltip": "Wykonuje polecenia backend'u graficznego w drugim wątku.\n\nPrzyspiesza kompilację shaderów, zmniejsza zacinanie się i poprawia wydajność sterowników GPU bez własnej obsługi wielowątkowości. Nieco lepsza wydajność w sterownikach z wielowątkowością.\n\nUstaw na AUTO, jeśli nie masz pewności.",
"ShaderCacheToggleTooltip": "Zapisuje pamięć podręczną shaderów na dysku, co zmniejsza zacinanie się w kolejnych uruchomieniach.\n\nPozostaw WŁĄCZONE, jeśli nie masz pewności.",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "Wyświetla komunikaty dziennika debugowania w konsoli.\n\nUżywaj tego tylko na wyraźne polecenie członka załogi, ponieważ utrudni to odczytanie dzienników i pogorszy wydajność emulatora.",
"LoadApplicationFileTooltip": "Otwórz eksplorator plików, aby wybrać plik kompatybilny z Switch do wczytania",
"LoadApplicationFolderTooltip": "Otwórz eksplorator plików, aby wybrać zgodną z Switch, rozpakowaną aplikację do załadowania",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "Otwórz folder systemu plików Ryujinx",
"OpenRyujinxLogsTooltip": "Otwiera folder, w którym zapisywane są logi",
"ExitTooltip": "Wyjdź z Ryujinx",
@@ -641,12 +622,12 @@
"ControllerSettingsStickRange": "Zasięg:",
"DialogStopEmulationTitle": "Ryujinx - Zatrzymaj Emulację",
"DialogStopEmulationMessage": "Czy na pewno chcesz zatrzymać emulację?",
- "SettingsTabCpu": "CPU",
+ "SettingsTabCpu": "Procesor",
"SettingsTabAudio": "Dżwięk",
"SettingsTabNetwork": "Sieć",
"SettingsTabNetworkConnection": "Połączenie Sieciowe",
- "SettingsTabCpuCache": "Cache CPU",
- "SettingsTabCpuMemory": "Pamięć CPU",
+ "SettingsTabCpuCache": "Pamięć podręczna procesora",
+ "SettingsTabCpuMemory": "Tryb procesora",
"DialogUpdaterFlatpakNotSupportedMessage": "Zaktualizuj Ryujinx przez FlatHub.",
"UpdaterDisabledWarningTitle": "Aktualizator Wyłączony!",
"ControllerSettingsRotate90": "Obróć o 90° w Prawo",
@@ -704,8 +685,8 @@
"OpenFolderDialogTitle": "Wybierz folder z rozpakowaną grą",
"AllSupportedFormats": "Wszystkie Obsługiwane Formaty",
"RyujinxUpdater": "Aktualizator Ryujinx",
- "SettingsTabHotkeys": "Skróty Klawiszowe Klawiatury",
- "SettingsTabHotkeysHotkeys": "Skróty Klawiszowe Klawiatury",
+ "SettingsTabHotkeys": "Skróty klawiszowe",
+ "SettingsTabHotkeysHotkeys": "Skróty klawiszowe",
"SettingsTabHotkeysToggleVsyncHotkey": "Przełącz VSync:",
"SettingsTabHotkeysScreenshotHotkey": "Zrzut Ekranu:",
"SettingsTabHotkeysShowUiHotkey": "Pokaż UI:",
@@ -728,17 +709,9 @@
"DlcWindowTitle": "Menedżer Zawartości do Pobrania",
"ModWindowTitle": "Zarządzaj modami dla {0} ({1})",
"UpdateWindowTitle": "Menedżer Aktualizacji Tytułu",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Kody Dostępne dla {0} [{1}]",
"BuildId": "Identyfikator wersji:",
- "DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
"DlcWindowHeading": "{0} Zawartości do Pobrania dostępna dla {1} ({2})",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} Mod(y/ów)",
"UserProfilesEditProfile": "Edytuj Zaznaczone",
"Cancel": "Anuluj",
@@ -785,7 +758,7 @@
"GraphicsAATooltip": "Applies anti-aliasing to the game render.\n\nFXAA will blur most of the image, while SMAA will attempt to find jagged edges and smooth them out.\n\nNot recommended to use in conjunction with the FSR scaling filter.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on NONE if unsure.",
"GraphicsAALabel": "Antyaliasing:",
"GraphicsScalingFilterLabel": "Filtr skalowania:",
- "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
+ "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nArea scaling is recommended when downscaling resolutions that are larger than the output window. It can be used to achieve a supersampled anti-aliasing effect when downscaling by more than 2x.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
"GraphicsScalingFilterBilinear": "Dwuliniowe",
"GraphicsScalingFilterNearest": "Najbliższe",
"GraphicsScalingFilterFsr": "FSR",
diff --git a/src/Ryujinx/Assets/Locales/pt_BR.json b/src/Ryujinx/Assets/Locales/pt_BR.json
index 42a8e437b..d4076f41f 100644
--- a/src/Ryujinx/Assets/Locales/pt_BR.json
+++ b/src/Ryujinx/Assets/Locales/pt_BR.json
@@ -10,10 +10,8 @@
"SettingsTabSystemUseHypervisor": "Usar Hipervisor",
"MenuBarFile": "_Arquivo",
"MenuBarFileOpenFromFile": "_Abrir ROM do jogo...",
- "MenuBarFileOpenFromFileError": "Nenhum aplicativo encontrado no arquivo selecionado.",
+ "MenuBarFileOpenFromFileError": "Nenhuma aplicação encontrada no arquivo selecionado.",
"MenuBarFileOpenUnpacked": "Abrir jogo _extraído...",
- "MenuBarFileLoadDlcFromFolder": "Carregar DLC da Pasta",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Carregar Atualizações de Jogo da Pasta",
"MenuBarFileOpenEmuFolder": "Abrir diretório do e_mulador...",
"MenuBarFileOpenLogsFolder": "Abrir diretório de _logs...",
"MenuBarFileExit": "_Sair",
@@ -33,8 +31,8 @@
"MenuBarToolsManageFileTypes": "Gerenciar tipos de arquivo",
"MenuBarToolsInstallFileTypes": "Instalar tipos de arquivo",
"MenuBarToolsUninstallFileTypes": "Desinstalar tipos de arquivos",
- "MenuBarView": "_View",
- "MenuBarViewWindow": "Window Size",
+ "MenuBarView": "_Visualizar",
+ "MenuBarViewWindow": "Tamanho da Janela",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "_Ajuda",
@@ -83,7 +81,7 @@
"GameListContextMenuOpenModsDirectory": "Abrir pasta de Mods",
"GameListContextMenuOpenModsDirectoryToolTip": "Abre a pasta que contém os mods da aplicação ",
"GameListContextMenuOpenSdModsDirectory": "Abrir diretório de mods Atmosphere",
- "GameListContextMenuOpenSdModsDirectoryToolTip": "Opens the alternative SD card Atmosphere directory which contains Application's Mods. Useful for mods that are packaged for real hardware.",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "Abre o diretório Atmosphere do cartão SD alternativo que contém os Mods do aplicativo. Útil para mods que são empacotados para hardware real.",
"StatusBarGamesLoaded": "{0}/{1} jogos carregados",
"StatusBarSystemVersion": "Versão do firmware: {0}",
"LinuxVmMaxMapCountDialogTitle": "Limite baixo para mapeamentos de memória detectado",
@@ -100,14 +98,11 @@
"SettingsTabGeneralCheckUpdatesOnLaunch": "Verificar se há atualizações ao iniciar",
"SettingsTabGeneralShowConfirmExitDialog": "Exibir diálogo de confirmação ao sair",
"SettingsTabGeneralRememberWindowState": "Lembrar tamanho/posição da Janela",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
"SettingsTabGeneralHideCursor": "Esconder o cursor do mouse:",
"SettingsTabGeneralHideCursorNever": "Nunca",
"SettingsTabGeneralHideCursorOnIdle": "Esconder o cursor quando ocioso",
"SettingsTabGeneralHideCursorAlways": "Sempre",
"SettingsTabGeneralGameDirectories": "Diretórios de jogo",
- "SettingsTabGeneralAutoloadDirectories": "Carregar Automaticamente Diretórios de DLC/Atualizações",
- "SettingsTabGeneralAutoloadNote": "DLCs e Atualizações que se referem a arquivos ausentes serão descarregadas automaticamente",
"SettingsTabGeneralAdd": "Adicionar",
"SettingsTabGeneralRemove": "Remover",
"SettingsTabSystem": "Sistema",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "Hora do sistema:",
"SettingsTabSystemEnableVsync": "Habilitar sincronia vertical",
"SettingsTabSystemEnablePptc": "Habilitar PPTC (Profiled Persistent Translation Cache)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "Habilitar verificação de integridade do sistema de arquivos",
"SettingsTabSystemAudioBackend": "Biblioteca de saída de áudio:",
"SettingsTabSystemAudioBackendDummy": "Nenhuma",
@@ -151,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Hacks",
"SettingsTabSystemHacksNote": " (Pode causar instabilidade)",
- "SettingsTabSystemDramSize": "Tamanho da DRAM:",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Expandir DRAM para 8GiB",
"SettingsTabSystemIgnoreMissingServices": "Ignorar serviços não implementados",
- "SettingsTabSystemIgnoreApplet": "Ignorar applet",
"SettingsTabGraphics": "Gráficos",
"SettingsTabGraphicsAPI": "API gráfica",
"SettingsTabGraphicsEnableShaderCache": "Habilitar cache de shader",
@@ -283,29 +272,29 @@
"ControllerSettingsMotionGyroDeadzone": "Zona morta do giroscópio:",
"ControllerSettingsSave": "Salvar",
"ControllerSettingsClose": "Fechar",
- "KeyUnknown": "Unknown",
- "KeyShiftLeft": "Shift Left",
- "KeyShiftRight": "Shift Right",
- "KeyControlLeft": "Ctrl Left",
- "KeyMacControlLeft": "⌃ Left",
- "KeyControlRight": "Ctrl Right",
- "KeyMacControlRight": "⌃ Right",
- "KeyAltLeft": "Alt Left",
- "KeyMacAltLeft": "⌥ Left",
- "KeyAltRight": "Alt Right",
- "KeyMacAltRight": "⌥ Right",
- "KeyWinLeft": "⊞ Left",
- "KeyMacWinLeft": "⌘ Left",
- "KeyWinRight": "⊞ Right",
- "KeyMacWinRight": "⌘ Right",
+ "KeyUnknown": "Desconhecido",
+ "KeyShiftLeft": "Shift Esquerdo",
+ "KeyShiftRight": "Shift Direito",
+ "KeyControlLeft": "Ctrl Esquerdo",
+ "KeyMacControlLeft": "^ Esquerdo",
+ "KeyControlRight": "Ctrl Direito",
+ "KeyMacControlRight": "^ Direito",
+ "KeyAltLeft": "Alt Esquerdo",
+ "KeyMacAltLeft": "⌥ Esquerdo",
+ "KeyAltRight": "Alt Direito",
+ "KeyMacAltRight": "⌥ Direito",
+ "KeyWinLeft": "⊞ Esquerdo",
+ "KeyMacWinLeft": "⌘ Esquerdo",
+ "KeyWinRight": "⊞ Direito",
+ "KeyMacWinRight": "⌘ Direito",
"KeyMenu": "Menu",
- "KeyUp": "Up",
- "KeyDown": "Down",
- "KeyLeft": "Left",
- "KeyRight": "Right",
- "KeyEnter": "Enter",
+ "KeyUp": "Cima",
+ "KeyDown": "Baixo",
+ "KeyLeft": "Esquerda",
+ "KeyRight": "Direita",
+ "KeyEnter": "Entrar",
"KeyEscape": "Escape",
- "KeySpace": "Space",
+ "KeySpace": "Espaço",
"KeyTab": "Tab",
"KeyBackSpace": "Backspace",
"KeyInsert": "Insert",
@@ -316,24 +305,24 @@
"KeyEnd": "End",
"KeyCapsLock": "Caps Lock",
"KeyScrollLock": "Scroll Lock",
- "KeyPrintScreen": "Print Screen",
- "KeyPause": "Pause",
+ "KeyPrintScreen": "Captura de ecrã",
+ "KeyPause": "Pausar",
"KeyNumLock": "Num Lock",
- "KeyClear": "Clear",
- "KeyKeypad0": "Keypad 0",
- "KeyKeypad1": "Keypad 1",
- "KeyKeypad2": "Keypad 2",
- "KeyKeypad3": "Keypad 3",
- "KeyKeypad4": "Keypad 4",
- "KeyKeypad5": "Keypad 5",
- "KeyKeypad6": "Keypad 6",
- "KeyKeypad7": "Keypad 7",
- "KeyKeypad8": "Keypad 8",
- "KeyKeypad9": "Keypad 9",
- "KeyKeypadDivide": "Keypad Divide",
- "KeyKeypadMultiply": "Keypad Multiply",
- "KeyKeypadSubtract": "Keypad Subtract",
- "KeyKeypadAdd": "Keypad Add",
+ "KeyClear": "Limpar",
+ "KeyKeypad0": "Teclado Numérico 0",
+ "KeyKeypad1": "Teclado Numérico 1",
+ "KeyKeypad2": "Teclado Numérico 2",
+ "KeyKeypad3": "Teclado Numérico 3",
+ "KeyKeypad4": "Teclado Numérico 4",
+ "KeyKeypad5": "Teclado Numérico 5",
+ "KeyKeypad6": "Teclado Numérico 6",
+ "KeyKeypad7": "Teclado Numérico 7",
+ "KeyKeypad8": "Teclado Numérico 8",
+ "KeyKeypad9": "Teclado Numérico 9",
+ "KeyKeypadDivide": "Keypad Dividir",
+ "KeyKeypadMultiply": "Keypad Multiplicar",
+ "KeyKeypadSubtract": "Keypad Subtrair",
+ "KeyKeypadAdd": "Keypad Adicionar",
"KeyKeypadDecimal": "Keypad Decimal",
"KeyKeypadEnter": "Keypad Enter",
"KeyNumber0": "0",
@@ -358,32 +347,32 @@
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "Unbound",
- "GamepadLeftStick": "L Stick Button",
- "GamepadRightStick": "R Stick Button",
- "GamepadLeftShoulder": "Left Shoulder",
- "GamepadRightShoulder": "Right Shoulder",
- "GamepadLeftTrigger": "Left Trigger",
- "GamepadRightTrigger": "Right Trigger",
- "GamepadDpadUp": "Up",
- "GamepadDpadDown": "Down",
- "GamepadDpadLeft": "Left",
- "GamepadDpadRight": "Right",
+ "KeyUnbound": "Desvincular",
+ "GamepadLeftStick": "Botão Analógico Esquerdo",
+ "GamepadRightStick": "Botão Analógico Direito",
+ "GamepadLeftShoulder": "Botão superior esquerdo",
+ "GamepadRightShoulder": "Botão superior direito",
+ "GamepadLeftTrigger": "Botão LT",
+ "GamepadRightTrigger": "Botão RT",
+ "GamepadDpadUp": "Cima",
+ "GamepadDpadDown": "Baixo",
+ "GamepadDpadLeft": "Esquerda",
+ "GamepadDpadRight": "Direita",
"GamepadMinus": "-",
"GamepadPlus": "+",
- "GamepadGuide": "Guide",
+ "GamepadGuide": "Guia",
"GamepadMisc1": "Misc",
"GamepadPaddle1": "Paddle 1",
"GamepadPaddle2": "Paddle 2",
"GamepadPaddle3": "Paddle 3",
"GamepadPaddle4": "Paddle 4",
"GamepadTouchpad": "Touchpad",
- "GamepadSingleLeftTrigger0": "Left Trigger 0",
- "GamepadSingleRightTrigger0": "Right Trigger 0",
- "GamepadSingleLeftTrigger1": "Left Trigger 1",
- "GamepadSingleRightTrigger1": "Right Trigger 1",
- "StickLeft": "Left Stick",
- "StickRight": "Right Stick",
+ "GamepadSingleLeftTrigger0": "Botão LT 0",
+ "GamepadSingleRightTrigger0": "Botão RT 0",
+ "GamepadSingleLeftTrigger1": "Botão LT 1",
+ "GamepadSingleRightTrigger1": "Botão RT 1",
+ "StickLeft": "Analógico esquerdo",
+ "StickRight": "Analógico direito",
"UserProfilesSelectedUserProfile": "Perfil de usuário selecionado:",
"UserProfilesSaveProfileName": "Salvar nome de perfil",
"UserProfilesChangeProfileImage": "Mudar imagem de perfil",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "Definir cor de fundo",
"AvatarClose": "Fechar",
"ControllerSettingsLoadProfileToolTip": "Carregar perfil",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "Adicionar perfil",
"ControllerSettingsRemoveProfileToolTip": "Remover perfil",
"ControllerSettingsSaveProfileToolTip": "Salvar perfil",
@@ -417,8 +405,8 @@
"GameListContextMenuToggleFavorite": "Alternar favorito",
"GameListContextMenuToggleFavoriteToolTip": "Marca ou desmarca jogo como favorito",
"SettingsTabGeneralTheme": "Tema:",
+ "SettingsTabGeneralThemeAuto": "Auto",
"SettingsTabGeneralThemeDark": "Escuro",
- "SettingsTabGeneralThemeAuto": "Automático",
"SettingsTabGeneralThemeLight": "Claro",
"ControllerSettingsConfigureGeneral": "Configurar",
"ControllerSettingsRumble": "Vibração",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "Ocorreu um erro ao tentar encontrar o diretório de salvamento: {0}",
"FolderDialogExtractTitle": "Escolha o diretório onde os arquivos serão extraídos",
"DialogNcaExtractionMessage": "Extraindo seção {0} de {1}...",
- "DialogNcaExtractionTitle": "Extrator de seções NCA",
+ "DialogNcaExtractionTitle": "Ryujinx - Extrator de seções NCA",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "Falha na extração. O NCA principal não foi encontrado no arquivo selecionado.",
"DialogNcaExtractionCheckLogErrorMessage": "Falha na extração. Leia o arquivo de log para mais informações.",
"DialogNcaExtractionSuccessMessage": "Extração concluída com êxito.",
@@ -456,12 +444,12 @@
"DialogUpdaterNoInternetMessage": "Você não está conectado à Internet!",
"DialogUpdaterNoInternetSubMessage": "Por favor, certifique-se de que você tem uma conexão funcional à Internet!",
"DialogUpdaterDirtyBuildMessage": "Você não pode atualizar uma compilação Dirty do Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Por favor, baixe o Ryujinx em https://https://github.com/GreemDev/Ryujinx/releases/ se está procurando por uma versão suportada.",
+ "DialogUpdaterDirtyBuildSubMessage": "Por favor, baixe o Ryujinx em https://ryujinx.org/ se está procurando por uma versão suportada.",
"DialogRestartRequiredMessage": "Reinicialização necessária",
"DialogThemeRestartMessage": "O tema foi salvo. Uma reinicialização é necessária para aplicar o tema.",
"DialogThemeRestartSubMessage": "Deseja reiniciar?",
"DialogFirmwareInstallEmbeddedMessage": "Gostaria de instalar o firmware incluso neste jogo? (Firmware {0})",
- "DialogFirmwareInstallEmbeddedSuccessMessage": "Nenhum firmware instalado foi encontrado, mas o Ryujinx conseguiu instalar o firmware {0} a partir do jogo fornecido.\nO emulador será iniciado agora.",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "Nenhum firmware instalado foi encontrado, mas Ryujinx conseguiu instalar o firmware {0} do jogo fornecido.\nO emulador será iniciado agora.",
"DialogFirmwareNoFirmwareInstalledMessage": "Firmware não foi instalado",
"DialogFirmwareInstalledMessage": "Firmware {0} foi instalado",
"DialogInstallFileTypesSuccessMessage": "Tipos de arquivo instalados com sucesso!",
@@ -504,10 +492,10 @@
"DialogUserProfileUnsavedChangesSubMessage": "Deseja descartar as alterações?",
"DialogControllerSettingsModifiedConfirmMessage": "As configurações de controle atuais foram atualizadas.",
"DialogControllerSettingsModifiedConfirmSubMessage": "Deseja salvar?",
- "DialogLoadFileErrorMessage": "{0}. Arquivo com erro: {1}",
- "DialogModAlreadyExistsMessage": "O mod já existe",
+ "DialogLoadFileErrorMessage": "{0}. Ficheiro com erro: {1}",
+ "DialogModAlreadyExistsMessage": "Mod já existente",
"DialogModInvalidMessage": "O diretório especificado não contém um mod!",
- "DialogModDeleteNoParentMessage": "Falha ao excluir: Não foi possível encontrar o diretório pai do mod \"{0}\"!",
+ "DialogModDeleteNoParentMessage": "Falha ao apagar: Não foi possível encontrar o diretório pai para o mod \"{0}\"!",
"DialogDlcNoDlcErrorMessage": "O arquivo especificado não contém DLCs para o título selecionado!",
"DialogPerformanceCheckLoggingEnabledMessage": "Os logs de depuração estão ativos, esse recurso é feito para ser usado apenas por desenvolvedores.",
"DialogPerformanceCheckLoggingEnabledConfirmMessage": "Para melhor performance, é recomendável desabilitar os logs de depuração. Gostaria de desabilitar os logs de depuração agora?",
@@ -518,8 +506,8 @@
"DialogUpdateAddUpdateErrorMessage": "O arquivo especificado não contém atualizações para o título selecionado!",
"DialogSettingsBackendThreadingWarningTitle": "Alerta - Threading da API gráfica",
"DialogSettingsBackendThreadingWarningMessage": "Ryujinx precisa ser reiniciado após mudar essa opção para que ela tenha efeito. Dependendo da sua plataforma, pode ser preciso desabilitar o multithreading do driver de vídeo quando usar o Ryujinx.",
- "DialogModManagerDeletionWarningMessage": "Você está prestes a excluir o mod: {0}\n\nTem certeza de que deseja continuar?",
- "DialogModManagerDeletionAllWarningMessage": "Você está prestes a excluir todos os mods para este jogo.\n\nTem certeza de que deseja continuar?",
+ "DialogModManagerDeletionWarningMessage": "Está prestes a apagar o mod: {0}\n\nTem a certeza que deseja prosseguir?",
+ "DialogModManagerDeletionAllWarningMessage": "Está prestes a apagar todos os mods para este título.\n\nTem a certeza que deseja prosseguir?",
"SettingsTabGraphicsFeaturesOptions": "Recursos",
"SettingsTabGraphicsBackendMultithreading": "Multithreading da API gráfica:",
"CommonAuto": "Automático",
@@ -554,7 +542,7 @@
"DlcManagerRemoveAllButton": "Remover todos",
"DlcManagerEnableAllButton": "Habilitar todos",
"DlcManagerDisableAllButton": "Desabilitar todos",
- "ModManagerDeleteAllButton": "Apagar Tudo",
+ "ModManagerDeleteAllButton": "Apagar todos",
"MenuBarOptionsChangeLanguage": "Mudar idioma",
"MenuBarShowFileTypes": "Mostrar tipos de arquivo",
"CommonSort": "Ordenar",
@@ -568,22 +556,18 @@
"AddGameDirBoxTooltip": "Escreva um diretório de jogo para adicionar à lista",
"AddGameDirTooltip": "Adicionar um diretório de jogo à lista",
"RemoveGameDirTooltip": "Remover diretório de jogo selecionado",
- "AddAutoloadDirBoxTooltip": "Insira um diretório de carregamento automático para adicionar à lista",
- "AddAutoloadDirTooltip": "Adicionar um diretório de carregamento automático à lista",
- "RemoveAutoloadDirTooltip": "Remover o diretório de carregamento automático selecionado",
"CustomThemeCheckTooltip": "Habilita ou desabilita temas customizados na interface gráfica",
"CustomThemePathTooltip": "Diretório do tema customizado",
"CustomThemeBrowseTooltip": "Navegar até um tema customizado",
- "DockModeToggleTooltip": "O modo TV faz o sistema emulado se comportar como um Nintendo Switch na TV, o que melhora a fidelidade gráfica na maioria dos jogos. Por outro lado, desativar essa opção fará o sistema emulado se comportar como um Nintendo Switch portátil, reduzindo a qualidade gráfica.\n\nConfigure os controles do jogador 1 se planeja usar o modo TV; configure os controles de portátil se planeja usar o modo Portátil.\n\nMantenha ativado se estiver em dúvida.",
- "DirectKeyboardTooltip": "Suporte para acesso direto ao teclado (HID). Permite que os jogos acessem seu teclado como um dispositivo de entrada de texto.\n\nFunciona apenas com jogos que suportam o uso de teclado nativamente no hardware do Switch.\n\nDeixe desativado se estiver em dúvida.",
- "DirectMouseTooltip": "Suporte para acesso direto ao mouse (HID). Permite que os jogos acessem seu mouse como um dispositivo de apontamento.\n\nFunciona apenas com jogos que suportam controles de mouse nativamente no hardware do Switch, o que é raro.\n\nQuando ativado, a funcionalidade de tela sensível ao toque pode não funcionar.\n\nDeixe desativado se estiver em dúvida.",
+ "DockModeToggleTooltip": "Habilita ou desabilita modo TV",
+ "DirectKeyboardTooltip": "Suporte direto ao acesso do teclado (HID). Permite que os jogos acessem seu teclado como um dispositivo de entrada de texto.\n\nFunciona apenas com jogos que suportam nativamente o uso do teclado no hardware do Switch.\n\nDeixe DESATIVADO se estiver em dúvida.",
+ "DirectMouseTooltip": "Suporte direto ao acesso do mouse (HID). Permite que os jogos acessem seu mouse como um dispositivo apontador.\n\nFunciona apenas com jogos que suportam nativamente controles de mouse no hardware do Switch, o que é raro.\n\nQuando ativado, a funcionalidade de tela sensível ao toque pode não funcionar.\n\nDeixe DESATIVADO se estiver em dúvida.",
"RegionTooltip": "Mudar a região do sistema",
"LanguageTooltip": "Mudar o idioma do sistema",
"TimezoneTooltip": "Mudar o fuso-horário do sistema",
"TimeTooltip": "Mudar a hora do sistema",
- "VSyncToggleTooltip": "V-Sync do console emulado. Funciona essencialmente como um limitador de quadros para a maioria dos jogos; desativá-lo pode fazer com que os jogos rodem em uma velocidade mais alta ou que telas de carregamento demorem mais ou travem.\n\nPode ser alternado durante o jogo com uma tecla de atalho de sua preferência (F1 por padrão). Recomendamos isso caso planeje desativá-lo.\n\nMantenha ligado se estiver em dúvida.",
+ "VSyncToggleTooltip": "Sincronização Vertical do Console Emulado. Essencialmente, um limitador de quadros para a maioria dos jogos; desativá-lo pode fazer com que os jogos funcionem em velocidades mais altas, causar lentidão ou travamentos nas telas de carregamento.\n\nPode ser alternado durante o jogo com uma tecla de atalho de sua preferência (por padrão, F1). Recomendamos fazer isso se você planeja desativá-lo.\n\nDeixe ATIVADO se estiver em dúvida.",
"PptcToggleTooltip": "Habilita ou desabilita PPTC",
- "LowPowerPptcToggleTooltip": "Carregar o PPTC usando um terço da quantidade de núcleos.",
"FsIntegrityToggleTooltip": "Habilita ou desabilita verificação de integridade dos arquivos do jogo",
"AudioBackendTooltip": "Mudar biblioteca de áudio",
"MemoryManagerTooltip": "Muda como a memória do sistema convidado é acessada. Tem um grande impacto na performance da CPU emulada.",
@@ -591,16 +575,15 @@
"MemoryManagerHostTooltip": "Mapeia memória no espaço de endereço hóspede diretamente. Compilação e execução do JIT muito mais rápida.",
"MemoryManagerUnsafeTooltip": "Mapeia memória diretamente, mas sem limitar o acesso ao espaço de endereçamento do sistema convidado. Mais rápido, porém menos seguro. O aplicativo convidado pode acessar memória de qualquer parte do Ryujinx, então apenas rode programas em que você confia nesse modo.",
"UseHypervisorTooltip": "Usa o Hypervisor em vez de JIT (recompilador dinâmico). Melhora significativamente o desempenho quando disponível, mas pode ser instável no seu estado atual.",
- "DRamTooltip": "Expande a memória do sistema emulado de 4GiB para 6GiB",
+ "DRamTooltip": "Utiliza um modo de memória alternativo com 8GiB de DRAM para imitar um modelo de desenvolvimento Switch.\n\nIsso é útil apenas para pacotes de texturas de alta resolução ou modificações de resolução 4k. NÃO melhora o desempenho.\n\nDeixe DESLIGADO se não tiver certeza.",
"IgnoreMissingServicesTooltip": "Habilita ou desabilita a opção de ignorar serviços não implementados",
- "IgnoreAppletTooltip": "O diálogo externo \"Controller Applet\" não aparecerá se o gamepad for desconectado durante o jogo. Não haverá prompt para fechar o diálogo ou configurar um novo controle. Assim que o controle desconectado anteriormente for reconectado, o jogo será retomado automaticamente.",
"GraphicsBackendThreadingTooltip": "Habilita multithreading do backend gráfico",
"GalThreadingTooltip": "Executa comandos do backend gráfico em uma segunda thread. Permite multithreading em tempo de execução da compilação de shader, diminui os travamentos, e melhora performance em drivers sem suporte embutido a multithreading. Pequena variação na performance máxima em drivers com suporte a multithreading. Ryujinx pode precisar ser reiniciado para desabilitar adequadamente o multithreading embutido do driver, ou você pode precisar fazer isso manualmente para ter a melhor performance.",
"ShaderCacheToggleTooltip": "Habilita ou desabilita o cache de shader",
- "ResolutionScaleTooltip": "Multiplica a resolução de renderização do jogo.\n\nAlguns jogos podem não funcionar bem com essa opção e apresentar uma aparência pixelada, mesmo com o aumento da resolução; para esses jogos, talvez seja necessário encontrar mods que removam o anti-aliasing ou aumentem a resolução de renderização interna. Ao usar a segunda opção, provavelmente desejará selecionar Nativa.\n\nEssa opção pode ser alterada enquanto um jogo está em execução, clicando em \"Aplicar\" abaixo; basta mover a janela de configurações para o lado e experimentar até encontrar o visual preferido para o jogo.\n\nLembre-se de que 4x é exagerado para praticamente qualquer configuração.",
+ "ResolutionScaleTooltip": "Multiplica a resolução de renderização do jogo.\n\nAlguns jogos podem não funcionar com isso e parecer pixelizados mesmo quando a resolução é aumentada; para esses jogos, pode ser necessário encontrar mods que removam o anti-aliasing ou que aumentem a resolução de renderização interna. Para usar este último, provavelmente você desejará selecionar \"Nativa\".\n\nEsta opção pode ser alterada enquanto um jogo está em execução clicando em \"Aplicar\" abaixo; você pode simplesmente mover a janela de configurações para o lado e experimentar até encontrar a aparência preferida para um jogo.\n\nLembre-se de que 4x é exagerado para praticamente qualquer configuração.",
"ResolutionScaleEntryTooltip": "Escala de resolução de ponto flutuante, como 1.5. Valores não inteiros tem probabilidade maior de causar problemas ou quebras.",
- "AnisotropyTooltip": "Nível de Filtragem Anisotrópica. Defina como Automático para usar o valor solicitado pelo jogo.",
- "AspectRatioTooltip": "Proporção de Tela aplicada à janela do renderizador.\n\nAltere isso apenas se estiver usando um mod de proporção para o seu jogo; caso contrário, os gráficos ficarão esticados.\n\nMantenha em 16:9 se estiver em dúvida.",
+ "AnisotropyTooltip": "Nível de filtragem anisotrópica. Defina como Auto para usar o valor solicitado pelo jogo.",
+ "AspectRatioTooltip": "Proporção de aspecto aplicada à janela do renderizador.\n\nApenas altere este ratio se estiver usando um mod de proporção de aspecto para o jogo; caso contrário, os gráficos serão esticados.\n\nDeixe em 16:9 se não tiver a certeza.",
"ShaderDumpPathTooltip": "Diretòrio de despejo de shaders",
"FileLogTooltip": "Habilita ou desabilita log para um arquivo no disco",
"StubLogTooltip": "Habilita ou desabilita exibição de mensagens de stub",
@@ -617,8 +600,6 @@
"LoadApplicationFileTooltip": "Abre o navegador de arquivos para seleção de um arquivo do Switch compatível a ser carregado",
"LoadApplicationFolderTooltip": "Abre o navegador de pastas para seleção de pasta extraída do Switch compatível a ser carregada",
"OpenRyujinxFolderTooltip": "Abre o diretório do sistema de arquivos do Ryujinx",
- "LoadTitleUpdatesFromFolderTooltip": "Abra o explorador de arquivos para selecionar uma ou mais pastas e carregar atualizações de jogo em massa.",
- "OpenRyujinxFolderTooltip": "Abrir diretório do sistema de arquivos do Ryujinx",
"OpenRyujinxLogsTooltip": "Abre o diretório onde os logs são salvos",
"ExitTooltip": "Sair do Ryujinx",
"OpenSettingsTooltip": "Abrir janela de configurações",
@@ -636,8 +617,8 @@
"EnableInternetAccessTooltip": "Habilita acesso à internet do programa convidado. Se habilitado, o aplicativo vai se comportar como se o sistema Switch emulado estivesse conectado a Internet. Note que em alguns casos, aplicativos podem acessar a Internet mesmo com essa opção desabilitada",
"GameListContextMenuManageCheatToolTip": "Gerenciar Cheats",
"GameListContextMenuManageCheat": "Gerenciar Cheats",
- "GameListContextMenuManageModToolTip": "Gerenciar Mods",
- "GameListContextMenuManageMod": "Gerenciar Mods",
+ "GameListContextMenuManageModToolTip": "Gerir mods",
+ "GameListContextMenuManageMod": "Gerir mods",
"ControllerSettingsStickRange": "Intervalo:",
"DialogStopEmulationTitle": "Ryujinx - Parar emulação",
"DialogStopEmulationMessage": "Tem certeza que deseja parar a emulação?",
@@ -668,9 +649,9 @@
"UserErrorUndefinedDescription": "Um erro indefinido occoreu! Isso não deveria acontecer, por favor contate um desenvolvedor!",
"OpenSetupGuideMessage": "Abrir o guia de configuração",
"NoUpdate": "Sem atualizações",
- "TitleUpdateVersionLabel": "Versão {0}",
- "TitleBundledUpdateVersionLabel": "Empacotado: Versão {0}",
- "TitleBundledDlcLabel": "Empacotado:",
+ "TitleUpdateVersionLabel": "Versão {0} - {1}",
+ "TitleBundledUpdateVersionLabel": "Embutido: Versão {0}",
+ "TitleBundledDlcLabel": "Embutido:",
"RyujinxInfo": "Ryujinx - Informação",
"RyujinxConfirm": "Ryujinx - Confirmação",
"FileDialogAllTypes": "Todos os tipos",
@@ -681,10 +662,10 @@
"SoftwareKeyboardModeNumeric": "Deve ser somente 0-9 ou '.'",
"SoftwareKeyboardModeAlphabet": "Apenas devem ser caracteres não CJK.",
"SoftwareKeyboardModeASCII": "Deve ser apenas texto ASCII",
- "ControllerAppletControllers": "Supported Controllers:",
+ "ControllerAppletControllers": "Controladores suportados:",
"ControllerAppletPlayers": "Jogadores:",
- "ControllerAppletDescription": "Your current configuration is invalid. Open settings and reconfigure your inputs.",
- "ControllerAppletDocked": "Docked mode set. Handheld control should be disabled.",
+ "ControllerAppletDescription": "Sua configuração atual é inválida. Abra as configurações e reconfigure suas entradas.",
+ "ControllerAppletDocked": "Modo acoplado definido. O controle do computador de mão deve ser desativado.",
"UpdaterRenaming": "Renomeando arquivos antigos...",
"UpdaterRenameFailed": "O atualizador não conseguiu renomear o arquivo: {0}",
"UpdaterAddingFiles": "Adicionando novos arquivos...",
@@ -722,29 +703,21 @@
"Writable": "Gravável",
"SelectDlcDialogTitle": "Selecionar arquivos de DLC",
"SelectUpdateDialogTitle": "Selecionar arquivos de atualização",
- "SelectModDialogTitle": "Select mod directory",
+ "SelectModDialogTitle": "Selecione o diretório dos mods",
"UserProfileWindowTitle": "Gerenciador de perfis de usuário",
"CheatWindowTitle": "Gerenciador de Cheats",
"DlcWindowTitle": "Gerenciador de DLC",
- "ModWindowTitle": "Gerenciar Mods para {0} ({1})",
+ "ModWindowTitle": "Gerir mods para {0} ({1})",
"UpdateWindowTitle": "Gerenciador de atualizações",
- "UpdateWindowUpdateAddedMessage": "{0} nova(s) atualização(ões) adicionada(s)",
- "UpdateWindowBundledContentNotice": "Atualizações incorporadas não podem ser removidas, apenas desativadas.",
"CheatWindowHeading": "Cheats disponíveis para {0} [{1}]",
- "BuildId": "ID da Build:",
- "DlcWindowBundledContentNotice": "DLCs incorporadas não podem ser removidas, apenas desativadas.",
+ "BuildId": "ID da Build",
"DlcWindowHeading": "{0} DLCs disponíveis para {1} ({2})",
- "DlcWindowDlcAddedMessage": "{0} novo(s) conteúdo(s) para download adicionado(s)",
- "AutoloadDlcAddedMessage": "{0} novo(s) conteúdo(s) para download adicionado(s)",
- "AutoloadDlcRemovedMessage": "{0} conteúdo(s) para download ausente(s) removido(s)",
- "AutoloadUpdateAddedMessage": "{0} nova(s) atualização(ões) adicionada(s)",
- "AutoloadUpdateRemovedMessage": "{0} atualização(ões) ausente(s) removida(s)",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Editar selecionado",
"Cancel": "Cancelar",
"Save": "Salvar",
"Discard": "Descartar",
- "Paused": "Paused",
+ "Paused": "Pausado",
"UserProfilesSetProfileImage": "Definir imagem de perfil",
"UserProfileEmptyNameError": "É necessário um nome",
"UserProfileNoImageError": "A imagem de perfil deve ser definida",
@@ -754,9 +727,9 @@
"UserProfilesName": "Nome:",
"UserProfilesUserId": "ID de usuário:",
"SettingsTabGraphicsBackend": "Backend gráfico",
- "SettingsTabGraphicsBackendTooltip": "Select the graphics backend that will be used in the emulator.\n\nVulkan is overall better for all modern graphics cards, as long as their drivers are up to date. Vulkan also features faster shader compilation (less stuttering) on all GPU vendors.\n\nOpenGL may achieve better results on old Nvidia GPUs, on old AMD GPUs on Linux, or on GPUs with lower VRAM, though shader compilation stutters will be greater.\n\nSet to Vulkan if unsure. Set to OpenGL if your GPU does not support Vulkan even with the latest graphics drivers.",
+ "SettingsTabGraphicsBackendTooltip": "Selecione o backend gráfico que será usado no emulador.\n\nVulkan é geralmente melhor para todas as placas gráficas modernas, contanto que seus drivers estejam atualizados. Vulkan também apresenta uma compilação de shader mais rápida (menos travamentos) em todos os fornecedores de GPU.\n\nOpenGL pode alcançar melhores resultados em GPUs Nvidia antigas, em GPUs AMD antigas no Linux, ou em GPUs com menor VRAM, embora os travamentos na compilação de shaders sejam maiores.\n\nDefina como Vulkan se estiver em dúvida. Defina como OpenGL se sua GPU não suportar Vulkan mesmo com os drivers gráficos mais recentes.",
"SettingsEnableTextureRecompression": "Habilitar recompressão de texturas",
- "SettingsEnableTextureRecompressionTooltip": "Compresses ASTC textures in order to reduce VRAM usage.\n\nGames using this texture format include Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder and The Legend of Zelda: Tears of the Kingdom.\n\nGraphics cards with 4GiB VRAM or less will likely crash at some point while running these games.\n\nEnable only if you're running out of VRAM on the aforementioned games. Leave OFF if unsure.",
+ "SettingsEnableTextureRecompressionTooltip": "Comprime texturas ASTC para reduzir o uso de VRAM.\n\nJogos que utilizam este formato de textura incluem Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder e The Legend of Zelda: Tears of the Kingdom.\n\nPlacas gráficas com 4GiB de VRAM ou menos provavelmente irão travar em algum momento ao executar esses jogos.\n\nAtive apenas se estiver com pouco VRAM nos jogos mencionados. Deixe DESATIVADO se estiver em dúvida.",
"SettingsTabGraphicsPreferredGpu": "GPU preferencial",
"SettingsTabGraphicsPreferredGpuTooltip": "Selecione a placa de vídeo que será usada com o backend gráfico Vulkan.\n\nNão afeta a GPU que OpenGL usará.\n\nSelecione \"dGPU\" em caso de dúvida. Se não houver nenhuma, não mexa.",
"SettingsAppRequiredRestartMessage": "Reinicialização do Ryujinx necessária",
@@ -782,16 +755,16 @@
"Recover": "Recuperar",
"UserProfilesRecoverHeading": "Jogos salvos foram encontrados para as seguintes contas",
"UserProfilesRecoverEmptyList": "Nenhum perfil para recuperar",
- "GraphicsAATooltip": "Aplica anti-aliasing à renderização do jogo.\n\nFXAA borrará a maior parte da imagem, enquanto SMAA tentará identificar e suavizar bordas serrilhadas.\n\nNão é recomendado usar em conjunto com o filtro de escala FSR.\n\nEssa opção pode ser alterada enquanto o jogo está em execução clicando em \"Aplicar\" abaixo; basta mover a janela de configurações para o lado e experimentar até encontrar o visual preferido para o jogo.\n\nDeixe em NENHUM se estiver em dúvida.",
+ "GraphicsAATooltip": "Aplica anti-aliasing à renderização do jogo.\n\nFXAA irá desfocar a maioria da imagem, enquanto SMAA tentará identificar bordas serrilhadas e suavizá-las.\n\nNão é recomendado usar em conjunto com o filtro de escala FSR.\n\nEsta opção pode ser alterada enquanto um jogo está em execução clicando em \"Aplicar\" abaixo; você pode simplesmente mover a janela de configurações para o lado e experimentar até encontrar a aparência preferida para um jogo.\n\nDeixe como NENHUM se estiver em dúvida.",
"GraphicsAALabel": "Anti-serrilhado:",
"GraphicsScalingFilterLabel": "Filtro de escala:",
- "GraphicsScalingFilterTooltip": "Escolha o filtro de escala que será aplicado ao usar a escala de resolução.\n\nBilinear funciona bem para jogos 3D e é uma opção padrão segura.\n\nNearest é recomendado para jogos em pixel art.\n\nFSR 1.0 é apenas um filtro de nitidez, não recomendado para uso com FXAA ou SMAA.\n\nEssa opção pode ser alterada enquanto o jogo está em execução, clicando em \"Aplicar\" abaixo; basta mover a janela de configurações para o lado e experimentar até encontrar o visual preferido para o jogo.\n\nMantenha em BILINEAR se estiver em dúvida.",
+ "GraphicsScalingFilterTooltip": "Escolha o filtro de escala que será aplicado ao usar a escala de resolução.\n\nBilinear funciona bem para jogos 3D e é uma opção padrão segura.\n\nNearest é recomendado para jogos com arte pixelada.\n\nFSR 1.0 é apenas um filtro de nitidez, não recomendado para uso com FXAA ou SMAA.\n\nEsta opção pode ser alterada enquanto um jogo está em execução clicando em \"Aplicar\" abaixo; você pode simplesmente mover a janela de configurações para o lado e experimentar até encontrar a aparência preferida para um jogo.\n\nDeixe como BILINEAR se estiver em dúvida.",
"GraphicsScalingFilterBilinear": "Bilinear",
"GraphicsScalingFilterNearest": "Nearest",
"GraphicsScalingFilterFsr": "FSR",
- "GraphicsScalingFilterArea": "Area",
+ "GraphicsScalingFilterArea": "Área",
"GraphicsScalingFilterLevelLabel": "Nível",
- "GraphicsScalingFilterLevelTooltip": "Defina o nível de nitidez do FSR 1.0. Quanto maior, mais nítido.",
+ "GraphicsScalingFilterLevelTooltip": "Defina o nível de nitidez do FSR 1.0. Mais alto é mais nítido.",
"SmaaLow": "SMAA Baixo",
"SmaaMedium": "SMAA Médio",
"SmaaHigh": "SMAA Alto",
@@ -799,14 +772,14 @@
"UserEditorTitle": "Editar usuário",
"UserEditorTitleCreate": "Criar usuário",
"SettingsTabNetworkInterface": "Interface de rede:",
- "NetworkInterfaceTooltip": "A interface de rede usada para recursos de LAN/LDN.\n\nEm conjunto com uma VPN ou XLink Kai e um jogo com suporte a LAN, pode ser usada para simular uma conexão na mesma rede pela Internet.\n\nMantenha em PADRÃO se estiver em dúvida.",
+ "NetworkInterfaceTooltip": "A interface de rede usada para recursos LAN/LDN.\n\nEm conjunto com uma VPN ou XLink Kai e um jogo com suporte a LAN, pode ser usada para simular uma conexão na mesma rede pela Internet.\n\nDeixe como PADRÃO se estiver em dúvida.",
"NetworkInterfaceDefault": "Padrão",
"PackagingShaders": "Empacotamento de Shaders",
"AboutChangelogButton": "Ver mudanças no GitHub",
"AboutChangelogButtonTooltipMessage": "Clique para abrir o relatório de alterações para esta versão no seu navegador padrão.",
"SettingsTabNetworkMultiplayer": "Multiplayer",
"MultiplayerMode": "Modo:",
- "MultiplayerModeTooltip": "Alterar o modo multiplayer LDN.\n\nLdnMitm modificará a funcionalidade de jogo sem fio/local nos jogos para funcionar como se fosse LAN, permitindo conexões locais, na mesma rede, com outras instâncias do Ryujinx e consoles Nintendo Switch hackeados que possuem o módulo ldn_mitm instalado.\n\nO multiplayer exige que todos os jogadores estejam na mesma versão do jogo (ex.: Super Smash Bros. Ultimate v13.0.1 não consegue se conectar à v13.0.0).\n\nDeixe DESATIVADO se estiver em dúvida.",
- "MultiplayerModeDisabled": "Desativado",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeTooltip": "Alterar Modo Multiplayer com Rede LDN.\n\nO LdnMitm modificará a funcionalidade de jogo wireless/local em jogos para funcionar como se fosse uma LAN, permitindo conexões locais na mesma rede com outras instâncias do Ryujinx e consoles Nintendo Switch hackeados que têm o módulo ldn_mitm instalado.\n\nO Modo Multiplayer exige que todos os jogadores estejam na mesma versão do jogo (por exemplo, Super Smash Bros. Ultimate v13.0.1 não pode se conectar à v13.0.0).\n\nDeixe DESATIVADO se estiver em dúvida.",
+ "MultiplayerModeDisabled": "Desabilitado",
+ "MultiplayerModeLdnMitm": "Modo Multiplayer com Rede LDN"
}
diff --git a/src/Ryujinx/Assets/Locales/ru_RU.json b/src/Ryujinx/Assets/Locales/ru_RU.json
index 4ef6ff6d9..1305990c5 100644
--- a/src/Ryujinx/Assets/Locales/ru_RU.json
+++ b/src/Ryujinx/Assets/Locales/ru_RU.json
@@ -10,10 +10,8 @@
"SettingsTabSystemUseHypervisor": "Использовать Hypervisor",
"MenuBarFile": "_Файл",
"MenuBarFileOpenFromFile": "_Добавить приложение из файла",
- "MenuBarFileOpenFromFileError": "No applications found in selected file.",
+ "MenuBarFileOpenFromFileError": "В выбранном файле игра не найдена.",
"MenuBarFileOpenUnpacked": "Добавить _распакованную игру",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
"MenuBarFileOpenEmuFolder": "Открыть папку Ryujinx",
"MenuBarFileOpenLogsFolder": "Открыть папку с логами",
"MenuBarFileExit": "_Выход",
@@ -100,14 +98,11 @@
"SettingsTabGeneralCheckUpdatesOnLaunch": "Проверять наличие обновлений при запуске",
"SettingsTabGeneralShowConfirmExitDialog": "Подтверждать выход из приложения",
"SettingsTabGeneralRememberWindowState": "Запомнить размер/положение окна",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
"SettingsTabGeneralHideCursor": "Скрывать курсор",
"SettingsTabGeneralHideCursorNever": "Никогда",
"SettingsTabGeneralHideCursorOnIdle": "В простое",
"SettingsTabGeneralHideCursorAlways": "Всегда",
"SettingsTabGeneralGameDirectories": "Папки с играми",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "Добавить",
"SettingsTabGeneralRemove": "Удалить",
"SettingsTabSystem": "Система",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "Системное время в прошивке:",
"SettingsTabSystemEnableVsync": "Вертикальная синхронизация",
"SettingsTabSystemEnablePptc": "Использовать PPTC (Profiled Persistent Translation Cache)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "Проверка целостности файловой системы",
"SettingsTabSystemAudioBackend": "Аудио бэкенд:",
"SettingsTabSystemAudioBackendDummy": "Без звука",
@@ -151,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Хаки",
"SettingsTabSystemHacksNote": "Возможна нестабильная работа",
- "SettingsTabSystemDramSize": "Использовать альтернативный макет памяти (для разработчиков)",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Расширение DRAM до 8ГБ",
"SettingsTabSystemIgnoreMissingServices": "Игнорировать отсутствующие службы",
- "SettingsTabSystemIgnoreApplet": "Игнорировать Апплет",
"SettingsTabGraphics": "Графика",
"SettingsTabGraphicsAPI": "Графические API",
"SettingsTabGraphicsEnableShaderCache": "Кэшировать шейдеры",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "Установить цвет фона",
"AvatarClose": "Закрыть",
"ControllerSettingsLoadProfileToolTip": "Загрузить профиль",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "Добавить профиль",
"ControllerSettingsRemoveProfileToolTip": "Удалить профиль",
"ControllerSettingsSaveProfileToolTip": "Сохранить профиль",
@@ -417,7 +405,7 @@
"GameListContextMenuToggleFavorite": "Добавить в избранное",
"GameListContextMenuToggleFavoriteToolTip": "Добавляет игру в избранное и помечает звездочкой",
"SettingsTabGeneralTheme": "Тема:",
- "SettingsTabGeneralThemeAuto": "Auto",
+ "SettingsTabGeneralThemeAuto": "Системная",
"SettingsTabGeneralThemeDark": "Темная",
"SettingsTabGeneralThemeLight": "Светлая",
"ControllerSettingsConfigureGeneral": "Настройка",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "Произошла ошибка при поиске указанных данных сохранения: {0}",
"FolderDialogExtractTitle": "Выберите папку для извлечения",
"DialogNcaExtractionMessage": "Извлечение {0} раздела из {1}...",
- "DialogNcaExtractionTitle": "Извлечение разделов NCA",
+ "DialogNcaExtractionTitle": "Ryujinx - Извлечение разделов NCA",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "Ошибка извлечения. Основной NCA не присутствовал в выбранном файле.",
"DialogNcaExtractionCheckLogErrorMessage": "Ошибка извлечения. Прочтите файл журнала для получения дополнительной информации.",
"DialogNcaExtractionSuccessMessage": "Извлечение завершено успешно.",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "Вы не подключены к интернету",
"DialogUpdaterNoInternetSubMessage": "Убедитесь, что у вас работает подключение к интернету",
"DialogUpdaterDirtyBuildMessage": "Вы не можете обновлять Dirty Build",
- "DialogUpdaterDirtyBuildSubMessage": "Загрузите Ryujinx по адресу https://https://github.com/GreemDev/Ryujinx/releases/ если вам нужна поддерживаемая версия.",
+ "DialogUpdaterDirtyBuildSubMessage": "Загрузите Ryujinx по адресу https://ryujinx.org/ если вам нужна поддерживаемая версия.",
"DialogRestartRequiredMessage": "Требуется перезагрузка",
"DialogThemeRestartMessage": "Тема сохранена. Для применения темы требуется перезапуск.",
"DialogThemeRestartSubMessage": "Хотите перезапустить",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "Введите путь к папке с играми для добавления ее в список выше",
"AddGameDirTooltip": "Добавить папку с играми в список",
"RemoveGameDirTooltip": "Удалить выбранную папку игры",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "Включить или отключить пользовательские темы",
"CustomThemePathTooltip": "Путь к пользовательской теме для интерфейса",
"CustomThemeBrowseTooltip": "Просмотр пользовательской темы интерфейса",
@@ -583,7 +568,6 @@
"TimeTooltip": "Меняет системное время прошивки",
"VSyncToggleTooltip": "Эмуляция вертикальной синхронизации консоли, которая ограничивает количество кадров в секунду в большинстве игр; отключение может привести к тому, что игры будут запущены с более высокой частотой кадров, но загрузка игры может занять больше времени, либо игра не запустится вообще.\n\nМожно включать и выключать эту настройку непосредственно в игре с помощью горячих клавиш (F1 по умолчанию). Если планируете отключить вертикальную синхронизацию, рекомендуем настроить горячие клавиши.\n\nРекомендуется оставить включенным.",
"PptcToggleTooltip": "Сохраняет скомпилированные JIT-функции для того, чтобы не преобразовывать их по новой каждый раз при запуске игры.\n\nУменьшает статтеры и значительно ускоряет последующую загрузку игр.\n\nРекомендуется оставить включенным.",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
"FsIntegrityToggleTooltip": "Проверяет файлы при загрузке игры и если обнаружены поврежденные файлы, выводит сообщение о поврежденном хэше в журнале.\n\nНе влияет на производительность и необходим для помощи в устранении неполадок.\n\nРекомендуется оставить включенным.",
"AudioBackendTooltip": "Изменяет используемый аудио бэкенд для рендера звука.\n\nSDL2 является предпочтительным вариантом, в то время как OpenAL и SoundIO используются в качестве резервных.\n\nРекомендуется использование SDL2.",
"MemoryManagerTooltip": "Меняет разметку и доступ к гостевой памяти. Значительно влияет на производительность процессора.\n\nРекомендуется оставить \"Хост не установлен\"",
@@ -591,9 +575,8 @@
"MemoryManagerHostTooltip": "Прямая разметка памяти в адресном пространстве хоста. \nЗначительно более быстрые запуск и компиляция JIT.",
"MemoryManagerUnsafeTooltip": "Производит прямую разметку памяти, но не маскирует адрес в гостевом адресном пространстве перед получением доступа. \nБыстро, но небезопасно. Гостевое приложение может получить доступ к памяти из Ryujinx, поэтому в этом режиме рекомендуется запускать только те программы, которым вы доверяете.",
"UseHypervisorTooltip": "Использует Hypervisor вместо JIT. Значительно увеличивает производительность, но может работать нестабильно.",
- "DRamTooltip": "Использует альтернативный макет MemoryMode для имитации использования Nintendo Switch в режиме разработчика.\n\nПолезно только для пакетов текстур с высоким разрешением или модов добавляющих разрешение 4К. Не улучшает производительность.\n\nРекомендуется оставить выключенным.",
+ "DRamTooltip": "Использует альтернативный режим памяти в 8ГБ DRAM, для имитации модели Switch для разработчиков.\n\nПолезно только для пакетов текстур с высоким разрешением или модификаций с разрешением 4K. Не улучшает производительность.\n\nНе включайте без необходимости.",
"IgnoreMissingServicesTooltip": "Игнорирует нереализованные сервисы Horizon в новых прошивках. Эта настройка поможет избежать вылеты при запуске определенных игр.\n\nРекомендуется оставить выключенным.",
- "IgnoreAppletTooltip": "Внешний диалог \"Апплет контроллера\" не появится, если геймпад будет отключен во время игры. Не будет предложено закрыть диалог или настроить новый контроллер. После повторного подключения ранее отключенного контроллера игра автоматически возобновится.",
"GraphicsBackendThreadingTooltip": "Выполняет команды графического бэкенда на втором потоке.\n\nУскоряет компиляцию шейдеров, уменьшает статтеры и повышает производительность на драйверах видеоадаптера без поддержки многопоточности. Производительность на драйверах с многопоточностью немного выше.\n\nРекомендуется оставить Автоматически.",
"GalThreadingTooltip": "Выполняет команды графического бэкенда на втором потоке.\n\nУскоряет компиляцию шейдеров, уменьшает статтеры и повышает производительность на драйверах видеоадаптера без поддержки многопоточности. Производительность на драйверах с многопоточностью немного выше.\n\nРекомендуется оставить Автоматически.",
"ShaderCacheToggleTooltip": "Сохраняет кэш шейдеров на диске, для уменьшения статтеров при последующих запусках.\n\nРекомендуется оставить включенным.",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "Выводит журнал сообщений отладки в консоли.\n\nИспользуйте только в случае просьбы разработчика, так как включение этой функции затруднит чтение журналов и ухудшит работу эмулятора.",
"LoadApplicationFileTooltip": "Открывает файловый менеджер для выбора файла, совместимого с Nintendo Switch.",
"LoadApplicationFolderTooltip": "Открывает файловый менеджер для выбора распакованного приложения, совместимого с Nintendo Switch.",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "Открывает папку с файлами Ryujinx. ",
"OpenRyujinxLogsTooltip": "Открывает папку в которую записываются логи",
"ExitTooltip": "Выйти из Ryujinx",
@@ -668,9 +649,9 @@
"UserErrorUndefinedDescription": "Произошла неизвестная ошибка. Этого не должно происходить, пожалуйста, свяжитесь с разработчиками.",
"OpenSetupGuideMessage": "Открыть руководство по установке",
"NoUpdate": "Без обновлений",
- "TitleUpdateVersionLabel": "Version {0} - {1}",
- "TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
- "TitleBundledDlcLabel": "Bundled:",
+ "TitleUpdateVersionLabel": "Версия {0}",
+ "TitleBundledUpdateVersionLabel": "Комплект: Версия {0}",
+ "TitleBundledDlcLabel": "Комплект:",
"RyujinxInfo": "Ryujinx - Информация",
"RyujinxConfirm": "Ryujinx - Подтверждение",
"FileDialogAllTypes": "Все типы",
@@ -728,17 +709,9 @@
"DlcWindowTitle": "Управление DLC для {0} ({1})",
"ModWindowTitle": "Управление модами для {0} ({1})",
"UpdateWindowTitle": "Менеджер обновлений игр",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Доступные читы для {0} [{1}]",
"BuildId": "ID версии:",
- "DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
"DlcWindowHeading": "{0} DLC",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "Моды для {0} ",
"UserProfilesEditProfile": "Изменить выбранные",
"Cancel": "Отмена",
@@ -785,11 +758,11 @@
"GraphicsAATooltip": "Применимое сглаживание для рендера.\n\nFXAA размывает большую часть изображения, SMAA попытается найти \"зазубренные\" края и сгладить их.\n\nНе рекомендуется использовать вместе с масштабирующим фильтром FSR.\n\nЭта опция может быть изменена во время игры по нажатию \"Применить\" ниже; \nВы можете просто переместить окно настроек в сторону и поэкспериментировать, пока не найдёте подходящую настройку игры.\n\nРекомендуется использовать \"Нет\".",
"GraphicsAALabel": "Сглаживание:",
"GraphicsScalingFilterLabel": "Интерполяция:",
- "GraphicsScalingFilterTooltip": "Фильтрация текстур, которая будет применяться при масштабировании.\n\nБилинейная хорошо работает для 3D-игр и является настройкой по умолчанию.\n\nСтупенчатая рекомендуется для пиксельных игр.\n\nFSR это фильтр резкости, который не рекомендуется использовать с FXAA или SMAA.\n\nЭта опция может быть изменена во время игры по нажатию кнопки \"Применить\" ниже; \nВы можете просто переместить окно настроек в сторону и поэкспериментировать, пока не подберете подходящие настройки для конкретной игры.\n\nРекомендуется использовать \"Билинейная\".",
+ "GraphicsScalingFilterTooltip": "Фильтрация текстур, которая будет применяться для масштабирования разрешения.\n\nБилинейная хорошо работает для 3D-игр и установлена по умолчанию.\n\nСтупенчатая рекомендуется для пиксельных игр.\n\nFSR — это фильтр резкости, не рекомендуется использовать вместе с FXAA или SMAA.\n\nМаштабирование по площади рекомендуется в случае использования разрешения больше разрешения окна. Можно использовать для достижения эффекта суперсемплига (SSAA) при даунскейле более чем в 2 раза.\n\nЭта опция может быть применена во время игры по нажатию кнопки «Применить» ниже; Вы можете передвинуть окно настроек в сторону и экспериментировать, пока не найдете подходящие вам настройки для конкретной игры.\n\nРекомендуется использовать «Билинейная».",
"GraphicsScalingFilterBilinear": "Билинейная",
"GraphicsScalingFilterNearest": "Ступенчатая",
"GraphicsScalingFilterFsr": "FSR",
- "GraphicsScalingFilterArea": "Area",
+ "GraphicsScalingFilterArea": "По площади",
"GraphicsScalingFilterLevelLabel": "Уровень",
"GraphicsScalingFilterLevelTooltip": "Выбор режима работы FSR 1.0. Выше - четче.",
"SmaaLow": "SMAA Низкое",
diff --git a/src/Ryujinx/Assets/Locales/sv_SE.json b/src/Ryujinx/Assets/Locales/sv_SE.json
new file mode 100644
index 000000000..169520569
--- /dev/null
+++ b/src/Ryujinx/Assets/Locales/sv_SE.json
@@ -0,0 +1,785 @@
+{
+ "Language": "Svenska",
+ "MenuBarFileOpenApplet": "Öppna applet",
+ "MenuBarFileOpenAppletOpenMiiAppletToolTip": "Öppna Mii Editor Applet i fristående läge",
+ "SettingsTabInputDirectMouseAccess": "Direkt musåtkomst",
+ "SettingsTabSystemMemoryManagerMode": "Läge för minnehanterare:",
+ "SettingsTabSystemMemoryManagerModeSoftware": "Programvara",
+ "SettingsTabSystemMemoryManagerModeHost": "Värd (snabb)",
+ "SettingsTabSystemMemoryManagerModeHostUnchecked": "Värd inte kontrollerad (snabbaste, osäkert)",
+ "SettingsTabSystemUseHypervisor": "Använd Hypervisor",
+ "MenuBarFile": "_Arkiv",
+ "MenuBarFileOpenFromFile": "_Läs in applikation från fil",
+ "MenuBarFileOpenFromFileError": "Inga applikationer hittades i vald fil.",
+ "MenuBarFileOpenUnpacked": "Läs in _uppackat spel",
+ "MenuBarFileOpenEmuFolder": "Öppna Ryujinx-mapp",
+ "MenuBarFileOpenLogsFolder": "Öppna loggmapp",
+ "MenuBarFileExit": "A_vsluta",
+ "MenuBarOptions": "I_nställningar",
+ "MenuBarOptionsToggleFullscreen": "Växla helskärm",
+ "MenuBarOptionsStartGamesInFullscreen": "Starta spel i helskärmsläge",
+ "MenuBarOptionsStopEmulation": "Stoppa emulering",
+ "MenuBarOptionsSettings": "_Inställningar",
+ "MenuBarOptionsManageUserProfiles": "_Hantera användarprofiler",
+ "MenuBarActions": "Åt_gärder",
+ "MenuBarOptionsSimulateWakeUpMessage": "Simulera uppvakningsmeddelande",
+ "MenuBarActionsScanAmiibo": "Skanna en Amiibo",
+ "MenuBarTools": "V_erktyg",
+ "MenuBarToolsInstallFirmware": "Installera firmware",
+ "MenuBarFileToolsInstallFirmwareFromFile": "Installera en firmware från XCI eller ZIP",
+ "MenuBarFileToolsInstallFirmwareFromDirectory": "Installera en firmware från en katalog",
+ "MenuBarToolsManageFileTypes": "Hantera filtyper",
+ "MenuBarToolsInstallFileTypes": "Installera filtyper",
+ "MenuBarToolsUninstallFileTypes": "Avinstallera filtyper",
+ "MenuBarView": "_Visa",
+ "MenuBarViewWindow": "Fönsterstorlek",
+ "MenuBarViewWindow720": "720p",
+ "MenuBarViewWindow1080": "1080p",
+ "MenuBarHelp": "_Hjälp",
+ "MenuBarHelpCheckForUpdates": "Leta efter uppdateringar",
+ "MenuBarHelpAbout": "Om",
+ "MenuSearch": "Sök...",
+ "GameListHeaderFavorite": "Favorit",
+ "GameListHeaderIcon": "Ikon",
+ "GameListHeaderApplication": "Namn",
+ "GameListHeaderDeveloper": "Utvecklare",
+ "GameListHeaderVersion": "Version",
+ "GameListHeaderTimePlayed": "Speltid",
+ "GameListHeaderLastPlayed": "Senast spelad",
+ "GameListHeaderFileExtension": "Filändelse",
+ "GameListHeaderFileSize": "Filstorlek",
+ "GameListHeaderPath": "Sökväg",
+ "GameListContextMenuOpenUserSaveDirectory": "",
+ "GameListContextMenuOpenUserSaveDirectoryToolTip": "Öppnar katalogen som innehåller applikationens användarsparade spel",
+ "GameListContextMenuOpenDeviceSaveDirectory": "Öppna enhetens katalog för sparade spel",
+ "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "Öppnar katalogen som innehåller applikationens sparade spel på enheten",
+ "GameListContextMenuOpenBcatSaveDirectory": "Öppna katalog för BCAT-sparningar",
+ "GameListContextMenuOpenBcatSaveDirectoryToolTip": "Öppnar katalogen som innehåller applikationens BCAT-sparningar",
+ "GameListContextMenuManageTitleUpdates": "Hantera speluppdateringar",
+ "GameListContextMenuManageTitleUpdatesToolTip": "Öppnar spelets hanteringsfönster för uppdateringar",
+ "GameListContextMenuManageDlc": "Hantera DLC",
+ "GameListContextMenuManageDlcToolTip": "Hantera DLC",
+ "GameListContextMenuCacheManagement": "Hantering av cache",
+ "GameListContextMenuCacheManagementPurgePptc": "Kölägg PPTC Rebuild",
+ "GameListContextMenuCacheManagementPurgePptcToolTip": "Gör så att PPTC bygger om vid uppstart när nästa spel startas",
+ "GameListContextMenuCacheManagementPurgeShaderCache": "Töm shader cache",
+ "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "Tar bort applikationens shader cache",
+ "GameListContextMenuCacheManagementOpenPptcDirectory": "Öppna PPTC-katalog",
+ "GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "Öppnar katalogen som innehåller applikationens PPTC-cache",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectory": "Öppna katalog för shader cache",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "Öppnar katalogen som innehåller applikationens shader cache",
+ "GameListContextMenuExtractData": "Extrahera data",
+ "GameListContextMenuExtractDataExeFS": "ExeFS",
+ "GameListContextMenuExtractDataExeFSToolTip": "Extrahera ExeFS-sektionen från applikationens aktuella konfiguration (inkl uppdateringar)",
+ "GameListContextMenuExtractDataRomFS": "RomFS",
+ "GameListContextMenuExtractDataRomFSToolTip": "Extrahera RomFS-sektionen från applikationens aktuella konfiguration (inkl uppdateringar)",
+ "GameListContextMenuExtractDataLogo": "Logo",
+ "GameListContextMenuExtractDataLogoToolTip": "Extrahera Logo-sektionen från applikationens aktuella konfiguration (inkl uppdateringar)",
+ "GameListContextMenuCreateShortcut": "Skapa genväg till applikation",
+ "GameListContextMenuCreateShortcutToolTip": "Skapa en skrivbordsgenväg som startar vald applikation",
+ "GameListContextMenuCreateShortcutToolTipMacOS": "Skapa en genväg i macOS-programmapp som startar vald applikation",
+ "GameListContextMenuOpenModsDirectory": "Öppna Mods-katalog",
+ "GameListContextMenuOpenModsDirectoryToolTip": "Öppnar katalogen som innehåller applikationens Mods",
+ "GameListContextMenuOpenSdModsDirectory": "Öppna Atmosphere Mods-katalogen",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "Öppnar den alternativa Atmosphere-katalogen på SD-kort som innehåller applikationens Mods. Användbart för Mods som är paketerade för riktig hårdvara.",
+ "StatusBarGamesLoaded": "{0}/{1} spel inlästa",
+ "StatusBarSystemVersion": "Systemversion: {0}",
+ "LinuxVmMaxMapCountDialogTitle": "",
+ "LinuxVmMaxMapCountDialogTextPrimary": "Vill du öka värdet för vm.max_map_count till {0}",
+ "LinuxVmMaxMapCountDialogTextSecondary": "Vissa spel kan försöka att skapa fler minnesmappningar än vad som tillåts. Ryujinx kommer att krascha så snart som denna gräns överstigs.",
+ "LinuxVmMaxMapCountDialogButtonUntilRestart": "Ja, tills nästa omstart",
+ "LinuxVmMaxMapCountDialogButtonPersistent": "Ja, permanent",
+ "LinuxVmMaxMapCountWarningTextPrimary": "Maximal mängd minnesmappningar är lägre än rekommenderat.",
+ "LinuxVmMaxMapCountWarningTextSecondary": "Det aktuella värdet för vm.max_map_count ({0}) är lägre än {1}. Vissa spel kan försöka att skapa fler minnesmappningar än vad som tillåts. Ryujinx kommer att krascha så snart som denna gräns överstigs.\n\nDu kanske vill manuellt öka gränsen eller installera pkexec, vilket tillåter att Ryujinx hjälper till med det.",
+ "Settings": "Inställningar",
+ "SettingsTabGeneral": "Användargränssnitt",
+ "SettingsTabGeneralGeneral": "Allmänt",
+ "SettingsTabGeneralEnableDiscordRichPresence": "Aktivera Discord Rich Presence",
+ "SettingsTabGeneralCheckUpdatesOnLaunch": "Leta efter uppdatering vid uppstart",
+ "SettingsTabGeneralShowConfirmExitDialog": "Visa \"Bekräfta avslut\"-dialog",
+ "SettingsTabGeneralRememberWindowState": "Kom ihåg fönstrets storlek/position",
+ "SettingsTabGeneralHideCursor": "Dölj markör:",
+ "SettingsTabGeneralHideCursorNever": "Aldrig",
+ "SettingsTabGeneralHideCursorOnIdle": "Vid overksam",
+ "SettingsTabGeneralHideCursorAlways": "Alltid",
+ "SettingsTabGeneralGameDirectories": "Spelkataloger",
+ "SettingsTabGeneralAdd": "Lägg till",
+ "SettingsTabGeneralRemove": "Ta bort",
+ "SettingsTabSystem": "System",
+ "SettingsTabSystemCore": "Kärna",
+ "SettingsTabSystemSystemRegion": "Systemregion:",
+ "SettingsTabSystemSystemRegionJapan": "Japan",
+ "SettingsTabSystemSystemRegionUSA": "USA",
+ "SettingsTabSystemSystemRegionEurope": "Europa",
+ "SettingsTabSystemSystemRegionAustralia": "Australien",
+ "SettingsTabSystemSystemRegionChina": "Kina",
+ "SettingsTabSystemSystemRegionKorea": "Korea",
+ "SettingsTabSystemSystemRegionTaiwan": "Taiwan",
+ "SettingsTabSystemSystemLanguage": "Systemspråk:",
+ "SettingsTabSystemSystemLanguageJapanese": "Japanska",
+ "SettingsTabSystemSystemLanguageAmericanEnglish": "Engelska (amerikansk)",
+ "SettingsTabSystemSystemLanguageFrench": "Franska",
+ "SettingsTabSystemSystemLanguageGerman": "Tyska",
+ "SettingsTabSystemSystemLanguageItalian": "Italienska",
+ "SettingsTabSystemSystemLanguageSpanish": "Spanska",
+ "SettingsTabSystemSystemLanguageChinese": "Kinesiska",
+ "SettingsTabSystemSystemLanguageKorean": "Koreanska",
+ "SettingsTabSystemSystemLanguageDutch": "Nederländska",
+ "SettingsTabSystemSystemLanguagePortuguese": "Portugisiska",
+ "SettingsTabSystemSystemLanguageRussian": "Ryska",
+ "SettingsTabSystemSystemLanguageTaiwanese": "Taiwanesiska",
+ "SettingsTabSystemSystemLanguageBritishEnglish": "Engelska (brittisk)",
+ "SettingsTabSystemSystemLanguageCanadianFrench": "Franska (kanadensisk)",
+ "SettingsTabSystemSystemLanguageLatinAmericanSpanish": "Spanska (latinamerikansk)",
+ "SettingsTabSystemSystemLanguageSimplifiedChinese": "Kinesiska (förenklad)",
+ "SettingsTabSystemSystemLanguageTraditionalChinese": "Kinesiska (traditionell)",
+ "SettingsTabSystemSystemTimeZone": "Systemets tidszon:",
+ "SettingsTabSystemSystemTime": "Systemtid:",
+ "SettingsTabSystemEnableVsync": "VSync",
+ "SettingsTabSystemEnablePptc": "PPTC (Profiled Persistent Translation Cache)",
+ "SettingsTabSystemEnableFsIntegrityChecks": "Integritetskontroller av filsystem",
+ "SettingsTabSystemAudioBackend": "Ljudbakände:",
+ "SettingsTabSystemAudioBackendDummy": "Dummy",
+ "SettingsTabSystemAudioBackendOpenAL": "OpenAL",
+ "SettingsTabSystemAudioBackendSoundIO": "",
+ "SettingsTabSystemAudioBackendSDL2": "SDL2",
+ "SettingsTabSystemHacks": "Hack",
+ "SettingsTabSystemHacksNote": "Kan orsaka instabilitet",
+ "SettingsTabSystemExpandDramSize": "Expandera DRAM till 8GiB",
+ "SettingsTabSystemIgnoreMissingServices": "Ignorera saknade tjänster",
+ "SettingsTabGraphics": "Grafik",
+ "SettingsTabGraphicsAPI": "Grafik-API",
+ "SettingsTabGraphicsEnableShaderCache": "Aktivera Shader Cache",
+ "SettingsTabGraphicsAnisotropicFiltering": "Anisotropisk filtrering:",
+ "SettingsTabGraphicsAnisotropicFilteringAuto": "Auto",
+ "SettingsTabGraphicsAnisotropicFiltering2x": "2x",
+ "SettingsTabGraphicsAnisotropicFiltering4x": "4x",
+ "SettingsTabGraphicsAnisotropicFiltering8x": "8x",
+ "SettingsTabGraphicsAnisotropicFiltering16x": "16x",
+ "SettingsTabGraphicsResolutionScale": "Upplösningsskalning:",
+ "SettingsTabGraphicsResolutionScaleCustom": "Anpassad (rekommenderas inte)",
+ "SettingsTabGraphicsResolutionScaleNative": "Inbyggd (720p/1080p)",
+ "SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
+ "SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
+ "SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (rekommenderas inte)",
+ "SettingsTabGraphicsAspectRatio": "Bildförhållande:",
+ "SettingsTabGraphicsAspectRatio4x3": "4:3",
+ "SettingsTabGraphicsAspectRatio16x9": "16:9",
+ "SettingsTabGraphicsAspectRatio16x10": "16:10",
+ "SettingsTabGraphicsAspectRatio21x9": "21:9",
+ "SettingsTabGraphicsAspectRatio32x9": "32:9",
+ "SettingsTabGraphicsAspectRatioStretch": "Sträck ut för att passa fönster",
+ "SettingsTabGraphicsDeveloperOptions": "Utvecklarinställningar",
+ "SettingsTabGraphicsShaderDumpPath": "Sökväg för Graphics Shader Dump:",
+ "SettingsTabLogging": "Loggning",
+ "SettingsTabLoggingLogging": "Loggning",
+ "SettingsTabLoggingEnableLoggingToFile": "Aktivera loggning till fil",
+ "SettingsTabLoggingEnableStubLogs": "Aktivera stubbloggar",
+ "SettingsTabLoggingEnableInfoLogs": "Aktivera informationsloggar",
+ "SettingsTabLoggingEnableWarningLogs": "Aktivera varningsloggar",
+ "SettingsTabLoggingEnableErrorLogs": "Aktivera felloggar",
+ "SettingsTabLoggingEnableTraceLogs": "Aktivera spårloggar",
+ "SettingsTabLoggingEnableGuestLogs": "Aktivera gästloggar",
+ "SettingsTabLoggingEnableFsAccessLogs": "Aktivera loggar för filsystemsåtkomst",
+ "SettingsTabLoggingFsGlobalAccessLogMode": "Loggläge för global filsystemsåtkomst:",
+ "SettingsTabLoggingDeveloperOptions": "Utvecklarinställningar",
+ "SettingsTabLoggingDeveloperOptionsNote": "VARNING: Kommer att reducera prestandan",
+ "SettingsTabLoggingGraphicsBackendLogLevel": "Loggnivå för grafikbakände:",
+ "SettingsTabLoggingGraphicsBackendLogLevelNone": "Ingen",
+ "SettingsTabLoggingGraphicsBackendLogLevelError": "Fel",
+ "SettingsTabLoggingGraphicsBackendLogLevelPerformance": "",
+ "SettingsTabLoggingGraphicsBackendLogLevelAll": "Alla",
+ "SettingsTabLoggingEnableDebugLogs": "Aktivera felsökningsloggar",
+ "SettingsTabInput": "Inmatning",
+ "SettingsTabInputEnableDockedMode": "Dockat läge",
+ "SettingsTabInputDirectKeyboardAccess": "Direkt tangentbordsåtkomst",
+ "SettingsButtonSave": "Spara",
+ "SettingsButtonClose": "Stäng",
+ "SettingsButtonOk": "Ok",
+ "SettingsButtonCancel": "Avbryt",
+ "SettingsButtonApply": "Verkställ",
+ "ControllerSettingsPlayer": "Spelare",
+ "ControllerSettingsPlayer1": "Spelare 1",
+ "ControllerSettingsPlayer2": "Spelare 2",
+ "ControllerSettingsPlayer3": "Spelare 3",
+ "ControllerSettingsPlayer4": "Spelare 4",
+ "ControllerSettingsPlayer5": "Spelare 5",
+ "ControllerSettingsPlayer6": "Spelare 6",
+ "ControllerSettingsPlayer7": "Spelare 7",
+ "ControllerSettingsPlayer8": "Spelare 8",
+ "ControllerSettingsHandheld": "Handhållen",
+ "ControllerSettingsInputDevice": "Inmatningsenhet",
+ "ControllerSettingsRefresh": "Uppdatera",
+ "ControllerSettingsDeviceDisabled": "Inaktiverad",
+ "ControllerSettingsControllerType": "Kontrollertyp",
+ "ControllerSettingsControllerTypeHandheld": "Handhållen",
+ "ControllerSettingsControllerTypeProController": "Pro Controller",
+ "ControllerSettingsControllerTypeJoyConPair": "JoyCon par",
+ "ControllerSettingsControllerTypeJoyConLeft": "JoyCon vänster",
+ "ControllerSettingsControllerTypeJoyConRight": "JoyCon höger",
+ "ControllerSettingsProfile": "Profil",
+ "ControllerSettingsProfileDefault": "Standard",
+ "ControllerSettingsLoad": "Läs in",
+ "ControllerSettingsAdd": "Lägg till",
+ "ControllerSettingsRemove": "Ta bort",
+ "ControllerSettingsButtons": "Knappar",
+ "ControllerSettingsButtonA": "A",
+ "ControllerSettingsButtonB": "B",
+ "ControllerSettingsButtonX": "X",
+ "ControllerSettingsButtonY": "Y",
+ "ControllerSettingsButtonPlus": "+",
+ "ControllerSettingsButtonMinus": "-",
+ "ControllerSettingsDPad": "Directional Pad",
+ "ControllerSettingsDPadUp": "Upp",
+ "ControllerSettingsDPadDown": "Ned",
+ "ControllerSettingsDPadLeft": "Vänster",
+ "ControllerSettingsDPadRight": "Höger",
+ "ControllerSettingsStickButton": "Knapp",
+ "ControllerSettingsStickUp": "Upp",
+ "ControllerSettingsStickDown": "Ned",
+ "ControllerSettingsStickLeft": "Vänster",
+ "ControllerSettingsStickRight": "Höger",
+ "ControllerSettingsStickStick": "Spak",
+ "ControllerSettingsStickInvertXAxis": "Invertera Spak X",
+ "ControllerSettingsStickInvertYAxis": "Invertera Spak Y",
+ "ControllerSettingsStickDeadzone": "Dödläge:",
+ "ControllerSettingsLStick": "Vänster spak",
+ "ControllerSettingsRStick": "Höger spak",
+ "ControllerSettingsTriggersLeft": "Avtryckare vänster",
+ "ControllerSettingsTriggersRight": "Avtryckare höger",
+ "ControllerSettingsTriggersButtonsLeft": "Avtryckare knappar vänster",
+ "ControllerSettingsTriggersButtonsRight": "Avtryckare knappar höger",
+ "ControllerSettingsTriggers": "Utlösare",
+ "ControllerSettingsTriggerL": "L",
+ "ControllerSettingsTriggerR": "R",
+ "ControllerSettingsTriggerZL": "ZL",
+ "ControllerSettingsTriggerZR": "ZR",
+ "ControllerSettingsLeftSL": "SL",
+ "ControllerSettingsLeftSR": "SR",
+ "ControllerSettingsRightSL": "SL",
+ "ControllerSettingsRightSR": "SR",
+ "ControllerSettingsExtraButtonsLeft": "Knappar vänster",
+ "ControllerSettingsExtraButtonsRight": "Knappar höger",
+ "ControllerSettingsMisc": "Diverse",
+ "ControllerSettingsTriggerThreshold": "Tröskelvärde avtryckare:",
+ "ControllerSettingsMotion": "Rörelse",
+ "ControllerSettingsMotionUseCemuhookCompatibleMotion": "Använd CemuHook-kompatibel rörelse",
+ "ControllerSettingsMotionControllerSlot": "Kontrollerplats:",
+ "ControllerSettingsMotionMirrorInput": "Spegla inmatning",
+ "ControllerSettingsMotionRightJoyConSlot": "Höger JoyCon-plats:",
+ "ControllerSettingsMotionServerHost": "Servervärd:",
+ "ControllerSettingsMotionGyroSensitivity": "Känslighet för gyro:",
+ "ControllerSettingsMotionGyroDeadzone": "Dödläge för gyro:",
+ "ControllerSettingsSave": "Spara",
+ "ControllerSettingsClose": "Stäng",
+ "KeyUnknown": "Okänd",
+ "KeyShiftLeft": "",
+ "KeyShiftRight": "Shift höger",
+ "KeyControlLeft": "Ctrl vänster",
+ "KeyMacControlLeft": "^ Vänster",
+ "KeyControlRight": "Ctrl höger",
+ "KeyMacControlRight": "^ Höger",
+ "KeyAltLeft": "Alt vänster",
+ "KeyMacAltLeft": "⌥ vänster",
+ "KeyAltRight": "Alt höger",
+ "KeyMacAltRight": "⌥ höger",
+ "KeyWinLeft": "⊞ vänster",
+ "KeyMacWinLeft": "⌘ vänster",
+ "KeyWinRight": "⊞ höger",
+ "KeyMacWinRight": "⌘ höger",
+ "KeyMenu": "Meny",
+ "KeyUp": "Upp",
+ "KeyDown": "Ned",
+ "KeyLeft": "Vänster",
+ "KeyRight": "Höger",
+ "KeyEnter": "Enter",
+ "KeyEscape": "Escape",
+ "KeySpace": "Blanksteg",
+ "KeyTab": "Tab",
+ "KeyBackSpace": "Backspace",
+ "KeyInsert": "Insert",
+ "KeyDelete": "Delete",
+ "KeyPageUp": "Page Up",
+ "KeyPageDown": "Page Down",
+ "KeyHome": "Home",
+ "KeyEnd": "End",
+ "KeyCapsLock": "Caps Lock",
+ "KeyScrollLock": "Scroll Lock",
+ "KeyPrintScreen": "Print Screen",
+ "KeyPause": "Pause",
+ "KeyNumLock": "Num Lock",
+ "KeyClear": "Rensa",
+ "KeyKeypad0": "Keypad 0",
+ "KeyKeypad1": "Keypad 1",
+ "KeyKeypad2": "Keypad 2",
+ "KeyKeypad3": "Keypad 3",
+ "KeyKeypad4": "Keypad 4",
+ "KeyKeypad5": "Keypad 5",
+ "KeyKeypad6": "Keypad 6",
+ "KeyKeypad7": "Keypad 7",
+ "KeyKeypad8": "Keypad 8",
+ "KeyKeypad9": "Keypad 9",
+ "KeyKeypadDivide": "Keypad /",
+ "KeyKeypadMultiply": "Keypad *",
+ "KeyKeypadSubtract": "Keypad -",
+ "KeyKeypadAdd": "Keypad +",
+ "KeyKeypadDecimal": "Keypad ,",
+ "KeyKeypadEnter": "Keypad Enter",
+ "KeyNumber0": "0",
+ "KeyNumber1": "1",
+ "KeyNumber2": "2",
+ "KeyNumber3": "3",
+ "KeyNumber4": "4",
+ "KeyNumber5": "5",
+ "KeyNumber6": "6",
+ "KeyNumber7": "7",
+ "KeyNumber8": "8",
+ "KeyNumber9": "9",
+ "KeyTilde": "~",
+ "KeyGrave": "`",
+ "KeyMinus": "-",
+ "KeyPlus": "+",
+ "KeyBracketLeft": "[",
+ "KeyBracketRight": "]",
+ "KeySemicolon": ";",
+ "KeyQuote": "\"",
+ "KeyComma": ",",
+ "KeyPeriod": ".",
+ "KeySlash": "/",
+ "KeyBackSlash": "\\",
+ "KeyUnbound": "Ej bunden",
+ "GamepadLeftStick": "L-spakknapp",
+ "GamepadRightStick": "R-spakknapp",
+ "GamepadLeftShoulder": "Vänster shoulder",
+ "GamepadRightShoulder": "Höger shoulder",
+ "GamepadLeftTrigger": "Vänster avtryckare",
+ "GamepadRightTrigger": "Höger avtryckare",
+ "GamepadDpadUp": "Upp",
+ "GamepadDpadDown": "Ned",
+ "GamepadDpadLeft": "Vänster",
+ "GamepadDpadRight": "Höger",
+ "GamepadMinus": "-",
+ "GamepadPlus": "+",
+ "GamepadGuide": "Guide",
+ "GamepadMisc1": "Diverse",
+ "GamepadPaddle1": "Paddle 1",
+ "GamepadPaddle2": "Paddle 2",
+ "GamepadPaddle3": "Paddle 3",
+ "GamepadPaddle4": "",
+ "GamepadTouchpad": "Touchpad",
+ "GamepadSingleLeftTrigger0": "Vänster avtryckare 0",
+ "GamepadSingleRightTrigger0": "Höger avtryckare 0",
+ "GamepadSingleLeftTrigger1": "Vänster avtryckare 1",
+ "GamepadSingleRightTrigger1": "Höger avtryckare 1",
+ "StickLeft": "Vänster spak",
+ "StickRight": "Höger spak",
+ "UserProfilesSelectedUserProfile": "Vald användarprofil:",
+ "UserProfilesSaveProfileName": "Spara profilnamn",
+ "UserProfilesChangeProfileImage": "Byt profilbild",
+ "UserProfilesAvailableUserProfiles": "Tillgängliga användarprofiler:",
+ "UserProfilesAddNewProfile": "Skapa profil",
+ "UserProfilesDelete": "Ta bort",
+ "UserProfilesClose": "Stäng",
+ "ProfileNameSelectionWatermark": "Välj ett smeknamn",
+ "ProfileImageSelectionTitle": "Välj profilbild",
+ "ProfileImageSelectionHeader": "Välj en profilbild",
+ "ProfileImageSelectionNote": "Du kan importera en anpassad profilbild eller välja en avatar från systemets firmware",
+ "ProfileImageSelectionImportImage": "Importera bildfil",
+ "ProfileImageSelectionSelectAvatar": "Välj avatar från firmware",
+ "InputDialogTitle": "Inmatningsdialog",
+ "InputDialogOk": "Ok",
+ "InputDialogCancel": "Avbryt",
+ "InputDialogAddNewProfileTitle": "Välj ett profilnamn",
+ "InputDialogAddNewProfileHeader": "Ange ett profilnamn",
+ "InputDialogAddNewProfileSubtext": "(Max längd: {0})",
+ "AvatarChoose": "Välj avatar",
+ "AvatarSetBackgroundColor": "Välj bakgrundsfärg",
+ "AvatarClose": "Stäng",
+ "ControllerSettingsLoadProfileToolTip": "Läs in profil",
+ "ControllerSettingsAddProfileToolTip": "Lägg till profil",
+ "ControllerSettingsRemoveProfileToolTip": "Ta bort profil",
+ "ControllerSettingsSaveProfileToolTip": "Spara profil",
+ "MenuBarFileToolsTakeScreenshot": "Ta skärmbild",
+ "MenuBarFileToolsHideUi": "Dölj gränssnittet",
+ "GameListContextMenuRunApplication": "Kör applikation",
+ "GameListContextMenuToggleFavorite": "Växla som favorit",
+ "GameListContextMenuToggleFavoriteToolTip": "Växla favoritstatus för spelet",
+ "SettingsTabGeneralTheme": "Tema:",
+ "SettingsTabGeneralThemeAuto": "Auto",
+ "SettingsTabGeneralThemeDark": "Mörk",
+ "SettingsTabGeneralThemeLight": "Ljus",
+ "ControllerSettingsConfigureGeneral": "Konfigurera",
+ "ControllerSettingsRumble": "Rumble",
+ "ControllerSettingsRumbleStrongMultiplier": "",
+ "ControllerSettingsRumbleWeakMultiplier": "Förstärk svag Rumble",
+ "DialogMessageSaveNotAvailableMessage": "Det finns inget sparat spel för {0} [{1:x16}]",
+ "DialogMessageSaveNotAvailableCreateSaveMessage": "Vill du skapa sparat spel för detta spel?",
+ "DialogConfirmationTitle": "Ryujinx - Bekräftelse",
+ "DialogUpdaterTitle": "Ryujinx - Uppdatering",
+ "DialogErrorTitle": "Ryujinx - Fel",
+ "DialogWarningTitle": "Ryujinx - Varning",
+ "DialogExitTitle": "Ryujinx - Avslut",
+ "DialogErrorMessage": "Ryujinx har påträffat ett fel",
+ "DialogExitMessage": "Är du säker på att du vill avsluta Ryujinx?",
+ "DialogExitSubMessage": "Allt data som inte sparats kommer att förloras!",
+ "DialogMessageCreateSaveErrorMessage": "Det inträffade ett fel vid skapandet av angivet sparat spel: {0}",
+ "DialogMessageFindSaveErrorMessage": "Det inträffade ett fel vid sökandet av angivet sparat spel: {0}",
+ "FolderDialogExtractTitle": "Välj en mapp att extrahera till",
+ "DialogNcaExtractionMessage": "Extraherar {0} sektion från {1}...",
+ "DialogNcaExtractionTitle": "Ryujinx - Extrahera NCA-sektion",
+ "DialogNcaExtractionMainNcaNotFoundErrorMessage": "Fel vid extrahering. Main NCA hittades inte i vald fil.",
+ "DialogNcaExtractionCheckLogErrorMessage": "Fel vid extrahering. Läs i loggfilen för mer information.",
+ "DialogNcaExtractionSuccessMessage": "Extraheringen lyckades.",
+ "DialogUpdaterConvertFailedMessage": "Misslyckades med att konvertera aktuell Ryujinx-version.",
+ "DialogUpdaterCancelUpdateMessage": "Avbryter uppdatering!",
+ "DialogUpdaterAlreadyOnLatestVersionMessage": "Du använder redan den absolut senaste versionen av Ryujinx!",
+ "DialogUpdaterFailedToGetVersionMessage": "Ett fel inträffade vid försök att hämta information om utgåvan från GitHub Release. Detta kan hända om en ny utgåva har kompilerats av GitHub Actions. Försök igen om några minuter.",
+ "DialogUpdaterConvertFailedGithubMessage": "Misslyckades med att konvertera mottagen Ryujinx-version från GitHub Release.",
+ "DialogUpdaterDownloadingMessage": "Hämtar uppdatering...",
+ "DialogUpdaterExtractionMessage": "Extraherar uppdatering...",
+ "DialogUpdaterRenamingMessage": "Byter namn på uppdatering...",
+ "DialogUpdaterAddingFilesMessage": "Lägg till ny uppdatering...",
+ "DialogUpdaterCompleteMessage": "Uppdatering färdig!",
+ "DialogUpdaterRestartMessage": "Vill du starta om Ryujinx nu?",
+ "DialogUpdaterNoInternetMessage": "Du är inte ansluten till internet!",
+ "DialogUpdaterNoInternetSubMessage": "Försäkra dig om att du har en fungerande internetanslutning!",
+ "DialogUpdaterDirtyBuildMessage": "Du kan inte uppdatera en Dirty build av Ryujinx!",
+ "DialogUpdaterDirtyBuildSubMessage": "Hämta Ryujinx från https://ryujinx.org/ om du letar efter en version som stöds.",
+ "DialogRestartRequiredMessage": "Omstart krävs",
+ "DialogThemeRestartMessage": "Temat har sparats. En omstart krävs för att verkställa ändringen.",
+ "DialogThemeRestartSubMessage": "Vill du starta om",
+ "DialogFirmwareInstallEmbeddedMessage": "Vill du installera det firmware som är inbäddat i detta spel? (Firmware {0})",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "Inget installerat firmware hittades men Ryujinx kunde installera firmware {0} från angiven spel.\nEmulatorn kommer nu att startas.",
+ "DialogFirmwareNoFirmwareInstalledMessage": "Inget firmware installerad",
+ "DialogFirmwareInstalledMessage": "Firmware {0} installerades",
+ "DialogInstallFileTypesSuccessMessage": "Filtyper har installerats!",
+ "DialogInstallFileTypesErrorMessage": "Misslyckades med att installera filtyper.",
+ "DialogUninstallFileTypesSuccessMessage": "Filtyper avinstallerades!",
+ "DialogUninstallFileTypesErrorMessage": "Misslyckades med att avinstallera filtyper.",
+ "DialogOpenSettingsWindowLabel": "Öppna inställningar",
+ "DialogControllerAppletTitle": "Kontroller-applet",
+ "DialogMessageDialogErrorExceptionMessage": "Fel vid visning av meddelandedialog: {0}",
+ "DialogSoftwareKeyboardErrorExceptionMessage": "Fel vid visning av programvarutangentbord: {0}",
+ "DialogErrorAppletErrorExceptionMessage": "Fel vid visning av ErrorApplet-dialog: {0}",
+ "DialogUserErrorDialogMessage": "{0}: {1}",
+ "DialogUserErrorDialogInfoMessage": "\nFölj vår konfigurationsguide för mer information om hur man rättar till detta fel.",
+ "DialogUserErrorDialogTitle": "Ryujinx-fel ({0})",
+ "DialogAmiiboApiTitle": "Amiibo API",
+ "DialogAmiiboApiFailFetchMessage": "Ett fel inträffade vid hämtning av information från API.",
+ "DialogAmiiboApiConnectErrorMessage": "Kunde inte ansluta till Amiibo API-server. Tjänsten kanske är nere eller så behöver du kontrollera att din internetanslutning fungerar.",
+ "DialogProfileInvalidProfileErrorMessage": "Profilen {0} är inte kompatibel med aktuell konfiguration för inmatning.",
+ "DialogProfileDefaultProfileOverwriteErrorMessage": "Standardprofilen kan inte skrivas över",
+ "DialogProfileDeleteProfileTitle": "Tar bort profilen",
+ "DialogProfileDeleteProfileMessage": "Denna åtgärd går inte att ångra. Är du säker på att du vill fortsätta?",
+ "DialogWarning": "Varning",
+ "DialogPPTCDeletionMessage": "Du är på väg att kölägga en PPTC rebuild vid nästa uppstart av:\n\n{0}\n\nÄr du säker på att du vill fortsätta?",
+ "DialogPPTCDeletionErrorMessage": "Fel vid tömning av PPTC cache i {0}: {1}",
+ "DialogShaderDeletionMessage": "Du är på väg att ta bort shader cache för :\n\n{0}\n\nÄr du säker på att du vill fortsätta?",
+ "DialogShaderDeletionErrorMessage": "Fel vid tömning av shader cache i {0}: {1}",
+ "DialogRyujinxErrorMessage": "Ryujinx har påträffat ett fel",
+ "DialogInvalidTitleIdErrorMessage": "Gränssnittsfel: Angivet spel saknar ett giltigt title ID",
+ "DialogFirmwareInstallerFirmwareNotFoundErrorMessage": "Ett giltigt systemfirmware hittades inte i {0}.",
+ "DialogFirmwareInstallerFirmwareInstallTitle": "Installera firmware {0}",
+ "DialogFirmwareInstallerFirmwareInstallMessage": "Systemversion {0} kommer att installeras.",
+ "DialogFirmwareInstallerFirmwareInstallSubMessage": "\n\nDetta kommer att ersätta aktuella systemversionen {0}.",
+ "DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nVill du fortsätta?",
+ "DialogFirmwareInstallerFirmwareInstallWaitMessage": "Installerar firmware...",
+ "DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Systemversion {0} har installerats.",
+ "DialogUserProfileDeletionWarningMessage": "Det skulle inte finnas några andra profiler att öppnas om angiven profil tas bort",
+ "DialogUserProfileDeletionConfirmMessage": "Vill du ta bort den valda profilen",
+ "DialogUserProfileUnsavedChangesTitle": "Varning - Ej sparade ändringar",
+ "DialogUserProfileUnsavedChangesMessage": "Du har gjort ändringar i denna användarprofil som inte har sparats.",
+ "DialogUserProfileUnsavedChangesSubMessage": "Vill du ta bort dina ändringar?",
+ "DialogControllerSettingsModifiedConfirmMessage": "Aktuella kontrollerinställningar har uppdaterats.",
+ "DialogControllerSettingsModifiedConfirmSubMessage": "Vill du spara?",
+ "DialogLoadFileErrorMessage": "{0}. Fel i filen: {1}",
+ "DialogModAlreadyExistsMessage": "Mod finns redan",
+ "DialogModInvalidMessage": "Den angivna katalogen innehåller inte en modd!",
+ "DialogModDeleteNoParentMessage": "Misslyckades med att ta bort: Kunde inte hitta föräldrakatalogen för modden \"{0}\"!",
+ "DialogDlcNoDlcErrorMessage": "Den angivna filen innehåller inte en DLC för angivet spel!",
+ "DialogPerformanceCheckLoggingEnabledMessage": "Du har spårloggning aktiverat som endast är designat att användas av utvecklare.",
+ "DialogPerformanceCheckLoggingEnabledConfirmMessage": "Det rekommenderas att inaktivera spårloggning för optimal prestanda. Vill du inaktivera spårloggning nu?",
+ "DialogPerformanceCheckShaderDumpEnabledMessage": "Du har aktiverat shader dumping som endast är designat att användas av utvecklare.",
+ "DialogPerformanceCheckShaderDumpEnabledConfirmMessage": "Det rekommenderas att inaktivera shader dumping för optimal prestanda. Vill du inaktivera shader dumping nu?",
+ "DialogLoadAppGameAlreadyLoadedMessage": "Ett spel har redan lästs in",
+ "DialogLoadAppGameAlreadyLoadedSubMessage": "Stoppa emuleringen eller stäng emulatorn innan du startar ett annat spel.",
+ "DialogUpdateAddUpdateErrorMessage": "Angiven fil innehåller inte en uppdatering för angivet spel!",
+ "DialogSettingsBackendThreadingWarningTitle": "Varning - Backend Threading",
+ "DialogSettingsBackendThreadingWarningMessage": "Ryujinx måste startas om efter att denna inställning ändras för att verkställa den. Beroende på din plattform så kanske du måste manuellt inaktivera drivrutinens egna multithreading när Ryujinx används.",
+ "DialogModManagerDeletionWarningMessage": "Du är på väg att ta bort modden: {0}\n\nÄr du säker på att du vill fortsätta?",
+ "DialogModManagerDeletionAllWarningMessage": "Du är på väg att ta bort alla moddar för detta spel.\n\nÄr du säker på att du vill fortsätta?",
+ "SettingsTabGraphicsFeaturesOptions": "Funktioner",
+ "SettingsTabGraphicsBackendMultithreading": "Multithreading för grafikbakände:",
+ "CommonAuto": "Auto",
+ "CommonOff": "Av",
+ "CommonOn": "På",
+ "InputDialogYes": "Ja",
+ "InputDialogNo": "Nej",
+ "DialogProfileInvalidProfileNameErrorMessage": "Filnamnet innehåller ogiltiga tecken. Försök igen.",
+ "MenuBarOptionsPauseEmulation": "Paus",
+ "MenuBarOptionsResumeEmulation": "Återuppta",
+ "AboutUrlTooltipMessage": "Klicka för att öppna Ryujinx webbsida i din webbläsare.",
+ "AboutDisclaimerMessage": "Ryujinx har ingen koppling till Nintendo™,\neller någon av dess samarbetspartners.",
+ "AboutAmiiboDisclaimerMessage": "AmiiboAPI (www.amiiboapi.com) används\ni vår Amiibo-emulation.",
+ "AboutPatreonUrlTooltipMessage": "Klicka för att öppna Ryujinx Patreon-sida i din webbläsare.",
+ "AboutGithubUrlTooltipMessage": "Klicka för att öppna Ryujinx GitHub-sida i din webbläsare.",
+ "AboutDiscordUrlTooltipMessage": "Klicka för att öppna en inbjudan till Ryujinx Discord-server i din webbläsare.",
+ "AboutTwitterUrlTooltipMessage": "Klicka för att öppna Ryujinx Twitter-sida i din webbläsare. ",
+ "AboutRyujinxAboutTitle": "Om:",
+ "AboutRyujinxAboutContent": "Ryujinx är en emulator för Nintendo Switch™.\nStöd oss på Patreon.\nFå senaste nyheter på vår Twitter eller Discord.\nUtvecklare som är intresserade att bidra kan hitta mer info på vår GitHub eller Discord.",
+ "AboutRyujinxMaintainersTitle": "Underhålls av:",
+ "AboutRyujinxMaintainersContentTooltipMessage": "Klicka för att öppna sidan över personer som bidragit till projektet i din webbläsare.",
+ "AboutRyujinxSupprtersTitle": "Stöds på Patreon av:",
+ "AmiiboSeriesLabel": "Amiibo Series",
+ "AmiiboCharacterLabel": "Karaktär",
+ "AmiiboScanButtonLabel": "Skanna den",
+ "AmiiboOptionsShowAllLabel": "Visa alla Amiibo",
+ "AmiiboOptionsUsRandomTagLabel": "Hack: Använd slumpmässig tagg för Uuid",
+ "DlcManagerTableHeadingEnabledLabel": "Aktiverad",
+ "DlcManagerTableHeadingTitleIdLabel": "Title ID",
+ "DlcManagerTableHeadingContainerPathLabel": "Container-sökväg",
+ "DlcManagerTableHeadingFullPathLabel": "Fullständig sökväg",
+ "DlcManagerRemoveAllButton": "Ta bort allt",
+ "DlcManagerEnableAllButton": "Aktivera allt",
+ "DlcManagerDisableAllButton": "Inaktivera allt",
+ "ModManagerDeleteAllButton": "Ta bort allt",
+ "MenuBarOptionsChangeLanguage": "Byt språk",
+ "MenuBarShowFileTypes": "Visa filtyper",
+ "CommonSort": "Sortera",
+ "CommonShowNames": "Visa namn",
+ "CommonFavorite": "Favorit",
+ "OrderAscending": "Stigande",
+ "OrderDescending": "Fallande",
+ "SettingsTabGraphicsFeatures": "Funktioner och förbättringar",
+ "ErrorWindowTitle": "Felfönster",
+ "ToggleDiscordTooltip": "",
+ "AddGameDirBoxTooltip": "Ange en spelkatalog att lägga till i listan",
+ "AddGameDirTooltip": "Lägg till en spelkatalog till listan",
+ "RemoveGameDirTooltip": "Ta bort vald spelkatalog",
+ "CustomThemeCheckTooltip": "Använd ett anpassat Avalonia-tema för gränssnittet för att ändra utseendet i emulatormenyerna",
+ "CustomThemePathTooltip": "Sökväg till anpassat gränssnittstema",
+ "CustomThemeBrowseTooltip": "Bläddra efter ett anpassat gränssnittstema",
+ "DockModeToggleTooltip": "Dockat läge gör att det emulerade systemet beter sig som en dockad Nintendo Switch. Detta förbättrar grafiken i de flesta spel. Inaktiveras detta så kommer det emulerade systemet att bete sig som en handhållen Nintendo Switch, vilket reducerar grafikkvaliteten.\n\nKonfigurera kontrollen för Spelare 1 om du planerar att använda dockat läge; konfigurera handhållna kontroller om du planerar att använda handhållet läge.\n\nLämna PÅ om du är osäker.",
+ "DirectKeyboardTooltip": "Stöd för direkt tangentbordsåtkomst (HID). Ger spel åtkomst till ditt tangentbord som en textinmatningsenhet.\n\nFungerar endast med spel som har inbyggt stöd för tangentbordsanvändning på Switch-hårdvara.\n\nLämna AV om du är osäker.",
+ "DirectMouseTooltip": "Stöd för direkt musåtkomst (HID). Ger spel åtkomst till din mus som pekdon.\n\nFungerar endast med spel som har inbyggt stöd för muskontroller på Switch-hårdvara, som är endast ett fåtal.\n\nViss pekskärmsfunktionalitet kanske inte fungerar när aktiverat.\n\nLämna AV om du är osäker.",
+ "RegionTooltip": "Ändra systemets region",
+ "LanguageTooltip": "Ändra systemets språk",
+ "TimezoneTooltip": "Ändra systemets tidszon",
+ "TimeTooltip": "Ändra systemtid",
+ "VSyncToggleTooltip": "Emulerade konsollens Vertical Sync. I grund och botten en begränsare för bitrutor för de flesta spel; inaktivera den kan orsaka att spel kör på en högre hastighet eller gör att skärmar tar längre tid att läsa eller fastnar i dem.\n\nKan växlas inne i spelet med en snabbtangent som du väljer (F1 som standard). Vi rekommenderar att göra detta om du planerar att inaktivera den.\n\nLämna PÅ om du är osäker.",
+ "PptcToggleTooltip": "Sparar översatta JIT-funktioner så att de inte behöver översättas varje gång som spelet läses in.\n\nMinskar stuttering och snabbare på uppstartstiden väsentligt efter första uppstarten av ett spel.\n\nLämna PÅ om du är osäker.",
+ "FsIntegrityToggleTooltip": "Letar efter skadade filer när ett spel startas upp, och om skadade filer hittas, visas ett kontrollsummefel i loggen.\n\nHar ingen påverkan på prestandan och är tänkt att hjälpa felsökningen.\n\nLämna PÅ om du är osäker.",
+ "AudioBackendTooltip": "Ändrar bakänden som används för att rendera ljud.\n\nSDL2 är den föredragna, men OpenAL och SoundIO används för att falla tillbaka på. Dummy har inget ljud.\n\nStäll in till SDL2 om du är osäker.",
+ "MemoryManagerTooltip": "Ändra hur gästminne mappas och ges åtkomst till. Påverkar emulerad CPU-prestanda mycket.\n\nStäll in till \"Värd inte kontrollerad\" om du är osäker.",
+ "MemoryManagerSoftwareTooltip": "Använd en programvarubaserad page table för adressöversättning. Högsta noggrannhet men lägsta prestanda.",
+ "MemoryManagerHostTooltip": "Direkt mappning av minne i host address space. Mycket snabbare JIT-kompilering och körning.",
+ "MemoryManagerUnsafeTooltip": "Direkt mappning av minne, men maskera inte adressen inom guest address space innan åtkomst. Snabbare men kostar säkerhet. Gästapplikationen kan komma åt minne från överallt i Ryujinx, så kör endast program som du litar på i detta läge.",
+ "UseHypervisorTooltip": "Använd hypervisor istället för JIT. Förbättrar prestandan avsevärt när den finns tillgänglig men kan ge ostabilitet i dess aktuella tillstånd.",
+ "DRamTooltip": "Använder ett alternativt minnesläge med 8GiB av DRAM för att efterlikna en utvecklingsmodell av Switch.\n\nDetta är endast användbart för texturpaket med högre upplösning eller moddar för 4k-upplösning. Det förbättrar INTE prestandan.\n\nLämna AV om du är osäker.",
+ "IgnoreMissingServicesTooltip": "Ignorerar Horizon OS-tjänster som inte har implementerats. Detta kan avhjälpa krascher när vissa spel startar upp.\n\nLämna AV om du är osäker.",
+ "GraphicsBackendThreadingTooltip": "Kör kommandon för grafikbakände i en andra tråd.\n\nSnabbar upp shader compilation, minskar stuttering och förbättrar prestandan på GPU-drivrutiner utan stöd för egen multithreading. Något bättre prestanda på drivrutiner med multithreading.\n\nStäll in till AUTO om du är osäker.",
+ "GalThreadingTooltip": "Kör kommandon för grafikbakände i en andra tråd.\n\nSnabbar upp shader compilation, minskar stuttering och förbättrar prestandan på GPU-drivrutiner utan stöd för egen multithreading. Något bättre prestanda på drivrutiner med multithreading.\n\nStäll in till AUTO om du är osäker.",
+ "ShaderCacheToggleTooltip": "Sparar en disk shader cache som minskar stuttering i efterföljande körningar.\n\nLämna PÅ om du är osäker.",
+ "ResolutionScaleTooltip": "Multiplicerar spelets renderingsupplösning.\n\nNågra spel kanske inte fungerar med detta och ser pixelerade ut även när upplösningen ökas; för dessa spel så kan du behöva hitta moddar som tar bort anti-aliasing eller som ökar deras interna renderingsupplösning. För att använda det senare, kommer du sannolikt vilja välja Inbyggd.\n\nDet här alternativet kan ändras medan ett spel körs genom att klicka på \"Tillämpa\" nedan. du kan helt enkelt flytta inställningsfönstret åt sidan och experimentera tills du hittar ditt föredragna utseende för ett spel.\n\nTänk på att 4x är overkill för praktiskt taget alla maskiner.",
+ "ResolutionScaleEntryTooltip": "Skala för floating point resolution, såsom 1.5. Icke-heltalsskalor är mer benägna att orsaka problem eller krasch.",
+ "AnisotropyTooltip": "Nivå av anisotropisk filtrering. Ställ in till Auto för att använda det värde som begärts av spelet.",
+ "AspectRatioTooltip": "Bildförhållande att appliceras på renderarfönstret.\n\nÄndra endast detta om du använder en modd för bildförhållande till ditt spel, annars kommer grafiken att sträckas ut.\n\nLämna den till 16:9 om du är osäker.",
+ "ShaderDumpPathTooltip": "Sökväg för Graphics Shaders Dump",
+ "FileLogTooltip": "Sparar konsolloggning till en loggfil på disk. Påverkar inte prestandan.",
+ "StubLogTooltip": "Skriver ut stubbloggmeddelanden i konsollen. Påverkar inte prestandan.",
+ "InfoLogTooltip": "Skriver ut informationsloggmeddelanden i konsollen. Påverkar inte prestandan.",
+ "WarnLogTooltip": "Skriver ut varningsloggmeddelanden i konsollen. Påverkar inte prestandan.",
+ "ErrorLogTooltip": "Skriver ut felloggmeddelanden i konsollen. Påverkar inte prestandan.",
+ "TraceLogTooltip": "Skriver ut spårloggmeddelanden i konsollen. Påverkar inte prestandan.",
+ "GuestLogTooltip": "Skriver ut gästloggmeddelanden i konsollen. Påverkar inte prestandan.",
+ "FileAccessLogTooltip": "Skriver ut loggmeddelanden för filåtkomst i konsollen.",
+ "FSAccessLogModeTooltip": "Aktiverar loggutdata för filsystemsåtkomst i konsollen. Möjliga lägen är 0-3",
+ "DeveloperOptionTooltip": "Använd med försiktighet",
+ "OpenGlLogLevel": "Kräver att lämpliga loggnivåer aktiveras",
+ "DebugLogTooltip": "Skriver ut felsökningsloggmeddelanden i konsolen.\n\nAnvänd endast detta om det är specifikt instruerat av en medarbetare, eftersom det kommer att göra loggar svåra att läsa och försämra emulatorprestanda.",
+ "LoadApplicationFileTooltip": "Öppna en filutforskare för att välja en Switch-kompatibel fil att läsa in",
+ "LoadApplicationFolderTooltip": "Öppna en filutforskare för att välja en Switch-kompatibel, uppackad applikation att läsa in",
+ "OpenRyujinxFolderTooltip": "Öppna Ryujinx-filsystemsmappen",
+ "OpenRyujinxLogsTooltip": "Öppnar mappen där loggarna har skrivits till",
+ "ExitTooltip": "Avsluta Ryujinx",
+ "OpenSettingsTooltip": "Öppna inställningar",
+ "OpenProfileManagerTooltip": "Öppna hanterare för användarprofiler",
+ "StopEmulationTooltip": "Stoppa emulering av aktuellt spel och återgå till spelväljaren",
+ "CheckUpdatesTooltip": "Leta efter uppdateringar för Ryujinx",
+ "OpenAboutTooltip": "Öppna Om-fönstret",
+ "GridSize": "Rutnätsstorlek",
+ "GridSizeTooltip": "Ändra objektstorleken för rutnätet",
+ "SettingsTabSystemSystemLanguageBrazilianPortuguese": "Portugisiska (braziliansk)",
+ "AboutRyujinxContributorsButtonHeader": "Visa alla som bidragit",
+ "SettingsTabSystemAudioVolume": "Volym: ",
+ "AudioVolumeTooltip": "Ändra ljudvolym",
+ "SettingsTabSystemEnableInternetAccess": "Gäståtkomst för Internet/LAN-läge",
+ "EnableInternetAccessTooltip": "Tillåter det emulerade programmet att ansluta till internet.\n\nSpel med ett LAN-läge kan ansluta till varandra när detta är aktiverat och systemen är anslutna till samma åtkomstpunkt. Detta inkluderar riktiga konsoler också.\n\nTillåter INTE anslutning till Nintendo-servrar. Kan orsaka kraschar i vissa spel som försöker ansluta till internet.\n\nLämna AV om du är osäker.",
+ "GameListContextMenuManageCheatToolTip": "Hantera fusk",
+ "GameListContextMenuManageCheat": "Hantera fusk",
+ "GameListContextMenuManageModToolTip": "Hantera moddar",
+ "GameListContextMenuManageMod": "Hantera moddar",
+ "ControllerSettingsStickRange": "Omfång:",
+ "DialogStopEmulationTitle": "Ryujinx - Stoppa emulering",
+ "DialogStopEmulationMessage": "Är du säker på att du vill stoppa emuleringen?",
+ "SettingsTabCpu": "CPU",
+ "SettingsTabAudio": "Ljud",
+ "SettingsTabNetwork": "Nätverk",
+ "SettingsTabNetworkConnection": "Nätverksanslutning",
+ "SettingsTabCpuCache": "CPU-cache",
+ "SettingsTabCpuMemory": "CPU-läge",
+ "DialogUpdaterFlatpakNotSupportedMessage": "Uppdatera Ryujinx via FlatHub.",
+ "UpdaterDisabledWarningTitle": "Uppdateringar inaktiverade!",
+ "ControllerSettingsRotate90": "Rotera 90° medurs",
+ "IconSize": "Ikonstorlek",
+ "IconSizeTooltip": "Ändra storleken för spelikonerna",
+ "MenuBarOptionsShowConsole": "Visa konsoll",
+ "ShaderCachePurgeError": "Fel vid tömning av shader cache i {0}: {1}",
+ "UserErrorNoKeys": "Nycklarna hittades inte",
+ "UserErrorNoFirmware": "Firmware hittades inte",
+ "UserErrorFirmwareParsingFailed": "Tolkningsfel i firmware",
+ "UserErrorApplicationNotFound": "Applikationen hittades inte",
+ "UserErrorUnknown": "Okänt fel",
+ "UserErrorUndefined": "Odefinierat fel",
+ "UserErrorNoKeysDescription": "Ryujinx kunde inte hitta din 'prod.keys'-fil",
+ "UserErrorNoFirmwareDescription": "Ryujinx kunde inte hitta några installerade firmwares",
+ "UserErrorFirmwareParsingFailedDescription": "Ryujinx kunde inte tolka angiven firmware. Detta sker oftast med utdaterade nycklar.",
+ "UserErrorApplicationNotFoundDescription": "Ryujinx kunde inte hitta en giltig applikation i angiven sökväg.",
+ "UserErrorUnknownDescription": "Ett okänt fel inträffade!",
+ "UserErrorUndefinedDescription": "Ett odefinierat fel inträffade! Detta ska inte hända. Kontakta en utvecklare!",
+ "OpenSetupGuideMessage": "Öppna konfigurationsguiden",
+ "NoUpdate": "Ingen uppdatering",
+ "TitleUpdateVersionLabel": "Version {0}",
+ "TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
+ "TitleBundledDlcLabel": "Bundled:",
+ "RyujinxInfo": "Ryujinx - Info",
+ "RyujinxConfirm": "Ryujinx - Bekräfta",
+ "FileDialogAllTypes": "Alla typer",
+ "Never": "Aldrig",
+ "SwkbdMinCharacters": "Får endast vara minst {0} tecken långt",
+ "SwkbdMinRangeCharacters": "Får endast vara {0}-{1} tecken långt",
+ "SoftwareKeyboard": "Programvarutangentbord",
+ "SoftwareKeyboardModeNumeric": "Får endast vara 0-9 eller '.'",
+ "SoftwareKeyboardModeAlphabet": "Får endast vara icke-CJK-tecken",
+ "SoftwareKeyboardModeASCII": "Får endast vara ASCII-text",
+ "ControllerAppletControllers": "Kontroller som stöds:",
+ "ControllerAppletPlayers": "Spelare:",
+ "ControllerAppletDescription": "Din aktuella konfiguration är ogiltig. Öppna inställningarna och konfigurera om din inmatning.",
+ "ControllerAppletDocked": "Dockat läge angivet. Handhållna kontroller bör inaktiveras.",
+ "UpdaterRenaming": "Byter namn på gamla filer...",
+ "UpdaterRenameFailed": "Uppdateraren kunde inte byta namn på filen: {0}",
+ "UpdaterAddingFiles": "Lägger till nya filer...",
+ "UpdaterExtracting": "Extraherar uppdatering...",
+ "UpdaterDownloading": "Hämtar uppdatering...",
+ "Game": "Spel",
+ "Docked": "Dockad",
+ "Handheld": "Handhållen",
+ "ConnectionError": "Anslutningsfel.",
+ "AboutPageDeveloperListMore": "{0} och fler...",
+ "ApiError": "API-fel.",
+ "LoadingHeading": "Läser in {0}",
+ "CompilingPPTC": "Kompilerar PTC",
+ "CompilingShaders": "Kompilerar shaders",
+ "AllKeyboards": "Alla tangentbord",
+ "OpenFileDialogTitle": "Välj en fil som stöds att öppna",
+ "OpenFolderDialogTitle": "Välj en mapp med ett uppackat spel",
+ "AllSupportedFormats": "Alla format som stöds",
+ "RyujinxUpdater": "Uppdaterare för Ryujinx",
+ "SettingsTabHotkeys": "Snabbtangenter för tangentbord",
+ "SettingsTabHotkeysHotkeys": "Snabbtangenter för tangentbord",
+ "SettingsTabHotkeysToggleVsyncHotkey": "Växla VSync:",
+ "SettingsTabHotkeysScreenshotHotkey": "Skärmbild:",
+ "SettingsTabHotkeysShowUiHotkey": "Visa gränssnitt:",
+ "SettingsTabHotkeysPauseHotkey": "Paus:",
+ "SettingsTabHotkeysToggleMuteHotkey": "Tyst:",
+ "ControllerMotionTitle": "Inställningar för rörelsekontroller",
+ "ControllerRumbleTitle": "Inställningar för rumble",
+ "SettingsSelectThemeFileDialogTitle": "Välj temafil",
+ "SettingsXamlThemeFile": "Xaml-temafil",
+ "AvatarWindowTitle": "Hantera konton - Avatar",
+ "Amiibo": "Amiibo",
+ "Unknown": "Okänt",
+ "Usage": "Använding",
+ "Writable": "Skrivbar",
+ "SelectDlcDialogTitle": "Välj DLC-filer",
+ "SelectUpdateDialogTitle": "Välj uppdateringsfiler",
+ "SelectModDialogTitle": "Välj moddkatalog",
+ "UserProfileWindowTitle": "Hanterare för användarprofiler",
+ "CheatWindowTitle": "Fuskhanterare",
+ "DlcWindowTitle": "Hantera hämtningsbart innehåll för {0} ({1})",
+ "ModWindowTitle": "Hantera moddar för {0} ({1})",
+ "UpdateWindowTitle": "Hanterare för speluppdateringar",
+ "CheatWindowHeading": "Fusk tillgängliga för {0} [{1}]",
+ "BuildId": "Bygg-id:",
+ "DlcWindowHeading": "{0} hämtningsbart innehåll",
+ "ModWindowHeading": "{0} modd(ar)",
+ "UserProfilesEditProfile": "Redigera markerade",
+ "Cancel": "Avbryt",
+ "Save": "Spara",
+ "Discard": "Förkasta",
+ "Paused": "Pausa",
+ "UserProfilesSetProfileImage": "Välj profilbild",
+ "UserProfileEmptyNameError": "Namn krävs",
+ "UserProfileNoImageError": "Profilbild måste anges",
+ "GameUpdateWindowHeading": "Hantera uppdateringar för {0} ({1})",
+ "SettingsTabHotkeysResScaleUpHotkey": "Öka upplösning:",
+ "SettingsTabHotkeysResScaleDownHotkey": "Sänk upplösning:",
+ "UserProfilesName": "Namn:",
+ "UserProfilesUserId": "Användar-id:",
+ "SettingsTabGraphicsBackend": "Grafikbakände",
+ "SettingsTabGraphicsBackendTooltip": "Väljer den grafikbakände som ska användas i emulatorn.\n\nVulkan är oftast bättre för alla moderna grafikkort, så länge som deras drivrutiner är uppdaterade. Vulkan har också funktioner för snabbare shader compilation (mindre stuttering) för alla GPU-tillverkare.\n\nOpenGL kan nå bättre resultat på gamla Nvidia GPU:er, på äldre AMD GPU:er på Linux, eller på GPU:er med lägre VRAM, även om shader compilation stuttering kommer att vara större.\n\nStäll in till Vulkan om du är osäker. Ställ in till OpenGL om du GPU inte har stöd för Vulkan även med de senaste grafikdrivrutinerna.",
+ "SettingsEnableTextureRecompression": "Aktivera Texture Recompression",
+ "SettingsEnableTextureRecompressionTooltip": "Komprimerar ASTC-texturer för att minska VRAM-användning.\n\nSpel som använder detta texturformat inkluderar Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder och The Legend of Zelda: Tears of the Kingdom.\n\nGrafikkort med 4GiB VRAM eller mindre kommer sannolikt krascha någon gång när du kör dessa spel.\n\nAktivera endast om du har slut på VRAM på ovan nämnda spel. Lämna AV om du är osäker.",
+ "SettingsTabGraphicsPreferredGpu": "Föredragen GPU",
+ "SettingsTabGraphicsPreferredGpuTooltip": "Välj grafikkortet som ska användas med Vulkan-grafikbakänden.\n\nPåverkar inte GPU:n som OpenGL använder.\n\nStäll in till den GPU som flaggats som \"dGPU\" om osäker. Om det inte finns någon, lämna orörd.",
+ "SettingsAppRequiredRestartMessage": "Omstart av Ryujinx krävs",
+ "SettingsGpuBackendRestartMessage": "Grafikbakänden eller GPU-inställningar har ändrats. Detta kräver en omstart",
+ "SettingsGpuBackendRestartSubMessage": "Vill du starta om nu?",
+ "RyujinxUpdaterMessage": "Vill du uppdatera Ryujinx till senaste versionen?",
+ "SettingsTabHotkeysVolumeUpHotkey": "Öka volym:",
+ "SettingsTabHotkeysVolumeDownHotkey": "Sänk volym:",
+ "SettingsEnableMacroHLE": "Aktivera Macro HLE",
+ "SettingsEnableMacroHLETooltip": "Högnivåemulering av GPU Macro-kod.\n\nFörbättrar prestandan men kan orsaka grafiska glitches i vissa spel.\n\nLämna PÅ om du är osäker.",
+ "SettingsEnableColorSpacePassthrough": "Genomströmning av Color Space",
+ "SettingsEnableColorSpacePassthroughTooltip": "",
+ "VolumeShort": "Vol",
+ "UserProfilesManageSaves": "Hantera sparade spel",
+ "DeleteUserSave": "Vill du ta bort användarsparade spel för detta spel?",
+ "IrreversibleActionNote": "Denna åtgärd går inte att ångra.",
+ "SaveManagerHeading": "Hantera sparade spel för {0} ({1})",
+ "SaveManagerTitle": "Sparhanterare",
+ "Name": "Namn",
+ "Size": "Storlek",
+ "Search": "Sök",
+ "UserProfilesRecoverLostAccounts": "Återskapa förlorade konton",
+ "Recover": "Återskapa",
+ "UserProfilesRecoverHeading": "Sparade spel hittades för följande konton",
+ "UserProfilesRecoverEmptyList": "Inga profiler att återskapa",
+ "GraphicsAATooltip": "Tillämpar anti-aliasing på spelrenderaren.\n\nFXAA kommer att sudda det mesta av bilden, medan SMAA kommer att försöka hitta taggiga kanter och släta ut dem.\n\nRekommenderas inte att använda tillsammans med skalfiltret FSR.\n\nDet här alternativet kan ändras medan ett spel körs genom att klicka på \"Tillämpa\" nedan. Du kan helt enkelt flytta inställningsfönstret åt sidan och experimentera tills du hittar ditt föredragna utseende för ett spel.\n\nLämna som INGEN om du är osäker.",
+ "GraphicsAALabel": "Anti-aliasing:",
+ "GraphicsScalingFilterLabel": "Skalningsfilter:",
+ "GraphicsScalingFilterTooltip": "Välj det skalfilter som ska tillämpas vid användning av upplösningsskala.\n\nBilinjär fungerar bra för 3D-spel och är ett säkert standardalternativ.\n\nNärmast rekommenderas för pixel art-spel.\n\nFSR 1.0 är bara ett skarpningsfilter, rekommenderas inte för FXAA eller SMAA.\n\nOmrådesskalning rekommenderas vid nedskalning av upplösning som är större än utdatafönstret. Det kan användas för att uppnå en supersamplad anti-alias-effekt vid nedskalning med mer än 2x.\n\nDetta alternativ kan ändras medan ett spel körs genom att klicka på \"Tillämpa\" nedan. du kan helt enkelt flytta inställningsfönstret åt sidan och experimentera tills du hittar ditt föredragna utseende för ett spel.\n\nLämna som BILINJÄR om du är osäker.",
+ "GraphicsScalingFilterBilinear": "Bilinjär",
+ "GraphicsScalingFilterNearest": "Närmaste",
+ "GraphicsScalingFilterFsr": "FSR",
+ "GraphicsScalingFilterArea": "Yta",
+ "GraphicsScalingFilterLevelLabel": "Nivå",
+ "GraphicsScalingFilterLevelTooltip": "Ställ in nivå för FSR 1.0 sharpening. Högre är skarpare.",
+ "SmaaLow": "SMAA låg",
+ "SmaaMedium": "SMAA medium",
+ "SmaaHigh": "SMAA hög",
+ "SmaaUltra": "SMAA ultra",
+ "UserEditorTitle": "Redigera användare",
+ "UserEditorTitleCreate": "Skapa användare",
+ "SettingsTabNetworkInterface": "Nätverksgränssnitt:",
+ "NetworkInterfaceTooltip": "Nätverksgränssnittet som används för LAN/LDN-funktioner.\n\nTillsammans med en VPN eller XLink Kai och ett spel med LAN-stöd så kan detta användas för att spoofa en same-network-anslutning över internet.\n\nLämna som STANDARD om du är osäker.",
+ "NetworkInterfaceDefault": "Standard",
+ "PackagingShaders": "Packaging Shaders",
+ "AboutChangelogButton": "Visa changelog på GitHub",
+ "AboutChangelogButtonTooltipMessage": "",
+ "SettingsTabNetworkMultiplayer": "Flerspelare",
+ "MultiplayerMode": "Läge:",
+ "MultiplayerModeTooltip": "Ändra LDN-flerspelarläge\n\nLdnMitm kommer att ändra lokal funktionalitet för trådlös/lokalt spel att fungera som om det vore ett LAN, vilket ger stöd för anslutningar med local och same-network med andra Ryujinx-instanser och hackade Nintendo Switch-konsoller som har modulen ldn_mitm installerad.\n\nFlerspelare kräver att alla spelare har samma spelversion (t.ex. Super Smash Bros. Ultimate v13.0.1 kan inte ansluta till v13.0.0).\n\nLämna INAKTIVERAD om du är osäker.",
+ "MultiplayerModeDisabled": "Inaktiverad",
+ "MultiplayerModeLdnMitm": "ldn_mitm"
+}
diff --git a/src/Ryujinx/Assets/Locales/th_TH.json b/src/Ryujinx/Assets/Locales/th_TH.json
index 91169d9e2..a6931f6ef 100644
--- a/src/Ryujinx/Assets/Locales/th_TH.json
+++ b/src/Ryujinx/Assets/Locales/th_TH.json
@@ -1,7 +1,7 @@
{
"Language": "ภาษาไทย",
"MenuBarFileOpenApplet": "เปิด Applet",
- "MenuBarFileOpenAppletOpenMiiAppletToolTip": "เปิดโปรแกรม Mii Editor Applet",
+ "MenuBarFileOpenAppletOpenMiiAppletToolTip": "เปิด Mii Editor Applet ในโหมดสแตนด์อโลน",
"SettingsTabInputDirectMouseAccess": "เข้าถึงเมาส์ได้โดยตรง",
"SettingsTabSystemMemoryManagerMode": "โหมดจัดการหน่วยความจำ:",
"SettingsTabSystemMemoryManagerModeSoftware": "ซอฟต์แวร์",
@@ -10,15 +10,13 @@
"SettingsTabSystemUseHypervisor": "ใช้งาน Hypervisor",
"MenuBarFile": "ไฟล์",
"MenuBarFileOpenFromFile": "โหลดแอปพลิเคชั่นจากไฟล์",
- "MenuBarFileOpenFromFileError": "ไม่พบแอปพลิเคชั่นจากไฟล์ที่เลือก",
- "MenuBarFileOpenUnpacked": "โหลดเกมที่แตกไฟล์แล้ว",
- "MenuBarFileLoadDlcFromFolder": "โหลด DLC จากโฟลเดอร์",
- "MenuBarFileLoadTitleUpdatesFromFolder": "โหลดไฟล์อัพเดตจากโฟลเดอร์",
+ "MenuBarFileOpenFromFileError": "ไม่พบแอพพลิเคชันในไฟล์ที่เลือก",
+ "MenuBarFileOpenUnpacked": "โหลดเกมที่คลายแพ็กแล้ว",
"MenuBarFileOpenEmuFolder": "เปิดโฟลเดอร์ Ryujinx",
"MenuBarFileOpenLogsFolder": "เปิดโฟลเดอร์ Logs",
"MenuBarFileExit": "_ออก",
"MenuBarOptions": "_ตัวเลือก",
- "MenuBarOptionsToggleFullscreen": "สลับเป็นโหมดเต็มหน้าจอ",
+ "MenuBarOptionsToggleFullscreen": "สลับการแสดงผลแบบเต็มหน้าจอ",
"MenuBarOptionsStartGamesInFullscreen": "เริ่มเกมในโหมดเต็มหน้าจอ",
"MenuBarOptionsStopEmulation": "หยุดการจำลอง",
"MenuBarOptionsSettings": "_ตั้งค่า",
@@ -31,9 +29,9 @@
"MenuBarFileToolsInstallFirmwareFromFile": "ติดตั้งเฟิร์มแวร์จาก ไฟล์ XCI หรือ ไฟล์ ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "ติดตั้งเฟิร์มแวร์จากไดเร็กทอรี",
"MenuBarToolsManageFileTypes": "จัดการประเภทไฟล์",
- "MenuBarToolsInstallFileTypes": "ติดตั้งประเภทไฟล์",
- "MenuBarToolsUninstallFileTypes": "ถอนการติดตั้งประเภทไฟล์",
- "MenuBarView": "_มุมมอง",
+ "MenuBarToolsInstallFileTypes": "ติดตั้งตามประเภทของไฟล์",
+ "MenuBarToolsUninstallFileTypes": "ถอนการติดตั้งตามประเภทของไฟล์",
+ "MenuBarView": "มุมมอง",
"MenuBarViewWindow": "ขนาดหน้าต่าง",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
@@ -52,62 +50,59 @@
"GameListHeaderFileSize": "ขนาดไฟล์",
"GameListHeaderPath": "ที่อยู่ไฟล์",
"GameListContextMenuOpenUserSaveDirectory": "เปิดไดเร็กทอรี่บันทึกของผู้ใช้",
- "GameListContextMenuOpenUserSaveDirectoryToolTip": "เปิดไดเร็กทอรี่ซึ่งมีการบันทึกข้อมูลของผู้ใช้แอปพลิเคชัน",
+ "GameListContextMenuOpenUserSaveDirectoryToolTip": "เปิดไดเร็กทอรี่ซึ่งมีการบันทึกผู้ใช้ของแอปพลิเคชัน",
"GameListContextMenuOpenDeviceSaveDirectory": "เปิดไดเร็กทอรี่บันทึกของอุปกรณ์",
- "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "เปิดไดเรกทอรี่ซึ่งมีบันทึกข้อมูลของอุปกรณ์ในแอปพลิเคชัน",
- "GameListContextMenuOpenBcatSaveDirectory": "เปิดไดเรกทอรี่บันทึกของ BCAT",
- "GameListContextMenuOpenBcatSaveDirectoryToolTip": "เปิดไดเรกทอรี่ซึ่งมีการบันทึกข้อมูลของ BCAT ในแอปพลิเคชัน",
- "GameListContextMenuManageTitleUpdates": "จัดการเวอร์ชั่นอัปเดต",
- "GameListContextMenuManageTitleUpdatesToolTip": "เปิดหน้าต่างการจัดการเวอร์ชั่นการอัพเดต",
+ "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "เปิดไดเรกทอรี่ซึ่งมีบันทึกอุปกรณ์ของแอปพลิเคชัน",
+ "GameListContextMenuOpenBcatSaveDirectory": "เปิดไดเรกทอรี่บันทึก BCAT",
+ "GameListContextMenuOpenBcatSaveDirectoryToolTip": "เปิดไดเรกทอรี่ซึ่งมีการบันทึก BCAT ของแอปพลิเคชัน",
+ "GameListContextMenuManageTitleUpdates": "จัดการอัปเดตตามหัวข้อ",
+ "GameListContextMenuManageTitleUpdatesToolTip": "เปิดหน้าต่างการจัดการการอัพเดตหัวข้อ",
"GameListContextMenuManageDlc": "จัดการ DLC",
"GameListContextMenuManageDlcToolTip": "เปิดหน้าต่างจัดการ DLC",
- "GameListContextMenuCacheManagement": "จัดการแคช",
- "GameListContextMenuCacheManagementPurgePptc": "เพิ่มคิวการสร้าง PPTC ใหม่",
- "GameListContextMenuCacheManagementPurgePptcToolTip": "ให้ PPTC สร้างใหม่ในเวลาบูตเมื่อเปิดเกมครั้งถัดไป",
- "GameListContextMenuCacheManagementPurgeShaderCache": "ล้างแคช แสงเงา",
- "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "ลบแคช แสงเงา ของแอปพลิเคชัน",
+ "GameListContextMenuCacheManagement": "จัดการ แคช",
+ "GameListContextMenuCacheManagementPurgePptc": "เพิ่มเข้าคิวงาน PPTC ที่สร้างใหม่",
+ "GameListContextMenuCacheManagementPurgePptcToolTip": "ทริกเกอร์ PPTC ให้สร้างใหม่ในเวลาบูตเมื่อเปิดตัวเกมครั้งถัดไป",
+ "GameListContextMenuCacheManagementPurgeShaderCache": "ล้างแคช พื้นผิวและแสงเงา",
+ "GameListContextMenuCacheManagementPurgeShaderCacheToolTip": "ลบแคช พื้นผิวและแสงเงา ของแอปพลิเคชัน",
"GameListContextMenuCacheManagementOpenPptcDirectory": "เปิดไดเรกทอรี่ PPTC",
- "GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "เปิดไดเร็กทอรี่ของ แคช PPTC ในแอปพลิเคชัน",
- "GameListContextMenuCacheManagementOpenShaderCacheDirectory": "เปิดไดเรกทอรี่ แคช แสงเงา",
- "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "เปิดไดเรกทอรี่ของ แคช แสงเงา ในแอปพลิเคชัน",
+ "GameListContextMenuCacheManagementOpenPptcDirectoryToolTip": "เปิดไดเร็กทอรี่ PPTC แคช ของแอปพลิเคชัน",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectory": "เปิดไดเรกทอรี่ แคช พื้นผิวและแสงเงา",
+ "GameListContextMenuCacheManagementOpenShaderCacheDirectoryToolTip": "เปิดไดเรกทอรี่ แคช พื้นผิวและแสงเงา ของแอปพลิเคชัน",
"GameListContextMenuExtractData": "แยกส่วนข้อมูล",
"GameListContextMenuExtractDataExeFS": "ExeFS",
- "GameListContextMenuExtractDataExeFSToolTip": "แยกส่วน ExeFS ออกจากการตั้งค่าปัจจุบันของแอปพลิเคชัน (รวมถึงอัปเดต)",
+ "GameListContextMenuExtractDataExeFSToolTip": "แยกส่วน ExeFS ออกจากการกำหนดค่าปัจจุบันของแอปพลิเคชัน (รวมถึงการอัปเดต)",
"GameListContextMenuExtractDataRomFS": "RomFS",
- "GameListContextMenuExtractDataRomFSToolTip": "แยกส่วน RomFS ออกจากการตั้งค่าปัจจุบันของแอปพลิเคชัน (รวมถึงอัพเดต)",
+ "GameListContextMenuExtractDataRomFSToolTip": "แยกส่วน RomFS ออกจากการกำหนดค่าปัจจุบันของแอปพลิเคชัน (รวมถึงการอัพเดต)",
"GameListContextMenuExtractDataLogo": "โลโก้",
- "GameListContextMenuExtractDataLogoToolTip": "แยกส่วน โลโก้ ออกจากการตั้งค่าปัจจุบันของแอปพลิเคชัน (รวมถึงอัปเดต)",
+ "GameListContextMenuExtractDataLogoToolTip": "แยกส่วน โลโก้ ออกจากการกำหนดค่าปัจจุบันของแอปพลิเคชัน (รวมถึงการอัปเดต)",
"GameListContextMenuCreateShortcut": "สร้างทางลัดของแอปพลิเคชัน",
- "GameListContextMenuCreateShortcutToolTip": "สร้างทางลัดบนเดสก์ท็อปสำหรับใช้แอปพลิเคชันที่เลือก",
- "GameListContextMenuCreateShortcutToolTipMacOS": "สร้างทางลัดในโฟลเดอร์ Applications ของ macOS สำหรับใช้แอปพลิเคชันที่เลือก",
+ "GameListContextMenuCreateShortcutToolTip": "สร้างทางลัดบนเดสก์ท็อปที่เรียกใช้แอปพลิเคชันที่เลือก",
+ "GameListContextMenuCreateShortcutToolTipMacOS": "สร้างทางลัดในโฟลเดอร์ Applications ของ macOS ที่เรียกใช้ Application ที่เลือก",
"GameListContextMenuOpenModsDirectory": "เปิดไดเร็กทอรี่ Mods",
"GameListContextMenuOpenModsDirectoryToolTip": "เปิดไดเร็กทอรี่ Mods ของแอปพลิเคชัน",
"GameListContextMenuOpenSdModsDirectory": "เปิดไดเร็กทอรี่ Mods Atmosphere",
- "GameListContextMenuOpenSdModsDirectoryToolTip": "เปิดไดเร็กทอรี่ Atmosphere ของการ์ด SD สำรองซึ่งมี Mods ของแอปพลิเคชัน ซึ่งมีประโยชน์สำหรับ Mods ที่บรรจุมากับฮาร์ดแวร์จริง",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "เปิดไดเร็กทอรี่ Atmosphere ของการ์ด SD สำรองซึ่งมี Mods ของแอปพลิเคชัน มีประโยชน์สำหรับ Mods ที่บรรจุมากับฮาร์ดแวร์จริง",
"StatusBarGamesLoaded": "เกมส์โหลดแล้ว {0}/{1}",
"StatusBarSystemVersion": "เวอร์ชั่นของระบบ: {0}",
- "LinuxVmMaxMapCountDialogTitle": "การตั้งค่าหน่วยความถึงขีดจำกัดต่ำสุดแล้ว",
- "LinuxVmMaxMapCountDialogTextPrimary": "คุณต้องเพิ่มค่า vm.max_map_count ไปยัง {0}",
- "LinuxVmMaxMapCountDialogTextSecondary": "บางเกมอาจพยายามใช้งานหน่วยความจำมากกว่าที่ได้รับอนุญาตในปัจจุบัน Ryujinx จะปิดตัวลงเมื่อเกินขีดจำกัดนี้",
+ "LinuxVmMaxMapCountDialogTitle": "ตรวจพบขีดจำกัดต่ำสุด สำหรับการแมปหน่วยความจำ",
+ "LinuxVmMaxMapCountDialogTextPrimary": "คุณต้องการที่จะเพิ่มค่า vm.max_map_count ไปยัง {0}",
+ "LinuxVmMaxMapCountDialogTextSecondary": "บางเกมอาจพยายามสร้างการแมปหน่วยความจำมากกว่าที่ได้รับอนุญาตในปัจจุบัน รียูจินซ์ จะปิดตัวลงเมื่อเกินขีดจำกัดนี้",
"LinuxVmMaxMapCountDialogButtonUntilRestart": "ใช่, จนกว่าจะรีสตาร์ทครั้งถัดไป",
"LinuxVmMaxMapCountDialogButtonPersistent": "ใช่, อย่างถาวร",
- "LinuxVmMaxMapCountWarningTextPrimary": "จำนวนสูงสุดของการจัดการหน่วยความจำ ต่ำกว่าที่แนะนำ",
- "LinuxVmMaxMapCountWarningTextSecondary": "ค่าปัจจุบันของ vm.max_map_count ({0}) มีค่าต่ำกว่า {1} บางเกมอาจพยายามใช้หน่วยความจำมากกว่าที่ได้รับอนุญาตในปัจจุบัน Ryujinx จะปิดตัวลงเมื่อเกินขีดจำกัดนี้\n\nคุณอาจต้องการตั้งค่าเพิ่มขีดจำกัดด้วยตนเองหรือติดตั้ง pkexec ซึ่งอนุญาตให้ Ryujinx ช่วยเหลือคุณได้",
+ "LinuxVmMaxMapCountWarningTextPrimary": "จำนวนสูงสุดของการแม็ปหน่วยความจำ ต่ำกว่าที่แนะนำ",
+ "LinuxVmMaxMapCountWarningTextSecondary": "ค่าปัจจุบันของ vm.max_map_count ({0}) มีค่าต่ำกว่า {1} บางเกมอาจพยายามสร้างการแมปหน่วยความจำมากกว่าที่ได้รับอนุญาตในปัจจุบัน รียูจินซ์ จะปิดตัวลงเมื่อเกินขีดจำกัดนี้\n\nคุณอาจต้องการเพิ่มขีดจำกัดด้วยตนเองหรือติดตั้ง pkexec ซึ่งอนุญาตให้ ริวจินซ์ เพื่อช่วยเหลือคุณได้",
"Settings": "ตั้งค่า",
"SettingsTabGeneral": "หน้าจอผู้ใช้",
"SettingsTabGeneralGeneral": "ทั่วไป",
"SettingsTabGeneralEnableDiscordRichPresence": "เปิดใช้งาน Discord Rich Presence",
"SettingsTabGeneralCheckUpdatesOnLaunch": "ตรวจหาการอัปเดตเมื่อเปิดโปรแกรม",
- "SettingsTabGeneralShowConfirmExitDialog": "แสดง \"ปุ่มยืนยันการออก\" เมื่อออกเกม",
- "SettingsTabGeneralRememberWindowState": "จดจำ ขนาดหน้าต่างแอพพลิเคชั่น/คำแหน่ง",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralShowConfirmExitDialog": "แสดง \"ยืนยันการออก\" กล่องข้อความโต้ตอบ",
+ "SettingsTabGeneralRememberWindowState": "จดจำขนาด / ตำแหน่งของหน้าต่าง",
"SettingsTabGeneralHideCursor": "ซ่อน เคอร์เซอร์:",
- "SettingsTabGeneralHideCursorNever": "ไม่ต้อง",
- "SettingsTabGeneralHideCursorOnIdle": "เมื่อไม่ได้ใช้งาน",
+ "SettingsTabGeneralHideCursorNever": "ไม่มี",
+ "SettingsTabGeneralHideCursorOnIdle": "เมื่อไม่ได้ใช้",
"SettingsTabGeneralHideCursorAlways": "ตลอดเวลา",
"SettingsTabGeneralGameDirectories": "ไดเรกทอรี่ของเกม",
- "SettingsTabGeneralAutoloadDirectories": "โหลดไดเรกทอรี DLC/ไฟล์อัปเดต อัตโนมัติ",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "เพิ่ม",
"SettingsTabGeneralRemove": "เอาออก",
"SettingsTabSystem": "ระบบ",
@@ -140,9 +135,8 @@
"SettingsTabSystemSystemLanguageTraditionalChinese": "จีน (ดั้งเดิม)",
"SettingsTabSystemSystemTimeZone": "เขตเวลาของระบบ:",
"SettingsTabSystemSystemTime": "เวลาของระบบ:",
- "SettingsTabSystemEnableVsync": "VSync",
+ "SettingsTabSystemEnableVsync": "วีซิงค์ ",
"SettingsTabSystemEnablePptc": "PPTC (แคชโปรไฟล์การแปลแบบถาวร)",
- "SettingsTabSystemEnableLowPowerPptc": "PPTC แบบพลังงานตํ่า",
"SettingsTabSystemEnableFsIntegrityChecks": "ตรวจสอบความถูกต้องของ FS",
"SettingsTabSystemAudioBackend": "ระบบเสียงเบื้องหลัง:",
"SettingsTabSystemAudioBackendDummy": "Dummy",
@@ -151,16 +145,11 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "แฮ็ก",
"SettingsTabSystemHacksNote": "อาจทำให้เกิดข้อผิดพลาดได้",
- "SettingsTabSystemDramSize": "ใช้หน่วยความจำสำรอง (โหมดนักพัฒนา)",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
- "SettingsTabSystemIgnoreMissingServices": "เมินเฉยบริการที่หายไป",
- "SettingsTabSystemIgnoreApplet": "เมินเฉย Applet",
- "SettingsTabGraphics": "กราฟฟิก",
- "SettingsTabGraphicsAPI": "API กราฟฟิก",
- "SettingsTabGraphicsEnableShaderCache": "เปิดใช้งาน แคชแสงเงา",
+ "SettingsTabSystemExpandDramSize": "ขยาย DRAM เป็น 8 กิกะไบต์",
+ "SettingsTabSystemIgnoreMissingServices": "ไม่สนใจบริการที่ขาดหายไป",
+ "SettingsTabGraphics": "กราฟิก",
+ "SettingsTabGraphicsAPI": "กราฟฟิก API",
+ "SettingsTabGraphicsEnableShaderCache": "เปิดใช้งาน แคชพื้นผิวและแสงเงา",
"SettingsTabGraphicsAnisotropicFiltering": "ตัวกรองแบบ Anisotropic:",
"SettingsTabGraphicsAnisotropicFilteringAuto": "อัตโนมัติ",
"SettingsTabGraphicsAnisotropicFiltering2x": "2x",
@@ -169,7 +158,7 @@
"SettingsTabGraphicsAnisotropicFiltering16x": "16x",
"SettingsTabGraphicsResolutionScale": "อัตราส่วนความละเอียด:",
"SettingsTabGraphicsResolutionScaleCustom": "กำหนดเอง (ไม่แนะนำ)",
- "SettingsTabGraphicsResolutionScaleNative": "พื้นฐานระบบ (720p/1080p)",
+ "SettingsTabGraphicsResolutionScaleNative": "พื้นฐานของระบบ (720p/1080p)",
"SettingsTabGraphicsResolutionScale2x": "2x (1440p/2160p)",
"SettingsTabGraphicsResolutionScale3x": "3x (2160p/3240p)",
"SettingsTabGraphicsResolutionScale4x": "4x (2880p/4320p) (ไม่แนะนำ)",
@@ -181,18 +170,18 @@
"SettingsTabGraphicsAspectRatio32x9": "32:9",
"SettingsTabGraphicsAspectRatioStretch": "ยืดภาพเพื่อให้พอดีกับหน้าต่าง",
"SettingsTabGraphicsDeveloperOptions": "ตัวเลือกนักพัฒนา",
- "SettingsTabGraphicsShaderDumpPath": "ที่เก็บ ดัมพ์ไฟล์ แสงเงา:",
+ "SettingsTabGraphicsShaderDumpPath": "ที่เก็บ ดัมพ์ไฟล์ พื้นผิวและแสงเงา:",
"SettingsTabLogging": "ประวัติ",
"SettingsTabLoggingLogging": "ประวัติ",
- "SettingsTabLoggingEnableLoggingToFile": "เปิดใช้งานการบันทึกประวัติ ไปยังไฟล์",
- "SettingsTabLoggingEnableStubLogs": "เปิดใช้งานการบันทึกประวัติ",
- "SettingsTabLoggingEnableInfoLogs": "เปิดใช้งานการบันทึกประวัติการใช้งาน",
- "SettingsTabLoggingEnableWarningLogs": "เปิดใช้งานการบันทึกประวัติคำเตือน",
- "SettingsTabLoggingEnableErrorLogs": "เปิดใช้งานการบันทึกประวัติข้อผิดพลาด",
- "SettingsTabLoggingEnableTraceLogs": "เปิดใช้งานการบันทึกประวัติการติดตาม",
- "SettingsTabLoggingEnableGuestLogs": "เปิดใช้งานการบันทึกประวัติผู้เยี่ยมชม",
- "SettingsTabLoggingEnableFsAccessLogs": "เปิดใช้งานการบันทึกประวัติการเข้าถึง Fs",
- "SettingsTabLoggingFsGlobalAccessLogMode": "โหมด การเข้าถึงประวัติส่วนกลาง:",
+ "SettingsTabLoggingEnableLoggingToFile": "เปิดใช้งาน ประวัติ ไปยังไฟล์",
+ "SettingsTabLoggingEnableStubLogs": "เปิดใช้งาน ประวัติ",
+ "SettingsTabLoggingEnableInfoLogs": "เปิดใช้งาน ประวัติการใช้งาน",
+ "SettingsTabLoggingEnableWarningLogs": "เปิดใช้งาน ประวัติคำเตือน",
+ "SettingsTabLoggingEnableErrorLogs": "เปิดใช้งาน ประวัติข้อผิดพลาด",
+ "SettingsTabLoggingEnableTraceLogs": "เปิดใช้งาน ประวัติการติดตาม",
+ "SettingsTabLoggingEnableGuestLogs": "เปิดใช้งาน บันทึกของผู้เยี่ยมชม",
+ "SettingsTabLoggingEnableFsAccessLogs": "เปิดใช้งาน ประวัติการเข้าถึง Fs",
+ "SettingsTabLoggingFsGlobalAccessLogMode": "โหมด ประวัติการเข้าถึงส่วนกลาง:",
"SettingsTabLoggingDeveloperOptions": "ตัวเลือกนักพัฒนา",
"SettingsTabLoggingDeveloperOptionsNote": "คำเตือน: จะทำให้ประสิทธิภาพลดลง",
"SettingsTabLoggingGraphicsBackendLogLevel": "ระดับการบันทึกประวัติ กราฟิกเบื้องหลัง:",
@@ -200,7 +189,7 @@
"SettingsTabLoggingGraphicsBackendLogLevelError": "ผิดพลาด",
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "ช้าลง",
"SettingsTabLoggingGraphicsBackendLogLevelAll": "ทั้งหมด",
- "SettingsTabLoggingEnableDebugLogs": "เปิดใช้งาน ประวัติข้อบกพร่อง",
+ "SettingsTabLoggingEnableDebugLogs": "เปิดใช้งาน ประวัติแก้ไขข้อบกพร่อง",
"SettingsTabInput": "ป้อนข้อมูล",
"SettingsTabInputEnableDockedMode": "ด็อกโหมด",
"SettingsTabInputDirectKeyboardAccess": "เข้าถึงคีย์บอร์ดโดยตรง",
@@ -222,7 +211,7 @@
"ControllerSettingsInputDevice": "อุปกรณ์ป้อนข้อมูล",
"ControllerSettingsRefresh": "รีเฟรช",
"ControllerSettingsDeviceDisabled": "ปิดการใช้งาน",
- "ControllerSettingsControllerType": "ประเภทคอนโทรลเลอร์",
+ "ControllerSettingsControllerType": "ประเภทของคอนโทรลเลอร์",
"ControllerSettingsControllerTypeHandheld": "แฮนด์เฮลด์",
"ControllerSettingsControllerTypeProController": "โปรคอนโทรลเลอร์",
"ControllerSettingsControllerTypeJoyConPair": "จับคู่ จอยคอน",
@@ -272,37 +261,37 @@
"ControllerSettingsExtraButtonsLeft": "ปุ่มกดเสริม ด้านซ้าย",
"ControllerSettingsExtraButtonsRight": "ปุ่มกดเสริม ด้านขวา",
"ControllerSettingsMisc": "การควบคุมเพิ่มเติม",
- "ControllerSettingsTriggerThreshold": "ตั้งค่าขีดจำกัดการกด:",
+ "ControllerSettingsTriggerThreshold": "ตั้งค่าขีดจำกัดของ ทริกเกอร์:",
"ControllerSettingsMotion": "การเคลื่อนไหว",
"ControllerSettingsMotionUseCemuhookCompatibleMotion": "ใช้การเคลื่อนไหวที่เข้ากันได้กับ CemuHook",
"ControllerSettingsMotionControllerSlot": "ช่องเสียบ คอนโทรลเลอร์:",
"ControllerSettingsMotionMirrorInput": "นำเข้าการสะท้อน การควบคุม",
"ControllerSettingsMotionRightJoyConSlot": "ช่องเสียบ จอยคอน ด้านขวา:",
"ControllerSettingsMotionServerHost": "เจ้าของเซิร์ฟเวอร์:",
- "ControllerSettingsMotionGyroSensitivity": "ความไวของ Gyro:",
- "ControllerSettingsMotionGyroDeadzone": "ส่วนไม่ทำงานของ Gyro:",
+ "ControllerSettingsMotionGyroSensitivity": "ความไวของไจโร:",
+ "ControllerSettingsMotionGyroDeadzone": "ส่วนไม่ทำงานของไจโร:",
"ControllerSettingsSave": "บันทึก",
"ControllerSettingsClose": "ปิด",
"KeyUnknown": "ไม่รู้จัก",
"KeyShiftLeft": "Shift Left",
- "KeyShiftRight": "Shift Right",
+ "KeyShiftRight": "Shift Left",
"KeyControlLeft": "Ctrl Left",
- "KeyMacControlLeft": "⌃ Left",
+ "KeyMacControlLeft": "⌃ ซ้าย",
"KeyControlRight": "Ctrl Right",
- "KeyMacControlRight": "⌃ Right",
+ "KeyMacControlRight": "⌃ ขวา",
"KeyAltLeft": "Alt Left",
- "KeyMacAltLeft": "⌥ Left",
+ "KeyMacAltLeft": "⌥ ซ้าย",
"KeyAltRight": "Alt Right",
- "KeyMacAltRight": "⌥ Right",
- "KeyWinLeft": "⊞ Left",
- "KeyMacWinLeft": "⌘ Left",
- "KeyWinRight": "⊞ Right",
- "KeyMacWinRight": "⌘ Right",
- "KeyMenu": "Menu",
- "KeyUp": "Up",
- "KeyDown": "Down",
- "KeyLeft": "Left",
- "KeyRight": "Right",
+ "KeyMacAltRight": "⌥ ขวา",
+ "KeyWinLeft": "⊞ ซ้าย",
+ "KeyMacWinLeft": "⌘ ซ้าย",
+ "KeyWinRight": "⊞ ขวา",
+ "KeyMacWinRight": "⌘ ขวา",
+ "KeyMenu": "เมนู",
+ "KeyUp": "ขึ้น",
+ "KeyDown": "ลง",
+ "KeyLeft": "ซ้าย",
+ "KeyRight": "ขวา",
"KeyEnter": "Enter",
"KeyEscape": "Escape",
"KeySpace": "Space",
@@ -319,7 +308,7 @@
"KeyPrintScreen": "Print Screen",
"KeyPause": "Pause",
"KeyNumLock": "Num Lock",
- "KeyClear": "Clear",
+ "KeyClear": "ล้าง",
"KeyKeypad0": "Keypad 0",
"KeyKeypad1": "Keypad 1",
"KeyKeypad2": "Keypad 2",
@@ -333,7 +322,7 @@
"KeyKeypadDivide": "Keypad Divide",
"KeyKeypadMultiply": "Keypad Multiply",
"KeyKeypadSubtract": "Keypad Subtract",
- "KeyKeypadAdd": "Keypad Add",
+ "KeyKeypadAdd": "เพิ่มปุ่มกด",
"KeyKeypadDecimal": "Keypad Decimal",
"KeyKeypadEnter": "Keypad Enter",
"KeyNumber0": "0",
@@ -352,39 +341,39 @@
"KeyPlus": "+",
"KeyBracketLeft": "[",
"KeyBracketRight": "]",
- "KeySemicolon": ";",
- "KeyQuote": "\"",
- "KeyComma": ",",
+ "KeySemicolon": "`",
+ "KeyQuote": "`",
+ "KeyComma": "`",
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "Unbound",
+ "KeyUnbound": "ยังไม่ผูกติด",
"GamepadLeftStick": "L Stick Button",
"GamepadRightStick": "R Stick Button",
"GamepadLeftShoulder": "Left Shoulder",
"GamepadRightShoulder": "Right Shoulder",
- "GamepadLeftTrigger": "Left Trigger",
- "GamepadRightTrigger": "Right Trigger",
- "GamepadDpadUp": "Up",
- "GamepadDpadDown": "Down",
- "GamepadDpadLeft": "Left",
- "GamepadDpadRight": "Right",
+ "GamepadLeftTrigger": "Trigger ซ้าย",
+ "GamepadRightTrigger": "Trigger ขวา",
+ "GamepadDpadUp": "ขึ้น",
+ "GamepadDpadDown": "ลง",
+ "GamepadDpadLeft": "ซ้าย",
+ "GamepadDpadRight": "ขวา",
"GamepadMinus": "-",
"GamepadPlus": "+",
- "GamepadGuide": "Guide",
- "GamepadMisc1": "Misc",
+ "GamepadGuide": "คู่มือ",
+ "GamepadMisc1": "อื่นๆ",
"GamepadPaddle1": "Paddle 1",
"GamepadPaddle2": "Paddle 2",
"GamepadPaddle3": "Paddle 3",
"GamepadPaddle4": "Paddle 4",
- "GamepadTouchpad": "Touchpad",
+ "GamepadTouchpad": "ทัชแพด",
"GamepadSingleLeftTrigger0": "Left Trigger 0",
"GamepadSingleRightTrigger0": "Right Trigger 0",
"GamepadSingleLeftTrigger1": "Left Trigger 1",
"GamepadSingleRightTrigger1": "Right Trigger 1",
- "StickLeft": "Left Stick",
- "StickRight": "Right Stick",
- "UserProfilesSelectedUserProfile": "เลือกโปรไฟล์ผู้ใช้งาน:",
+ "StickLeft": "สติ๊กซ้าย",
+ "StickRight": "สติ๊กขวา",
+ "UserProfilesSelectedUserProfile": "โปรไฟล์ผู้ใช้งานที่เลือก:",
"UserProfilesSaveProfileName": "บันทึกชื่อโปรไฟล์",
"UserProfilesChangeProfileImage": "เปลี่ยนรูปโปรไฟล์",
"UserProfilesAvailableUserProfiles": "โปรไฟล์ผู้ใช้ที่ใช้งานได้:",
@@ -394,9 +383,9 @@
"ProfileNameSelectionWatermark": "เลือก ชื่อเล่น",
"ProfileImageSelectionTitle": "เลือก รูปโปรไฟล์ ของคุณ",
"ProfileImageSelectionHeader": "เลือก รูปโปรไฟล์",
- "ProfileImageSelectionNote": "คุณสามารถนำเข้ารูปโปรไฟล์ที่กำหนดเองได้ หรือ เลือกรูปที่มีจากระบบ",
+ "ProfileImageSelectionNote": "คุณสามารถนำเข้ารูปโปรไฟล์ที่กำหนดเอง หรือ เลือกอวาต้าจากเฟิร์มแวร์ระบบได้",
"ProfileImageSelectionImportImage": "นำเข้า ไฟล์รูปภาพ",
- "ProfileImageSelectionSelectAvatar": "เลือก รูปอวาต้า จากระบบ",
+ "ProfileImageSelectionSelectAvatar": "เลือก รูปอวาต้า เฟิร์มแวร์",
"InputDialogTitle": "กล่องโต้ตอบการป้อนข้อมูล",
"InputDialogOk": "ตกลง",
"InputDialogCancel": "ยกเลิก",
@@ -407,13 +396,12 @@
"AvatarSetBackgroundColor": "ตั้งค่าสีพื้นหลัง",
"AvatarClose": "ปิด",
"ControllerSettingsLoadProfileToolTip": "โหลด โปรไฟล์",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "เพิ่ม โปรไฟล์",
"ControllerSettingsRemoveProfileToolTip": "ลบ โปรไฟล์",
"ControllerSettingsSaveProfileToolTip": "บันทึก โปรไฟล์",
"MenuBarFileToolsTakeScreenshot": "ถ่ายภาพหน้าจอ",
"MenuBarFileToolsHideUi": "ซ่อน UI",
- "GameListContextMenuRunApplication": "เปิดใช้งานแอปพลิเคชัน",
+ "GameListContextMenuRunApplication": "เรียกใช้แอปพลิเคชัน",
"GameListContextMenuToggleFavorite": "สลับรายการโปรด",
"GameListContextMenuToggleFavoriteToolTip": "สลับสถานะเกมที่ชื่นชอบ",
"SettingsTabGeneralTheme": "ธีม:",
@@ -422,90 +410,90 @@
"SettingsTabGeneralThemeLight": "สว่าง",
"ControllerSettingsConfigureGeneral": "กำหนดค่า",
"ControllerSettingsRumble": "การสั่นไหว",
- "ControllerSettingsRumbleStrongMultiplier": "เพิ่มความแรงการสั่น",
- "ControllerSettingsRumbleWeakMultiplier": "ลดความแรงการสั่น",
+ "ControllerSettingsRumbleStrongMultiplier": "เพิ่มความแรงการสั่นไหว",
+ "ControllerSettingsRumbleWeakMultiplier": "ลดความแรงการสั่นไหว",
"DialogMessageSaveNotAvailableMessage": "ไม่มีข้อมูลบันทึกไว้สำหรับ {0} [{1:x16}]",
- "DialogMessageSaveNotAvailableCreateSaveMessage": "คุณต้องการสร้างบันทึกข้อมูลสำหรับเกมนี้หรือไม่?",
- "DialogConfirmationTitle": "Ryujinx - ยืนยัน",
- "DialogUpdaterTitle": "Ryujinx - อัพเดต",
- "DialogErrorTitle": "Ryujinx - ผิดพลาด",
- "DialogWarningTitle": "Ryujinx - คำเตือน",
- "DialogExitTitle": "Ryujinx - ออก",
- "DialogErrorMessage": "Ryujinx พบข้อผิดพลาด",
- "DialogExitMessage": "คุณแน่ใจหรือไม่ว่าต้องการปิด Ryujinx หรือไม่?",
- "DialogExitSubMessage": "ข้อมูลทั้งหมดที่ไม่ได้บันทึกทั้งหมดจะสูญหาย!",
- "DialogMessageCreateSaveErrorMessage": "มีข้อผิดพลาดในการสร้างข้อมูลบันทึกที่ระบุ: {0}",
- "DialogMessageFindSaveErrorMessage": "มีข้อผิดพลาดในการค้นหาข้อมูลบันทึกที่ระบุไว้: {0}",
+ "DialogMessageSaveNotAvailableCreateSaveMessage": "คุณต้องการสร้างข้อมูลบันทึกสำหรับเกมนี้หรือไม่?",
+ "DialogConfirmationTitle": "ริวจินซ์ - ยืนยัน",
+ "DialogUpdaterTitle": "รียูจินซ์ - อัพเดต",
+ "DialogErrorTitle": "รียูจินซ์ - ผิดพลาด",
+ "DialogWarningTitle": "รียูจินซ์ - คำเตือน",
+ "DialogExitTitle": "รียูจินซ์ - ออก",
+ "DialogErrorMessage": "รียูจินซ์ พบข้อผิดพลาด",
+ "DialogExitMessage": "คุณแน่ใจหรือไม่ว่าต้องการปิด ริวจินซ์ หรือไม่?",
+ "DialogExitSubMessage": "ข้อมูลที่ไม่ได้บันทึกทั้งหมดจะสูญหาย!",
+ "DialogMessageCreateSaveErrorMessage": "มีข้อผิดพลาดในการสร้างข้อมูลการบันทึกที่ระบุ: {0}",
+ "DialogMessageFindSaveErrorMessage": "มีข้อผิดพลาดในการค้นหาข้อมูลที่บันทึกไว้ที่ระบุ: {0}",
"FolderDialogExtractTitle": "เลือกโฟลเดอร์ที่จะแตกไฟล์เข้าไป",
"DialogNcaExtractionMessage": "กำลังแตกไฟล์ {0} จากส่วน {1}...",
- "DialogNcaExtractionTitle": "เครื่องมือแตกไฟล์ของ NCA",
+ "DialogNcaExtractionTitle": "รียูจินซ์ - เครื่องมือแตกไฟล์ของ NCA",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "เกิดความล้มเหลวในการแตกไฟล์เนื่องจากไม่พบ NCA หลักในไฟล์ที่เลือก",
- "DialogNcaExtractionCheckLogErrorMessage": "เกิดความล้มเหลวในการแตกไฟล์ โปรดอ่านไฟล์บันทึกประวัติเพื่อดูข้อมูลเพิ่มเติม",
+ "DialogNcaExtractionCheckLogErrorMessage": "เกิดความล้มเหลวในการแตกไฟล์ โปรดอ่านไฟล์บันทึกเพื่อดูข้อมูลเพิ่มเติม",
"DialogNcaExtractionSuccessMessage": "การแตกไฟล์เสร็จสมบูรณ์แล้ว",
- "DialogUpdaterConvertFailedMessage": "ไม่สามารถแปลงเวอร์ชั่น Ryujinx ปัจจุบันได้",
+ "DialogUpdaterConvertFailedMessage": "ไม่สามารถแปลงเวอร์ชั่น รียูจินซ์ ปัจจุบันได้",
"DialogUpdaterCancelUpdateMessage": "ยกเลิกการอัพเดต!",
- "DialogUpdaterAlreadyOnLatestVersionMessage": "คุณกำลังใช้ Ryujinx เวอร์ชั่นที่อัปเดตล่าสุด!",
- "DialogUpdaterFailedToGetVersionMessage": "เกิดข้อผิดพลาดขณะพยายามรับข้อมูลเวอร์ชั่นจาก GitHub Release ปัญหานี้อาจเกิดขึ้นได้หากมีการรวบรวมเวอร์ชั่นใหม่โดย GitHub โปรดลองอีกครั้งในอีกไม่กี่นาทีข้างหน้า",
- "DialogUpdaterConvertFailedGithubMessage": "ไม่สามารถแปลงเวอร์ชั่น Ryujinx ที่ได้รับจาก Github Release",
+ "DialogUpdaterAlreadyOnLatestVersionMessage": "คุณกำลังใช้ รียูจินซ์ เวอร์ชั่นที่อัปเดตล่าสุด!",
+ "DialogUpdaterFailedToGetVersionMessage": "เกิดข้อผิดพลาดขณะพยายามรับข้อมูลเวอร์ชั่นจาก GitHub Release ปัญหานี้อาจเกิดขึ้นได้หากมีการรวบรวมเวอร์ชั่นใหม่โดย GitHub Actions โปรดลองอีกครั้งในอีกไม่กี่นาทีข้างหน้า",
+ "DialogUpdaterConvertFailedGithubMessage": "ไม่สามารถแปลงเวอร์ชั่น รียูจินซ์ ที่ได้รับจาก Github Release",
"DialogUpdaterDownloadingMessage": "กำลังดาวน์โหลดอัปเดต...",
"DialogUpdaterExtractionMessage": "กำลังแตกไฟล์อัปเดต...",
"DialogUpdaterRenamingMessage": "กำลังลบไฟล์เก่า...",
"DialogUpdaterAddingFilesMessage": "กำลังเพิ่มไฟล์อัปเดตใหม่...",
"DialogUpdaterCompleteMessage": "อัปเดตเสร็จสมบูรณ์แล้ว!",
- "DialogUpdaterRestartMessage": "คุณต้องการรีสตาร์ท Ryujinx ตอนนี้หรือไม่?",
+ "DialogUpdaterRestartMessage": "คุณต้องการรีสตาร์ท รียูจินซ์ ตอนนี้หรือไม่?",
"DialogUpdaterNoInternetMessage": "คุณไม่ได้เชื่อมต่อกับอินเทอร์เน็ต!",
"DialogUpdaterNoInternetSubMessage": "โปรดตรวจสอบว่าคุณมีการเชื่อมต่ออินเทอร์เน็ตว่ามีการใช้งานได้หรือไม่!",
- "DialogUpdaterDirtyBuildMessage": "คุณไม่สามารถอัปเดต Dirty build ของ Ryujinx ได้!",
- "DialogUpdaterDirtyBuildSubMessage": "โปรดดาวน์โหลด Ryujinx ได้ที่ https://https://github.com/GreemDev/Ryujinx/releases/ หากคุณกำลังมองหาเวอร์ชั่นที่รองรับ",
+ "DialogUpdaterDirtyBuildMessage": "คุณไม่สามารถอัปเดต Dirty build ของ รียูจินซ์ ได้!",
+ "DialogUpdaterDirtyBuildSubMessage": "โปรดดาวน์โหลด รียูจินซ์ ได้ที่ https://ryujinx.org/ หากคุณกำลังมองหาเวอร์ชั่นที่รองรับ",
"DialogRestartRequiredMessage": "จำเป็นต้องรีสตาร์ทเพื่อให้การอัพเดตสามารถให้งานได้",
"DialogThemeRestartMessage": "บันทึกธีมแล้ว จำเป็นต้องรีสตาร์ทเพื่อใช้ธีม",
"DialogThemeRestartSubMessage": "คุณต้องการรีสตาร์ทหรือไม่?",
"DialogFirmwareInstallEmbeddedMessage": "คุณต้องการติดตั้งเฟิร์มแวร์ที่ฝังอยู่ในเกมนี้หรือไม่? (เฟิร์มแวร์ {0})",
- "DialogFirmwareInstallEmbeddedSuccessMessage": "ไม่พบเฟิร์มแวร์ที่ติดตั้งไว้ แต่ Ryujinx จะติดตั้งเฟิร์มแวร์ได้ {0} จากเกมที่ให้มา\nขณะนี้โปรแกรมจำลองจะเริ่มทำงาน",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "ไม่พบเฟิร์มแวร์ที่ติดตั้งไว้ แต่ รียูจินซ์ สามารถติดตั้งเฟิร์มแวร์ได้ {0} จากเกมที่ให้มา\nตอนนี้โปรแกรมจำลองจะเริ่มทำงาน",
"DialogFirmwareNoFirmwareInstalledMessage": "ไม่มีการติดตั้งเฟิร์มแวร์",
- "DialogFirmwareInstalledMessage": "เฟิร์มแวร์ {0} ติดตั้งแล้ว",
+ "DialogFirmwareInstalledMessage": "เฟิร์มแวร์ติดตั้งแล้ว {0}",
"DialogInstallFileTypesSuccessMessage": "ติดตั้งตามประเภทของไฟล์สำเร็จแล้ว!",
"DialogInstallFileTypesErrorMessage": "ติดตั้งตามประเภทของไฟล์ไม่สำเร็จ",
"DialogUninstallFileTypesSuccessMessage": "ถอนการติดตั้งตามประเภทของไฟล์สำเร็จแล้ว!",
"DialogUninstallFileTypesErrorMessage": "ไม่สามารถถอนการติดตั้งตามประเภทของไฟล์ได้",
"DialogOpenSettingsWindowLabel": "เปิดหน้าต่างการตั้งค่า",
- "DialogControllerAppletTitle": "คอนโทรลเลอร์ Applet",
+ "DialogControllerAppletTitle": "แอพเพล็ตคอนโทรลเลอร์",
"DialogMessageDialogErrorExceptionMessage": "เกิดข้อผิดพลาดในการแสดงกล่องโต้ตอบข้อความ: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "เกิดข้อผิดพลาดในการแสดงซอฟต์แวร์แป้นพิมพ์: {0}",
- "DialogErrorAppletErrorExceptionMessage": "เกิดข้อผิดพลาดในการแสดงกล่องโต้ตอบ ข้อผิดพลาดของ Applet: {0}",
+ "DialogErrorAppletErrorExceptionMessage": "เกิดข้อผิดพลาดในการแสดงกล่องโต้ตอบ ข้อผิดพลาด แอปเพล็ต: {0}",
"DialogUserErrorDialogMessage": "{0}: {1}",
"DialogUserErrorDialogInfoMessage": "\nสำหรับข้อมูลเพิ่มเติมเกี่ยวกับวิธีแก้ไขข้อผิดพลาดนี้ โปรดทำตามคำแนะนำในการตั้งค่าของเรา",
- "DialogUserErrorDialogTitle": "ข้อผิดพลาด Ryujinx ({0})",
- "DialogAmiiboApiTitle": "Amiibo API",
+ "DialogUserErrorDialogTitle": "ข้อผิดพลาด รียูจินซ์ ({0})",
+ "DialogAmiiboApiTitle": "อะมิโบ API",
"DialogAmiiboApiFailFetchMessage": "เกิดข้อผิดพลาดขณะเรียกข้อมูลจาก API",
- "DialogAmiiboApiConnectErrorMessage": "ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ Amiibo API บางบริการอาจหยุดทำงาน หรือไม่คุณต้องทำการตรวจสอบว่าอินเทอร์เน็ตของคุณอยู่ในสถานะเชื่อมต่ออยู่หรือไม่",
- "DialogProfileInvalidProfileErrorMessage": "โปรไฟล์ {0} ไม่สามารถทำงานได้กับระบบกำหนดค่าอินพุตปัจจุบัน",
- "DialogProfileDefaultProfileOverwriteErrorMessage": "โปรไฟล์เริ่มต้นไม่สามารถเขียนทับได้",
+ "DialogAmiiboApiConnectErrorMessage": "ไม่สามารถเชื่อมต่อกับเซิร์ฟเวอร์ อะมิโบ API บ้างบริการอาจหยุดทำงาน หรือไม่คุณต้องทำการตรวจสอบว่าการเชื่อมต่ออินเทอร์เน็ตของคุณอยู่ในสถานะเชื่อมต่ออยู่หรือไม่",
+ "DialogProfileInvalidProfileErrorMessage": "โปรไฟล์ {0} เข้ากันไม่ได้กับระบบการกำหนดค่าอินพุตปัจจุบัน",
+ "DialogProfileDefaultProfileOverwriteErrorMessage": "ไม่สามารถเขียนทับโปรไฟล์เริ่มต้นได้",
"DialogProfileDeleteProfileTitle": "กำลังลบโปรไฟล์",
"DialogProfileDeleteProfileMessage": "การดำเนินการนี้ไม่สามารถย้อนกลับได้ คุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
"DialogWarning": "คำเตือน",
- "DialogPPTCDeletionMessage": "คุณกำลังตั้งค่าให้มีการสร้าง PPTC ใหม่ในการบูตครั้งถัดไป:\n\n{0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
+ "DialogPPTCDeletionMessage": "คุณกำลังจะจัดคิวการสร้าง PPTC ใหม่ในการบูตครั้งถัดไป:\n\n{0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
"DialogPPTCDeletionErrorMessage": "มีข้อผิดพลาดในการล้างแคช PPTC {0}: {1}",
- "DialogShaderDeletionMessage": "คุณกำลังจะลบแคชแสงเงา:\n\n{0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
- "DialogShaderDeletionErrorMessage": "เกิดข้อผิดพลาดในการล้าง แคชแสงเงา {0}: {1}",
- "DialogRyujinxErrorMessage": "Ryujinx พบข้อผิดพลาด",
+ "DialogShaderDeletionMessage": "คุณกำลังจะลบ เชเดอร์แคช:\n\n{0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อหรือไม่?",
+ "DialogShaderDeletionErrorMessage": "เกิดข้อผิดพลาดในการล้าง เชเดอร์แคช {0}: {1}",
+ "DialogRyujinxErrorMessage": "รียูจินซ์ พบข้อผิดพลาด",
"DialogInvalidTitleIdErrorMessage": "ข้อผิดพลาดของ UI: เกมที่เลือกไม่มีชื่อ ID ที่ถูกต้อง",
"DialogFirmwareInstallerFirmwareNotFoundErrorMessage": "ไม่พบเฟิร์มแวร์ของระบบที่ถูกต้อง {0}.",
"DialogFirmwareInstallerFirmwareInstallTitle": "ติดตั้งเฟิร์มแวร์ {0}",
- "DialogFirmwareInstallerFirmwareInstallMessage": "ระบบเวอร์ชั่น {0} ได้รับการติดตั้งเร็วๆ นี้",
- "DialogFirmwareInstallerFirmwareInstallSubMessage": "\n\nสิ่งนี้จะแทนที่เวอร์ชั่นของระบบเวอร์ชั่นปัจจุบัน {0}.",
+ "DialogFirmwareInstallerFirmwareInstallMessage": "นี่คื่อเวอร์ชั่นของระบบ {0} ที่ได้รับการติดตั้งเมื่อเร็วๆ นี้",
+ "DialogFirmwareInstallerFirmwareInstallSubMessage": "\n\nสิ่งนี้จะแทนที่เวอร์ชั่นของระบบปัจจุบัน {0}.",
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nคุณต้องการดำเนินการต่อหรือไม่?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "กำลังติดตั้งเฟิร์มแวร์...",
- "DialogFirmwareInstallerFirmwareInstallSuccessMessage": "ระบบเวอร์ชั่น {0} ติดตั้งเรียบร้อยแล้ว",
+ "DialogFirmwareInstallerFirmwareInstallSuccessMessage": "การติดตั้งเวอร์ชั่นระบบ {0} เรียบร้อยแล้ว",
"DialogUserProfileDeletionWarningMessage": "จะไม่มีโปรไฟล์อื่นให้เปิดหากโปรไฟล์ที่เลือกถูกลบ",
"DialogUserProfileDeletionConfirmMessage": "คุณต้องการลบโปรไฟล์ที่เลือกหรือไม่?",
"DialogUserProfileUnsavedChangesTitle": "คำเตือน - มีการเปลี่ยนแปลงที่ไม่ได้บันทึก",
"DialogUserProfileUnsavedChangesMessage": "คุณได้ทำการเปลี่ยนแปลงโปรไฟล์ผู้ใช้นี้โดยไม่ได้รับการบันทึก",
- "DialogUserProfileUnsavedChangesSubMessage": "คุณต้องการทิ้งการเปลี่ยนแปลงของคุณหรือไม่?",
+ "DialogUserProfileUnsavedChangesSubMessage": "คุณต้องการยกเลิกการเปลี่ยนแปลงของคุณหรือไม่?",
"DialogControllerSettingsModifiedConfirmMessage": "การตั้งค่าคอนโทรลเลอร์ปัจจุบันได้รับการอัปเดตแล้ว",
"DialogControllerSettingsModifiedConfirmSubMessage": "คุณต้องการบันทึกหรือไม่?",
"DialogLoadFileErrorMessage": "{0} ไฟล์เกิดข้อผิดพลาด: {1}",
- "DialogModAlreadyExistsMessage": "มีม็อดนี้อยู่แล้ว",
+ "DialogModAlreadyExistsMessage": "มีม็อดอยู่แล้ว",
"DialogModInvalidMessage": "ไดเร็กทอรีที่ระบุไม่มี ม็อดอยู่!",
"DialogModDeleteNoParentMessage": "ไม่สามารถลบ: ไม่พบไดเร็กทอรีหลักสำหรับ ม็อด \"{0}\"!",
"DialogDlcNoDlcErrorMessage": "ไฟล์ที่ระบุไม่มี DLC สำหรับชื่อที่เลือก!",
@@ -517,7 +505,7 @@
"DialogLoadAppGameAlreadyLoadedSubMessage": "โปรดหยุดการจำลอง หรือปิดโปรแกรมจำลองก่อนที่จะเปิดเกมอื่น",
"DialogUpdateAddUpdateErrorMessage": "ไฟล์ที่ระบุไม่มีการอัพเดตสำหรับชื่อเรื่องที่เลือก!",
"DialogSettingsBackendThreadingWarningTitle": "คำเตือน - การทำเธรดแบ็กเอนด์",
- "DialogSettingsBackendThreadingWarningMessage": "Ryujinx ต้องรีสตาร์ทหลังจากเปลี่ยนตัวเลือกนี้จึงจะใช้งานได้อย่างสมบูรณ์ คุณอาจต้องปิดการใช้งาน มัลติเธรด ของไดรเวอร์ของคุณด้วยตนเองเมื่อใช้ Ryujinx ทั้งนี้ขึ้นอยู่กับแพลตฟอร์มของคุณ",
+ "DialogSettingsBackendThreadingWarningMessage": "รียูจินซ์ ต้องรีสตาร์ทหลังจากเปลี่ยนตัวเลือกนี้จึงจะใช้งานได้อย่างสมบูรณ์ คุณอาจต้องปิดการใช้งาน มัลติเธรด ของไดรเวอร์ของคุณด้วยตนเองเมื่อใช้ รียูจินซ์ ทั้งนี้ขึ้นอยู่กับแพลตฟอร์มของคุณ",
"DialogModManagerDeletionWarningMessage": "คุณกำลังจะลบ ม็อด: {0}\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
"DialogModManagerDeletionAllWarningMessage": "คุณกำลังจะลบม็อดทั้งหมดสำหรับชื่อนี้\n\nคุณแน่ใจหรือไม่ว่าต้องการดำเนินการต่อ?",
"SettingsTabGraphicsFeaturesOptions": "คุณสมบัติ",
@@ -530,26 +518,26 @@
"DialogProfileInvalidProfileNameErrorMessage": "ชื่อไฟล์ประกอบด้วยอักขระที่ไม่ถูกต้อง กรุณาลองอีกครั้ง",
"MenuBarOptionsPauseEmulation": "หยุดชั่วคราว",
"MenuBarOptionsResumeEmulation": "ดำเนินการต่อ",
- "AboutUrlTooltipMessage": "คลิกเพื่อเปิดเว็บไซต์ Ryujinx บนเบราว์เซอร์เริ่มต้นของคุณ",
- "AboutDisclaimerMessage": "ทางผู้พัฒนาโปรแกรม Ryujinx ไม่มีส่วนเกี่ยวข้องกับทางบริษัท Nintendo™\nหรือพันธมิตรใดๆ ทั้งสิ้น!",
+ "AboutUrlTooltipMessage": "คลิกเพื่อเปิดเว็บไซต์ รียูจินซ์ บนเบราว์เซอร์เริ่มต้นของคุณ",
+ "AboutDisclaimerMessage": "ทางผู้พัฒนาโปรแกรม รียูจินซ์ ไม่มีส่วนเกี่ยวข้องกับทางบริษัท Nintendo™\nหรือพันธมิตรใดๆ ทั้งสิ้น!",
"AboutAmiiboDisclaimerMessage": "AmiiboAPI (www.amiiboapi.com) ถูกใช้\nในการจำลอง อะมิโบ ของเรา",
- "AboutPatreonUrlTooltipMessage": "คลิกเพื่อเปิดหน้า Patreon ของ Ryujinx บนเบราว์เซอร์เริ่มต้นของคุณ",
- "AboutGithubUrlTooltipMessage": "คลิกเพื่อเปิดหน้า Github ของ Ryujinx บนเบราว์เซอร์เริ่มต้นของคุณ",
- "AboutDiscordUrlTooltipMessage": "คลิกเพื่อเปิดคำเชิญเข้าสู่เซิร์ฟเวอร์ Discord ของ Ryujinx บนเบราว์เซอร์เริ่มต้นของคุณ",
- "AboutTwitterUrlTooltipMessage": "คลิกเพื่อเปิดหน้าเพจ Twitter ของ Ryujinx บนเบราว์เซอร์เริ่มต้นของคุณ",
+ "AboutPatreonUrlTooltipMessage": "คลิกเพื่อเปิดหน้า เพทรีออน ของ รียูจินซ์ บนเบราว์เซอร์เริ่มต้นของคุณ",
+ "AboutGithubUrlTooltipMessage": "คลิกเพื่อเปิดหน้า กิตฮับ ของ ริวจินซ์ บนเบราว์เซอร์เริ่มต้นของคุณ",
+ "AboutDiscordUrlTooltipMessage": "คลิกเพื่อเปิดคำเชิญเข้าสู่เซิร์ฟเวอร์ ดิสคอร์ด ของ รียูจินซ์ บนเบราว์เซอร์เริ่มต้นของคุณ",
+ "AboutTwitterUrlTooltipMessage": "คลิกเพื่อเปิดหน้าเพจ ทวิตเตอร์ ของ รียูจินซ์ บนเบราว์เซอร์เริ่มต้นของคุณ",
"AboutRyujinxAboutTitle": "เกี่ยวกับ:",
- "AboutRyujinxAboutContent": "Ryujinx เป็นอีมูเลเตอร์สำหรับ Nintendo Switch™\nโปรดสนับสนุนเราบน Patreon\nรับข่าวสารล่าสุดทั้งหมดบน Twitter หรือ Discord ของเรา\nนักพัฒนาที่สนใจจะมีส่วนร่วมสามารถดูข้อมูลเพิ่มเติมได้ที่ GitHub หรือ Discord ของเรา",
- "AboutRyujinxMaintainersTitle": "ได้รับการดูแลโดย:",
- "AboutRyujinxMaintainersContentTooltipMessage": "คลิกเพื่อเปิดหน้าผู้มีส่วนร่วมบนเบราว์เซอร์เริ่มต้นของคุณ",
- "AboutRyujinxSupprtersTitle": "ผู้สนับสนุนบน Patreon:",
- "AmiiboSeriesLabel": "Amiibo Series",
+ "AboutRyujinxAboutContent": "รียูจินซ์ เป็นอีมูเลเตอร์สำหรับ Nintendo Switch™\nโปรดสนับสนุนเราบน เพทรีออน\nรับข่าวสารล่าสุดทั้งหมดบน ทวิตเตอร์ หรือ ดิสคอร์ด ของเรา\nนักพัฒนาที่สนใจจะมีส่วนร่วมสามารถดูข้อมูลเพิ่มเติมได้ที่ กิตฮับ หรือ ดิสคอร์ด ของเรา",
+ "AboutRyujinxMaintainersTitle": "ได้รับการดูแลรักษาโดย:",
+ "AboutRyujinxMaintainersContentTooltipMessage": "คลิกเพื่อเปิดหน้าผู้ร่วมให้ข้อมูลในเบราว์เซอร์เริ่มต้นของคุณ",
+ "AboutRyujinxSupprtersTitle": "ลายนามผู้สนับสนุนบน เพทรีออน:",
+ "AmiiboSeriesLabel": "อะมิโบซีรีส์",
"AmiiboCharacterLabel": "ตัวละคร",
"AmiiboScanButtonLabel": "สแกนเลย",
- "AmiiboOptionsShowAllLabel": "แสดง Amiibo ทั้งหมด",
- "AmiiboOptionsUsRandomTagLabel": "แฮ็ค: สุ่มแท็ก Uuid",
+ "AmiiboOptionsShowAllLabel": "แสดง อะมิโบ ทั้งหมด",
+ "AmiiboOptionsUsRandomTagLabel": "แฮ็ค: ใช้แท็กสุ่ม Uuid",
"DlcManagerTableHeadingEnabledLabel": "เปิดใช้งานแล้ว",
"DlcManagerTableHeadingTitleIdLabel": "ชื่อไอดี",
- "DlcManagerTableHeadingContainerPathLabel": "คอนเทนเนอร์เก็บไฟล์",
+ "DlcManagerTableHeadingContainerPathLabel": "ที่เก็บไฟล์ คอนเทนเนอร์",
"DlcManagerTableHeadingFullPathLabel": "ที่เก็บไฟล์แบบเต็ม",
"DlcManagerRemoveAllButton": "ลบทั้งหมด",
"DlcManagerEnableAllButton": "เปิดใช้งานทั้งหมด",
@@ -564,48 +552,43 @@
"OrderDescending": "จากมากไปน้อย",
"SettingsTabGraphicsFeatures": "คุณสมบัติ และ การเพิ่มประสิทธิภาพ",
"ErrorWindowTitle": "หน้าต่างแสดงข้อผิดพลาด",
- "ToggleDiscordTooltip": "เลือกว่าจะแสดง Ryujinx ในกิจกรรม Discord \"ที่กำลังเล่นอยู่\" ของคุณหรือไม่?",
+ "ToggleDiscordTooltip": "เลือกว่าจะแสดง รียูจินซ์ ในกิจกรรม ดิสคอร์ด \"ที่กำลังเล่นอยู่\" ของคุณหรือไม่?",
"AddGameDirBoxTooltip": "ป้อนไดเรกทอรี่เกมที่จะทำการเพิ่มลงในรายการ",
"AddGameDirTooltip": "เพิ่มไดเรกทอรี่เกมลงในรายการ",
"RemoveGameDirTooltip": "ลบไดเรกทอรี่เกมที่เลือก",
- "AddAutoloadDirBoxTooltip": "ป้อนไดเร็กทอรีสำหรับโหลดอัตโนมัติเพื่อเพิ่มลงในรายการ",
- "AddAutoloadDirTooltip": "ป้อนไดเร็กทอรีสำหรับโหลดอัตโนมัติเพื่อเพิ่มลงในรายการ",
- "RemoveAutoloadDirTooltip": "ลบไดเรกทอรีสำหรับโหลดอัตโนมัติที่เลือก",
"CustomThemeCheckTooltip": "ใช้ธีม Avalonia แบบกำหนดเองสำหรับ GUI เพื่อเปลี่ยนรูปลักษณ์ของเมนูโปรแกรมจำลอง",
"CustomThemePathTooltip": "ไปยังที่เก็บไฟล์ธีม GUI แบบกำหนดเอง",
"CustomThemeBrowseTooltip": "เรียกดูธีม GUI ที่กำหนดเอง",
- "DockModeToggleTooltip": "ด็อกโหมด ทำให้ระบบจำลองการทำงานเสมือน Nintendo ที่กำลังเชื่อมต่ออยู่ด็อก สิ่งนี้จะปรับปรุงความเสถียรภาพของกราฟิกในเกมส่วนใหญ่ ในทางกลับกัน การปิดใช้จะทำให้ระบบจำลองทำงานเหมือนกับ Nintendo Switch แบบพกพา ส่งผลให้คุณภาพกราฟิกลดลง\n\nแนะนำกำหนดค่าควบคุมของผู้เล่น 1 หากวางแผนที่จะใช้ด็อกโหมด กำหนดค่าการควบคุมแบบ แฮนด์เฮลด์ หากวางแผนที่จะใช้โหมดแฮนด์เฮลด์\n\nเปิดทิ้งไว้หากคุณไม่แน่ใจ",
- "DirectKeyboardTooltip": "รองรับการเข้าถึงแป้นพิมพ์โดยตรง (HID) ให้เกมเข้าถึงคีย์บอร์ดของคุณเป็นอุปกรณ์ป้อนข้อความ\n\nใช้งานได้กับเกมที่รองรับการใช้งานคีย์บอร์ดบนฮาร์ดแวร์ของ Switch เท่านั้น\n\nหากคุณไม่แน่ใจให้ปิดใช้งานไว้",
- "DirectMouseTooltip": "รองรับการเข้าถึงเมาส์โดยตรง (HID) ให้เกมเข้าถึงเมาส์ของคุณเป็นอุปกรณ์ชี้ตำแหน่ง\n\nใช้งานได้เฉพาะกับเกมที่รองรับการควบคุมเมาส์บนฮาร์ดแวร์ของ Switch เท่านั้น ซึ่งมีอยู่ไม่มากนัก\n\nเมื่อเปิดใช้งาน ฟังก์ชั่นหน้าจอสัมผัสอาจไม่ทำงาน\n\nหากคุณไม่แน่ใจให้ปิดใช้งานไว้",
+ "DockModeToggleTooltip": "ด็อกโหมด ทำให้ระบบจำลองการทำงานเสมือน Nintendo ที่กำลังเชื่อมต่ออยู่ด็อก สิ่งนี้จะปรับปรุงความเสถียรภาพของกราฟิกในเกมส่วนใหญ่ ในทางกลับกัน การปิดใช้จะทำให้ระบบจำลองทำงานเหมือนกับ Nintendo Switch แบบพกพา ส่งผลให้คุณภาพกราฟิกลดลง\n\nกำหนดค่าส่วนควบคุมของผู้เล่น 1 หากวางแผนที่จะใช้ด็อกโหมด กำหนดค่าการควบคุมแบบ แฮนด์เฮลด์ หากวางแผนที่จะใช้โหมดแฮนด์เฮลด์\n\nเปิดทิ้งไว้หากคุณไม่แน่ใจ",
+ "DirectKeyboardTooltip": "รองรับการเข้าถึงแป้นพิมพ์โดยตรง (HID) ให้เกมเข้าถึงคีย์บอร์ดของคุณเป็นอุปกรณ์ป้อนข้อความ\n\nใช้งานได้กับเกมที่รองรับการใช้งานคีย์บอร์ดบนฮาร์ดแวร์ของ Switch เท่านั้น\n\nหากคุณไม่แน่ใจปล่อยให้ปิดอย่างนั้น",
+ "DirectMouseTooltip": "รองรับการเข้าถึงเมาส์โดยตรง (HID) ให้เกมเข้าถึงเมาส์ของคุณเป็นอุปกรณ์ชี้ตำแหน่ง\n\nใช้งานได้เฉพาะกับเกมที่รองรับการควบคุมเมาส์บนฮาร์ดแวร์ของ Switch เท่านั้น ซึ่งมีอยู่ไม่มากนัก\n\nเมื่อเปิดใช้งาน ฟังก์ชั่นหน้าจอสัมผัสอาจไม่ทำงาน\n\nหากคุณไม่แน่ใจปล่อยให้ปิดอย่างนั้น",
"RegionTooltip": "เปลี่ยนภูมิภาคของระบบ",
"LanguageTooltip": "เปลี่ยนภาษาของระบบ",
"TimezoneTooltip": "เปลี่ยนโซนเวลาของระบบ",
"TimeTooltip": "เปลี่ยนเวลาของระบบ",
- "VSyncToggleTooltip": "Vertical Sync ของคอนโซลจำลอง โดยพื้นฐานแล้วเป็นตัวจำกัดเฟรมสำหรับเกมส่วนใหญ่ การปิดใช้งานอาจทำให้เกมทำงานด้วยความเร็วสูงขึ้น หรือทำให้หน้าจอการโหลดใช้เวลานานขึ้นหรือค้าง\n\nสามารถสลับได้ในเกมด้วยปุ่มลัดตามที่คุณต้องการ (F1 เป็นค่าเริ่มต้น) เราขอแนะนำให้ทำเช่นนี้หากคุณวางแผนที่จะปิดการใช้งาน\n\nเปิดทิ้งไว้หากคุณไม่แน่ใจ",
- "PptcToggleTooltip": "บันทึกฟังก์ชั่น JIT ที่แปลแล้ว ดังนั้นจึงไม่จำเป็นต้องแปลทุกครั้งที่โหลดเกม\n\nลดอาการกระตุกและเร่งความเร็วการบูตได้อย่างมากหลังจากการบูตครั้งแรกของเกม\n\nเปิดทิ้งไว้หากคุณไม่แน่ใจ",
- "LowPowerPptcToggleTooltip": "โหลด PPTC โดยใช้หนึ่งในสามของจำนวนคอร์",
- "FsIntegrityToggleTooltip": "ตรวจสอบไฟล์ที่เสียหายเมื่อบูตเกม และหากตรวจพบไฟล์ที่เสียหาย จะแสดงข้อผิดพลาดของแฮชในบันทึก\n\nไม่มีผลกระทบต่อประสิทธิภาพการทำงานและมีไว้เพื่อช่วยในการแก้ไขปัญหา\n\nเปิดทิ้งไว้หากคุณไม่แน่ใจ",
- "AudioBackendTooltip": "เปลี่ยนแบ็กเอนด์ที่ใช้ในการเรนเดอร์เสียง\n\nแนะนำเป็น SDL2 ในขณะที่ OpenAL และ SoundIO ถูกใช้เป็นทางเลือกสำรอง ดัมมี่จะไม่มีเสียง\n\nตั้งค่าเป็น SDL2 หากคุณไม่แน่ใจ",
- "MemoryManagerTooltip": "เปลี่ยนวิธีการเข้าถึงหน่วยความจำของผู้เยี่ยมชม ส่งผลอย่างมากต่อประสิทธิภาพการทำงานของ CPU ที่จำลอง\n\nตั้งค่าเป็น ไม่ได้ตรวจสอบโฮสต์ หากคุณไม่แน่ใจ",
+ "VSyncToggleTooltip": "Vertical Sync ของคอนโซลจำลอง โดยพื้นฐานแล้วเป็นตัวจำกัดเฟรมสำหรับเกมส่วนใหญ่ การปิดใช้งานอาจทำให้เกมทำงานด้วยความเร็วสูงขึ้น หรือทำให้หน้าจอการโหลดใช้เวลานานขึ้นหรือค้าง\n\nสามารถสลับได้ในเกมด้วยปุ่มลัดตามที่คุณต้องการ (F1 เป็นค่าเริ่มต้น) เราขอแนะนำให้ทำเช่นนี้หากคุณวางแผนที่จะปิดการใช้งาน\n\nหากคุณไม่แน่ใจให้ปล่อยไว้อย่างนั้น",
+ "PptcToggleTooltip": "บันทึกฟังก์ชั่น JIT ที่แปลแล้ว ดังนั้นจึงไม่จำเป็นต้องแปลทุกครั้งที่โหลดเกม\n\nลดอาการกระตุกและเร่งความเร็วการบูตได้อย่างมากหลังจากการบูตครั้งแรกของเกม\n\nปล่อยไว้หากคุณไม่แน่ใจ",
+ "FsIntegrityToggleTooltip": "ตรวจสอบไฟล์ที่เสียหายเมื่อบูตเกม และหากตรวจพบไฟล์ที่เสียหาย จะแสดงข้อผิดพลาดของแฮชในบันทึก\n\nไม่มีผลกระทบต่อประสิทธิภาพการทำงานและมีไว้เพื่อช่วยในการแก้ไขปัญหา\n\nปล่อยไว้หากคุณไม่แน่ใจ",
+ "AudioBackendTooltip": "เปลี่ยนแบ็กเอนด์ที่ใช้ในการเรนเดอร์เสียง\n\nSDL2 เป็นที่ต้องการ ในขณะที่ OpenAL และ SoundIO ถูกใช้เป็นทางเลือกสำรอง ดัมมี่จะไม่มีเสียง\n\nปล่อยไว้หากคุณไม่แน่ใจ",
+ "MemoryManagerTooltip": "เปลี่ยนวิธีการแมปและเข้าถึงหน่วยความจำของผู้เยี่ยมชม ส่งผลอย่างมากต่อประสิทธิภาพการทำงานของ CPU ที่จำลอง\n\nตั้งค่าเป็น ไม่ทำการตรวจสอบ โฮสต์ หากคุณไม่แน่ใจ",
"MemoryManagerSoftwareTooltip": "ใช้ตารางหน้าซอฟต์แวร์สำหรับการแปลที่อยู่ ความแม่นยำสูงสุดแต่ประสิทธิภาพช้าที่สุด",
- "MemoryManagerHostTooltip": "แมปหน่วยความจำในพื้นที่ที่อยู่โฮสต์โดยตรง การคอมไพล์และดำเนินการของ JIT เร็วขึ้นมาก",
- "MemoryManagerUnsafeTooltip": "แมปหน่วยความจำโดยตรง แต่อย่าตั้งค่าที่อยู่ของผู้เยี่ยมชมก่อนที่จะเข้าถึง เร็วกว่า แต่ต้องแลกกับความปลอดภัย แอปพลิเคชั่นของผู้เยี่ยมชมสามารถเข้าถึงหน่วยความจำได้จากทุกที่ใน Ryujinx แนะนำให้รันเฉพาะโปรแกรมที่คุณเชื่อถือในโหมดนี้",
+ "MemoryManagerHostTooltip": "แมปหน่วยความจำในพื้นที่ที่อยู่โฮสต์โดยตรง การคอมไพล์และดำเนินการ JIT เร็วขึ้นมาก",
+ "MemoryManagerUnsafeTooltip": "แมปหน่วยความจำโดยตรง แต่อย่าปิดบังที่อยู่ภายในพื้นที่ที่อยู่ของผู้เยี่ยมชมก่อนที่จะเข้าถึง เร็วกว่า แต่ต้องแลกกับความปลอดภัย แอปพลิเคชั่นผู้เยี่ยมชมสามารถเข้าถึงหน่วยความจำได้จากทุกที่ใน รียูจินซ์ ดังนั้นให้รันเฉพาะโปรแกรมที่คุณเชื่อถือในโหมดนี้",
"UseHypervisorTooltip": "ใช้ Hypervisor แทน JIT ปรับปรุงประสิทธิภาพอย่างมากเมื่อพร้อมใช้งาน แต่อาจไม่เสถียรในสถานะปัจจุบัน",
- "DRamTooltip": "ใช้รูปแบบ MemoryMode ทางเลือกเพื่อเลียนแบบโมเดลการพัฒนาสวิตช์\n\nสิ่งนี้มีประโยชน์สำหรับแพ็กพื้นผิวที่มีความละเอียดสูงกว่าหรือม็อดที่มีความละเอียด 4k เท่านั้น\n\nปล่อยให้ปิดหากคุณไม่แน่ใจ",
- "IgnoreMissingServicesTooltip": "ละเว้นบริการ Horizon OS ที่ยังไม่ได้ใช้งาน วิธีนี้อาจช่วยในการหลีกเลี่ยงข้อผิดพลาดเมื่อบูตเกมบางเกม\n\nปล่อยให้ปิดหากคุณไม่แน่ใจ",
- "IgnoreAppletTooltip": "กล่องโต้ตอบภายนอก \"แอปเพล็ตตัวควบคุม\" จะไม่ปรากฏขึ้นหากแป้นเกมถูกตัดการเชื่อมต่อระหว่างการเล่นเกม จะไม่มีข้อความแจ้งให้ปิดกล่องโต้ตอบหรือตั้งค่าตัวควบคุมใหม่ เมื่อเชื่อมต่อคอนโทรลเลอร์ที่ตัดการเชื่อมต่อก่อนหน้านี้อีกครั้ง เกมจะดำเนินการต่อโดยอัตโนมัติ",
- "GraphicsBackendThreadingTooltip": "ดำเนินการคำสั่งแบ็กเอนด์กราฟิกบนเธรดที่สอง\n\nเร่งความเร็วการคอมไพล์ ลดการกระตุก และปรับปรุงประสิทธิภาพการทำงานของไดรเวอร์ GPU โดยไม่ต้องรองรับมัลติเธรดในตัว ประสิทธิภาพที่ดีขึ้นเล็กน้อยสำหรับไดรเวอร์ที่มีมัลติเธรด\n\nตั้งเป็น อัตโนมัติ หากคุณไม่แน่ใจ",
+ "DRamTooltip": "ใช้หน่วยความจำสำรองที่มี DRAM ขนาด 8 กิกะไบต์ เพื่อเลียนแบบโมเดลการพัฒนา Switch\n\nมีประโยชน์เฉพาะกับแพ็คพื้นผิวที่มีความละเอียดสูงกว่าหรือม็อดความละเอียด 4K เท่านั้น ไม่ช่วยปรับปรุงประสิทธิภาพ\n\nปิดไว้หากไม่แน่ใจ",
+ "IgnoreMissingServicesTooltip": "ละเว้นบริการ Horizon OS ที่ยังไม่ได้ใช้งาน วิธีนี้อาจช่วยในการหลีกเลี่ยงข้อผิดพลาดเมื่อบู๊ตเกมบางเกม\n\nปล่อยให้ปิดหากคุณไม่แน่ใจ",
+ "GraphicsBackendThreadingTooltip": "ดำเนินการคำสั่งแบ็กเอนด์กราฟิกบนเธรดที่สอง\n\nเร่งความเร็วการคอมไพล์เชเดอร์ ลดการกระตุก และปรับปรุงประสิทธิภาพการทำงานของไดรเวอร์ GPU โดยไม่ต้องรองรับมัลติเธรดในตัว ประสิทธิภาพที่ดีขึ้นเล็กน้อยสำหรับไดรเวอร์ที่มีมัลติเธรด\n\nตั้งเป็น อัตโนมัติ หากคุณไม่แน่ใจ",
"GalThreadingTooltip": "ดำเนินการคำสั่งแบ็กเอนด์กราฟิกบนเธรดที่สอง\n\nเร่งความเร็วการคอมไพล์เชเดอร์ ลดการกระตุก และปรับปรุงประสิทธิภาพการทำงานของไดรเวอร์ GPU โดยไม่ต้องรองรับมัลติเธรดในตัว ประสิทธิภาพที่ดีขึ้นเล็กน้อยสำหรับไดรเวอร์ที่มีมัลติเธรด\n\nตั้งเป็น อัตโนมัติ หากคุณไม่แน่ใจ",
- "ShaderCacheToggleTooltip": "บันทึกแคชแสงเงาของดิสก์ซึ่งช่วยลดการกระตุกในการรันครั้งต่อๆ ไป\n\nเปิดทิ้งไว้หากคุณไม่แน่ใจ",
+ "ShaderCacheToggleTooltip": "บันทึกแคชเชเดอร์ของดิสก์ซึ่งช่วยลดการกระตุกในการรันครั้งต่อๆ ไป\n\nปล่อยไว้หากคุณไม่แน่ใจ",
"ResolutionScaleTooltip": "คูณความละเอียดการเรนเดอร์ของเกม\n\nเกมบางเกมอาจไม่สามารถใช้งานได้และดูเป็นพิกเซลแม้ว่าความละเอียดจะเพิ่มขึ้นก็ตาม สำหรับเกมเหล่านั้น คุณอาจต้องค้นหาม็อดที่ลบรอยหยักของภาพหรือเพิ่มความละเอียดในการเรนเดอร์ภายใน หากต้องการใช้อย่างหลัง คุณอาจต้องเลือก Native\n\nตัวเลือกนี้สามารถเปลี่ยนแปลงได้ในขณะที่เกมกำลังทำงานอยู่โดยคลิก \"นำมาใช้\" ด้านล่าง คุณสามารถย้ายหน้าต่างการตั้งค่าไปด้านข้างและทดลองจนกว่าคุณจะพบรูปลักษณ์ที่คุณต้องการสำหรับเกม\n\nโปรดทราบว่า 4x นั้นเกินความจำเป็นสำหรับการตั้งค่าแทบทุกประเภท",
"ResolutionScaleEntryTooltip": "สเกลความละเอียดจุดทศนิยม เช่น 1.5 ไม่ใช่จำนวนเต็มของสเกล มีแนวโน้มที่จะก่อให้เกิดปัญหาหรือความผิดพลาดได้",
- "AnisotropyTooltip": "ระดับของ Anisotropic ตั้งค่าเป็นอัตโนมัติเพื่อใช้ค่าพื้นฐานของเกม",
+ "AnisotropyTooltip": "ระดับของการกรองแบบ Anisotropic ตั้งค่าเป็นอัตโนมัติเพื่อใช้ค่าที่เกมร้องขอ",
"AspectRatioTooltip": "อัตราส่วนภาพที่ใช้กับหน้าต่างตัวแสดงภาพ\n\nเปลี่ยนสิ่งนี้หากคุณใช้ตัวดัดแปลงอัตราส่วนกว้างยาวสำหรับเกมของคุณ ไม่เช่นนั้นกราฟิกจะถูกยืดออก\n\nทิ้งไว้ที่ 16:9 หากไม่แน่ใจ",
- "ShaderDumpPathTooltip": "ที่เก็บ ดัมพ์ไฟล์เชเดอร์",
- "FileLogTooltip": "บันทึกประวัติคอนโซลลงในไฟล์บันทึก จะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงาน",
+ "ShaderDumpPathTooltip": "ที่เก็บ ดัมพ์ไฟล์ พื้นผิวและแสงเงา",
+ "FileLogTooltip": "บันทึก ประวัติคอนโซลลงในไฟล์บันทึกบนดิสก์ จะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงาน",
"StubLogTooltip": "พิมพ์ข้อความประวัติในคอนโซล จะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงาน",
"InfoLogTooltip": "พิมพ์ข้อความบันทึกข้อมูลในคอนโซล จะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงาน",
- "WarnLogTooltip": "พิมพ์ข้อความประวัติการเตือนในคอนโซล จะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงาน",
+ "WarnLogTooltip": "พิมพ์ข้อความประวัติแจ้งตือนในคอนโซล จะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงาน",
"ErrorLogTooltip": "พิมพ์ข้อความบันทึกข้อผิดพลาดในคอนโซล จะไม่ส่งผลกระทบต่อประสิทธิภาพการทำงาน",
"TraceLogTooltip": "พิมพ์ข้อความประวัติการติดตามในคอนโซล ไม่ส่งผลกระทบต่อประสิทธิภาพการทำงาน",
"GuestLogTooltip": "พิมพ์ข้อความประวัติของผู้เยี่ยมชมในคอนโซล ไม่ส่งผลกระทบต่อประสิทธิภาพการทำงาน",
@@ -613,18 +596,16 @@
"FSAccessLogModeTooltip": "เปิดใช้งาน เอาต์พุตประวัติการเข้าถึง FS ไปยังคอนโซล โหมดที่เป็นไปได้คือ 0-3",
"DeveloperOptionTooltip": "โปรดใช้ด้วยความระมัดระวัง",
"OpenGlLogLevel": "จำเป็นต้องเปิดใช้งานระดับบันทึกที่เหมาะสม",
- "DebugLogTooltip": "พิมพ์ข้อความประวัติการแก้ไขข้อบกพร่องในคอนโซล\n\nใช้สิ่งนี้เฉพาะเมื่อได้รับคำแนะนำจากผู้ดูแลเท่านั้น เนื่องจากจะทำให้บันทึกอ่านยากและทำให้ประสิทธิภาพของโปรแกรมจำลองแย่ลง",
- "LoadApplicationFileTooltip": "เปิดตัวสำรวจไฟล์เพื่อเลือกไฟล์ที่เข้ากันได้กับ Switch ที่จะโหลด",
+ "DebugLogTooltip": "พิมพ์ข้อความประวัติการแก้ไขข้อบกพร่องในคอนโซล\n\nใช้สิ่งนี้เฉพาะเมื่อได้รับคำแนะนำจากเจ้าหน้าที่โดยเฉพาะเท่านั้น เนื่องจากจะทำให้บันทึกอ่านยากและทำให้ประสิทธิภาพของโปรแกรมจำลองแย่ลง",
+ "LoadApplicationFileTooltip": "เปิด File Explorer เพื่อเลือกไฟล์ที่เข้ากันได้กับ Switch ที่จะโหลด",
"LoadApplicationFolderTooltip": "เปิดตัวสำรวจไฟล์เพื่อเลือกไฟล์ที่เข้ากันได้กับ Switch ที่จะโหลด",
- "LoadDlcFromFolderTooltip": "เปิดตัวสำรวจไฟล์เพื่อเลือกหนึ่งโฟลเดอร์ขึ้นไปเพื่อโหลด DLC จำนวนมาก",
- "LoadTitleUpdatesFromFolderTooltip": "เปิดตัวสำรวจไฟล์เพื่อเลือกหนึ่งโฟลเดอร์ขึ้นไปเพื่อโหลดไฟล์อัปเดตจำนวนมาก",
"OpenRyujinxFolderTooltip": "เปิดโฟลเดอร์ระบบไฟล์ Ryujinx",
"OpenRyujinxLogsTooltip": "เปิดโฟลเดอร์ ที่เก็บไฟล์ประวัติ",
- "ExitTooltip": "ออกจากโปรแกรม Ryujinx",
+ "ExitTooltip": "ออกจากโปรแกรม รียูจินซ์",
"OpenSettingsTooltip": "เปิดหน้าต่างการตั้งค่า",
"OpenProfileManagerTooltip": "เปิดหน้าต่างตัวจัดการโปรไฟล์ผู้ใช้",
"StopEmulationTooltip": "หยุดการจำลองของเกมที่เปิดอยู่ในปัจจุบันและกลับไปยังการเลือกเกม",
- "CheckUpdatesTooltip": "ตรวจสอบอัปเดตของ Ryujinx",
+ "CheckUpdatesTooltip": "ตรวจสอบการอัปเดตของ รียูจินซ์",
"OpenAboutTooltip": "เปิดหน้าต่าง เกี่ยวกับ",
"GridSize": "ขนาดตาราง",
"GridSizeTooltip": "เปลี่ยนขนาด ของตาราง",
@@ -634,56 +615,56 @@
"AudioVolumeTooltip": "ปรับระดับเสียง",
"SettingsTabSystemEnableInternetAccess": "การเข้าถึงอินเทอร์เน็ตของผู้เยี่ยมชม/โหมด LAN",
"EnableInternetAccessTooltip": "อนุญาตให้แอปพลิเคชันจำลองเชื่อมต่ออินเทอร์เน็ต\n\nเกมที่มีโหมด LAN สามารถเชื่อมต่อระหว่างกันได้เมื่อเปิดใช้งานและระบบเชื่อมต่อกับจุดเชื่อมต่อเดียวกัน รวมถึงคอนโซลจริงด้วย\n\nไม่อนุญาตให้มีการเชื่อมต่อกับเซิร์ฟเวอร์ Nintendo อาจทำให้เกิดการหยุดทำงานในบางเกมที่พยายามเชื่อมต่ออินเทอร์เน็ต\n\nปล่อยให้ปิดหากคุณไม่แน่ใจ",
- "GameListContextMenuManageCheatToolTip": "ฟังก์ชั่นจัดการสูตรโกง",
- "GameListContextMenuManageCheat": "ฟังก์ชั่นจัดการสูตรโกง",
- "GameListContextMenuManageModToolTip": "ฟังก์ชั่นจัดการม็อด",
- "GameListContextMenuManageMod": "ฟังก์ชั่นจัดการม็อด",
+ "GameListContextMenuManageCheatToolTip": "ฟังชั่นจัดการสูตรโกง",
+ "GameListContextMenuManageCheat": "จัดการสูตรโกง",
+ "GameListContextMenuManageModToolTip": "จัดการ ม็อด",
+ "GameListContextMenuManageMod": "จัดการ ม็อด",
"ControllerSettingsStickRange": "ขอบเขต:",
- "DialogStopEmulationTitle": "Ryujinx - หยุดการจำลอง",
+ "DialogStopEmulationTitle": "รียูจินซ์ - หยุดการจำลอง",
"DialogStopEmulationMessage": "คุณแน่ใจหรือไม่ว่าต้องการหยุดการจำลองหรือไม่?",
- "SettingsTabCpu": "ซีพียู",
+ "SettingsTabCpu": "หน่วยประมวลผลกลาง",
"SettingsTabAudio": "เสียง",
"SettingsTabNetwork": "เครือข่าย",
"SettingsTabNetworkConnection": "การเชื่อมต่อเครือข่าย",
- "SettingsTabCpuCache": "แคชซีพียู",
+ "SettingsTabCpuCache": "ซีพียู แคช",
"SettingsTabCpuMemory": "โหมดซีพียู",
- "DialogUpdaterFlatpakNotSupportedMessage": "โปรดอัปเดต Ryujinx ผ่านช่องทาง FlatHub",
+ "DialogUpdaterFlatpakNotSupportedMessage": "โปรดอัปเดต รียูจินซ์ ผ่านช่องทาง FlatHub",
"UpdaterDisabledWarningTitle": "ปิดใช้งานการอัปเดตแล้ว!",
"ControllerSettingsRotate90": "หมุน 90 องศา ตามเข็มนาฬิกา",
"IconSize": "ขนาดไอคอน",
"IconSizeTooltip": "เปลี่ยนขนาดของไอคอนเกม",
"MenuBarOptionsShowConsole": "แสดง คอนโซล",
- "ShaderCachePurgeError": "เกิดข้อผิดพลาดในการล้างแคชแสงเงา {0}: {1}",
+ "ShaderCachePurgeError": "เกิดข้อผิดพลาดในการล้างแคชเชเดอร์ {0}: {1}",
"UserErrorNoKeys": "ไม่พบ คีย์",
"UserErrorNoFirmware": "ไม่พบ เฟิร์มแวร์",
"UserErrorFirmwareParsingFailed": "เกิดข้อผิดพลาดในการวิเคราะห์เฟิร์มแวร์",
"UserErrorApplicationNotFound": "ไม่พบ แอปพลิเคชัน",
"UserErrorUnknown": "ข้อผิดพลาดที่ไม่รู้จัก",
"UserErrorUndefined": "ข้อผิดพลาดที่ไม่ได้ระบุ",
- "UserErrorNoKeysDescription": "Ryujinx ไม่พบไฟล์ 'prod.keys' ในเครื่องของคุณ",
- "UserErrorNoFirmwareDescription": "Ryujinx ไม่พบ เฟิร์มแวร์ที่ติดตั้งไว้ในเครื่องของคุณ",
- "UserErrorFirmwareParsingFailedDescription": "Ryujinx ไม่สามารถวิเคราะห์เฟิร์มแวร์ที่ให้มาได้ ซึ่งมักมีสาเหตุมาจากคีย์ที่เก่าจนเกินไป",
- "UserErrorApplicationNotFoundDescription": "Ryujinx ไม่พบแอปพลิเคชันที่ถูกต้องในที่เก็บไฟล์ที่กำหนด",
+ "UserErrorNoKeysDescription": "รียูจินซ์ ไม่พบไฟล์ 'prod.keys' ในเครื่องของคุณ",
+ "UserErrorNoFirmwareDescription": "รียูจินซ์ ไม่พบ เฟิร์มแวร์ที่ติดตั้งไว้ในเครื่องของคุณ",
+ "UserErrorFirmwareParsingFailedDescription": "รียูจินซ์ ไม่สามารถวิเคราะห์เฟิร์มแวร์ที่ให้มาได้ ซึ่งมักมีสาเหตุมาจากคีย์ที่ล้าสมัย",
+ "UserErrorApplicationNotFoundDescription": "รียูจินซ์ ไม่พบแอปพลิเคชันที่ถูกต้องในที่เก็บไฟล์ที่กำหนด",
"UserErrorUnknownDescription": "เกิดข้อผิดพลาดที่ไม่รู้จัก!",
"UserErrorUndefinedDescription": "เกิดข้อผิดพลาดที่ไม่สามารถระบุได้! สิ่งนี้ไม่ควรเกิดขึ้น โปรดติดต่อผู้พัฒนา!",
"OpenSetupGuideMessage": "เปิดคู่มือการตั้งค่า",
"NoUpdate": "ไม่มีการอัปเดต",
"TitleUpdateVersionLabel": "เวอร์ชั่น {0}",
- "TitleBundledUpdateVersionLabel": "Bundled: เวอร์ชั่น {0}",
- "TitleBundledDlcLabel": "Bundled:",
- "RyujinxInfo": "Ryujinx – ข้อมูล",
- "RyujinxConfirm": "Ryujinx - ยืนยัน",
+ "TitleBundledUpdateVersionLabel": "รวม: เวอร์ชัน {0}",
+ "TitleBundledDlcLabel": "รวม:",
+ "RyujinxInfo": "รียูจินซ์ – ข้อมูล",
+ "RyujinxConfirm": "รียูจินซ์ - ยืนยัน",
"FileDialogAllTypes": "ทุกประเภท",
- "Never": "ไม่ต้อง",
+ "Never": "ไม่มี",
"SwkbdMinCharacters": "ต้องมีความยาวของตัวอักษรอย่างน้อย {0} ตัว",
"SwkbdMinRangeCharacters": "ต้องมีความยาวของตัวอักษร {0}-{1} ตัว",
- "SoftwareKeyboard": "ซอฟต์แวร์คีย์บอร์ด",
+ "SoftwareKeyboard": "ซอฟต์แวร์ ของคีย์บอร์ด",
"SoftwareKeyboardModeNumeric": "ต้องเป็น 0-9 หรือ '.' เท่านั้น",
- "SoftwareKeyboardModeAlphabet": "ต้องเป็นตัวอักษรที่ไม่ใช่ประเภท CJK เท่านั้น",
+ "SoftwareKeyboardModeAlphabet": "ต้องเป็นตัวอักษรที่ไม่ใช่ CJK เท่านั้น",
"SoftwareKeyboardModeASCII": "ต้องเป็นตัวอักษร ASCII เท่านั้น",
"ControllerAppletControllers": "คอนโทรลเลอร์ที่รองรับ:",
"ControllerAppletPlayers": "ผู้เล่น:",
- "ControllerAppletDescription": "การกำหนดค่าปัจจุบันของคุณไม่ถูกต้อง กรุณาเปิดการตั้งค่าและกำหนดค่าอินพุตของคุณใหม่",
+ "ControllerAppletDescription": "การกำหนดค่าปัจจุบันของคุณไม่ถูกต้อง เปิดการตั้งค่าและกำหนดค่าอินพุตของคุณใหม่",
"ControllerAppletDocked": "ตั้งค่าด็อกโหมด ควรปิดใช้งานการควบคุมแบบแฮนด์เฮลด์",
"UpdaterRenaming": "กำลังเปลี่ยนชื่อไฟล์เก่า...",
"UpdaterRenameFailed": "โปรแกรมอัปเดตไม่สามารถเปลี่ยนชื่อไฟล์ได้: {0}",
@@ -703,7 +684,7 @@
"OpenFileDialogTitle": "เลือกไฟล์ที่สนับสนุนเพื่อเปิด",
"OpenFolderDialogTitle": "เลือกโฟลเดอร์ที่มีเกมที่แตกไฟล์แล้ว",
"AllSupportedFormats": "รูปแบบที่รองรับทั้งหมด",
- "RyujinxUpdater": "ตัวอัปเดต Ryujinx",
+ "RyujinxUpdater": "อัปเดต รียูจินซ์",
"SettingsTabHotkeys": "ปุ่มลัดของคีย์บอร์ด",
"SettingsTabHotkeysHotkeys": "ปุ่มลัดของคีย์บอร์ด",
"SettingsTabHotkeysToggleVsyncHotkey": "สลับเป็น VSync:",
@@ -713,32 +694,24 @@
"SettingsTabHotkeysToggleMuteHotkey": "ปิดเสียง:",
"ControllerMotionTitle": "ตั้งค่าควบคุมการเคลื่อนไหว",
"ControllerRumbleTitle": "ตั้งค่าการสั่นไหว",
- "SettingsSelectThemeFileDialogTitle": "เลือกธีมไฟล์",
+ "SettingsSelectThemeFileDialogTitle": "เลือกไฟล์ธีม",
"SettingsXamlThemeFile": "ไฟล์ธีมรูปแบบ XAML",
"AvatarWindowTitle": "จัดการบัญชี - อวาต้า",
- "Amiibo": "Amiibo",
+ "Amiibo": "อะมิโบ",
"Unknown": "ไม่รู้จัก",
"Usage": "การใช้งาน",
- "Writable": "สามารถเขียนทับได้",
+ "Writable": "สามารถเขียนได้",
"SelectDlcDialogTitle": "เลือกไฟล์ DLC",
"SelectUpdateDialogTitle": "เลือกไฟล์อัพเดต",
"SelectModDialogTitle": "เลือกไดเรกทอรี Mods",
"UserProfileWindowTitle": "จัดการโปรไฟล์ผู้ใช้",
"CheatWindowTitle": "จัดการสูตรโกง",
- "DlcWindowTitle": "จัดการ DLC ที่ดาวน์โหลดได้สำหรับ {0} ({1})",
- "ModWindowTitle": "จัดการม็อดที่ดาวน์โหลดได้สำหรับ {0} ({1})",
+ "DlcWindowTitle": "จัดการเนื้อหาที่ดาวน์โหลดได้สำหรับ {0} ({1})",
+ "ModWindowTitle": "จัดการ Mods สำหรับ {0} ({1})",
"UpdateWindowTitle": "จัดการอัปเดตหัวข้อ",
- "UpdateWindowUpdateAddedMessage": "{0} อัพเดตที่เพิ่มมาใหม่",
- "UpdateWindowBundledContentNotice": "แพ็คที่อัพเดตมาไม่สามารถลบทิ้งได้ สามารถปิดใช้งานได้เท่านั้น",
"CheatWindowHeading": "สูตรโกงมีให้สำหรับ {0} [{1}]",
- "BuildId": "รหัสการสร้าง:",
- "DlcWindowBundledContentNotice": "แพ็ค DLC ไม่สามารถลบทิ้งได้ สามารถปิดใช้งานได้เท่านั้น",
- "DlcWindowHeading": "{0} DLC ที่สามารถดาวน์โหลดได้",
- "DlcWindowDlcAddedMessage": "{0} DLC ใหม่ที่เพิ่มเข้ามา",
- "AutoloadDlcAddedMessage": "{0} ใหม่ที่เพิ่มเข้ามา",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} อัพเดตใหม่ที่เพิ่มเข้ามา",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
+ "BuildId": "รหัสบิวด์:",
+ "DlcWindowHeading": "{0} เนื้อหาที่สามารถดาวน์โหลดได้",
"ModWindowHeading": "{0} ม็อด",
"UserProfilesEditProfile": "แก้ไขที่เลือกแล้ว",
"Cancel": "ยกเลิก",
@@ -754,19 +727,19 @@
"UserProfilesName": "ชื่อ:",
"UserProfilesUserId": "รหัสผู้ใช้:",
"SettingsTabGraphicsBackend": "กราฟิกเบื้องหลัง",
- "SettingsTabGraphicsBackendTooltip": "เลือกกราฟิกเบื้องหลังที่จะใช้ในโปรแกรมจำลอง\n\nโดยรวมแล้ว Vulkan นั้นดีกว่าสำหรับการ์ดจอรุ่นใหม่ทั้งหมด ตราบใดที่ไดรเวอร์ยังอัพเดทอยู่เสมอ Vulkan ยังมีคุณสมบัติการคอมไพล์เชเดอร์ที่เร็วขึ้น(และลดอาการกระตุก) สำหรับ GPU อื่นๆทุกอัน\n\nOpenGL อาจได้รับผลลัพธ์ที่ดีกว่าบน Nvidia GPU รุ่นเก่า, AMD GPU รุ่นเก่าบน Linux หรือบน GPU ที่มี VRAM น้อย แม้ว่าการคอมไพล์เชเดอร์ จะทำให้อาการกระตุกมากขึ้นก็ตาม\n\nตั้งค่าเป็น Vulkan หากไม่แน่ใจ ตั้งค่าเป็น OpenGL หาก GPU ของคุณไม่รองรับ Vulkan แม้จะมีไดรเวอร์กราฟิกล่าสุดก็ตาม",
+ "SettingsTabGraphicsBackendTooltip": "เลือกกราฟิกเบื้องหลังที่จะใช้ในโปรแกรมจำลอง\n\nโดยรวมแล้ว Vulkan นั้นดีกว่าสำหรับกราฟิกการ์ดรุ่นใหม่ทั้งหมด ตราบใดที่ไดรเวอร์ยังอัพเดทอยู่เสมอ Vulkan ยังมีคุณสมบัติการคอมไพล์เชเดอร์ที่เร็วขึ้น (ลดอาการกระตุก) ของผู้จำหน่าย GPU ทุกราย\n\nOpenGL อาจได้รับผลลัพธ์ที่ดีกว่าบน Nvidia GPU รุ่นเก่า, AMD GPU รุ่นเก่าบน Linux หรือบน GPU ที่มี VRAM ต่ำกว่า แม้ว่าการคอมไพล์เชเดอร์ จะทำให้อาการกระตุกมากขึ้นก็ตาม\n\nตั้งค่าเป็น Vulkan หากไม่แน่ใจ ตั้งค่าเป็น OpenGL หาก GPU ของคุณไม่รองรับ Vulkan แม้จะมีไดรเวอร์กราฟิกล่าสุดก็ตาม",
"SettingsEnableTextureRecompression": "เปิดใช้งาน การบีบอัดพื้นผิวอีกครั้ง",
- "SettingsEnableTextureRecompressionTooltip": "บีบอัดพื้นผิว ASTC เพื่อลดการใช้งาน VRAM\n\nเกมที่ใช้รูปแบบพื้นผิวนี้ ได้แก่ Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder และ The Legend of Zelda: Tears of the Kingdom\n\nการ์ดจอที่มี 4GiB VRAM หรือน้อยกว่ามีแนวโน้มที่จะพังในบางจุดขณะเล่นเกมเหล่านี้\n\nเปิดใช้งานเฉพาะในกรณีที่ VRAM ของคุณใกล้หมดในเกมที่กล่าวมาข้างต้น ปล่อยให้ปิดหากไม่แน่ใจ",
+ "SettingsEnableTextureRecompressionTooltip": "บีบอัดพื้นผิว ASTC เพื่อลดการใช้งาน VRAM\n\nเกมที่ใช้รูปแบบพื้นผิวนี้ ได้แก่ Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder และ The Legend of Zelda: Tears of the Kingdom\n\nกราฟิกการ์ดที่มี 4 กิกะไบต์ VRAM หรือน้อยกว่ามีแนวโน้มที่จะให้แคชในบางจุดขณะเล่นเกมเหล่านี้\n\nเปิดใช้งานเฉพาะในกรณีที่ VRAM ของคุณใกล้หมดในเกมที่กล่าวมาข้างต้น ปล่อยให้ปิดหากไม่แน่ใจ",
"SettingsTabGraphicsPreferredGpu": "GPU ที่ต้องการ",
- "SettingsTabGraphicsPreferredGpuTooltip": "เลือกการ์ดจอที่จะใช้กับแบ็กเอนด์กราฟิก Vulkan\n\nไม่ส่งผลต่อ GPU ที่ OpenGL จะใช้\n\nตั้งค่าเป็น GPU ที่ถูกตั้งค่าสถานะเป็น \"dGPU\" ถ้าหากคุณไม่แน่ใจ ,หากไม่มีก็ปล่อยทิ้งไว้โดยไม่ต้องแตะต้องมัน",
- "SettingsAppRequiredRestartMessage": "จำเป็นต้องรีสตาร์ท Ryujinx",
+ "SettingsTabGraphicsPreferredGpuTooltip": "เลือกกราฟิกการ์ดที่จะใช้กับแบ็กเอนด์กราฟิก Vulkan\n\nไม่ส่งผลต่อ GPU ที่ OpenGL จะใช้\n\nตั้งค่าเป็น GPU ที่ถูกตั้งค่าสถานะเป็น \"dGPU\" หากคุณไม่แน่ใจ หากไม่มีก็ปล่อยทิ้งไว้โดยไม่มีใครแตะต้องมัน",
+ "SettingsAppRequiredRestartMessage": "จำเป็นต้องรีสตาร์ท รียูจินซ์",
"SettingsGpuBackendRestartMessage": "การตั้งค่ากราฟิกเบื้องหลังหรือ GPU ได้รับการแก้ไขแล้ว สิ่งนี้จะต้องมีการรีสตาร์ทจึงจะสามารถใช้งานได้",
"SettingsGpuBackendRestartSubMessage": "คุณต้องการรีสตาร์ทตอนนี้หรือไม่?",
- "RyujinxUpdaterMessage": "คุณต้องการอัพเดต Ryujinx เป็นเวอร์ชั่นล่าสุดหรือไม่?",
+ "RyujinxUpdaterMessage": "คุณต้องการอัพเดต รียูจินซ์ เป็นเวอร์ชั่นล่าสุดหรือไม่?",
"SettingsTabHotkeysVolumeUpHotkey": "เพิ่มระดับเสียง:",
"SettingsTabHotkeysVolumeDownHotkey": "ลดระดับเสียง:",
"SettingsEnableMacroHLE": "เปิดใช้งาน มาโคร HLE",
- "SettingsEnableMacroHLETooltip": "การจำลองระดับสูงของโค้ดมาโคร GPU\n\nปรับปรุงประสิทธิภาพ แต่อาจทำให้เกิดข้อผิดพลาดด้านกราฟิกในบางเกม\n\nเปิดทิ้งไว้หากคุณไม่แน่ใจ",
+ "SettingsEnableMacroHLETooltip": "การจำลองระดับสูงของโค้ดมาโคร GPU\n\nปรับปรุงประสิทธิภาพ แต่อาจทำให้เกิดข้อผิดพลาดด้านกราฟิกในบางเกม\n\nปล่อยไว้หากคุณไม่แน่ใจ",
"SettingsEnableColorSpacePassthrough": "ทะลุผ่านพื้นที่สี",
"SettingsEnableColorSpacePassthroughTooltip": "สั่งให้แบ็กเอนด์ Vulkan ส่งผ่านข้อมูลสีโดยไม่ต้องระบุค่าของสี สำหรับผู้ใช้ที่มีการแสดงกระจายตัวของสี อาจส่งผลให้สีสดใสมากขึ้น โดยต้องแลกกับความถูกต้องของสี",
"VolumeShort": "ระดับเสียง",
@@ -782,16 +755,16 @@
"Recover": "กู้คืน",
"UserProfilesRecoverHeading": "พบบันทึกสำหรับบัญชีดังต่อไปนี้",
"UserProfilesRecoverEmptyList": "ไม่มีโปรไฟล์ที่สามารถกู้คืนได้",
- "GraphicsAATooltip": "ใช้การลดรอยหยักกับการเรนเดอร์เกม\n\nFXAA จะเบลอภาพส่วนใหญ่ ในขณะที่ SMAA จะพยายามค้นหารอยหยักและปรับให้เรียบ\n\nไม่แนะนำให้ใช้ร่วมกับตัวกรองสเกล FSR\n\nตัวเลือกนี้สามารถเปลี่ยนแปลงได้ในขณะที่เกมกำลังทำงานอยู่โดยคลิก \"นำไปใช้\" ด้านล่าง คุณสามารถย้ายหน้าต่างการตั้งค่าไปด้านข้างและทดลองจนกว่าคุณจะพบรูปลักษณ์ที่คุณต้องการสำหรับเกม\n\nปล่อยไว้ที่ NONE หากไม่แน่ใจ",
+ "GraphicsAATooltip": "ใช้การลดรอยหยักกับการเรนเดอร์เกม\n\nFXAA จะเบลอภาพส่วนใหญ่ ในขณะที่ SMAA จะพยายามค้นหาขอบหยักและปรับให้เรียบ\n\nไม่แนะนำให้ใช้ร่วมกับตัวกรองสเกล FSR\n\nตัวเลือกนี้สามารถเปลี่ยนแปลงได้ในขณะที่เกมกำลังทำงานอยู่โดยคลิก \"นำไปใช้\" ด้านล่าง คุณสามารถย้ายหน้าต่างการตั้งค่าไปด้านข้างและทดลองจนกว่าคุณจะพบรูปลักษณ์ที่คุณต้องการสำหรับเกม\n\nปล่อยไว้ที่ NONE หากไม่แน่ใจ",
"GraphicsAALabel": "ลดการฉีกขาดของภาพ:",
"GraphicsScalingFilterLabel": "ปรับขนาดตัวกรอง:",
- "GraphicsScalingFilterTooltip": "เลือกตัวกรองสเกลที่จะใช้เมื่อใช้สเกลความละเอียด\n\nBilinear ทำงานได้ดีกับเกม 3D และเป็นตัวเลือกเริ่มต้นที่ปลอดภัย\n\nแนะนำให้ใช้เกมภาพพิกเซลที่ใกล้เคียงที่สุด\n\nFSR 1.0 เป็นเพียงตัวกรองความคมชัด ไม่แนะนำให้ใช้กับ FXAA หรือ SMAA\n\nตัวเลือกนี้สามารถเปลี่ยนแปลงได้ในขณะที่เกมกำลังทำงานอยู่โดยคลิก \"นำไปใช้\" ด้านล่าง คุณสามารถย้ายหน้าต่างการตั้งค่าไปด้านข้างและทดลองจนกว่าคุณจะพบรูปลักษณ์ที่คุณต้องการสำหรับเกม",
- "GraphicsScalingFilterBilinear": "Bilinear",
- "GraphicsScalingFilterNearest": "ใกล้สุด",
+ "GraphicsScalingFilterTooltip": "เลือกตัวกรองการปรับขนาดที่จะใช้เมื่อใช้มาตราส่วนความละเอียด\n\nBilinear ทำงานได้ดีกับเกม 3 มิติและเป็นตัวเลือกเริ่มต้นที่ปลอดภัย\n\nNearest แนะนำให้ใช้กับเกมภาพแบบพิกเซล\n\nFSR 1.0 เป็นเพียงตัวกรองสำหรับเพิ่มความคมชัด ไม่แนะนำให้ใช้กับ FXAA หรือ SMAA\n\nแนะนำให้ใช้การปรับขนาดพื้นที่เมื่อลดขนาดความละเอียดที่ใหญ่กว่าหน้าต่างเอาต์พุต สามารถใช้เพื่อให้ได้เอฟเฟกต์การลดรอยหยักแบบ supersampled เมื่อลดขนาดมากกว่า 2 เท่า\n\nคุณสามารถเปลี่ยนตัวเลือกนี้ได้ในขณะที่เกมกำลังทำงานโดยคลิกที่ \"นำไปใช้\" ด้านล่าง คุณสามารถย้ายหน้าต่างการตั้งค่าไปไว้ข้างๆ แล้วทดลองจนกว่าคุณจะพบรูปแบบที่คุณต้องการสำหรับเกม\n\nปล่อย BILINEAR ไว้หากไม่แน่ใจ",
+ "GraphicsScalingFilterBilinear": "ไบลิเนียร์",
+ "GraphicsScalingFilterNearest": "ใกล้ที่สุด",
"GraphicsScalingFilterFsr": "FSR",
- "GraphicsScalingFilterArea": "Area",
+ "GraphicsScalingFilterArea": "พื้นที่",
"GraphicsScalingFilterLevelLabel": "ระดับ",
- "GraphicsScalingFilterLevelTooltip": "ตั้งค่าระดับความคมชัด FSR 1.0 ยิ่งสูงกว่าจะยิ่งคมชัดกว่า",
+ "GraphicsScalingFilterLevelTooltip": "ตั้งค่าระดับความคมชัด FSR 1.0 สูงกว่าจะคมชัดกว่า",
"SmaaLow": "SMAA ต่ำ",
"SmaaMedium": "SMAA ปานกลาง",
"SmaaHigh": "SMAA สูง",
@@ -807,6 +780,6 @@
"SettingsTabNetworkMultiplayer": "ผู้เล่นหลายคน",
"MultiplayerMode": "โหมด:",
"MultiplayerModeTooltip": "เปลี่ยนโหมดผู้เล่นหลายคนของ LDN\n\nLdnMitm จะปรับเปลี่ยนฟังก์ชันการเล่นแบบไร้สาย/ภายใน จะให้เกมทำงานเหมือนกับว่าเป็น LAN ช่วยให้สามารถเชื่อมต่อภายในเครือข่ายเดียวกันกับอินสแตนซ์ Ryujinx อื่น ๆ และคอนโซล Nintendo Switch ที่ถูกแฮ็กซึ่งมีโมดูล ldn_mitm ติดตั้งอยู่\n\nผู้เล่นหลายคนต้องการให้ผู้เล่นทุกคนอยู่ในเกมเวอร์ชันเดียวกัน (เช่น Super Smash Bros. Ultimate v13.0.1 ไม่สามารถเชื่อมต่อกับ v13.0.0)\n\nปล่อยให้ปิดการใช้งานหากไม่แน่ใจ",
- "MultiplayerModeDisabled": "ปิดใช้งาน",
+ "MultiplayerModeDisabled": "ปิดการใช้งาน",
"MultiplayerModeLdnMitm": "ldn_mitm"
}
diff --git a/src/Ryujinx/Assets/Locales/tr_TR.json b/src/Ryujinx/Assets/Locales/tr_TR.json
index b9ce3e884..97ea5a2e9 100644
--- a/src/Ryujinx/Assets/Locales/tr_TR.json
+++ b/src/Ryujinx/Assets/Locales/tr_TR.json
@@ -12,8 +12,6 @@
"MenuBarFileOpenFromFile": "_Dosyadan Uygulama Aç",
"MenuBarFileOpenFromFileError": "No applications found in selected file.",
"MenuBarFileOpenUnpacked": "_Sıkıştırılmamış Oyun Aç",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
"MenuBarFileOpenEmuFolder": "Ryujinx Klasörünü aç",
"MenuBarFileOpenLogsFolder": "Logs Klasörünü aç",
"MenuBarFileExit": "_Çıkış",
@@ -50,13 +48,13 @@
"GameListHeaderLastPlayed": "Son Oynama Tarihi",
"GameListHeaderFileExtension": "Dosya Uzantısı",
"GameListHeaderFileSize": "Dosya Boyutu",
- "GameListHeaderPath": "Yol",
+ "GameListHeaderPath": "Dosya Konumu",
"GameListContextMenuOpenUserSaveDirectory": "Kullanıcı Kayıt Dosyası Dizinini Aç",
"GameListContextMenuOpenUserSaveDirectoryToolTip": "Uygulamanın Kullanıcı Kaydı'nın bulunduğu dizini açar",
- "GameListContextMenuOpenDeviceSaveDirectory": "Kullanıcı Cihaz Dizinini Aç",
- "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "Uygulamanın Kullanıcı Cihaz Kaydı'nın bulunduğu dizini açar",
- "GameListContextMenuOpenBcatSaveDirectory": "Kullanıcı BCAT Dizinini Aç",
- "GameListContextMenuOpenBcatSaveDirectoryToolTip": "Uygulamanın Kullanıcı BCAT Kaydı'nın bulunduğu dizini açar",
+ "GameListContextMenuOpenDeviceSaveDirectory": "Cihaz Kayıt Dosyası Dizinini Aç",
+ "GameListContextMenuOpenDeviceSaveDirectoryToolTip": "Uygulamanın Cihaz Kayıt Dosyası'nın bulunduğu dizini açar",
+ "GameListContextMenuOpenBcatSaveDirectory": "BCAT Kayıt Dizinini Aç",
+ "GameListContextMenuOpenBcatSaveDirectoryToolTip": "Uygulamanın BCAT Kaydı'nın bulunduğu dizini açar",
"GameListContextMenuManageTitleUpdates": "Oyun Güncellemelerini Yönet",
"GameListContextMenuManageTitleUpdatesToolTip": "Oyun Güncelleme Yönetim Penceresini Açar",
"GameListContextMenuManageDlc": "DLC'leri Yönet",
@@ -75,15 +73,15 @@
"GameListContextMenuExtractDataExeFSToolTip": "Uygulamanın geçerli yapılandırmasından ExeFS kısmını ayıkla (Güncellemeler dahil)",
"GameListContextMenuExtractDataRomFS": "RomFS",
"GameListContextMenuExtractDataRomFSToolTip": "Uygulamanın geçerli yapılandırmasından RomFS kısmını ayıkla (Güncellemeler dahil)",
- "GameListContextMenuExtractDataLogo": "Simge",
+ "GameListContextMenuExtractDataLogo": "Logo",
"GameListContextMenuExtractDataLogoToolTip": "Uygulamanın geçerli yapılandırmasından Logo kısmını ayıkla (Güncellemeler dahil)",
"GameListContextMenuCreateShortcut": "Uygulama Kısayolu Oluştur",
"GameListContextMenuCreateShortcutToolTip": "Seçilmiş uygulamayı çalıştıracak bir masaüstü kısayolu oluştur",
- "GameListContextMenuCreateShortcutToolTipMacOS": "Create a shortcut in macOS's Applications folder that launches the selected Application",
+ "GameListContextMenuCreateShortcutToolTipMacOS": "macOS'in Uygulamalar klasöründe seçili Uygulamayı başlatan bir kısayol oluştur",
"GameListContextMenuOpenModsDirectory": "Mod Dizinini Aç",
- "GameListContextMenuOpenModsDirectoryToolTip": "Opens the directory which contains Application's Mods",
- "GameListContextMenuOpenSdModsDirectory": "Open Atmosphere Mods Directory",
- "GameListContextMenuOpenSdModsDirectoryToolTip": "Opens the alternative SD card Atmosphere directory which contains Application's Mods. Useful for mods that are packaged for real hardware.",
+ "GameListContextMenuOpenModsDirectoryToolTip": "Uygulamanın modlarının bulunduğu dizini açar",
+ "GameListContextMenuOpenSdModsDirectory": "Atmosphere Mod dizinini aç",
+ "GameListContextMenuOpenSdModsDirectoryToolTip": "Uygulamanın modlarının bulunduğu alternatif SD Kart Atmosphere dizinini açar. Gerçek donanım için paketlenmiş modlar için kullanışlı olabilir",
"StatusBarGamesLoaded": "{0}/{1} Oyun Yüklendi",
"StatusBarSystemVersion": "Sistem Sürümü: {0}",
"LinuxVmMaxMapCountDialogTitle": "Bellek Haritaları İçin Düşük Limit Tespit Edildi ",
@@ -99,15 +97,12 @@
"SettingsTabGeneralEnableDiscordRichPresence": "Discord Zengin İçerik'i Etkinleştir",
"SettingsTabGeneralCheckUpdatesOnLaunch": "Her Açılışta Güncellemeleri Denetle",
"SettingsTabGeneralShowConfirmExitDialog": "\"Çıkışı Onayla\" Diyaloğunu Göster",
- "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralRememberWindowState": "Pencere yerini ve boyutunu hatırla",
"SettingsTabGeneralHideCursor": "İşaretçiyi Gizle:",
"SettingsTabGeneralHideCursorNever": "Hiçbir Zaman",
"SettingsTabGeneralHideCursorOnIdle": "Hareketsiz Durumda",
"SettingsTabGeneralHideCursorAlways": "Her Zaman",
"SettingsTabGeneralGameDirectories": "Oyun Dizinleri",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "Ekle",
"SettingsTabGeneralRemove": "Kaldır",
"SettingsTabSystem": "Sistem",
@@ -140,28 +135,22 @@
"SettingsTabSystemSystemLanguageTraditionalChinese": "Geleneksel Çince",
"SettingsTabSystemSystemTimeZone": "Sistem Saat Dilimi:",
"SettingsTabSystemSystemTime": "Sistem Saati:",
- "SettingsTabSystemEnableVsync": "Dikey Eşitleme",
+ "SettingsTabSystemEnableVsync": "Dikey Senkronizasyon",
"SettingsTabSystemEnablePptc": "PPTC (Profilli Sürekli Çeviri Önbelleği)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
- "SettingsTabSystemEnableFsIntegrityChecks": "FS Bütünlük Kontrolleri",
- "SettingsTabSystemAudioBackend": "Ses Motoru:",
+ "SettingsTabSystemEnableFsIntegrityChecks": "Dosya Sistemi Bütünlük Kontrolleri",
+ "SettingsTabSystemAudioBackend": "Ses Arka Ucu:",
"SettingsTabSystemAudioBackendDummy": "Yapay",
"SettingsTabSystemAudioBackendOpenAL": "OpenAL",
"SettingsTabSystemAudioBackendSoundIO": "SoundIO",
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Hack'ler",
"SettingsTabSystemHacksNote": " (dengesizlik oluşturabilir)",
- "SettingsTabSystemDramSize": "Alternatif bellek düzeni kullan (Geliştirici)",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
"SettingsTabSystemIgnoreMissingServices": "Eksik Servisleri Görmezden Gel",
- "SettingsTabSystemIgnoreApplet": "Ignore Applet",
"SettingsTabGraphics": "Grafikler",
- "SettingsTabGraphicsAPI": "Grafikler API",
+ "SettingsTabGraphicsAPI": "Grafik API'si",
"SettingsTabGraphicsEnableShaderCache": "Shader Önbelleğini Etkinleştir",
- "SettingsTabGraphicsAnisotropicFiltering": "Eşyönsüz Doku Süzmesi:",
+ "SettingsTabGraphicsAnisotropicFiltering": "Anizotropik Filtreleme:",
"SettingsTabGraphicsAnisotropicFilteringAuto": "Otomatik",
"SettingsTabGraphicsAnisotropicFiltering2x": "2x",
"SettingsTabGraphicsAnisotropicFiltering4x": "4x",
@@ -191,11 +180,11 @@
"SettingsTabLoggingEnableErrorLogs": "Hata Loglarını Etkinleştir",
"SettingsTabLoggingEnableTraceLogs": "Trace Loglarını Etkinleştir",
"SettingsTabLoggingEnableGuestLogs": "Guest Loglarını Etkinleştir",
- "SettingsTabLoggingEnableFsAccessLogs": "Fs Erişim Loglarını Etkinleştir",
- "SettingsTabLoggingFsGlobalAccessLogMode": "Fs Evrensel Erişim Log Modu:",
+ "SettingsTabLoggingEnableFsAccessLogs": "Dosya Sistemi Erişim Loglarını Etkinleştir",
+ "SettingsTabLoggingFsGlobalAccessLogMode": "Dosya Sistemi Evrensel Erişim Log Modu:",
"SettingsTabLoggingDeveloperOptions": "Geliştirici Seçenekleri (UYARI: Performansı düşürecektir)",
"SettingsTabLoggingDeveloperOptionsNote": "UYARI: Oyun performansı azalacak",
- "SettingsTabLoggingGraphicsBackendLogLevel": "Grafik Arka Uç Günlük Düzeyi",
+ "SettingsTabLoggingGraphicsBackendLogLevel": "Grafik Arka Uç Log Düzeyi",
"SettingsTabLoggingGraphicsBackendLogLevelNone": "Hiçbiri",
"SettingsTabLoggingGraphicsBackendLogLevelError": "Hata",
"SettingsTabLoggingGraphicsBackendLogLevelPerformance": "Yavaşlamalar",
@@ -224,7 +213,7 @@
"ControllerSettingsDeviceDisabled": "Devre Dışı",
"ControllerSettingsControllerType": "Kumanda Tipi",
"ControllerSettingsControllerTypeHandheld": "Portatif Mod",
- "ControllerSettingsControllerTypeProController": "Profesyonel Kumanda",
+ "ControllerSettingsControllerTypeProController": "Switch Pro Controller ",
"ControllerSettingsControllerTypeJoyConPair": "JoyCon Çifti",
"ControllerSettingsControllerTypeJoyConLeft": "JoyCon Sol",
"ControllerSettingsControllerTypeJoyConRight": "JoyCon Sağ",
@@ -283,7 +272,7 @@
"ControllerSettingsMotionGyroDeadzone": "Gyro Ölü Bölgesi:",
"ControllerSettingsSave": "Kaydet",
"ControllerSettingsClose": "Kapat",
- "KeyUnknown": "Unknown",
+ "KeyUnknown": "Bilinmeyen",
"KeyShiftLeft": "Sol Shift",
"KeyShiftRight": "Sağ Shift",
"KeyControlLeft": "Sol Ctrl",
@@ -330,11 +319,11 @@
"KeyKeypad7": "Keypad 7",
"KeyKeypad8": "Keypad 8",
"KeyKeypad9": "Keypad 9",
- "KeyKeypadDivide": "Keypad Divide",
- "KeyKeypadMultiply": "Keypad Multiply",
- "KeyKeypadSubtract": "Keypad Subtract",
- "KeyKeypadAdd": "Keypad Add",
- "KeyKeypadDecimal": "Keypad Decimal",
+ "KeyKeypadDivide": "Keypad Bölme İşareti",
+ "KeyKeypadMultiply": "Keypad Çarpı İşareti",
+ "KeyKeypadSubtract": "Keypad Eksi İşareti",
+ "KeyKeypadAdd": "Keypad Artı İşareti",
+ "KeyKeypadDecimal": "Keypad Nokta ",
"KeyKeypadEnter": "Keypad Enter",
"KeyNumber0": "0",
"KeyNumber1": "1",
@@ -358,16 +347,16 @@
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "Unbound",
- "GamepadLeftStick": "L Stick Button",
- "GamepadRightStick": "R Stick Button",
- "GamepadLeftShoulder": "Left Shoulder",
- "GamepadRightShoulder": "Right Shoulder",
- "GamepadLeftTrigger": "Left Trigger",
- "GamepadRightTrigger": "Right Trigger",
- "GamepadDpadUp": "Up",
- "GamepadDpadDown": "Down",
- "GamepadDpadLeft": "Left",
+ "KeyUnbound": "Seçili değil",
+ "GamepadLeftStick": "Sol Joystick Düğmesi",
+ "GamepadRightStick": "Sağ Joystick Düğmesi",
+ "GamepadLeftShoulder": "Sol Shoulder Düğmesi",
+ "GamepadRightShoulder": "Sağ Shoulder Düğmesi",
+ "GamepadLeftTrigger": "Sol Trigger Düğmesi",
+ "GamepadRightTrigger": "Sağ Trigger Düğmesi",
+ "GamepadDpadUp": "Yukarı",
+ "GamepadDpadDown": "Aşağı",
+ "GamepadDpadLeft": "Sol",
"GamepadDpadRight": "Sağ",
"GamepadMinus": "-",
"GamepadPlus": "4",
@@ -394,7 +383,7 @@
"ProfileNameSelectionWatermark": "Kullanıcı Adı Seç",
"ProfileImageSelectionTitle": "Profil Resmi Seçimi",
"ProfileImageSelectionHeader": "Profil Resmi Seç",
- "ProfileImageSelectionNote": "Özel bir profil resmi içeri aktarabilir veya sistem avatarlarından birini seçebilirsiniz",
+ "ProfileImageSelectionNote": "Özel bir profil resmi içeri aktarabilir veya sistem avatarlarından birini seçebilirsiniz.",
"ProfileImageSelectionImportImage": "Resim İçeri Aktar",
"ProfileImageSelectionSelectAvatar": "Yazılım Avatarı Seç",
"InputDialogTitle": "Giriş Yöntemi Diyaloğu",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "Arka Plan Rengi Ayarla",
"AvatarClose": "Kapat",
"ControllerSettingsLoadProfileToolTip": "Profil Yükle",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "Profil Ekle",
"ControllerSettingsRemoveProfileToolTip": "Profili Kaldır",
"ControllerSettingsSaveProfileToolTip": "Profili Kaydet",
@@ -417,12 +405,12 @@
"GameListContextMenuToggleFavorite": "Favori Ayarla",
"GameListContextMenuToggleFavoriteToolTip": "Oyunu Favorilere Ekle/Çıkar",
"SettingsTabGeneralTheme": "Tema:",
- "SettingsTabGeneralThemeAuto": "Auto",
+ "SettingsTabGeneralThemeAuto": "Otomatik",
"SettingsTabGeneralThemeDark": "Karanlık",
"SettingsTabGeneralThemeLight": "Aydınlık",
"ControllerSettingsConfigureGeneral": "Ayarla",
"ControllerSettingsRumble": "Titreşim",
- "ControllerSettingsRumbleStrongMultiplier": "Güçlü Titreşim Çoklayıcı",
+ "ControllerSettingsRumbleStrongMultiplier": "Güçlü Titreşim Seviyesi",
"ControllerSettingsRumbleWeakMultiplier": "Zayıf Titreşim Seviyesi",
"DialogMessageSaveNotAvailableMessage": "{0} [{1:x16}] için kayıt verisi bulunamadı",
"DialogMessageSaveNotAvailableCreateSaveMessage": "Bu oyun için kayıt verisi oluşturmak ister misiniz?",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "Belirtilen kayıt verisi bulunmaya çalışırken hata: {0}",
"FolderDialogExtractTitle": "İçine ayıklanacak klasörü seç",
"DialogNcaExtractionMessage": "{1} den {0} kısmı ayıklanıyor...",
- "DialogNcaExtractionTitle": "NCA Kısmı Ayıklayıcısı",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA Kısmı Ayıklayıcısı",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "Ayıklama hatası. Ana NCA seçilen dosyada bulunamadı.",
"DialogNcaExtractionCheckLogErrorMessage": "Ayıklama hatası. Ek bilgi için kayıt dosyasını okuyun.",
"DialogNcaExtractionSuccessMessage": "Ayıklama başarıyla tamamlandı.",
@@ -456,12 +444,12 @@
"DialogUpdaterNoInternetMessage": "İnternete bağlı değilsiniz!",
"DialogUpdaterNoInternetSubMessage": "Lütfen aktif bir internet bağlantınız olduğunu kontrol edin!",
"DialogUpdaterDirtyBuildMessage": "Ryujinx'in Dirty build'lerini güncelleyemezsiniz!",
- "DialogUpdaterDirtyBuildSubMessage": "Desteklenen bir sürüm için lütfen Ryujinx'i https://https://github.com/GreemDev/Ryujinx/releases/ sitesinden indirin.",
+ "DialogUpdaterDirtyBuildSubMessage": "Desteklenen bir sürüm için lütfen Ryujinx'i https://ryujinx.org/ sitesinden indirin.",
"DialogRestartRequiredMessage": "Yeniden Başlatma Gerekli",
"DialogThemeRestartMessage": "Tema kaydedildi. Temayı uygulamak için yeniden başlatma gerekiyor.",
"DialogThemeRestartSubMessage": "Yeniden başlatmak ister misiniz",
- "DialogFirmwareInstallEmbeddedMessage": "Bu oyunun içine gömülü olan yazılımı yüklemek ister misiniz? (Firmware {0})",
- "DialogFirmwareInstallEmbeddedSuccessMessage": "No installed firmware was found but Ryujinx was able to install firmware {0} from the provided game.\nThe emulator will now start.",
+ "DialogFirmwareInstallEmbeddedMessage": "Bu oyunun içine gömülü olan firmware'i yüklemek ister misiniz? (Firmware {0})",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "Yüklü firmware bulunamadı ama Ryujinx oyun tarafından sağlanan {0} firmware'ını yükledi.\nEmülatör şimdi başlatılacak.",
"DialogFirmwareNoFirmwareInstalledMessage": "Yazılım Yüklü Değil",
"DialogFirmwareInstalledMessage": "Yazılım {0} yüklendi",
"DialogInstallFileTypesSuccessMessage": "Dosya uzantıları başarıyla yüklendi!",
@@ -506,7 +494,7 @@
"DialogControllerSettingsModifiedConfirmSubMessage": "Kaydetmek istiyor musunuz?",
"DialogLoadFileErrorMessage": "{0}. Hatalı Dosya: {1}",
"DialogModAlreadyExistsMessage": "Mod zaten var",
- "DialogModInvalidMessage": "The specified directory does not contain a mod!",
+ "DialogModInvalidMessage": "Verilen dizinde geçerli bir mod bulunamadı!",
"DialogModDeleteNoParentMessage": "Silme Başarısız: \"{0}\" Modu için üst dizin bulunamadı! ",
"DialogDlcNoDlcErrorMessage": "Belirtilen dosya seçilen oyun için DLC içermiyor!",
"DialogPerformanceCheckLoggingEnabledMessage": "Sadece geliştiriler için dizayn edilen Trace Loglama seçeneği etkin.",
@@ -518,8 +506,8 @@
"DialogUpdateAddUpdateErrorMessage": "Belirtilen dosya seçilen oyun için güncelleme içermiyor!",
"DialogSettingsBackendThreadingWarningTitle": "Uyarı - Backend Threading",
"DialogSettingsBackendThreadingWarningMessage": "Bu seçeneğin tamamen uygulanması için Ryujinx'in kapatıp açılması gerekir. Kullandığınız işletim sistemine bağlı olarak, Ryujinx'in multithreading'ini kullanırken driver'ınızın multithreading seçeneğini kapatmanız gerekebilir.",
- "DialogModManagerDeletionWarningMessage": "You are about to delete the mod: {0}\n\nAre you sure you want to proceed?",
- "DialogModManagerDeletionAllWarningMessage": "You are about to delete all mods for this title.\n\nAre you sure you want to proceed?",
+ "DialogModManagerDeletionWarningMessage": "{0} modu silinecek.\n\nDevam etmek istediğinizden emin misiniz?",
+ "DialogModManagerDeletionAllWarningMessage": "Bu oyunun tüm modları silinecek!\n\nDevam etmek istediğinizden emin misiniz?",
"SettingsTabGraphicsFeaturesOptions": "Özellikler",
"SettingsTabGraphicsBackendMultithreading": "Grafik Backend Multithreading:",
"CommonAuto": "Otomatik",
@@ -568,22 +556,18 @@
"AddGameDirBoxTooltip": "Listeye eklemek için oyun dizini seçin",
"AddGameDirTooltip": "Listeye oyun dizini ekle",
"RemoveGameDirTooltip": "Seçili oyun dizinini kaldır",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "Emülatör pencerelerinin görünümünü değiştirmek için özel bir Avalonia teması kullan",
"CustomThemePathTooltip": "Özel arayüz temasının yolu",
"CustomThemeBrowseTooltip": "Özel arayüz teması için göz at",
"DockModeToggleTooltip": "Docked modu emüle edilen sistemin yerleşik Nintendo Switch gibi davranmasını sağlar. Bu çoğu oyunda grafik kalitesini arttırır. Diğer yandan, bu seçeneği devre dışı bırakmak emüle edilen sistemin portatif Ninendo Switch gibi davranmasını sağlayıp grafik kalitesini düşürür.\n\nDocked modu kullanmayı düşünüyorsanız 1. Oyuncu kontrollerini; Handheld modunu kullanmak istiyorsanız portatif kontrollerini konfigüre edin.\n\nEmin değilseniz aktif halde bırakın.",
- "DirectKeyboardTooltip": "Direct keyboard access (HID) support. Provides games access to your keyboard as a text entry device.\n\nOnly works with games that natively support keyboard usage on Switch hardware.\n\nLeave OFF if unsure.",
- "DirectMouseTooltip": "Direct mouse access (HID) support. Provides games access to your mouse as a pointing device.\n\nOnly works with games that natively support mouse controls on Switch hardware, which are few and far between.\n\nWhen enabled, touch screen functionality may not work.\n\nLeave OFF if unsure.",
+ "DirectKeyboardTooltip": "Doğrudan klavye erişimi (HID) desteği. Oyunlara bir yazı giriş cihazı olarak klavyenize erişim sağlar.\n\nSadece Switch donanımı üzerine doğrudan klavye kullanımını destekleyen oyunlarla çalışır.\n\nEğer emin değilseniz, kapalı bırakın.",
+ "DirectMouseTooltip": "Doğrudan fare erişimi (HID) desteği. Oyunlara bir işaret cihazı olarak farenize erişim sağlar.\n\nSadece Switch donanımı üzerine doğrudan fare kullanımını destekleyen oyunlarla çalışır, bu çok nadirdir.\n\nAçık olduğu zaman, dokunmatik ekran özelliiği çalışmayabilir.\n\nEğer emin değilseniz, kapalı bırakın.",
"RegionTooltip": "Sistem Bölgesini Değiştir",
"LanguageTooltip": "Sistem Dilini Değiştir",
"TimezoneTooltip": "Sistem Saat Dilimini Değiştir",
"TimeTooltip": "Sistem Saatini Değiştir",
- "VSyncToggleTooltip": "Emulated console's Vertical Sync. Essentially a frame-limiter for the majority of games; disabling it may cause games to run at higher speed or make loading screens take longer or get stuck.\n\nCan be toggled in-game with a hotkey of your preference (F1 by default). We recommend doing this if you plan on disabling it.\n\nLeave ON if unsure.",
+ "VSyncToggleTooltip": "Konsolun Dikey Senkronizasyonunu (VSync) emüle et. Çoğu oyunda basitçe bir hız sınırlayıcıdır; bu özelliğin kapatılması bazı oyunların istemeyen derecede hızlı bir şekilde çalışmasını, ya da yükleme ekranlarının daha uzun sürmesini, hatta donmasını tetikleyebilir.\n\nOyun içinde istediğiniz bir kısayol (normalde F1 Tuşu) ile açılıp kapatılabilir. Eğer özelliği kapatmayı planlıyorsanız bunu öneririz.\n\nEğer emin değilseniz özelliği açık bırakın.",
"PptcToggleTooltip": "Çevrilen JIT fonksiyonlarını oyun her açıldığında çevrilmek zorunda kalmaması için kaydeder.\n\nTeklemeyi azaltır ve ilk açılıştan sonra oyunların ilk açılış süresini ciddi biçimde hızlandırır.\n\nEmin değilseniz aktif halde bırakın.",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
"FsIntegrityToggleTooltip": "Oyun açarken hatalı dosyaların olup olmadığını kontrol eder, ve hatalı dosya bulursa log dosyasında hash hatası görüntüler.\n\nPerformansa herhangi bir etkisi yoktur ve sorun gidermeye yardımcı olur.\n\nEmin değilseniz aktif halde bırakın.",
"AudioBackendTooltip": "Ses çıkış motorunu değiştirir.\n\nSDL2 tercih edilen seçenektir, OpenAL ve SoundIO ise alternatif olarak kullanılabilir. Dummy seçeneğinde ses çıkışı olmayacaktır.\n\nEmin değilseniz SDL2 seçeneğine ayarlayın.",
"MemoryManagerTooltip": "Guest hafızasının nasıl tahsis edilip erişildiğini değiştirir. Emüle edilen CPU performansını ciddi biçimde etkiler.\n\nEmin değilseniz HOST UNCHECKED seçeneğine ayarlayın.",
@@ -591,16 +575,15 @@
"MemoryManagerHostTooltip": "Hafızayı doğrudan host adres aralığında tahsis eder. Çok daha hızlı JIT derleme ve işletimi sunar.",
"MemoryManagerUnsafeTooltip": "Hafızayı doğrudan tahsis eder, ancak host aralığına erişimden önce adresi maskelemez. Daha iyi performansa karşılık emniyetten ödün verir. Misafir uygulama Ryujinx içerisinden istediği hafızaya erişebilir, bu sebeple bu seçenek ile sadece güvendiğiniz uygulamaları çalıştırın.",
"UseHypervisorTooltip": "JIT yerine Hypervisor kullan. Uygun durumlarda performansı büyük oranda arttırır. Ancak şu anki halinde stabil durumda çalışmayabilir.",
- "DRamTooltip": "Emüle edilen sistem hafızasını 4GiB'dan 6GiB'a yükseltir.\n\nBu seçenek yalnızca yüksek çözünürlük doku paketleri veya 4k çözünürlük modları için kullanılır. Performansı artırMAZ!\n\nEmin değilseniz devre dışı bırakın.",
+ "DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
"IgnoreMissingServicesTooltip": "Henüz programlanmamış Horizon işletim sistemi servislerini görmezden gelir. Bu seçenek belirli oyunların açılırken çökmesinin önüne geçmeye yardımcı olabilir.\n\nEmin değilseniz devre dışı bırakın.",
- "IgnoreAppletTooltip": "Oyun sırasında oyun kumandasının bağlantısı kesilirse, harici \"Controller Applet\" iletişim kutusu görünmez. İletişim kutusunu kapatma veya yeni bir kumanda ayarlama isteği olmaz. Daha önce bağlantısı kesilen kumanda tekrar bağlandığında oyun otomatik olarak devam eder.",
"GraphicsBackendThreadingTooltip": "Grafik arka uç komutlarını ikinci bir iş parçacığında işletir.\n\nKendi multithreading desteği olmayan sürücülerde shader derlemeyi hızlandırıp performansı artırır. Multithreading desteği olan sürücülerde çok az daha iyi performans sağlar.\n\nEmin değilseniz Otomatik seçeneğine ayarlayın.",
"GalThreadingTooltip": "Grafik arka uç komutlarını ikinci bir iş parçacığında işletir.\n\nKendi multithreading desteği olmayan sürücülerde shader derlemeyi hızlandırıp performansı artırır. Multithreading desteği olan sürücülerde çok az daha iyi performans sağlar.\n\nEmin değilseniz Otomatik seçeneğine ayarlayın.",
"ShaderCacheToggleTooltip": "Sonraki çalışmalarda takılmaları engelleyen bir gölgelendirici disk önbelleğine kaydeder.",
- "ResolutionScaleTooltip": "Multiplies the game's rendering resolution.\n\nA few games may not work with this and look pixelated even when the resolution is increased; for those games, you may need to find mods that remove anti-aliasing or that increase their internal rendering resolution. For using the latter, you'll likely want to select Native.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nKeep in mind 4x is overkill for virtually any setup.",
+ "ResolutionScaleTooltip": "Oyunun çözünürlüğünü yükseltir.\n\nBazı oyunlar bu özellikle çalışmayabilir ve çözünürlük artmasına rağmen daha bulanık görülebilir; bu oyunlar için kenar yumuşatmayı kaldıran veya oyunun iç çözünürlüğünü arttıran modlar bulmanız gerekebilir. Eğer iç çözünürlüğü arttıracak modlar kullanacaksanız, bu özelliği \"Yerel (720p/1080p)\"de bırakın.\n\nBu özelliği oyun açıkken \"Uygula\" tuşuna basarak değiştirebilirsiniz. Ayarlar penceresini bir kenara koyun, ve size göre daha iyi görünen seçeneği bulana kadar deneyin.\n\nAklınızda bulunsun ki 4x çoğu bilgisayar için gereğinden yüksek.",
"ResolutionScaleEntryTooltip": "Küsüratlı çözünürlük ölçeği, 1.5 gibi. Küsüratlı ölçekler hata oluşturmaya ve çökmeye daha yatkındır.",
- "AnisotropyTooltip": "Level of Anisotropic Filtering. Set to Auto to use the value requested by the game.",
- "AspectRatioTooltip": "Aspect Ratio applied to the renderer window.\n\nOnly change this if you're using an aspect ratio mod for your game, otherwise the graphics will be stretched.\n\nLeave on 16:9 if unsure.",
+ "AnisotropyTooltip": "Anizotropik filtreleme seviyesi. Oyun tarafından istenileni kullanmak için Otomatikte bırakın.",
+ "AspectRatioTooltip": "Pencereye uygulanan En Boy Oranı.\n\nBu özelliği sadece oyunda En Boy Oranını değiştiren bir mod kullanıyorsanız değiştirin, yoksa grafikler seçtiğiniz En Boy Oranına esnetilecektir.\n\nEğer emin değilseniz 16:9da bırakın.",
"ShaderDumpPathTooltip": "Grafik Shader Döküm Yolu",
"FileLogTooltip": "Konsol loglarını diskte bir log dosyasına kaydeder. Performansı etkilemez.",
"StubLogTooltip": "Stub log mesajlarını konsola yazdırır. Performansı etkilemez.",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "Debug log mesajlarını konsola yazdırır.\n\nBu seçeneği yalnızca geliştirici üyemiz belirtirse aktifleştirin, çünkü bu seçenek log dosyasını okumayı zorlaştırır ve emülatörün performansını düşürür.",
"LoadApplicationFileTooltip": "Switch ile uyumlu bir dosya yüklemek için dosya tarayıcısını açar",
"LoadApplicationFolderTooltip": "Switch ile uyumlu ayrıştırılmamış bir uygulama yüklemek için dosya tarayıcısını açar",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "Ryujinx dosya sistem klasörünü açar",
"OpenRyujinxLogsTooltip": "Log dosyalarının bulunduğu klasörü açar",
"ExitTooltip": "Ryujinx'ten çıkış yapmayı sağlar",
@@ -726,19 +707,11 @@
"UserProfileWindowTitle": "Kullanıcı Profillerini Yönet",
"CheatWindowTitle": "Oyun Hilelerini Yönet",
"DlcWindowTitle": "Oyun DLC'lerini Yönet",
- "ModWindowTitle": "Manage Mods for {0} ({1})",
+ "ModWindowTitle": "{0} için modları yönet ({1})",
"UpdateWindowTitle": "Oyun Güncellemelerini Yönet",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "{0} için Hile mevcut [{1}]",
"BuildId": "BuildId:",
- "DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
- "DlcWindowHeading": "{0} Downloadable Content(s) available for {1} ({2})",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
+ "DlcWindowHeading": "{0} için DLC mevcut [{1}]",
"ModWindowHeading": "{0} Mod(lar)",
"UserProfilesEditProfile": "Seçiliyi Düzenle",
"Cancel": "İptal",
@@ -754,9 +727,9 @@
"UserProfilesName": "İsim:",
"UserProfilesUserId": "Kullanıcı Adı:",
"SettingsTabGraphicsBackend": "Grafik Arka Ucu",
- "SettingsTabGraphicsBackendTooltip": "Select the graphics backend that will be used in the emulator.\n\nVulkan is overall better for all modern graphics cards, as long as their drivers are up to date. Vulkan also features faster shader compilation (less stuttering) on all GPU vendors.\n\nOpenGL may achieve better results on old Nvidia GPUs, on old AMD GPUs on Linux, or on GPUs with lower VRAM, though shader compilation stutters will be greater.\n\nSet to Vulkan if unsure. Set to OpenGL if your GPU does not support Vulkan even with the latest graphics drivers.",
+ "SettingsTabGraphicsBackendTooltip": "Emülatörde kullanılacak grafik arka ucunu seçin.\n\nVulkan, sürücüleri güncel olduğu sürece genel olarak tüm modern grafik kartları için daha iyidir. Vulkan ayrıca tüm GPU sağlayıcılarında daha hızlı shader derlemesi (daha az takılma) sunuyor.\n\nOpenGL, eski Nvidia GPU'larda, Linux'taki eski AMD GPU'larda veya daha düşük VRAM'li GPU'larda daha iyi sonuçlar elde edebilir, ancak shader derlemesindeki takılmalar daha fazla olacaktır.\n\nEmin değilseniz Vulkan'ı seçin. GPU'nuz en son grafik sürücülerinde bile Vulkan'ı desteklemiyorsa OpenGL'e ayarlayın.",
"SettingsEnableTextureRecompression": "Yeniden Doku Sıkıştırılmasını Aktif Et",
- "SettingsEnableTextureRecompressionTooltip": "Compresses ASTC textures in order to reduce VRAM usage.\n\nGames using this texture format include Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder and The Legend of Zelda: Tears of the Kingdom.\n\nGraphics cards with 4GiB VRAM or less will likely crash at some point while running these games.\n\nEnable only if you're running out of VRAM on the aforementioned games. Leave OFF if unsure.",
+ "SettingsEnableTextureRecompressionTooltip": "VRAM tüketimini azaltmak için ASTC Dokularını (Texture) sıkıştırır.\n\nBu doku formatını kullanan bazı oyunlar: Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder and The Legend of Zelda: Tears of the Kingdom.\n\n4GiB ya da daha az rami olan grafik kartları bu oyunları oynarken çökebilir.\n\nEmin değilseniz kapalı bırakın, sadece belirtilen oyunları oynarken VRAM yetersizliğinden oyun çöküyorsa bu özelliği açın.",
"SettingsTabGraphicsPreferredGpu": "Kullanılan GPU",
"SettingsTabGraphicsPreferredGpuTooltip": "Vulkan Grafik Arka Ucu ile kullanılacak Ekran Kartını Seçin.\n\nOpenGL'nin kullanacağı GPU'yu etkilemez.\n\n Emin değilseniz \"dGPU\" olarak işaretlenmiş GPU'ya ayarlayın. Eğer yoksa, dokunmadan bırakın.\n",
"SettingsAppRequiredRestartMessage": "Ryujinx'i Yeniden Başlatma Gerekli",
@@ -782,16 +755,16 @@
"Recover": "Kurtar",
"UserProfilesRecoverHeading": "Aşağıdaki hesaplar için kayıtlar bulundu",
"UserProfilesRecoverEmptyList": "Kurtarılacak profil bulunamadı",
- "GraphicsAATooltip": "Applies anti-aliasing to the game render.\n\nFXAA will blur most of the image, while SMAA will attempt to find jagged edges and smooth them out.\n\nNot recommended to use in conjunction with the FSR scaling filter.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on NONE if unsure.",
+ "GraphicsAATooltip": "Oyuna Kenar Yumuşatma ekler.\n\nFXAA oyunun neredeyse tamamını daha bulanık hale getirir, SMAA ise keskin kenarları bulup onları yumuşatmaya çalışır.\n\nFSR Çözünürlük Yükseltme Filtresi ile aynı anda kullanılması tavsiye edilmez.\n\nBu özelliği oyun açıkken \"Uygula\" tuşuna basarak değiştirebilirsiniz. Ayarlar penceresini bir kenara koyun, ve size göre daha iyi görünen seçeneği bulana kadar deneyin.\n\nEğer emin değilseniz \"Hiçbiri\"nde bırakın.\n\n",
"GraphicsAALabel": "Kenar Yumuşatma:",
"GraphicsScalingFilterLabel": "Ölçekleme Filtresi:",
- "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
+ "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nArea scaling is recommended when downscaling resolutions that are larger than the output window. It can be used to achieve a supersampled anti-aliasing effect when downscaling by more than 2x.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
"GraphicsScalingFilterBilinear": "Bilinear",
- "GraphicsScalingFilterNearest": "Nearest",
+ "GraphicsScalingFilterNearest": "En Yakın",
"GraphicsScalingFilterFsr": "FSR",
"GraphicsScalingFilterArea": "Area",
"GraphicsScalingFilterLevelLabel": "Seviye",
- "GraphicsScalingFilterLevelTooltip": "Set FSR 1.0 sharpening level. Higher is sharper.",
+ "GraphicsScalingFilterLevelTooltip": "FSR 1.0 Keskinleştirme seviyesini ayarla. Daha yüksek bir sayı daha keskin demek.",
"SmaaLow": "Düşük SMAA",
"SmaaMedium": "Orta SMAA",
"SmaaHigh": "Yüksek SMAA",
@@ -799,14 +772,14 @@
"UserEditorTitle": "Kullanıcıyı Düzenle",
"UserEditorTitleCreate": "Kullanıcı Oluştur",
"SettingsTabNetworkInterface": "Ağ Bağlantısı:",
- "NetworkInterfaceTooltip": "The network interface used for LAN/LDN features.\n\nIn conjunction with a VPN or XLink Kai and a game with LAN support, can be used to spoof a same-network connection over the Internet.\n\nLeave on DEFAULT if unsure.",
+ "NetworkInterfaceTooltip": "LAN/LDN özellikleri için kullanılan ağ arayüzü.\n\nBir VPN ya da XLink Kai ile LAN destekli bir oyunla birlikte, İnternet üzerinden sahte bir aynı ağ bağlantısı kurmak için kullanılabilir.\n\nEmin değilseniz \"Varsayılan\"da bırakın.",
"NetworkInterfaceDefault": "Varsayılan",
"PackagingShaders": "Gölgeler Paketleniyor",
"AboutChangelogButton": "GitHub'da Değişiklikleri Görüntüle",
"AboutChangelogButtonTooltipMessage": "Kullandığınız versiyon için olan değişiklikleri varsayılan tarayıcınızda görmek için tıklayın",
"SettingsTabNetworkMultiplayer": "Çok Oyunculu",
"MultiplayerMode": "Mod:",
- "MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
+ "MultiplayerModeTooltip": "LDN çok oyunculu modunu değiştirin.\n\nLdnMitm, oyunlardaki yerel kablosuz/yerel oyun işlevselliğini LAN gibi çalışacak şekilde değiştirerek diğer Ryujinx uygulamaları ve ldn_mitm modülünün yüklü olduğu hacklenmiş Nintendo Switch konsolları ile yerel, aynı ağ bağlantılarına izin verir.\n\nÇok oyunculu oyunlarda tüm oyuncuların aynı oyun sürümünde olmasını gerektirir (yani mesela Super Smash Bros. Ultimate v13.0.1, v13.0.0'a bağlanamaz).\n\nEmin değilseniz \"devre dışı\" bırakın.",
"MultiplayerModeDisabled": "Devre Dışı",
"MultiplayerModeLdnMitm": "ldn_mitm"
}
diff --git a/src/Ryujinx/Assets/Locales/uk_UA.json b/src/Ryujinx/Assets/Locales/uk_UA.json
index 581d1bca1..3bbddcfd1 100644
--- a/src/Ryujinx/Assets/Locales/uk_UA.json
+++ b/src/Ryujinx/Assets/Locales/uk_UA.json
@@ -10,10 +10,8 @@
"SettingsTabSystemUseHypervisor": "Використовувати гіпервізор",
"MenuBarFile": "_Файл",
"MenuBarFileOpenFromFile": "_Завантажити програму з файлу",
- "MenuBarFileOpenFromFileError": "No applications found in selected file.",
+ "MenuBarFileOpenFromFileError": "У вибраному файлі не знайдено жодного додатку.",
"MenuBarFileOpenUnpacked": "Завантажити _розпаковану гру",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
"MenuBarFileOpenEmuFolder": "Відкрити теку Ryujinx",
"MenuBarFileOpenLogsFolder": "Відкрити теку журналів змін",
"MenuBarFileExit": "_Вихід",
@@ -33,8 +31,8 @@
"MenuBarToolsManageFileTypes": "Керувати типами файлів",
"MenuBarToolsInstallFileTypes": "Установити типи файлів",
"MenuBarToolsUninstallFileTypes": "Видалити типи файлів",
- "MenuBarView": "_View",
- "MenuBarViewWindow": "Window Size",
+ "MenuBarView": "_Вид",
+ "MenuBarViewWindow": "Розмір Вікна",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "_Допомога",
@@ -98,16 +96,13 @@
"SettingsTabGeneralGeneral": "Загальні",
"SettingsTabGeneralEnableDiscordRichPresence": "Увімкнути розширену присутність Discord",
"SettingsTabGeneralCheckUpdatesOnLaunch": "Перевіряти наявність оновлень під час запуску",
- "SettingsTabGeneralShowConfirmExitDialog": "Показати діалогове вікно «Підтвердити вихід».",
- "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralShowConfirmExitDialog": "Показати діалогове вікно «Підтвердити вихід»",
+ "SettingsTabGeneralRememberWindowState": "Запам'ятати Розмір Вікна/Положення",
"SettingsTabGeneralHideCursor": "Сховати вказівник:",
"SettingsTabGeneralHideCursorNever": "Ніколи",
"SettingsTabGeneralHideCursorOnIdle": "Сховати у режимі очікування",
"SettingsTabGeneralHideCursorAlways": "Завжди",
"SettingsTabGeneralGameDirectories": "Тека ігор",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "Додати",
"SettingsTabGeneralRemove": "Видалити",
"SettingsTabSystem": "Система",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "Час системи:",
"SettingsTabSystemEnableVsync": "Вертикальна синхронізація",
"SettingsTabSystemEnablePptc": "PPTC (профільований постійний кеш перекладу)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "Перевірка цілісності FS",
"SettingsTabSystemAudioBackend": "Аудіосистема:",
"SettingsTabSystemAudioBackendDummy": "Dummy",
@@ -150,14 +144,9 @@
"SettingsTabSystemAudioBackendSoundIO": "SoundIO",
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "Хитрощі",
- "SettingsTabSystemHacksNote": " (може викликати нестабільність)",
- "SettingsTabSystemDramSize": "Використовувати альтернативне розташування пам'яті (розробники)",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemHacksNote": "(може викликати нестабільність)",
+ "SettingsTabSystemExpandDramSize": "Розширити DRAM до 8GiB",
"SettingsTabSystemIgnoreMissingServices": "Ігнорувати відсутні служби",
- "SettingsTabSystemIgnoreApplet": "Ігнорувати Аплет",
"SettingsTabGraphics": "Графіка",
"SettingsTabGraphicsAPI": "Графічний API",
"SettingsTabGraphicsEnableShaderCache": "Увімкнути кеш шейдерів",
@@ -283,29 +272,29 @@
"ControllerSettingsMotionGyroDeadzone": "Мертва зона гіроскопа:",
"ControllerSettingsSave": "Зберегти",
"ControllerSettingsClose": "Закрити",
- "KeyUnknown": "Unknown",
- "KeyShiftLeft": "Shift Left",
- "KeyShiftRight": "Shift Right",
- "KeyControlLeft": "Ctrl Left",
- "KeyMacControlLeft": "⌃ Left",
- "KeyControlRight": "Ctrl Right",
- "KeyMacControlRight": "⌃ Right",
- "KeyAltLeft": "Alt Left",
- "KeyMacAltLeft": "⌥ Left",
- "KeyAltRight": "Alt Right",
- "KeyMacAltRight": "⌥ Right",
- "KeyWinLeft": "⊞ Left",
- "KeyMacWinLeft": "⌘ Left",
- "KeyWinRight": "⊞ Right",
- "KeyMacWinRight": "⌘ Right",
- "KeyMenu": "Menu",
- "KeyUp": "Up",
- "KeyDown": "Down",
- "KeyLeft": "Left",
- "KeyRight": "Right",
+ "KeyUnknown": "Невідомо",
+ "KeyShiftLeft": "Лівий Shift",
+ "KeyShiftRight": "Правий Shift",
+ "KeyControlLeft": "Лівий Ctrl",
+ "KeyMacControlLeft": "Лівий ⌃",
+ "KeyControlRight": "Правий Ctrl",
+ "KeyMacControlRight": "Правий ⌃",
+ "KeyAltLeft": "Лівий Alt",
+ "KeyMacAltLeft": "Лівий ⌥",
+ "KeyAltRight": "Правий Alt",
+ "KeyMacAltRight": "Правий ⌥",
+ "KeyWinLeft": "Лівий ⊞",
+ "KeyMacWinLeft": "Лівий ⌘",
+ "KeyWinRight": "Правий ⊞",
+ "KeyMacWinRight": "Правий ⌘",
+ "KeyMenu": "Меню",
+ "KeyUp": "Вгору",
+ "KeyDown": "Вниз",
+ "KeyLeft": "Вліво",
+ "KeyRight": "Вправо",
"KeyEnter": "Enter",
"KeyEscape": "Escape",
- "KeySpace": "Space",
+ "KeySpace": "Пробіл",
"KeyTab": "Tab",
"KeyBackSpace": "Backspace",
"KeyInsert": "Insert",
@@ -320,22 +309,22 @@
"KeyPause": "Pause",
"KeyNumLock": "Num Lock",
"KeyClear": "Clear",
- "KeyKeypad0": "Keypad 0",
- "KeyKeypad1": "Keypad 1",
- "KeyKeypad2": "Keypad 2",
- "KeyKeypad3": "Keypad 3",
- "KeyKeypad4": "Keypad 4",
- "KeyKeypad5": "Keypad 5",
- "KeyKeypad6": "Keypad 6",
- "KeyKeypad7": "Keypad 7",
- "KeyKeypad8": "Keypad 8",
- "KeyKeypad9": "Keypad 9",
- "KeyKeypadDivide": "Keypad Divide",
- "KeyKeypadMultiply": "Keypad Multiply",
- "KeyKeypadSubtract": "Keypad Subtract",
- "KeyKeypadAdd": "Keypad Add",
- "KeyKeypadDecimal": "Keypad Decimal",
- "KeyKeypadEnter": "Keypad Enter",
+ "KeyKeypad0": "Цифрова клавіша 0",
+ "KeyKeypad1": "Цифрова клавіша 1",
+ "KeyKeypad2": "Цифрова клавіша 2",
+ "KeyKeypad3": "Цифрова клавіша 3",
+ "KeyKeypad4": "Цифрова клавіша 4",
+ "KeyKeypad5": "Цифрова клавіша 5",
+ "KeyKeypad6": "Цифрова клавіша 6",
+ "KeyKeypad7": "Цифрова клавіша 7",
+ "KeyKeypad8": "Цифрова клавіша 8",
+ "KeyKeypad9": "Цифрова клавіша 9",
+ "KeyKeypadDivide": "Цифрова клавіша /",
+ "KeyKeypadMultiply": "Цифрова клавіша *",
+ "KeyKeypadSubtract": "Цифрова клавіша -",
+ "KeyKeypadAdd": "Цифрова клавіша +",
+ "KeyKeypadDecimal": "Цифрова клавіша",
+ "KeyKeypadEnter": "Цифрова клавіша Enter",
"KeyNumber0": "0",
"KeyNumber1": "1",
"KeyNumber2": "2",
@@ -358,32 +347,32 @@
"KeyPeriod": ".",
"KeySlash": "/",
"KeyBackSlash": "\\",
- "KeyUnbound": "Unbound",
- "GamepadLeftStick": "L Stick Button",
- "GamepadRightStick": "R Stick Button",
- "GamepadLeftShoulder": "Left Shoulder",
- "GamepadRightShoulder": "Right Shoulder",
- "GamepadLeftTrigger": "Left Trigger",
- "GamepadRightTrigger": "Right Trigger",
- "GamepadDpadUp": "Up",
- "GamepadDpadDown": "Down",
- "GamepadDpadLeft": "Left",
- "GamepadDpadRight": "Right",
+ "KeyUnbound": "Не назначено",
+ "GamepadLeftStick": "Клавіша лівого стіка",
+ "GamepadRightStick": "Клавіша правого стіка",
+ "GamepadLeftShoulder": "Лівий Бампер",
+ "GamepadRightShoulder": "Правий Бампер",
+ "GamepadLeftTrigger": "Лівий Тригер",
+ "GamepadRightTrigger": "Правий Тригер",
+ "GamepadDpadUp": "Вгору",
+ "GamepadDpadDown": "Вниз",
+ "GamepadDpadLeft": "Вліво",
+ "GamepadDpadRight": "Вправо",
"GamepadMinus": "-",
"GamepadPlus": "+",
- "GamepadGuide": "Guide",
- "GamepadMisc1": "Misc",
- "GamepadPaddle1": "Paddle 1",
- "GamepadPaddle2": "Paddle 2",
- "GamepadPaddle3": "Paddle 3",
- "GamepadPaddle4": "Paddle 4",
- "GamepadTouchpad": "Touchpad",
- "GamepadSingleLeftTrigger0": "Left Trigger 0",
- "GamepadSingleRightTrigger0": "Right Trigger 0",
- "GamepadSingleLeftTrigger1": "Left Trigger 1",
- "GamepadSingleRightTrigger1": "Right Trigger 1",
- "StickLeft": "Left Stick",
- "StickRight": "Right Stick",
+ "GamepadGuide": "Посібник",
+ "GamepadMisc1": "Інше",
+ "GamepadPaddle1": "Падл 1",
+ "GamepadPaddle2": "Падл 2",
+ "GamepadPaddle3": "Падл 3",
+ "GamepadPaddle4": "Падл 4",
+ "GamepadTouchpad": "Тачпад",
+ "GamepadSingleLeftTrigger0": "Лівий Тригер 0",
+ "GamepadSingleRightTrigger0": "Правий Тригер 0",
+ "GamepadSingleLeftTrigger1": "Лівий Тригер 1",
+ "GamepadSingleRightTrigger1": "Правий Тригер 1",
+ "StickLeft": "Лівий Стік",
+ "StickRight": "Правий Стік",
"UserProfilesSelectedUserProfile": "Вибраний профіль користувача:",
"UserProfilesSaveProfileName": "Зберегти ім'я профілю",
"UserProfilesChangeProfileImage": "Змінити зображення профілю",
@@ -396,7 +385,7 @@
"ProfileImageSelectionHeader": "Виберіть зображення профілю",
"ProfileImageSelectionNote": "Ви можете імпортувати власне зображення профілю або вибрати аватар із мікропрограми системи",
"ProfileImageSelectionImportImage": "Імпорт файлу зображення",
- "ProfileImageSelectionSelectAvatar": "Виберіть аватар прошивки ",
+ "ProfileImageSelectionSelectAvatar": "Виберіть Аватар Прошивки",
"InputDialogTitle": "Діалог введення",
"InputDialogOk": "Гаразд",
"InputDialogCancel": "Скасувати",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "Встановити колір фону",
"AvatarClose": "Закрити",
"ControllerSettingsLoadProfileToolTip": "Завантажити профіль",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "Додати профіль",
"ControllerSettingsRemoveProfileToolTip": "Видалити профіль",
"ControllerSettingsSaveProfileToolTip": "Зберегти профіль",
@@ -417,7 +405,7 @@
"GameListContextMenuToggleFavorite": "Перемкнути вибране",
"GameListContextMenuToggleFavoriteToolTip": "Перемкнути улюблений статус гри",
"SettingsTabGeneralTheme": "Тема:",
- "SettingsTabGeneralThemeAuto": "Auto",
+ "SettingsTabGeneralThemeAuto": "Авто",
"SettingsTabGeneralThemeDark": "Темна",
"SettingsTabGeneralThemeLight": "Світла",
"ControllerSettingsConfigureGeneral": "Налаштування",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "Під час пошуку вказаних даних збереження сталася помилка: {0}",
"FolderDialogExtractTitle": "Виберіть папку для видобування",
"DialogNcaExtractionMessage": "Видобування розділу {0} з {1}...",
- "DialogNcaExtractionTitle": "Екстрактор розділів NCA",
+ "DialogNcaExtractionTitle": "Ryujinx - Екстрактор розділів NCA",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "Помилка видобування. Основний NCA не був присутній у вибраному файлі.",
"DialogNcaExtractionCheckLogErrorMessage": "Помилка видобування. Прочитайте файл журналу для отримання додаткової інформації.",
"DialogNcaExtractionSuccessMessage": "Видобування успішно завершено.",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "Ви не підключені до Інтернету!",
"DialogUpdaterNoInternetSubMessage": "Будь ласка, переконайтеся, що у вас є робоче підключення до Інтернету!",
"DialogUpdaterDirtyBuildMessage": "Ви не можете оновити брудну збірку Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Будь ласка, завантажте Ryujinx на https://https://github.com/GreemDev/Ryujinx/releases/, якщо ви шукаєте підтримувану версію.",
+ "DialogUpdaterDirtyBuildSubMessage": "Будь ласка, завантажте Ryujinx на https://ryujinx.org/, якщо ви шукаєте підтримувану версію.",
"DialogRestartRequiredMessage": "Потрібен перезапуск",
"DialogThemeRestartMessage": "Тему збережено. Щоб застосувати тему, потрібен перезапуск.",
"DialogThemeRestartSubMessage": "Ви хочете перезапустити",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "Введіть каталог ігор, щоб додати до списку",
"AddGameDirTooltip": "Додати каталог гри до списку",
"RemoveGameDirTooltip": "Видалити вибраний каталог гри",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
"CustomThemeCheckTooltip": "Використовуйте користувацьку тему Avalonia для графічного інтерфейсу, щоб змінити вигляд меню емулятора",
"CustomThemePathTooltip": "Шлях до користувацької теми графічного інтерфейсу",
"CustomThemeBrowseTooltip": "Огляд користувацької теми графічного інтерфейсу",
@@ -583,7 +568,6 @@
"TimeTooltip": "Змінити час системи",
"VSyncToggleTooltip": "Емульована вертикальна синхронізація консолі. По суті, обмежувач кадрів для більшості ігор; його вимкнення може призвести до того, що ігри працюватимуть на вищій швидкості, екрани завантаження триватимуть довше чи зупинятимуться.\n\nМожна перемикати в грі гарячою клавішею (За умовчанням F1). Якщо ви плануєте вимкнути функцію, рекомендуємо зробити це через гарячу клавішу.\n\nЗалиште увімкненим, якщо не впевнені.",
"PptcToggleTooltip": "Зберігає перекладені функції JIT, щоб їх не потрібно було перекладати кожного разу, коли гра завантажується.\n\nЗменшує заїкання та значно прискорює час завантаження після першого завантаження гри.\n\nЗалиште увімкненим, якщо не впевнені.",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
"FsIntegrityToggleTooltip": "Перевіряє наявність пошкоджених файлів під час завантаження гри, і якщо виявлено пошкоджені файли, показує помилку хешу в журналі.\n\nНе впливає на продуктивність і призначений для усунення несправностей.\n\nЗалиште увімкненим, якщо не впевнені.",
"AudioBackendTooltip": "Змінює серверну частину, яка використовується для відтворення аудіо.\n\nSDL2 є кращим, тоді як OpenAL і SoundIO використовуються як резервні варіанти. Dummy не матиме звуку.\n\nВстановіть SDL2, якщо не впевнені.",
"MemoryManagerTooltip": "Змінює спосіб відображення та доступу до гостьової пам’яті. Значно впливає на продуктивність емульованого ЦП.\n\nВстановіть «Неперевірений хост», якщо не впевнені.",
@@ -591,10 +575,9 @@
"MemoryManagerHostTooltip": "Пряме відображення пам'яті в адресному просторі хосту. Набагато швидша компіляція та виконання JIT.",
"MemoryManagerUnsafeTooltip": "Пряме відображення пам’яті, але не маскує адресу в гостьовому адресному просторі перед доступом. Швидше, але ціною безпеки. Гостьова програма може отримати доступ до пам’яті з будь-якого місця в Ryujinx, тому запускайте в цьому режимі лише програми, яким ви довіряєте.",
"UseHypervisorTooltip": "Використання гіпервізор замість JIT. Значно покращує продуктивність, коли доступний, але може бути нестабільним у поточному стані.",
- "DRamTooltip": "Використовує альтернативний макет MemoryMode для імітації моделі розробки Switch.\n\nЦе корисно лише для пакетів текстур з вищою роздільною здатністю або модифікацій із роздільною здатністю 4K. НЕ покращує продуктивність.\n\nЗалиште вимкненим, якщо не впевнені.",
+ "DRamTooltip": "Використовує альтернативний режим пам’яті з 8GiB для DRAM щоб імітувати модель Switch для розробника.\n\nЦе корисно лише для пакетів текстур з вищою роздільною здатністю або модифікацій із роздільною здатністю 4k. НЕ покращує продуктивність.\n\nЗалиште Вимкненим, якщо не впевнені.",
"IgnoreMissingServicesTooltip": "Ігнорує нереалізовані служби Horizon OS. Це може допомогти в обході збоїв під час завантаження певних ігор.\n\nЗалиште вимкненим, якщо не впевнені.",
- "IgnoreAppletTooltip": "Зовнішнє діалогове вікно \"Аплет контролера\" не з’являтиметься, якщо геймпад буде від’єднано під час гри. Не буде запиту закрити діалогове вікно чи налаштувати новий контролер. Після повторного підключення раніше від’єднаного контролера гра автоматично відновиться.",
- "GraphicsBackendThreadingTooltip": "Виконує команди графічного сервера в другому потоці.\n\nПрискорює компіляцію шейдерів, зменшує затримки та покращує продуктивність драйверів GPU без власної підтримки багатопоточності. Трохи краща продуктивність на драйверах з багатопотоковістю.\nВстановіть значення «Авто», якщо не впевнені",
+ "GraphicsBackendThreadingTooltip": "Виконує команди графічного сервера в другому потоці.\n\nПрискорює компіляцію шейдерів, зменшує затримки та покращує продуктивність драйверів GPU без власної підтримки багатопоточності. Трохи краща продуктивність на драйверах з багатопотоковістю.\nВстановіть значення «Авто», якщо не впевнені.",
"GalThreadingTooltip": "Виконує команди графічного сервера в другому потоці.\n\nПрискорює компіляцію шейдерів, зменшує затримки та покращує продуктивність драйверів GPU без власної підтримки багатопоточності. Трохи краща продуктивність на драйверах з багатопотоковістю.\n\nВстановіть значення «Авто», якщо не впевнені.",
"ShaderCacheToggleTooltip": "Зберігає кеш дискового шейдера, що зменшує затримки під час наступних запусків.\n\nЗалиште увімкненим, якщо не впевнені.",
"ResolutionScaleTooltip": "Множить роздільну здатність гри.\n\nДеякі ігри можуть не працювати з цією функцією, і виглядатимуть піксельними; для цих ігор треба знайти модифікації, що зупиняють згладжування або підвищують роздільну здатність. Для останніх модифікацій, вибирайте \"Native\".\n\nЦей параметр можна міняти коли гра запущена кліком на \"Застосувати\"; ви можете перемістити вікно налаштувань і поекспериментувати з видом гри.\n\nМайте на увазі, що 4x це занадто для будь-якого комп'ютера.",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "Друкує повідомлення журналу налагодження на консолі.\n\nВикористовуйте це лише за спеціальною вказівкою співробітника, оскільки це ускладнить читання журналів і погіршить роботу емулятора.",
"LoadApplicationFileTooltip": "Відкриває файловий провідник, щоб вибрати для завантаження сумісний файл Switch",
"LoadApplicationFolderTooltip": "Відкриває файловий провідник, щоб вибрати сумісну з комутатором розпаковану програму для завантаження",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
"OpenRyujinxFolderTooltip": "Відкриває папку файлової системи Ryujinx",
"OpenRyujinxLogsTooltip": "Відкриває папку, куди записуються журнали",
"ExitTooltip": "Виходить з Ryujinx",
@@ -625,7 +606,7 @@
"OpenProfileManagerTooltip": "Відкриває вікно диспетчера профілів користувачів",
"StopEmulationTooltip": "Зупиняє емуляцію поточної гри та повертається до вибору гри",
"CheckUpdatesTooltip": "Перевіряє наявність оновлень для Ryujinx",
- "OpenAboutTooltip": "Відкриває вікно «Про програму».",
+ "OpenAboutTooltip": "Відкриває вікно «Про програму»",
"GridSize": "Розмір сітки",
"GridSizeTooltip": "Змінити розмір елементів сітки",
"SettingsTabSystemSystemLanguageBrazilianPortuguese": "Португальська (Бразилія)",
@@ -660,17 +641,17 @@
"UserErrorApplicationNotFound": "Додаток не знайдено",
"UserErrorUnknown": "Невідома помилка",
"UserErrorUndefined": "Невизначена помилка",
- "UserErrorNoKeysDescription": "Ryujinx не вдалося знайти ваш файл «prod.keys».",
+ "UserErrorNoKeysDescription": "Ryujinx не вдалося знайти ваш файл «prod.keys»",
"UserErrorNoFirmwareDescription": "Ryujinx не вдалося знайти встановлену прошивку",
"UserErrorFirmwareParsingFailedDescription": "Ryujinx не вдалося проаналізувати прошивку. Зазвичай це спричинено застарілими ключами.",
- "UserErrorApplicationNotFoundDescription": "Ryujinx не вдалося знайти дійсний додаток за вказаним шляхом",
+ "UserErrorApplicationNotFoundDescription": "Ryujinx не вдалося знайти дійсний додаток за вказаним шляхом.",
"UserErrorUnknownDescription": "Сталася невідома помилка!",
"UserErrorUndefinedDescription": "Сталася невизначена помилка! Цього не повинно статися, зверніться до розробника!",
"OpenSetupGuideMessage": "Відкрити посібник із налаштування",
"NoUpdate": "Немає оновлень",
- "TitleUpdateVersionLabel": "Версія {0} - {1}",
- "TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
- "TitleBundledDlcLabel": "Bundled:",
+ "TitleUpdateVersionLabel": "Версія {0}",
+ "TitleBundledUpdateVersionLabel": "У комплекті: Версія {0}",
+ "TitleBundledDlcLabel": "У комплекті:",
"RyujinxInfo": "Ryujin x - Інформація",
"RyujinxConfirm": "Ryujinx - Підтвердження",
"FileDialogAllTypes": "Всі типи",
@@ -725,20 +706,12 @@
"SelectModDialogTitle": "Виберіть теку з модами",
"UserProfileWindowTitle": "Менеджер профілів користувачів",
"CheatWindowTitle": "Менеджер читів",
- "DlcWindowTitle": "Менеджер вмісту для завантаження",
+ "DlcWindowTitle": "Менеджер вмісту завантаження для {0} ({1})",
"ModWindowTitle": "Керувати модами для {0} ({1})",
"UpdateWindowTitle": "Менеджер оновлення назв",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Коди доступні для {0} [{1}]",
"BuildId": "ID збірки:",
- "DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
- "DlcWindowHeading": "Вміст для завантаження, доступний для {1} ({2}): {0}",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
+ "DlcWindowHeading": "Вміст для завантаження, доступний для: {0}",
"ModWindowHeading": "{0} мод(ів)",
"UserProfilesEditProfile": "Редагувати вибране",
"Cancel": "Скасувати",
@@ -748,10 +721,10 @@
"UserProfilesSetProfileImage": "Встановити зображення профілю",
"UserProfileEmptyNameError": "Імʼя обовʼязкове",
"UserProfileNoImageError": "Зображення профілю обовʼязкове",
- "GameUpdateWindowHeading": "{0} Доступні оновлення для {1} ({2})",
+ "GameUpdateWindowHeading": "Доступні оновлення для {0} ({1})",
"SettingsTabHotkeysResScaleUpHotkey": "Збільшити роздільність:",
"SettingsTabHotkeysResScaleDownHotkey": "Зменшити роздільність:",
- "UserProfilesName": "Імʼя",
+ "UserProfilesName": "Ім'я:",
"UserProfilesUserId": "ID користувача:",
"SettingsTabGraphicsBackend": "Графічний сервер",
"SettingsTabGraphicsBackendTooltip": "Виберіть backend графіки, що буде використовуватись в емуляторі.\n\n\"Vulkan\" краще для всіх сучасних відеокарт, якщо драйвери вчасно оновлюються. У Vulkan також швидше компілюються шейдери (менше \"заїкання\" зображення) на відеокартах всіх компаній.\n\n\"OpenGL\" може дати кращі результати на старих відеокартах Nvidia, старих відеокартах AMD на Linux, або на відеокартах з маленькою кількістю VRAM, але \"заїкання\" через компіляцію шейдерів будуть частіші.\n\nЯкщо не впевнені, встановіть на \"Vulkan\". Встановіть на \"OpenGL\", якщо Ваша відеокарта не підтримує Vulkan навіть на останніх драйверах.",
@@ -773,7 +746,7 @@
"UserProfilesManageSaves": "Керувати збереженнями",
"DeleteUserSave": "Ви хочете видалити збереження користувача для цієї гри?",
"IrreversibleActionNote": "Цю дію не можна скасувати.",
- "SaveManagerHeading": "Керувати збереженнями для {0}",
+ "SaveManagerHeading": "Керувати збереженнями для {0} ({1})",
"SaveManagerTitle": "Менеджер збереження",
"Name": "Назва",
"Size": "Розмір",
@@ -785,11 +758,11 @@
"GraphicsAATooltip": "Застосовує згладження до рендера гри.\n\nFXAA розмиє більшість зображення, а SMAA спробує знайти нерівні краї та згладити їх.\n\nНе рекомендується використовувати разом з фільтром масштабування FSR.\n\nЦю опцію можна міняти коли гра запущена кліком на \"Застосувати; ви можете відсунути вікно налаштувань і поекспериментувати з видом гри.\n\nЗалиште на \"Немає\", якщо не впевнені.",
"GraphicsAALabel": "Згладжування:",
"GraphicsScalingFilterLabel": "Фільтр масштабування:",
- "GraphicsScalingFilterTooltip": "Виберіть фільтр масштабування, що використається при збільшенні роздільної здатності.\n\n\"Білінійний\" добре виглядає в 3D іграх, і хороше налаштування за умовчуванням.\n\n\"Найближчий\" рекомендується для ігор з піксель-артом.\n\n\"FSR 1.0\" - це просто фільтр різкості, не рекомендується використовувати разом з FXAA або SMAA.\n\nЦю опцію можна міняти коли гра запущена кліком на \"Застосувати; ви можете відсунути вікно налаштувань і поекспериментувати з видом гри.\n\nЗалиште на \"Білінійний\", якщо не впевнені.",
+ "GraphicsScalingFilterTooltip": "Виберіть фільтр масштабування, який буде застосовано під час використання масштабу роздільної здатності.\n\nБілінійний добре працює для 3D ігор і є безпечним варіантом за умовчанням.\n\nНайближчий рекомендовано для піксель арт ігор.\n\nFSR 1.0 це лише фільтр різкості, який не рекомендується використовувати з FXAA або SMAA.\n\nМасштабування області рекомендовано при зменшенні роздільності, яка перевищує вікно виведення. Його можна використовувати для досягнення ефекту SSAA при зменшенні більш ніж у 2 рази.\n\nЦей параметр можна змінити коли гра запущена, клацнувши \"Застосувати\" нижче; ви можете просто відсунути вікно налаштувань і експериментувати, поки не знайдете бажаний вигляд гри.\n\nЗалиште на Білінійний, якщо не впевнені.",
"GraphicsScalingFilterBilinear": "Білінійний",
"GraphicsScalingFilterNearest": "Найближчий",
"GraphicsScalingFilterFsr": "FSR",
- "GraphicsScalingFilterArea": "Area",
+ "GraphicsScalingFilterArea": "Область",
"GraphicsScalingFilterLevelLabel": "Рівень",
"GraphicsScalingFilterLevelTooltip": "Встановити рівень різкості в FSR 1.0. Чим вище - тим різкіше.",
"SmaaLow": "SMAA Низький",
@@ -806,7 +779,7 @@
"AboutChangelogButtonTooltipMessage": "Клацніть, щоб відкрити журнал змін для цієї версії у стандартному браузері.",
"SettingsTabNetworkMultiplayer": "Мережева гра",
"MultiplayerMode": "Режим:",
- "MultiplayerModeTooltip": "Змінити LDN мультиплеєру.\n\nLdnMitm змінить функціонал бездротової/локальної гри в іграх, щоб вони працювали так, ніби це LAN, що дозволяє локальні підключення в тій самій мережі з іншими екземплярами Ryujinx та хакнутими консолями Nintendo Switch, які мають встановлений модуль ldn_mitm.\n\nМультиплеєр вимагає, щоб усі гравці були на одній і тій же версії гри (наприклад Super Smash Bros. Ultimate v13.0.1 не зможе під'єднатися до v13.0.0).\n\nЗалиште на \"Вимкнено\", якщо не впевнені, ",
+ "MultiplayerModeTooltip": "Змінити LDN мультиплеєру.\n\nLdnMitm змінить функціонал бездротової/локальної гри в іграх, щоб вони працювали так, ніби це LAN, що дозволяє локальні підключення в тій самій мережі з іншими екземплярами Ryujinx та хакнутими консолями Nintendo Switch, які мають встановлений модуль ldn_mitm.\n\nМультиплеєр вимагає, щоб усі гравці були на одній і тій же версії гри (наприклад Super Smash Bros. Ultimate v13.0.1 не зможе під'єднатися до v13.0.0).\n\nЗалиште на \"Вимкнено\", якщо не впевнені.",
"MultiplayerModeDisabled": "Вимкнено",
"MultiplayerModeLdnMitm": "ldn_mitm"
}
diff --git a/src/Ryujinx/Assets/Locales/zh_CN.json b/src/Ryujinx/Assets/Locales/zh_CN.json
index 3426b8a4a..85fe463d1 100644
--- a/src/Ryujinx/Assets/Locales/zh_CN.json
+++ b/src/Ryujinx/Assets/Locales/zh_CN.json
@@ -10,10 +10,8 @@
"SettingsTabSystemUseHypervisor": "使用 Hypervisor 虚拟化",
"MenuBarFile": "文件(_F)",
"MenuBarFileOpenFromFile": "加载游戏文件(_L)",
- "MenuBarFileOpenFromFileError": "未发现应用",
+ "MenuBarFileOpenFromFileError": "在所选文件中没有找到应用。",
"MenuBarFileOpenUnpacked": "加载解包后的游戏(_U)",
- "MenuBarFileLoadDlcFromFolder": "从文件夹加载DLC",
- "MenuBarFileLoadTitleUpdatesFromFolder": "从文件夹加载游戏更新",
"MenuBarFileOpenEmuFolder": "打开 Ryujinx 系统目录",
"MenuBarFileOpenLogsFolder": "打开日志目录",
"MenuBarFileExit": "退出(_E)",
@@ -100,14 +98,11 @@
"SettingsTabGeneralCheckUpdatesOnLaunch": "启动时检查更新",
"SettingsTabGeneralShowConfirmExitDialog": "退出游戏时需要确认",
"SettingsTabGeneralRememberWindowState": "记住窗口大小和位置",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
"SettingsTabGeneralHideCursor": "隐藏鼠标指针:",
"SettingsTabGeneralHideCursorNever": "从不隐藏",
"SettingsTabGeneralHideCursorOnIdle": "自动隐藏",
"SettingsTabGeneralHideCursorAlways": "始终隐藏",
"SettingsTabGeneralGameDirectories": "游戏目录",
- "SettingsTabGeneralAutoloadDirectories": "自动加载DLC/游戏更新目录",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
"SettingsTabGeneralAdd": "添加",
"SettingsTabGeneralRemove": "删除",
"SettingsTabSystem": "系统",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "系统时钟:",
"SettingsTabSystemEnableVsync": "启用垂直同步",
"SettingsTabSystemEnablePptc": "开启 PPTC 缓存",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "启用文件系统完整性检查",
"SettingsTabSystemAudioBackend": "音频处理引擎:",
"SettingsTabSystemAudioBackendDummy": "无",
@@ -151,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "修改",
"SettingsTabSystemHacksNote": "会导致模拟器不稳定",
- "SettingsTabSystemDramSize": "使用开发机的内存布局(开发人员使用)",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "扩展DRAM到 8GiB",
"SettingsTabSystemIgnoreMissingServices": "忽略缺失的服务",
- "SettingsTabSystemIgnoreApplet": "忽略小程序",
"SettingsTabGraphics": "图形",
"SettingsTabGraphicsAPI": "图形 API",
"SettingsTabGraphicsEnableShaderCache": "启用着色器缓存",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "设置背景色",
"AvatarClose": "关闭",
"ControllerSettingsLoadProfileToolTip": "加载配置文件",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "新增配置文件",
"ControllerSettingsRemoveProfileToolTip": "删除配置文件",
"ControllerSettingsSaveProfileToolTip": "保存配置文件",
@@ -417,7 +405,7 @@
"GameListContextMenuToggleFavorite": "收藏",
"GameListContextMenuToggleFavoriteToolTip": "切换游戏的收藏状态",
"SettingsTabGeneralTheme": "主题:",
- "SettingsTabGeneralThemeAuto": "自动",
+ "SettingsTabGeneralThemeAuto": "跟随系统",
"SettingsTabGeneralThemeDark": "深色(暗黑)",
"SettingsTabGeneralThemeLight": "浅色(亮色)",
"ControllerSettingsConfigureGeneral": "配置",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "查找指定存档时出错:{0}",
"FolderDialogExtractTitle": "选择要提取到的文件夹",
"DialogNcaExtractionMessage": "提取 {1} 的 {0} 分区...",
- "DialogNcaExtractionTitle": "NCA 分区提取",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA 分区提取",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "提取失败,所选文件中没有 NCA 文件",
"DialogNcaExtractionCheckLogErrorMessage": "提取失败,请查看日志文件获取详情",
"DialogNcaExtractionSuccessMessage": "提取成功!",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "没有连接到网络",
"DialogUpdaterNoInternetSubMessage": "请确保互联网连接正常。",
"DialogUpdaterDirtyBuildMessage": "无法更新非官方版本的 Ryujinx 模拟器!",
- "DialogUpdaterDirtyBuildSubMessage": "如果想使用受支持的版本,请您在 https://https://github.com/GreemDev/Ryujinx/releases/ 下载官方版本。",
+ "DialogUpdaterDirtyBuildSubMessage": "如果想使用受支持的版本,请您在 https://ryujinx.org/ 下载官方版本。",
"DialogRestartRequiredMessage": "需要重启模拟器",
"DialogThemeRestartMessage": "主题设置已保存,需要重启模拟器才能生效。",
"DialogThemeRestartSubMessage": "是否要重启模拟器?",
@@ -546,7 +534,7 @@
"AmiiboCharacterLabel": "角色",
"AmiiboScanButtonLabel": "扫描",
"AmiiboOptionsShowAllLabel": "显示所有 Amiibo",
- "AmiiboOptionsUsRandomTagLabel": "修改:使用随机生成的Amiibo ID",
+ "AmiiboOptionsUsRandomTagLabel": "增强:使用随机生成的Amiibo ID",
"DlcManagerTableHeadingEnabledLabel": "已启用",
"DlcManagerTableHeadingTitleIdLabel": "游戏 ID",
"DlcManagerTableHeadingContainerPathLabel": "容器路径",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "输入要添加的游戏目录",
"AddGameDirTooltip": "添加游戏目录到列表中",
"RemoveGameDirTooltip": "移除选中的目录",
- "AddAutoloadDirBoxTooltip": "输入需要添加到列表中的自动加载目录",
- "AddAutoloadDirTooltip": "添加一个自动加载目录到列表中",
- "RemoveAutoloadDirTooltip": "移除被选中的自动加载目录",
"CustomThemeCheckTooltip": "使用自定义的 Avalonia 主题作为模拟器菜单的外观",
"CustomThemePathTooltip": "自定义主题的目录",
"CustomThemeBrowseTooltip": "查找自定义主题",
@@ -583,7 +568,6 @@
"TimeTooltip": "更改系统时间",
"VSyncToggleTooltip": "模拟控制台的垂直同步,开启后会降低大部分游戏的帧率。关闭后,可以获得更高的帧率,但也可能导致游戏画面加载耗时更长或卡住。\n\n在游戏中可以使用热键进行切换(默认为 F1 键)。\n\n如果不确定,请保持开启状态。",
"PptcToggleTooltip": "缓存已编译的游戏指令,这样每次游戏加载时就无需重新编译。\n\n可以减少卡顿和启动时间,提高游戏响应速度。\n\n如果不确定,请保持开启状态。",
- "LowPowerPptcToggleTooltip": "使用三分之一的核心数加载PPTC.",
"FsIntegrityToggleTooltip": "启动游戏时检查游戏文件的完整性,并在日志中记录损坏的文件。\n\n对性能没有影响,用于排查故障。\n\n如果不确定,请保持开启状态。",
"AudioBackendTooltip": "更改音频处理引擎。\n\n推荐选择“SDL2”,另外“OpenAL”和“SoundIO”可以作为备选,选择“无”将没有声音。\n\n如果不确定,请设置为“SDL2”。",
"MemoryManagerTooltip": "更改模拟器内存映射和访问的方式,对模拟器 CPU 的性能影响很大。\n\n如果不确定,请设置为“跳过检查的本机映射”。",
@@ -591,9 +575,8 @@
"MemoryManagerHostTooltip": "直接映射内存页到电脑内存,使得即时编译和执行的效率更高。",
"MemoryManagerUnsafeTooltip": "直接映射内存页到电脑内存,并且不检查内存溢出,使得效率更高,但牺牲了安全。\n游戏程序可以访问模拟器内存的任意地址,所以不安全。\n建议此模式下只运行您信任的游戏程序。",
"UseHypervisorTooltip": "使用 Hypervisor 虚拟机代替即时编译,在可用的情况下能大幅提高性能,但目前可能还不稳定。",
- "DRamTooltip": "模拟 Switch 开发机的内存布局。\n\n不会提高性能,某些高清纹理包或 4k 分辨率 MOD 可能需要使用此选项。\n\n如果不确定,请保持关闭状态。",
+ "DRamTooltip": "模拟 Switch 开发机的内存布局(8GiB)。\n\n某些高清纹理包或 4k 分辨率 MOD 可能需要此选项。开启后不会提高性能。\n\n如果不确定,请保持关闭状态。",
"IgnoreMissingServicesTooltip": "开启后,游戏会忽略未实现的系统服务,从而继续运行。\n少部分新发布的游戏由于使用了新的未知系统服务,可能需要此选项来避免闪退。\n模拟器更新完善系统服务之后,则无需开启此选项。\n\n如果不确定,请保持关闭状态。",
- "IgnoreAppletTooltip": "如果游戏手柄在游戏过程中断开连接,则不会出现外部对话框“控制器小程序”。不会提示关闭对话框或设置新控制器。一旦先前断开连接的控制器重新连接,游戏将自动恢复。",
"GraphicsBackendThreadingTooltip": "在第二个线程上执行图形引擎指令。\n\n可以加速着色器编译,减少卡顿,提高 GPU 的性能。\n\n如果不确定,请设置为“自动”。",
"GalThreadingTooltip": "在第二个线程上执行图形引擎指令。\n\n可以加速着色器编译,减少卡顿,提高 GPU 的性能。\n\n如果不确定,请设置为“自动”。",
"ShaderCacheToggleTooltip": "模拟器将已编译的着色器保存到硬盘,可以减少游戏再次渲染相同图形导致的卡顿。\n\n如果不确定,请保持开启状态。",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "在控制台中显示调试日志。\n\n仅在特别需要时使用此功能,因为它会导致日志信息难以阅读,并降低模拟器性能。",
"LoadApplicationFileTooltip": "选择 Switch 游戏文件并加载",
"LoadApplicationFolderTooltip": "选择解包后的 Switch 游戏目录并加载",
- "LoadDlcFromFolderTooltip": "打开文件资源管理器以选择一个或多个文件夹来批量加载DLC。",
- "LoadTitleUpdatesFromFolderTooltip": "打开文件资源管理器以选择一个或多个文件夹来批量加载游戏更新。",
"OpenRyujinxFolderTooltip": "打开 Ryujinx 模拟器系统目录",
"OpenRyujinxLogsTooltip": "打开日志存放的目录",
"ExitTooltip": "退出 Ryujinx 模拟器",
@@ -728,18 +709,10 @@
"DlcWindowTitle": "管理 {0} ({1}) 的 DLC",
"ModWindowTitle": "管理 {0} ({1}) 的 MOD",
"UpdateWindowTitle": "游戏更新管理器",
- "UpdateWindowUpdateAddedMessage": "{0} 个更新被添加",
- "UpdateWindowBundledContentNotice": "捆绑的更新无法被移除,只可被禁用。",
"CheatWindowHeading": "适用于 {0} [{1}] 的金手指",
"BuildId": "游戏版本 ID:",
- "DlcWindowBundledContentNotice": "捆绑的DLC无法被移除,只可被禁用。",
"DlcWindowHeading": "{0} 个 DLC",
- "DlcWindowDlcAddedMessage": "{0} 个DLC被添加",
- "AutoloadDlcAddedMessage": "{0} 个DLC被添加",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} 个游戏更新被添加",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
- "ModWindowHeading": "{0} Mod(s)",
+ "ModWindowHeading": "{0} 个 MOD",
"UserProfilesEditProfile": "编辑所选",
"Cancel": "取消",
"Save": "保存",
diff --git a/src/Ryujinx/Assets/Locales/zh_TW.json b/src/Ryujinx/Assets/Locales/zh_TW.json
index fd02254e1..14654c3cb 100644
--- a/src/Ryujinx/Assets/Locales/zh_TW.json
+++ b/src/Ryujinx/Assets/Locales/zh_TW.json
@@ -10,10 +10,8 @@
"SettingsTabSystemUseHypervisor": "使用 Hypervisor",
"MenuBarFile": "檔案(_F)",
"MenuBarFileOpenFromFile": "從檔案載入應用程式(_L)",
- "MenuBarFileOpenFromFileError": "未能從已選擇的檔案中找到應用程式。",
+ "MenuBarFileOpenFromFileError": "所選檔案中未找到應用程式。",
"MenuBarFileOpenUnpacked": "載入未封裝的遊戲(_U)",
- "MenuBarFileLoadDlcFromFolder": "從資料夾中載入 DLC",
- "MenuBarFileLoadTitleUpdatesFromFolder": "從資料夾中載入遊戲更新",
"MenuBarFileOpenEmuFolder": "開啟 Ryujinx 資料夾",
"MenuBarFileOpenLogsFolder": "開啟日誌資料夾",
"MenuBarFileExit": "結束(_E)",
@@ -100,14 +98,11 @@
"SettingsTabGeneralCheckUpdatesOnLaunch": "啟動時檢查更新",
"SettingsTabGeneralShowConfirmExitDialog": "顯示「確認結束」對話方塊",
"SettingsTabGeneralRememberWindowState": "記住視窗大小/位置",
- "SettingsTabGeneralShowTitleBar": "顯示「標題列」 (需要重新開啟Ryujinx)",
"SettingsTabGeneralHideCursor": "隱藏滑鼠游標:",
"SettingsTabGeneralHideCursorNever": "從不",
"SettingsTabGeneralHideCursorOnIdle": "閒置時",
"SettingsTabGeneralHideCursorAlways": "總是",
"SettingsTabGeneralGameDirectories": "遊戲資料夾",
- "SettingsTabGeneralAutoloadDirectories": "自動載入 DLC/遊戲更新資料夾",
- "SettingsTabGeneralAutoloadNote": "遺失的 DLC 及遊戲更新檔案將會在自動載入中移除",
"SettingsTabGeneralAdd": "新增",
"SettingsTabGeneralRemove": "刪除",
"SettingsTabSystem": "系統",
@@ -142,7 +137,6 @@
"SettingsTabSystemSystemTime": "系統時鐘:",
"SettingsTabSystemEnableVsync": "垂直同步",
"SettingsTabSystemEnablePptc": "PPTC (剖析式持久轉譯快取, Profiled Persistent Translation Cache)",
- "SettingsTabSystemEnableLowPowerPptc": "低功耗 PPTC",
"SettingsTabSystemEnableFsIntegrityChecks": "檔案系統完整性檢查",
"SettingsTabSystemAudioBackend": "音效後端:",
"SettingsTabSystemAudioBackendDummy": "虛設 (Dummy)",
@@ -151,13 +145,8 @@
"SettingsTabSystemAudioBackendSDL2": "SDL2",
"SettingsTabSystemHacks": "補釘修正",
"SettingsTabSystemHacksNote": "可能導致模擬器不穩定",
- "SettingsTabSystemDramSize": "使用替代的記憶體配置 (開發者專用)",
- "SettingsTabSystemDramSize4GiB": "4GiB",
- "SettingsTabSystemDramSize6GiB": "6GiB",
- "SettingsTabSystemDramSize8GiB": "8GiB",
- "SettingsTabSystemDramSize12GiB": "12GiB",
+ "SettingsTabSystemExpandDramSize": "Expand DRAM to 8GiB",
"SettingsTabSystemIgnoreMissingServices": "忽略缺少的模擬器功能",
- "SettingsTabSystemIgnoreApplet": "忽略小程式",
"SettingsTabGraphics": "圖形",
"SettingsTabGraphicsAPI": "圖形 API",
"SettingsTabGraphicsEnableShaderCache": "啟用著色器快取",
@@ -407,7 +396,6 @@
"AvatarSetBackgroundColor": "設定背景顏色",
"AvatarClose": "關閉",
"ControllerSettingsLoadProfileToolTip": "載入設定檔",
- "ControllerSettingsViewProfileToolTip": "View Profile",
"ControllerSettingsAddProfileToolTip": "新增設定檔",
"ControllerSettingsRemoveProfileToolTip": "刪除設定檔",
"ControllerSettingsSaveProfileToolTip": "儲存設定檔",
@@ -417,7 +405,7 @@
"GameListContextMenuToggleFavorite": "加入/移除為我的最愛",
"GameListContextMenuToggleFavoriteToolTip": "切換遊戲的我的最愛狀態",
"SettingsTabGeneralTheme": "佈景主題:",
- "SettingsTabGeneralThemeAuto": "自動",
+ "SettingsTabGeneralThemeAuto": "跟隨系統 (自動)",
"SettingsTabGeneralThemeDark": "深色",
"SettingsTabGeneralThemeLight": "淺色",
"ControllerSettingsConfigureGeneral": "配置",
@@ -438,7 +426,7 @@
"DialogMessageFindSaveErrorMessage": "尋找指定的存檔時出現錯誤: {0}",
"FolderDialogExtractTitle": "選擇要解壓到的資料夾",
"DialogNcaExtractionMessage": "從 {1} 提取 {0} 分區...",
- "DialogNcaExtractionTitle": "NCA 分區提取器",
+ "DialogNcaExtractionTitle": "Ryujinx - NCA 分區提取器",
"DialogNcaExtractionMainNcaNotFoundErrorMessage": "提取失敗。所選檔案中不存在主 NCA 檔案。",
"DialogNcaExtractionCheckLogErrorMessage": "提取失敗。請閱讀日誌檔案了解更多資訊。",
"DialogNcaExtractionSuccessMessage": "提取成功。",
@@ -456,7 +444,7 @@
"DialogUpdaterNoInternetMessage": "您沒有連線到網際網路!",
"DialogUpdaterNoInternetSubMessage": "請確認您的網際網路連線正常!",
"DialogUpdaterDirtyBuildMessage": "您無法更新非官方版本的 Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "如果您正在尋找受官方支援的版本,請從 https://https://github.com/GreemDev/Ryujinx/releases/ 下載 Ryujinx。",
+ "DialogUpdaterDirtyBuildSubMessage": "如果您正在尋找受官方支援的版本,請從 https://ryujinx.org/ 下載 Ryujinx。",
"DialogRestartRequiredMessage": "需要重新啟動",
"DialogThemeRestartMessage": "佈景主題設定已儲存。需要重新啟動才能套用主題。",
"DialogThemeRestartSubMessage": "您要重新啟動嗎",
@@ -537,7 +525,7 @@
"AboutGithubUrlTooltipMessage": "在預設瀏覽器中開啟 Ryujinx 的 GitHub 網頁。",
"AboutDiscordUrlTooltipMessage": "在預設瀏覽器中開啟 Ryujinx 的 Discord 邀請連結。",
"AboutTwitterUrlTooltipMessage": "在預設瀏覽器中開啟 Ryujinx 的 Twitter 網頁。",
- "AboutRyujinxAboutTitle": "關於:",
+ "AboutRyujinxAboutTitle": "關於:",
"AboutRyujinxAboutContent": "Ryujinx 是一款 Nintendo Switch™ 模擬器。\n請在 Patreon 上支持我們。\n關注我們的 Twitter 或 Discord 取得所有最新消息。\n對於有興趣貢獻的開發者,可以在我們的 GitHub 或 Discord 上了解更多資訊。",
"AboutRyujinxMaintainersTitle": "維護者:",
"AboutRyujinxMaintainersContentTooltipMessage": "在預設瀏覽器中開啟貢獻者的網頁",
@@ -568,9 +556,6 @@
"AddGameDirBoxTooltip": "輸入要新增到清單中的遊戲資料夾",
"AddGameDirTooltip": "新增遊戲資料夾到清單中",
"RemoveGameDirTooltip": "移除選取的遊戲資料夾",
- "AddAutoloadDirBoxTooltip": "輸入要新增到清單中的「自動載入 DLC/遊戲更新資料夾」",
- "AddAutoloadDirTooltip": "新增「自動載入 DLC/遊戲更新資料夾」到清單中",
- "RemoveAutoloadDirTooltip": "移除選取的「自動載入 DLC/遊戲更新資料夾」",
"CustomThemeCheckTooltip": "為圖形使用者介面使用自訂 Avalonia 佈景主題,變更模擬器功能表的外觀",
"CustomThemePathTooltip": "自訂 GUI 佈景主題的路徑",
"CustomThemeBrowseTooltip": "瀏覽自訂 GUI 佈景主題",
@@ -583,7 +568,6 @@
"TimeTooltip": "變更系統時鐘",
"VSyncToggleTooltip": "模擬遊戲機的垂直同步。對大多數遊戲來說,它本質上是一個幀率限制器;停用它可能會導致遊戲以更高的速度執行,或使載入畫面耗時更長或卡住。\n\n可以在遊戲中使用快速鍵進行切換 (預設為 F1)。如果您打算停用,我們建議您這樣做。\n\n如果不確定,請保持開啟狀態。",
"PptcToggleTooltip": "儲存已轉譯的 JIT 函數,這樣每次載入遊戲時就無需再轉譯這些函數。\n\n減少遊戲首次啟動後的卡頓現象,並大大加快啟動時間。\n\n如果不確定,請保持開啟狀態。",
- "LowPowerPptcToggleTooltip": "使用 CPU 核心數量的三分之一載入 PPTC。",
"FsIntegrityToggleTooltip": "在啟動遊戲時檢查損壞的檔案,如果檢測到損壞的檔案,則在日誌中顯示雜湊值錯誤。\n\n對效能沒有影響,旨在幫助排除故障。\n\n如果不確定,請保持開啟狀態。",
"AudioBackendTooltip": "變更用於繪製音訊的後端。\n\nSDL2 是首選,而 OpenAL 和 SoundIO 則作為備用。虛設 (Dummy) 將沒有聲音。\n\n如果不確定,請設定為 SDL2。",
"MemoryManagerTooltip": "變更客體記憶體的映射和存取方式。這會極大地影響模擬 CPU 效能。\n\n如果不確定,請設定為主體略過檢查模式。",
@@ -591,9 +575,8 @@
"MemoryManagerHostTooltip": "直接映射主體位址空間中的記憶體。更快的 JIT 編譯和執行速度。",
"MemoryManagerUnsafeTooltip": "直接映射記憶體,但在存取前不封鎖客體位址空間內的位址。速度更快,但相對不安全。訪客應用程式可以從 Ryujinx 中的任何地方存取記憶體,因此只能使用該模式執行您信任的程式。",
"UseHypervisorTooltip": "使用 Hypervisor 取代 JIT。使用時可大幅提高效能,但在目前狀態下可能不穩定。",
- "DRamTooltip": "利用另一種 MemoryMode 配置來模仿 Switch 開發模式。\n\n這僅對高解析度紋理套件或 4K 解析度模組有用。不會提高效能。\n\n如果不確定,請設定為 4GiB。",
+ "DRamTooltip": "Utilizes an alternative memory mode with 8GiB of DRAM to mimic a Switch development model.\n\nThis is only useful for higher-resolution texture packs or 4k resolution mods. Does NOT improve performance.\n\nLeave OFF if unsure.",
"IgnoreMissingServicesTooltip": "忽略未實現的 Horizon OS 服務。這可能有助於在啟動某些遊戲時避免崩潰。\n\n如果不確定,請保持關閉狀態。",
- "IgnoreAppletTooltip": "如果遊戲手把在遊戲過程中斷開連接,則外部對話方塊「控制器小程式」將不會出現。不會提示關閉對話方塊或設定新控制器。一旦先前斷開的控制器重新連接,遊戲將自動恢復。",
"GraphicsBackendThreadingTooltip": "在第二個執行緒上執行圖形後端指令。\n\n在本身不支援多執行緒的 GPU 驅動程式上,可加快著色器編譯、減少卡頓並提高效能。在支援多執行緒的驅動程式上效能略有提升。\n\n如果不確定,請設定為自動。",
"GalThreadingTooltip": "在第二個執行緒上執行圖形後端指令。\n\n在本身不支援多執行緒的 GPU 驅動程式上,可加快著色器編譯、減少卡頓並提高效能。在支援多執行緒的驅動程式上效能略有提升。\n\n如果不確定,請設定為自動。",
"ShaderCacheToggleTooltip": "儲存磁碟著色器快取,減少後續執行時的卡頓。\n\n如果不確定,請保持開啟狀態。",
@@ -616,8 +599,6 @@
"DebugLogTooltip": "在控制台中輸出偵錯日誌訊息。\n\n只有在人員特別指示的情況下才能使用,因為這會導致日誌難以閱讀,並降低模擬器效能。",
"LoadApplicationFileTooltip": "開啟檔案總管,選擇與 Switch 相容的檔案來載入",
"LoadApplicationFolderTooltip": "開啟檔案總管,選擇與 Switch 相容且未封裝的應用程式來載入",
- "LoadDlcFromFolderTooltip": "開啟檔案總管,選擇一個或多個資料夾來大量載入 DLC",
- "LoadTitleUpdatesFromFolderTooltip": "開啟檔案總管,選擇一個或多個資料夾來大量載入遊戲更新",
"OpenRyujinxFolderTooltip": "開啟 Ryujinx 檔案系統資料夾",
"OpenRyujinxLogsTooltip": "開啟日誌被寫入的資料夾",
"ExitTooltip": "結束 Ryujinx",
@@ -630,7 +611,7 @@
"GridSizeTooltip": "調整網格的大小",
"SettingsTabSystemSystemLanguageBrazilianPortuguese": "巴西葡萄牙文",
"AboutRyujinxContributorsButtonHeader": "查看所有貢獻者",
- "SettingsTabSystemAudioVolume": "音量:",
+ "SettingsTabSystemAudioVolume": "音量: ",
"AudioVolumeTooltip": "調節音量",
"SettingsTabSystemEnableInternetAccess": "訪客網際網路存取/區域網路模式",
"EnableInternetAccessTooltip": "允許模擬應用程式連線網際網路。\n\n當啟用此功能且系統連線到同一接入點時,具有區域網路模式的遊戲可相互連線。這也包括真正的遊戲機。\n\n不允許連接 Nintendo 伺服器。可能會導致某些嘗試連線網際網路的遊戲崩潰。\n\n如果不確定,請保持關閉狀態。",
@@ -669,8 +650,8 @@
"OpenSetupGuideMessage": "開啟設定指南",
"NoUpdate": "沒有更新",
"TitleUpdateVersionLabel": "版本 {0}",
- "TitleBundledUpdateVersionLabel": "附帶: 版本 {0}",
- "TitleBundledDlcLabel": "附帶:",
+ "TitleBundledUpdateVersionLabel": "已預裝: 版本 {0}",
+ "TitleBundledDlcLabel": "已預裝:",
"RyujinxInfo": "Ryujinx - 資訊",
"RyujinxConfirm": "Ryujinx - 確認",
"FileDialogAllTypes": "全部類型",
@@ -728,17 +709,9 @@
"DlcWindowTitle": "管理 {0} 的可下載內容 ({1})",
"ModWindowTitle": "管理 {0} 的模組 ({1})",
"UpdateWindowTitle": "遊戲更新管理員",
- "UpdateWindowUpdateAddedMessage": "已加入 {0} 個遊戲更新",
- "UpdateWindowBundledContentNotice": "附帶的遊戲更新只能被停用而無法被刪除。",
"CheatWindowHeading": "可用於 {0} [{1}] 的密技",
"BuildId": "組建識別碼:",
- "DlcWindowBundledContentNotice": "附帶的 DLC 只能被停用而無法被刪除。",
"DlcWindowHeading": "{0} 個可下載內容",
- "DlcWindowDlcAddedMessage": "已加入 {0} 個 DLC",
- "AutoloadDlcAddedMessage": "已加入 {0} 個 DLC",
- "AutoloadDlcRemovedMessage": "已刪除 {0} 個遺失的 DLC",
- "AutoloadUpdateAddedMessage": "已加入 {0} 個遊戲更新",
- "AutoloadUpdateRemovedMessage": "已刪除 {0} 個遺失的遊戲更新",
"ModWindowHeading": "{0} 模組",
"UserProfilesEditProfile": "編輯所選",
"Cancel": "取消",
@@ -785,7 +758,7 @@
"GraphicsAATooltip": "對遊戲繪製進行反鋸齒處理。\n\nFXAA 會模糊大部分圖像,而 SMAA 則會嘗試找出鋸齒邊緣並將其平滑化。\n\n不建議與 FSR 縮放濾鏡一起使用。\n\n此選項可在遊戲執行時透過點選下方的「套用」進行變更;您只需將設定視窗移到一旁,然後進行試驗,直到找到您喜歡的遊戲效果。\n\n如果不確定,請選擇無狀態。",
"GraphicsAALabel": "反鋸齒:",
"GraphicsScalingFilterLabel": "縮放過濾器:",
- "GraphicsScalingFilterTooltip": "選擇使用解析度縮放時套用的縮放過濾器。\n\n雙線性 (Bilinear) 濾鏡適用於 3D 遊戲,是一個安全的預設選項。\n\n建議像素美術遊戲使用近鄰性 (Nearest) 濾鏡。\n\nFSR 1.0 只是一個銳化濾鏡,不建議與 FXAA 或 SMAA 一起使用。\n\n此選項可在遊戲執行時透過點選下方的「套用」進行變更;您只需將設定視窗移到一旁,然後進行試驗,直到找到您喜歡的遊戲效果。\n\n如果不確定,請保持雙線性 (Bilinear) 狀態。",
+ "GraphicsScalingFilterTooltip": "Choose the scaling filter that will be applied when using resolution scale.\n\nBilinear works well for 3D games and is a safe default option.\n\nNearest is recommended for pixel art games.\n\nFSR 1.0 is merely a sharpening filter, not recommended for use with FXAA or SMAA.\n\nArea scaling is recommended when downscaling resolutions that are larger than the output window. It can be used to achieve a supersampled anti-aliasing effect when downscaling by more than 2x.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on BILINEAR if unsure.",
"GraphicsScalingFilterBilinear": "雙線性 (Bilinear)",
"GraphicsScalingFilterNearest": "近鄰性 (Nearest)",
"GraphicsScalingFilterFsr": "FSR",
--
2.47.1
From 0c23104792aa5c65a470c8eac11298ebb53bb40c Mon Sep 17 00:00:00 2001
From: GabCoolGuy
Date: Fri, 15 Nov 2024 07:24:18 +0100
Subject: [PATCH 003/674] Add mention of canary to README.md (#236)
---
README.md | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/README.md b/README.md
index 7fa78c4b0..2f0f72dad 100644
--- a/README.md
+++ b/README.md
@@ -70,12 +70,18 @@ Use the search function to see if a game has been tested already!
To run this emulator, your PC must be equipped with at least 8GiB of RAM;
failing to meet this requirement may result in a poor gameplay experience or unexpected crashes.
-## Latest release
+## Latest build
-Releases are compiled automatically for each commit on the master branch.
-While we strive to ensure optimal stability and performance prior to pushing an update, our automated builds **may be unstable or completely broken**.
+Stable builds are made every so often onto a separate "release" branch that then gets put into the releases you know and love.
+These stable builds exist so that the end user can get a more **enjoyable and stable experience**.
-You can find the latest release [here](https://github.com/GreemDev/Ryujinx/releases/latest).
+You can find the latest stable release [here](https://github.com/GreemDev/Ryujinx/releases/latest).
+
+Canary builds are compiled automatically for each commit on the master branch.
+While we strive to ensure optimal stability and performance prior to pushing an update, these builds **may be unstable or completely broken**.
+These canary builds are only recommended for experienced users.
+
+You can find the latest canary release [here](https://github.com/GreemDev/Ryujinx-Canary/releases/latest).
## Documentation
--
2.47.1
From 1e53a170415b9a0daa834f8633ecd47f46ca1acd Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Fri, 15 Nov 2024 01:18:00 -0600
Subject: [PATCH 004/674] misc: Add LEGO Horizon Adventures image asset to
Discord RPC
---
src/Ryujinx.UI.Common/DiscordIntegrationModule.cs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs b/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs
index d4b2a4187..a26f6a7b2 100644
--- a/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs
+++ b/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs
@@ -248,7 +248,7 @@ namespace Ryujinx.UI.Common
"0100744001588000", // Cars 3: Driven to Win
"0100b41013c82000", // Cruis'n Blast
"01008c8012920000", // Dying Light Platinum Edition
- "01000a10041ea000", // The Elder Scrolls V: Skyrim
+ "010073c01af34000", // LEGO Horizon Adventures
"0100770008dd8000", // Monster Hunter Generations Ultimate
"0100b04011742000", // Monster Hunter Rise
"0100853015e86000", // No Man's Sky
@@ -263,6 +263,7 @@ namespace Ryujinx.UI.Common
"0100d7a01b7a2000", // Star Wars: Bounty Hunter
"0100800015926000", // Suika Game
"0100e46006708000", // Terraria
+ "01000a10041ea000", // The Elder Scrolls V: Skyrim
"010080b00ad66000", // Undertale
];
}
--
2.47.1
From 9b90e81817c06b8ef3495862af1a97de576d3f39 Mon Sep 17 00:00:00 2001
From: EmulationEnjoyer <144477224+EmulationEnjoyer@users.noreply.github.com>
Date: Fri, 15 Nov 2024 07:26:35 +0000
Subject: [PATCH 005/674] Fix window sizing when "Show Title Bar" is enabled
(#247)
Fixes a bug that causes the main window to not size properly when the
TitleBar is enabled (i.e.: when the TitleBar and MenuStrip are separate
entities). Corrects the size for main window startup and when a user
clicks a "View > Window Size > *Resolution Here*" MenuStripItem
Prior to this fix if a user selects 720p/1080p and "Show Title Bar" is
enabled, the window would be sized smaller than intended and display
black bars on the sides of the render area
---
.../UI/Views/Main/MainMenuBarView.axaml.cs | 14 ++++++++++----
src/Ryujinx/UI/Windows/MainWindow.axaml.cs | 18 ++++++++++++------
2 files changed, 22 insertions(+), 10 deletions(-)
diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
index ce4d9fd59..144ab408f 100644
--- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
+++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
@@ -184,18 +184,24 @@ namespace Ryujinx.Ava.UI.Views.Main
if (sender is not MenuItem { Tag: string resolution })
return;
- (int width, int height) = resolution.Split(' ', 2)
+ (int resolutionWidth, int resolutionHeight) = resolution.Split(' ', 2)
.Into(parts =>
(int.Parse(parts[0]), int.Parse(parts[1]))
);
+ // Correctly size window when 'TitleBar' is enabled (Nov. 14, 2024)
+ double barsHeight = ((Window.StatusBarHeight + Window.MenuBarHeight) +
+ (ConfigurationState.Instance.ShowTitleBar ? (int)Window.TitleBar.Height : 0));
+
+ double windowWidthScaled = (resolutionWidth * Program.WindowScaleFactor);
+ double windowHeightScaled = ((resolutionHeight + barsHeight) * Program.WindowScaleFactor);
+
await Dispatcher.UIThread.InvokeAsync(() =>
{
+
ViewModel.WindowState = WindowState.Normal;
- height += (int)Window.StatusBarHeight + (int)Window.MenuBarHeight;
-
- Window.Arrange(new Rect(Window.Position.X, Window.Position.Y, width, height));
+ Window.Arrange(new Rect(Window.Position.X, Window.Position.Y, windowWidthScaled, windowHeightScaled));
});
}
diff --git a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
index a43c29518..4ddcee07f 100644
--- a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
+++ b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
@@ -65,6 +65,9 @@ namespace Ryujinx.Ava.UI.Windows
public static bool ShowKeyErrorOnLoad { get; set; }
public ApplicationLibrary ApplicationLibrary { get; set; }
+ // Correctly size window when 'TitleBar' is enabled (Nov. 14, 2024)
+ public readonly double TitleBarHeight;
+
public readonly double StatusBarHeight;
public readonly double MenuBarHeight;
@@ -85,12 +88,12 @@ namespace Ryujinx.Ava.UI.Windows
TitleBar.ExtendsContentIntoTitleBar = !ConfigurationState.Instance.ShowTitleBar;
TitleBar.TitleBarHitTestType = (ConfigurationState.Instance.ShowTitleBar) ? TitleBarHitTestType.Simple : TitleBarHitTestType.Complex;
+ // Correctly size window when 'TitleBar' is enabled (Nov. 14, 2024)
+ TitleBarHeight = (ConfigurationState.Instance.ShowTitleBar ? TitleBar.Height : 0);
+
// NOTE: Height of MenuBar and StatusBar is not usable here, since it would still be 0 at this point.
StatusBarHeight = StatusBarView.StatusBar.MinHeight;
MenuBarHeight = MenuBar.MinHeight;
- double barHeight = MenuBarHeight + StatusBarHeight;
- Height = ((Height - barHeight) / Program.WindowScaleFactor) + barHeight;
- Width /= Program.WindowScaleFactor;
SetWindowSizePosition();
@@ -406,7 +409,8 @@ namespace Ryujinx.Ava.UI.Windows
{
if (!ConfigurationState.Instance.RememberWindowState)
{
- ViewModel.WindowHeight = (720 + StatusBarHeight + MenuBarHeight) * Program.WindowScaleFactor;
+ // Correctly size window when 'TitleBar' is enabled (Nov. 14, 2024)
+ ViewModel.WindowHeight = (720 + StatusBarHeight + MenuBarHeight + TitleBarHeight) * Program.WindowScaleFactor;
ViewModel.WindowWidth = 1280 * Program.WindowScaleFactor;
WindowState = WindowState.Normal;
@@ -441,8 +445,10 @@ namespace Ryujinx.Ava.UI.Windows
// Only save rectangle properties if the window is not in a maximized state.
if (WindowState != WindowState.Maximized)
{
- ConfigurationState.Instance.UI.WindowStartup.WindowSizeHeight.Value = (int)Height;
- ConfigurationState.Instance.UI.WindowStartup.WindowSizeWidth.Value = (int)Width;
+ // Since scaling is being applied to the loaded settings from disk (see SetWindowSizePosition() above), scaling should be removed from width/height before saving out to disk
+ // as well - otherwise anyone not using a 1.0 scale factor their window will increase in size with every subsequent launch of the program when scaling is applied (Nov. 14, 2024)
+ ConfigurationState.Instance.UI.WindowStartup.WindowSizeHeight.Value = (int)(Height / Program.WindowScaleFactor);
+ ConfigurationState.Instance.UI.WindowStartup.WindowSizeWidth.Value = (int)(Width / Program.WindowScaleFactor);
ConfigurationState.Instance.UI.WindowStartup.WindowPositionX.Value = Position.X;
ConfigurationState.Instance.UI.WindowStartup.WindowPositionY.Value = Position.Y;
--
2.47.1
From 6de3afc43db0a3b130d2444742e5a89237847f81 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Fri, 15 Nov 2024 06:02:26 -0600
Subject: [PATCH 006/674] misc: chore: Move build instructions into its own
markdown file; remove compatibility section since there's no games list.
---
COMPILING.md | 23 +++++++++++++++++++++++
README.md | 33 ---------------------------------
2 files changed, 23 insertions(+), 33 deletions(-)
create mode 100644 COMPILING.md
diff --git a/COMPILING.md b/COMPILING.md
new file mode 100644
index 000000000..06cebab44
--- /dev/null
+++ b/COMPILING.md
@@ -0,0 +1,23 @@
+## Compilation
+
+Building the project is for advanced users.
+If you wish to build the emulator yourself, follow these steps:
+
+### Step 1
+
+Install the [.NET 8.0 (or higher) SDK](https://dotnet.microsoft.com/download/dotnet/8.0).
+Make sure your SDK version is higher or equal to the required version specified in [global.json](global.json).
+
+### Step 2
+
+Either use `git clone https://github.com/GreemDev/Ryujinx` on the command line to clone the repository or use Code --> Download zip button to get the files.
+
+### Step 3
+
+To build Ryujinx, open a command prompt inside the project directory.
+You can quickly access it on Windows by holding shift in File Explorer, then right clicking and selecting `Open command window here`.
+Then type the following command: `dotnet build -c Release -o build`
+the built files will be found in the newly created build directory.
+
+Ryujinx system files are stored in the `Ryujinx` folder.
+This folder is located in the user folder, which can be accessed by clicking `Open Ryujinx Folder` under the File menu in the GUI.
\ No newline at end of file
diff --git a/README.md b/README.md
index 2f0f72dad..3bc223f3a 100644
--- a/README.md
+++ b/README.md
@@ -56,15 +56,6 @@
-## Compatibility
-
-As of May 2024, Ryujinx has been tested on approximately 4,300 titles;
-over 4,100 boot past menus and into gameplay, with roughly 3,550 of those being considered playable.
-
-Anyone is free to submit a new game test or update an existing game test entry;
-simply follow the new issue template and testing guidelines, or post as a reply to the applicable game issue.
-Use the search function to see if a game has been tested already!
-
## Usage
To run this emulator, your PC must be equipped with at least 8GiB of RAM;
@@ -87,30 +78,6 @@ You can find the latest canary release [here](https://github.com/GreemDev/Ryujin
If you are planning to contribute or just want to learn more about this project please read through our [documentation](docs/README.md).
-## Building
-
-Building the project is for advanced users.
-If you wish to build the emulator yourself, follow these steps:
-
-### Step 1
-
-Install the [.NET 8.0 (or higher) SDK](https://dotnet.microsoft.com/download/dotnet/8.0).
-Make sure your SDK version is higher or equal to the required version specified in [global.json](global.json).
-
-### Step 2
-
-Either use `git clone https://github.com/GreemDev/Ryujinx` on the command line to clone the repository or use Code --> Download zip button to get the files.
-
-### Step 3
-
-To build Ryujinx, open a command prompt inside the project directory.
-You can quickly access it on Windows by holding shift in File Explorer, then right clicking and selecting `Open command window here`.
-Then type the following command: `dotnet build -c Release -o build`
-the built files will be found in the newly created build directory.
-
-Ryujinx system files are stored in the `Ryujinx` folder.
-This folder is located in the user folder, which can be accessed by clicking `Open Ryujinx Folder` under the File menu in the GUI.
-
## Features
- **Audio**
--
2.47.1
From d394dd769a4f8390c41a978e8187964ca3312ef0 Mon Sep 17 00:00:00 2001
From: Nicola <61830443+nicola02nb@users.noreply.github.com>
Date: Sun, 17 Nov 2024 07:15:06 +0100
Subject: [PATCH 007/674] Updated IT translation file (#243)
---
src/Ryujinx/Assets/Locales/it_IT.json | 80 ++++++++++++++++++++-------
1 file changed, 60 insertions(+), 20 deletions(-)
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index ee2bd3a16..349b53500 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -33,8 +33,9 @@
"MenuBarFileLoadDlcFromFolder": "Carica DLC Da una Cartella",
"MenuBarFileLoadTitleUpdatesFromFolder": "Carica Aggiornamenti Da una Cartella",
"MenuBarFileOpenFromFileError": "Nessuna applicazione trovata nel file selezionato",
- "MenuBarView": "_View",
- "MenuBarViewWindow": "Window Size",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
+ "MenuBarView": "_Vista",
+ "MenuBarViewWindow": "Dimensione Finestra",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "_Aiuto",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Apre la cartella che contiene le mod dell'applicazione",
"GameListContextMenuOpenSdModsDirectory": "Apri la cartella delle mod Atmosphere",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Apre la cartella alternativa di Atmosphere sulla scheda SD che contiene le mod dell'applicazione. Utile per le mod create per funzionare sull'hardware reale.",
- "StatusBarGamesLoaded": "{0}/{1} giochi caricati",
+ "GameListContextMenuTrimXCI": "Controlla e Trimma i file XCI",
+ "GameListContextMenuTrimXCIToolTip": "Controlla e Trimma i file XCI da Salvare Sullo Spazio del Disco",
+ "StatusBarGamesLoaded": "{0}/{1} Giochi Caricati",
"StatusBarSystemVersion": "Versione di sistema: {0}",
+ "StatusBarXCIFileTrimming": "Trimmando i file XCI '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Rilevato limite basso per le mappature di memoria",
"LinuxVmMaxMapCountDialogTextPrimary": "Vuoi aumentare il valore di vm.max_map_count a {0}?",
"LinuxVmMaxMapCountDialogTextSecondary": "Alcuni giochi potrebbero provare a creare più mappature di memoria di quanto sia attualmente consentito. Ryujinx si bloccherà non appena questo limite viene superato.",
@@ -99,8 +103,8 @@
"SettingsTabGeneralEnableDiscordRichPresence": "Attiva Discord Rich Presence",
"SettingsTabGeneralCheckUpdatesOnLaunch": "Controlla aggiornamenti all'avvio",
"SettingsTabGeneralShowConfirmExitDialog": "Mostra dialogo \"Conferma Uscita\"",
- "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralRememberWindowState": "Ricorda Dimensione/Posizione Finestra",
+ "SettingsTabGeneralShowTitleBar": "Mostra barra del titolo (Richiede il riavvio)",
"SettingsTabGeneralHideCursor": "Nascondi il cursore:",
"SettingsTabGeneralHideCursorNever": "Mai",
"SettingsTabGeneralHideCursorOnIdle": "Quando è inattivo",
@@ -400,6 +404,8 @@
"InputDialogTitle": "Finestra di input",
"InputDialogOk": "OK",
"InputDialogCancel": "Annulla",
+ "InputDialogCancelling": "Cancellando",
+ "InputDialogClose": "Chiudi",
"InputDialogAddNewProfileTitle": "Scegli il nome del profilo",
"InputDialogAddNewProfileHeader": "Digita un nome profilo",
"InputDialogAddNewProfileSubtext": "(Lunghezza massima: {0})",
@@ -407,7 +413,7 @@
"AvatarSetBackgroundColor": "Imposta colore di sfondo",
"AvatarClose": "Chiudi",
"ControllerSettingsLoadProfileToolTip": "Carica profilo",
- "ControllerSettingsViewProfileToolTip": "View Profile",
+ "ControllerSettingsViewProfileToolTip": "Visualizza profilo",
"ControllerSettingsAddProfileToolTip": "Aggiungi profilo",
"ControllerSettingsRemoveProfileToolTip": "Rimuovi profilo",
"ControllerSettingsSaveProfileToolTip": "Salva profilo",
@@ -417,7 +423,7 @@
"GameListContextMenuToggleFavorite": "Preferito",
"GameListContextMenuToggleFavoriteToolTip": "Segna il gioco come preferito",
"SettingsTabGeneralTheme": "Tema:",
- "SettingsTabGeneralThemeAuto": "Auto",
+ "SettingsTabGeneralThemeAuto": "Automatico",
"SettingsTabGeneralThemeDark": "Scuro",
"SettingsTabGeneralThemeLight": "Chiaro",
"ControllerSettingsConfigureGeneral": "Configura",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "Tipi di file disinstallati con successo!",
"DialogUninstallFileTypesErrorMessage": "Disinstallazione dei tipi di file non riuscita.",
"DialogOpenSettingsWindowLabel": "Apri finestra delle impostazioni",
+ "DialogOpenXCITrimmerWindowLabel": "Finestra XCI Trimmer",
"DialogControllerAppletTitle": "Applet del controller",
"DialogMessageDialogErrorExceptionMessage": "Errore nella visualizzazione del Message Dialog: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Errore nella visualizzazione della tastiera software: {0}",
@@ -522,7 +529,7 @@
"DialogModManagerDeletionAllWarningMessage": "Stai per eliminare tutte le mod per questo titolo.\n\nVuoi davvero procedere?",
"SettingsTabGraphicsFeaturesOptions": "Funzionalità",
"SettingsTabGraphicsBackendMultithreading": "Multithreading del backend grafico:",
- "CommonAuto": "Auto",
+ "CommonAuto": "Automatico",
"CommonOff": "Disattivato",
"CommonOn": "Attivo",
"InputDialogYes": "Sì",
@@ -669,9 +676,15 @@
"OpenSetupGuideMessage": "Apri la guida all'installazione",
"NoUpdate": "Nessun aggiornamento",
"TitleUpdateVersionLabel": "Versione {0}",
- "TitleBundledUpdateVersionLabel": "Incluso: Version {0}",
- "TitleBundledDlcLabel": "Incluso:",
- "RyujinxInfo": "Ryujinx - Info",
+ "TitleBundledUpdateVersionLabel": "In bundle: Versione {0}",
+ "TitleBundledDlcLabel": "In bundle:",
+ "TitleXCIStatusPartialLabel": "Parziale",
+ "TitleXCIStatusTrimmableLabel": "Non Trimmato",
+ "TitleXCIStatusUntrimmableLabel": "Trimmato",
+ "TitleXCIStatusFailedLabel": "(Fallito)",
+ "TitleXCICanSaveLabel": "Salva {0:n0} Mb",
+ "TitleXCISavingLabel": "Salva {0:n0} Mb",
+ "RyujinxInfo": "Ryujinx - Informazioni",
"RyujinxConfirm": "Ryujinx - Conferma",
"FileDialogAllTypes": "Tutti i tipi",
"Never": "Mai",
@@ -723,27 +736,54 @@
"SelectDlcDialogTitle": "Seleziona file dei DLC",
"SelectUpdateDialogTitle": "Seleziona file di aggiornamento",
"SelectModDialogTitle": "Seleziona cartella delle mod",
+ "TrimXCIFileDialogTitle": "Controlla e Trimma i file XCI ",
+ "TrimXCIFileDialogPrimaryText": "Questa funzionalita controllerà prima lo spazio libero e poi trimmerà il file XCI per liberare dello spazio.",
+ "TrimXCIFileDialogSecondaryText": "Dimensioni Attuali File: {0:n} MB\nDimensioni Dati Gioco: {1:n} MB\nRisparimio Spazio Disco: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "Il file XCI non deve essere trimmato. Controlla i log per ulteriori dettagli",
+ "TrimXCIFileNoUntrimPossible": "Il file XCI non può essere untrimmato. Controlla i log per ulteriori dettagli",
+ "TrimXCIFileReadOnlyFileCannotFix": "Il file XCI è in sola lettura e non può essere reso Scrivibile. Controlla i log per ulteriori dettagli",
+ "TrimXCIFileFileSizeChanged": "Il file XCI ha cambiato dimensioni da quando è stato scansionato. Controlla che il file non stia venendo scritto da qualche altro programma e poi riprova.",
+ "TrimXCIFileFreeSpaceCheckFailed": "Il file XCI ha dati nello spazio libero, non è sicuro effettuare il trimming",
+ "TrimXCIFileInvalidXCIFile": "Il file XCI contiene dati invlidi. Controlla i log per ulteriori dettagli",
+ "TrimXCIFileFileIOWriteError": "Il file XCI non può essere aperto per essere scritto. Controlla i log per ulteriori dettagli",
+ "TrimXCIFileFailedPrimaryText": "Trimming del file XCI fallito",
+ "TrimXCIFileCancelled": "Operazione Cancellata",
+ "TrimXCIFileFileUndertermined": "Nessuna operazione è stata effettuata",
"UserProfileWindowTitle": "Gestione profili utente",
"CheatWindowTitle": "Gestione trucchi",
"DlcWindowTitle": "Gestisci DLC per {0} ({1})",
"ModWindowTitle": "Gestisci mod per {0} ({1})",
"UpdateWindowTitle": "Gestione aggiornamenti",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} di {1} Titolo(i) Selezionati",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Titolo(i) Selezionati ({2} visualizzato)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Titolo(i)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Titolo(i)...",
+ "XCITrimmerTitleStatusFailed": "Fallito",
+ "XCITrimmerPotentialSavings": "Potenziali Salvataggi",
+ "XCITrimmerActualSavings": "Effettivi Salvataggi",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Seleziona Visualizzati",
+ "XCITrimmerDeselectDisplayed": "Deselziona Visualizzati",
+ "XCITrimmerSortName": "Titolo",
+ "XCITrimmerSortSaved": "Salvataggio Spazio",
+ "UpdateWindowUpdateAddedMessage": "{0} aggiornamento/i aggiunto/i",
+ "UpdateWindowBundledContentNotice": "Gli aggiornamenti inclusi non possono essere eliminati, ma solo disattivati",
"CheatWindowHeading": "Trucchi disponibili per {0} [{1}]",
"BuildId": "ID Build",
+ "DlcWindowBundledContentNotice": "i DLC \"impacchettati\" non possono essere rimossi, ma solo disabilitati.",
"DlcWindowHeading": "DLC disponibili per {0} [{1}]",
- "ModWindowHeading": "{0} mod",
- "UserProfilesEditProfile": "Modifica selezionati",
- "Cancel": "Annulla",
- "Save": "Salva",
- "Discard": "Scarta",
- "UpdateWindowBundledContentNotice": "Gli aggiornamenti inclusi non possono essere eliminati, ma solo disattivati",
+ "DlcWindowDlcAddedMessage": "{0} nuovo/i contenuto/i scaricabile/i aggiunto/i",
"AutoloadDlcAddedMessage": "{0} contenuto/i scaricabile/i aggiunto/i",
"AutoloadDlcRemovedMessage": "{0} contenuto/i scaricabile/i mancante/i rimosso/i",
"AutoloadUpdateAddedMessage": "{0} aggiornamento/i aggiunto/i",
"AutoloadUpdateRemovedMessage": "{0} aggiornamento/i mancante/i rimosso/i",
- "DlcWindowBundledContentNotice": "i DLC \"impacchettati\" non possono essere rimossi, ma solo disabilitati.",
- "DlcWindowDlcAddedMessage": "{0} nuovo/i contenuto/i scaricabile/i aggiunto/i",
- "UpdateWindowUpdateAddedMessage": "{0} aggiornamento/i aggiunto/i",
+ "ModWindowHeading": "{0} mod",
+ "UserProfilesEditProfile": "Modifica selezionati",
+ "Continue": "Continua",
+ "Cancel": "Annulla",
+ "Save": "Salva",
+ "Discard": "Scarta",
"Paused": "In pausa",
"UserProfilesSetProfileImage": "Imposta immagine profilo",
"UserProfileEmptyNameError": "Il nome è obbligatorio",
--
2.47.1
From e5d076a1b2e5c7abac41758f3c7ac6c040502586 Mon Sep 17 00:00:00 2001
From: Nicola <61830443+nicola02nb@users.noreply.github.com>
Date: Sun, 17 Nov 2024 07:16:05 +0100
Subject: [PATCH 008/674] Fixed some broken urls (#249)
---
src/Ryujinx/Assets/Locales/ar_SA.json | 2 +-
src/Ryujinx/Assets/Locales/de_DE.json | 2 +-
src/Ryujinx/Assets/Locales/el_GR.json | 2 +-
src/Ryujinx/Assets/Locales/en_US.json | 2 +-
src/Ryujinx/Assets/Locales/es_ES.json | 2 +-
src/Ryujinx/Assets/Locales/fr_FR.json | 2 +-
src/Ryujinx/Assets/Locales/he_IL.json | 2 +-
src/Ryujinx/Assets/Locales/it_IT.json | 2 +-
src/Ryujinx/Assets/Locales/ja_JP.json | 2 +-
src/Ryujinx/Assets/Locales/ko_KR.json | 4 ++--
src/Ryujinx/Assets/Locales/pl_PL.json | 2 +-
src/Ryujinx/Assets/Locales/pt_BR.json | 2 +-
src/Ryujinx/Assets/Locales/ru_RU.json | 2 +-
src/Ryujinx/Assets/Locales/th_TH.json | 2 +-
src/Ryujinx/Assets/Locales/tr_TR.json | 2 +-
src/Ryujinx/Assets/Locales/uk_UA.json | 2 +-
src/Ryujinx/Assets/Locales/zh_CN.json | 2 +-
src/Ryujinx/Assets/Locales/zh_TW.json | 2 +-
18 files changed, 19 insertions(+), 19 deletions(-)
diff --git a/src/Ryujinx/Assets/Locales/ar_SA.json b/src/Ryujinx/Assets/Locales/ar_SA.json
index 495ab4b4d..723a7f133 100644
--- a/src/Ryujinx/Assets/Locales/ar_SA.json
+++ b/src/Ryujinx/Assets/Locales/ar_SA.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "أنت غير متصل بالإنترنت.",
"DialogUpdaterNoInternetSubMessage": "يرجى التحقق من أن لديك اتصال إنترنت فعال!",
"DialogUpdaterDirtyBuildMessage": "لا يمكنك تحديث نسخة القذرة من ريوجينكس!",
- "DialogUpdaterDirtyBuildSubMessage": "الرجاء تحميل ريوجينكس من https://https://github.com/GreemDev/Ryujinx/releases إذا كنت تبحث عن إصدار مدعوم.",
+ "DialogUpdaterDirtyBuildSubMessage": "الرجاء تحميل ريوجينكس من https://ryujinx.app/download إذا كنت تبحث عن إصدار مدعوم.",
"DialogRestartRequiredMessage": "يتطلب إعادة التشغيل",
"DialogThemeRestartMessage": "تم حفظ السمة. إعادة التشغيل مطلوبة لتطبيق السمة.",
"DialogThemeRestartSubMessage": "هل تريد إعادة التشغيل",
diff --git a/src/Ryujinx/Assets/Locales/de_DE.json b/src/Ryujinx/Assets/Locales/de_DE.json
index e23f3b619..856f87198 100644
--- a/src/Ryujinx/Assets/Locales/de_DE.json
+++ b/src/Ryujinx/Assets/Locales/de_DE.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "Es besteht keine Verbindung mit dem Internet!",
"DialogUpdaterNoInternetSubMessage": "Bitte vergewissern, dass eine funktionierende Internetverbindung existiert!",
"DialogUpdaterDirtyBuildMessage": "Inoffizielle Versionen von Ryujinx können nicht aktualisiert werden",
- "DialogUpdaterDirtyBuildSubMessage": "Lade Ryujinx bitte von hier herunter, um eine unterstützte Version zu erhalten: https://https://github.com/GreemDev/Ryujinx/releases/",
+ "DialogUpdaterDirtyBuildSubMessage": "Lade Ryujinx bitte von hier herunter, um eine unterstützte Version zu erhalten: https://ryujinx.app/download",
"DialogRestartRequiredMessage": "Neustart erforderlich",
"DialogThemeRestartMessage": "Das Design wurde gespeichert. Ein Neustart ist erforderlich, um das Design anzuwenden.",
"DialogThemeRestartSubMessage": "Jetzt neu starten?",
diff --git a/src/Ryujinx/Assets/Locales/el_GR.json b/src/Ryujinx/Assets/Locales/el_GR.json
index 79975b892..9bba65ae2 100644
--- a/src/Ryujinx/Assets/Locales/el_GR.json
+++ b/src/Ryujinx/Assets/Locales/el_GR.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "Δεν είστε συνδεδεμένοι στο Διαδίκτυο!",
"DialogUpdaterNoInternetSubMessage": "Επαληθεύστε ότι έχετε σύνδεση στο Διαδίκτυο που λειτουργεί!",
"DialogUpdaterDirtyBuildMessage": "Δεν μπορείτε να ενημερώσετε μία Πρόχειρη Έκδοση του Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Κάντε λήψη του Ryujinx στη διεύθυνση https://https://github.com/GreemDev/Ryujinx/releases/ εάν αναζητάτε μία υποστηριζόμενη έκδοση.",
+ "DialogUpdaterDirtyBuildSubMessage": "Κάντε λήψη του Ryujinx στη διεύθυνση https://ryujinx.app/download εάν αναζητάτε μία υποστηριζόμενη έκδοση.",
"DialogRestartRequiredMessage": "Απαιτείται Επανεκκίνηση",
"DialogThemeRestartMessage": "Το θέμα έχει αποθηκευτεί. Απαιτείται επανεκκίνηση για την εφαρμογή του θέματος.",
"DialogThemeRestartSubMessage": "Θέλετε να κάνετε επανεκκίνηση",
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index fdd2d4df2..85691481f 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -462,7 +462,7 @@
"DialogUpdaterNoInternetMessage": "You are not connected to the Internet!",
"DialogUpdaterNoInternetSubMessage": "Please verify that you have a working Internet connection!",
"DialogUpdaterDirtyBuildMessage": "You cannot update a Dirty build of Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Please download Ryujinx at https://github.com/GreemDev/Ryujinx/releases/ if you are looking for a supported version.",
+ "DialogUpdaterDirtyBuildSubMessage": "Please download Ryujinx at https://ryujinx.app/download if you are looking for a supported version.",
"DialogRestartRequiredMessage": "Restart Required",
"DialogThemeRestartMessage": "Theme has been saved. A restart is needed to apply the theme.",
"DialogThemeRestartSubMessage": "Do you want to restart",
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index e6da1d113..161351539 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "¡No estás conectado a internet!",
"DialogUpdaterNoInternetSubMessage": "¡Por favor, verifica que tu conexión a Internet funciona!",
"DialogUpdaterDirtyBuildMessage": "¡No puedes actualizar una versión \"dirty\" de Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Por favor, descarga Ryujinx en https://https://github.com/GreemDev/Ryujinx/releases/ si buscas una versión con soporte.",
+ "DialogUpdaterDirtyBuildSubMessage": "Por favor, descarga Ryujinx en https://ryujinx.app/download si buscas una versión con soporte.",
"DialogRestartRequiredMessage": "Se necesita reiniciar",
"DialogThemeRestartMessage": "Tema guardado. Se necesita reiniciar para aplicar el tema.",
"DialogThemeRestartSubMessage": "¿Quieres reiniciar?",
diff --git a/src/Ryujinx/Assets/Locales/fr_FR.json b/src/Ryujinx/Assets/Locales/fr_FR.json
index e52333cea..0073a2cf5 100644
--- a/src/Ryujinx/Assets/Locales/fr_FR.json
+++ b/src/Ryujinx/Assets/Locales/fr_FR.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "Vous n'êtes pas connecté à Internet !",
"DialogUpdaterNoInternetSubMessage": "Veuillez vérifier que vous disposez d'une connexion Internet fonctionnelle !",
"DialogUpdaterDirtyBuildMessage": "Vous ne pouvez pas mettre à jour une version Dirty de Ryujinx !",
- "DialogUpdaterDirtyBuildSubMessage": "Veuillez télécharger Ryujinx sur https://github.com/GreemDev/Ryujinx/releases/ si vous recherchez une version prise en charge.",
+ "DialogUpdaterDirtyBuildSubMessage": "Veuillez télécharger Ryujinx sur https://ryujinx.app/download si vous recherchez une version prise en charge.",
"DialogRestartRequiredMessage": "Redémarrage requis",
"DialogThemeRestartMessage": "Le thème a été enregistré. Un redémarrage est requis pour appliquer le thème.",
"DialogThemeRestartSubMessage": "Voulez-vous redémarrer",
diff --git a/src/Ryujinx/Assets/Locales/he_IL.json b/src/Ryujinx/Assets/Locales/he_IL.json
index d2bd21124..dd86e10f4 100644
--- a/src/Ryujinx/Assets/Locales/he_IL.json
+++ b/src/Ryujinx/Assets/Locales/he_IL.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "אתם לא מחוברים לאינטרנט!",
"DialogUpdaterNoInternetSubMessage": "אנא ודא שיש לך חיבור אינטרנט תקין!",
"DialogUpdaterDirtyBuildMessage": "אתם לא יכולים לעדכן מבנה מלוכלך של ריוג'ינקס!",
- "DialogUpdaterDirtyBuildSubMessage": "אם אתם מחפשים גרסא נתמכת, אנא הורידו את ריוג'ינקס בכתובת https://https://github.com/GreemDev/Ryujinx/releases",
+ "DialogUpdaterDirtyBuildSubMessage": "אם אתם מחפשים גרסא נתמכת, אנא הורידו את ריוג'ינקס בכתובת https://ryujinx.app/download",
"DialogRestartRequiredMessage": "אתחול נדרש",
"DialogThemeRestartMessage": "ערכת הנושא נשמרה. יש צורך בהפעלה מחדש כדי להחיל את ערכת הנושא.",
"DialogThemeRestartSubMessage": "האם ברצונך להפעיל מחדש?",
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index 349b53500..fff0f99e9 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -462,7 +462,7 @@
"DialogUpdaterNoInternetMessage": "Non sei connesso ad Internet!",
"DialogUpdaterNoInternetSubMessage": "Verifica di avere una connessione ad Internet funzionante!",
"DialogUpdaterDirtyBuildMessage": "Non puoi aggiornare una Dirty build di Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Scarica Ryujinx da https://https://github.com/GreemDev/Ryujinx/releases/ se stai cercando una versione supportata.",
+ "DialogUpdaterDirtyBuildSubMessage": "Scarica Ryujinx da https://ryujinx.app/download se stai cercando una versione supportata.",
"DialogRestartRequiredMessage": "Riavvio richiesto",
"DialogThemeRestartMessage": "Il tema è stato salvato. È richiesto un riavvio per applicare il tema.",
"DialogThemeRestartSubMessage": "Vuoi riavviare?",
diff --git a/src/Ryujinx/Assets/Locales/ja_JP.json b/src/Ryujinx/Assets/Locales/ja_JP.json
index 8d15ab678..ed7809d03 100644
--- a/src/Ryujinx/Assets/Locales/ja_JP.json
+++ b/src/Ryujinx/Assets/Locales/ja_JP.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "インターネットに接続されていません!",
"DialogUpdaterNoInternetSubMessage": "インターネット接続が正常動作しているか確認してください!",
"DialogUpdaterDirtyBuildMessage": "Dirty ビルドの Ryujinx はアップデートできません!",
- "DialogUpdaterDirtyBuildSubMessage": "サポートされているバージョンをお探しなら, https://https://github.com/GreemDev/Ryujinx/releases/ で Ryujinx をダウンロードしてください.",
+ "DialogUpdaterDirtyBuildSubMessage": "サポートされているバージョンをお探しなら, https://ryujinx.app/download で Ryujinx をダウンロードしてください.",
"DialogRestartRequiredMessage": "再起動が必要",
"DialogThemeRestartMessage": "テーマがセーブされました. テーマを適用するには再起動が必要です.",
"DialogThemeRestartSubMessage": "再起動しますか",
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index bcac40138..275fd3802 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -462,7 +462,7 @@
"DialogUpdaterNoInternetMessage": "인터넷에 연결되어 있지 않습니다!",
"DialogUpdaterNoInternetSubMessage": "인터넷이 제대로 연결되어 있는지 확인하세요!",
"DialogUpdaterDirtyBuildMessage": "Ryujinx의 더티 빌드는 업데이트할 수 없습니다!",
- "DialogUpdaterDirtyBuildSubMessage": "지원되는 버전을 찾으신다면 https://github.com/GreemDev/Ryujinx/releases/에서 Ryujinx를 내려받으세요.",
+ "DialogUpdaterDirtyBuildSubMessage": "지원되는 버전을 찾으신다면 https://ryujinx.app/download 에서 Ryujinx를 내려받으세요.",
"DialogRestartRequiredMessage": "다시 시작 필요",
"DialogThemeRestartMessage": "테마를 저장했습니다. 테마를 적용하려면 다시 시작해야 합니다.",
"DialogThemeRestartSubMessage": "다시 시작하시겠습니까?",
@@ -861,4 +861,4 @@
"ClearLdnPass": "지우기",
"ClearLdnPassTooltip": "현재 암호를 지우고 공용 네트워크로 돌아갑니다.",
"InvalidLdnPassphrase": "유효하지 않은 암호입니다! \"Ryujinx-<8 hex chars>\" 형식이어야 합니다."
- }
+}
diff --git a/src/Ryujinx/Assets/Locales/pl_PL.json b/src/Ryujinx/Assets/Locales/pl_PL.json
index d6356dc76..37b0df9e8 100644
--- a/src/Ryujinx/Assets/Locales/pl_PL.json
+++ b/src/Ryujinx/Assets/Locales/pl_PL.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "Nie masz połączenia z Internetem!",
"DialogUpdaterNoInternetSubMessage": "Sprawdź, czy masz działające połączenie internetowe!",
"DialogUpdaterDirtyBuildMessage": "Nie możesz zaktualizować Dirty wersji Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Pobierz Ryujinx ze strony https://https://github.com/GreemDev/Ryujinx/releases/, jeśli szukasz obsługiwanej wersji.",
+ "DialogUpdaterDirtyBuildSubMessage": "Pobierz Ryujinx ze strony https://ryujinx.app/download, jeśli szukasz obsługiwanej wersji.",
"DialogRestartRequiredMessage": "Wymagane Ponowne Uruchomienie",
"DialogThemeRestartMessage": "Motyw został zapisany. Aby zastosować motyw, konieczne jest ponowne uruchomienie.",
"DialogThemeRestartSubMessage": "Czy chcesz uruchomić ponownie?",
diff --git a/src/Ryujinx/Assets/Locales/pt_BR.json b/src/Ryujinx/Assets/Locales/pt_BR.json
index 42a8e437b..e27c3d9a4 100644
--- a/src/Ryujinx/Assets/Locales/pt_BR.json
+++ b/src/Ryujinx/Assets/Locales/pt_BR.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "Você não está conectado à Internet!",
"DialogUpdaterNoInternetSubMessage": "Por favor, certifique-se de que você tem uma conexão funcional à Internet!",
"DialogUpdaterDirtyBuildMessage": "Você não pode atualizar uma compilação Dirty do Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Por favor, baixe o Ryujinx em https://https://github.com/GreemDev/Ryujinx/releases/ se está procurando por uma versão suportada.",
+ "DialogUpdaterDirtyBuildSubMessage": "Por favor, baixe o Ryujinx em https://ryujinx.app/download se está procurando por uma versão suportada.",
"DialogRestartRequiredMessage": "Reinicialização necessária",
"DialogThemeRestartMessage": "O tema foi salvo. Uma reinicialização é necessária para aplicar o tema.",
"DialogThemeRestartSubMessage": "Deseja reiniciar?",
diff --git a/src/Ryujinx/Assets/Locales/ru_RU.json b/src/Ryujinx/Assets/Locales/ru_RU.json
index 4ef6ff6d9..910e8a443 100644
--- a/src/Ryujinx/Assets/Locales/ru_RU.json
+++ b/src/Ryujinx/Assets/Locales/ru_RU.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "Вы не подключены к интернету",
"DialogUpdaterNoInternetSubMessage": "Убедитесь, что у вас работает подключение к интернету",
"DialogUpdaterDirtyBuildMessage": "Вы не можете обновлять Dirty Build",
- "DialogUpdaterDirtyBuildSubMessage": "Загрузите Ryujinx по адресу https://https://github.com/GreemDev/Ryujinx/releases/ если вам нужна поддерживаемая версия.",
+ "DialogUpdaterDirtyBuildSubMessage": "Загрузите Ryujinx по адресу https://ryujinx.app/download если вам нужна поддерживаемая версия.",
"DialogRestartRequiredMessage": "Требуется перезагрузка",
"DialogThemeRestartMessage": "Тема сохранена. Для применения темы требуется перезапуск.",
"DialogThemeRestartSubMessage": "Хотите перезапустить",
diff --git a/src/Ryujinx/Assets/Locales/th_TH.json b/src/Ryujinx/Assets/Locales/th_TH.json
index 91169d9e2..ab7a26690 100644
--- a/src/Ryujinx/Assets/Locales/th_TH.json
+++ b/src/Ryujinx/Assets/Locales/th_TH.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "คุณไม่ได้เชื่อมต่อกับอินเทอร์เน็ต!",
"DialogUpdaterNoInternetSubMessage": "โปรดตรวจสอบว่าคุณมีการเชื่อมต่ออินเทอร์เน็ตว่ามีการใช้งานได้หรือไม่!",
"DialogUpdaterDirtyBuildMessage": "คุณไม่สามารถอัปเดต Dirty build ของ Ryujinx ได้!",
- "DialogUpdaterDirtyBuildSubMessage": "โปรดดาวน์โหลด Ryujinx ได้ที่ https://https://github.com/GreemDev/Ryujinx/releases/ หากคุณกำลังมองหาเวอร์ชั่นที่รองรับ",
+ "DialogUpdaterDirtyBuildSubMessage": "โปรดดาวน์โหลด Ryujinx ได้ที่ https://ryujinx.app/download หากคุณกำลังมองหาเวอร์ชั่นที่รองรับ",
"DialogRestartRequiredMessage": "จำเป็นต้องรีสตาร์ทเพื่อให้การอัพเดตสามารถให้งานได้",
"DialogThemeRestartMessage": "บันทึกธีมแล้ว จำเป็นต้องรีสตาร์ทเพื่อใช้ธีม",
"DialogThemeRestartSubMessage": "คุณต้องการรีสตาร์ทหรือไม่?",
diff --git a/src/Ryujinx/Assets/Locales/tr_TR.json b/src/Ryujinx/Assets/Locales/tr_TR.json
index b9ce3e884..2b08c4590 100644
--- a/src/Ryujinx/Assets/Locales/tr_TR.json
+++ b/src/Ryujinx/Assets/Locales/tr_TR.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "İnternete bağlı değilsiniz!",
"DialogUpdaterNoInternetSubMessage": "Lütfen aktif bir internet bağlantınız olduğunu kontrol edin!",
"DialogUpdaterDirtyBuildMessage": "Ryujinx'in Dirty build'lerini güncelleyemezsiniz!",
- "DialogUpdaterDirtyBuildSubMessage": "Desteklenen bir sürüm için lütfen Ryujinx'i https://https://github.com/GreemDev/Ryujinx/releases/ sitesinden indirin.",
+ "DialogUpdaterDirtyBuildSubMessage": "Desteklenen bir sürüm için lütfen Ryujinx'i https://ryujinx.app/download sitesinden indirin.",
"DialogRestartRequiredMessage": "Yeniden Başlatma Gerekli",
"DialogThemeRestartMessage": "Tema kaydedildi. Temayı uygulamak için yeniden başlatma gerekiyor.",
"DialogThemeRestartSubMessage": "Yeniden başlatmak ister misiniz",
diff --git a/src/Ryujinx/Assets/Locales/uk_UA.json b/src/Ryujinx/Assets/Locales/uk_UA.json
index 581d1bca1..3d6c131b8 100644
--- a/src/Ryujinx/Assets/Locales/uk_UA.json
+++ b/src/Ryujinx/Assets/Locales/uk_UA.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "Ви не підключені до Інтернету!",
"DialogUpdaterNoInternetSubMessage": "Будь ласка, переконайтеся, що у вас є робоче підключення до Інтернету!",
"DialogUpdaterDirtyBuildMessage": "Ви не можете оновити брудну збірку Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "Будь ласка, завантажте Ryujinx на https://https://github.com/GreemDev/Ryujinx/releases/, якщо ви шукаєте підтримувану версію.",
+ "DialogUpdaterDirtyBuildSubMessage": "Будь ласка, завантажте Ryujinx на https://ryujinx.app/download, якщо ви шукаєте підтримувану версію.",
"DialogRestartRequiredMessage": "Потрібен перезапуск",
"DialogThemeRestartMessage": "Тему збережено. Щоб застосувати тему, потрібен перезапуск.",
"DialogThemeRestartSubMessage": "Ви хочете перезапустити",
diff --git a/src/Ryujinx/Assets/Locales/zh_CN.json b/src/Ryujinx/Assets/Locales/zh_CN.json
index 3426b8a4a..dd43dc741 100644
--- a/src/Ryujinx/Assets/Locales/zh_CN.json
+++ b/src/Ryujinx/Assets/Locales/zh_CN.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "没有连接到网络",
"DialogUpdaterNoInternetSubMessage": "请确保互联网连接正常。",
"DialogUpdaterDirtyBuildMessage": "无法更新非官方版本的 Ryujinx 模拟器!",
- "DialogUpdaterDirtyBuildSubMessage": "如果想使用受支持的版本,请您在 https://https://github.com/GreemDev/Ryujinx/releases/ 下载官方版本。",
+ "DialogUpdaterDirtyBuildSubMessage": "如果想使用受支持的版本,请您在 https://ryujinx.app/download 下载官方版本。",
"DialogRestartRequiredMessage": "需要重启模拟器",
"DialogThemeRestartMessage": "主题设置已保存,需要重启模拟器才能生效。",
"DialogThemeRestartSubMessage": "是否要重启模拟器?",
diff --git a/src/Ryujinx/Assets/Locales/zh_TW.json b/src/Ryujinx/Assets/Locales/zh_TW.json
index fd02254e1..35a7cffdc 100644
--- a/src/Ryujinx/Assets/Locales/zh_TW.json
+++ b/src/Ryujinx/Assets/Locales/zh_TW.json
@@ -456,7 +456,7 @@
"DialogUpdaterNoInternetMessage": "您沒有連線到網際網路!",
"DialogUpdaterNoInternetSubMessage": "請確認您的網際網路連線正常!",
"DialogUpdaterDirtyBuildMessage": "您無法更新非官方版本的 Ryujinx!",
- "DialogUpdaterDirtyBuildSubMessage": "如果您正在尋找受官方支援的版本,請從 https://https://github.com/GreemDev/Ryujinx/releases/ 下載 Ryujinx。",
+ "DialogUpdaterDirtyBuildSubMessage": "如果您正在尋找受官方支援的版本,請從 https://ryujinx.app/download 下載 Ryujinx。",
"DialogRestartRequiredMessage": "需要重新啟動",
"DialogThemeRestartMessage": "佈景主題設定已儲存。需要重新啟動才能套用主題。",
"DialogThemeRestartSubMessage": "您要重新啟動嗎",
--
2.47.1
From 11416e21671f1ea5f01fb238b81466e3d7df3f92 Mon Sep 17 00:00:00 2001
From: jzumaran
Date: Sun, 17 Nov 2024 03:17:56 -0300
Subject: [PATCH 009/674] i18n: es_ES: Added missing translations and minor
fixes (#242)
Added missing translations and fixed a few spelling mistakes.
---
src/Ryujinx/Assets/Locales/es_ES.json | 90 +++++++++++++++------------
1 file changed, 51 insertions(+), 39 deletions(-)
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index 161351539..41af0c900 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -10,10 +10,10 @@
"SettingsTabSystemUseHypervisor": "Usar hipervisor",
"MenuBarFile": "_Archivo",
"MenuBarFileOpenFromFile": "_Cargar aplicación desde un archivo",
- "MenuBarFileOpenFromFileError": "No applications found in selected file.",
+ "MenuBarFileOpenFromFileError": "No se encontraron aplicaciones en el archivo seleccionado.",
"MenuBarFileOpenUnpacked": "Cargar juego _desempaquetado",
- "MenuBarFileLoadDlcFromFolder": "Load DLC From Folder",
- "MenuBarFileLoadTitleUpdatesFromFolder": "Load Title Updates From Folder",
+ "MenuBarFileLoadDlcFromFolder": "Cargar DLC Desde Carpeta",
+ "MenuBarFileLoadTitleUpdatesFromFolder": "Cargar Actualizaciones de Títulos Desde Carpeta",
"MenuBarFileOpenEmuFolder": "Abrir carpeta de Ryujinx",
"MenuBarFileOpenLogsFolder": "Abrir carpeta de registros",
"MenuBarFileExit": "_Salir",
@@ -34,7 +34,7 @@
"MenuBarToolsInstallFileTypes": "Instalar tipos de archivo",
"MenuBarToolsUninstallFileTypes": "Desinstalar tipos de archivo",
"MenuBarView": "_View",
- "MenuBarViewWindow": "Window Size",
+ "MenuBarViewWindow": "Tamaño Ventana",
"MenuBarViewWindow720": "720p",
"MenuBarViewWindow1080": "1080p",
"MenuBarHelp": "_Ayuda",
@@ -99,15 +99,15 @@
"SettingsTabGeneralEnableDiscordRichPresence": "Habilitar estado en Discord",
"SettingsTabGeneralCheckUpdatesOnLaunch": "Buscar actualizaciones al iniciar",
"SettingsTabGeneralShowConfirmExitDialog": "Mostrar diálogo de confirmación al cerrar",
- "SettingsTabGeneralRememberWindowState": "Remember Window Size/Position",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralRememberWindowState": "Recordar Tamaño/Posición de la Ventana",
+ "SettingsTabGeneralShowTitleBar": "Mostrar Barra de Título (Requiere reinicio)",
"SettingsTabGeneralHideCursor": "Esconder el cursor:",
"SettingsTabGeneralHideCursorNever": "Nunca",
"SettingsTabGeneralHideCursorOnIdle": "Ocultar cursor cuando esté inactivo",
"SettingsTabGeneralHideCursorAlways": "Siempre",
"SettingsTabGeneralGameDirectories": "Carpetas de juegos",
- "SettingsTabGeneralAutoloadDirectories": "Autoload DLC/Updates Directories",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
+ "SettingsTabGeneralAutoloadDirectories": "Carpetas de DLC/Actualizaciones para Carga Automática",
+ "SettingsTabGeneralAutoloadNote": "DLC y Actualizaciones que hacen referencia a archivos ausentes serán desactivado automáticamente",
"SettingsTabGeneralAdd": "Agregar",
"SettingsTabGeneralRemove": "Quitar",
"SettingsTabSystem": "Sistema",
@@ -142,10 +142,10 @@
"SettingsTabSystemSystemTime": "Hora del sistema:",
"SettingsTabSystemEnableVsync": "Sincronización vertical",
"SettingsTabSystemEnablePptc": "PPTC (Cache de Traducción de Perfil Persistente)",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
+ "SettingsTabSystemEnableLowPowerPptc": "Cache PPTC de bajo consumo",
"SettingsTabSystemEnableFsIntegrityChecks": "Comprobar integridad de los archivos",
"SettingsTabSystemAudioBackend": "Motor de audio:",
- "SettingsTabSystemAudioBackendDummy": "Vacio",
+ "SettingsTabSystemAudioBackendDummy": "Vacío",
"SettingsTabSystemAudioBackendOpenAL": "OpenAL",
"SettingsTabSystemAudioBackendSoundIO": "SoundIO",
"SettingsTabSystemAudioBackendSDL2": "SDL2",
@@ -407,7 +407,7 @@
"AvatarSetBackgroundColor": "Establecer color de fondo",
"AvatarClose": "Cerrar",
"ControllerSettingsLoadProfileToolTip": "Cargar perfil",
- "ControllerSettingsViewProfileToolTip": "View Profile",
+ "ControllerSettingsViewProfileToolTip": "Ver perfil",
"ControllerSettingsAddProfileToolTip": "Agregar perfil",
"ControllerSettingsRemoveProfileToolTip": "Eliminar perfil",
"ControllerSettingsSaveProfileToolTip": "Guardar perfil",
@@ -461,7 +461,7 @@
"DialogThemeRestartMessage": "Tema guardado. Se necesita reiniciar para aplicar el tema.",
"DialogThemeRestartSubMessage": "¿Quieres reiniciar?",
"DialogFirmwareInstallEmbeddedMessage": "¿Quieres instalar el firmware incluido en este juego? (Firmware versión {0})",
- "DialogFirmwareInstallEmbeddedSuccessMessage": "No installed firmware was found but Ryujinx was able to install firmware {0} from the provided game.\nThe emulator will now start.",
+ "DialogFirmwareInstallEmbeddedSuccessMessage": "No se encontró ning{un firmware instalado pero Ryujinx pudo instalar firmware {0} del juego proporcionado.\nEl emulador iniciará.",
"DialogFirmwareNoFirmwareInstalledMessage": "No hay firmware instalado",
"DialogFirmwareInstalledMessage": "Se instaló el firmware {0}",
"DialogInstallFileTypesSuccessMessage": "¡Tipos de archivos instalados con éxito!",
@@ -568,22 +568,22 @@
"AddGameDirBoxTooltip": "Elige un directorio de juegos para mostrar en la ventana principal",
"AddGameDirTooltip": "Agrega un directorio de juegos a la lista",
"RemoveGameDirTooltip": "Quita el directorio seleccionado de la lista",
- "AddAutoloadDirBoxTooltip": "Enter an autoload directory to add to the list",
- "AddAutoloadDirTooltip": "Add an autoload directory to the list",
- "RemoveAutoloadDirTooltip": "Remove selected autoload directory",
+ "AddAutoloadDirBoxTooltip": "Elige un directorio de carga automática para agregar a la lista",
+ "AddAutoloadDirTooltip": "Agregar un directorio de carga automática a la lista",
+ "RemoveAutoloadDirTooltip": "Eliminar el directorio de carga automática seleccionado",
"CustomThemeCheckTooltip": "Activa o desactiva los temas personalizados para la interfaz",
"CustomThemePathTooltip": "Carpeta que contiene los temas personalizados para la interfaz",
"CustomThemeBrowseTooltip": "Busca un tema personalizado para la interfaz",
"DockModeToggleTooltip": "El modo dock o modo TV hace que la consola emulada se comporte como una Nintendo Switch en su dock. Esto mejora la calidad gráfica en la mayoría de los juegos. Del mismo modo, si lo desactivas, el sistema emulado se comportará como una Nintendo Switch en modo portátil, reduciendo la cálidad de los gráficos.\n\nConfigura los controles de \"Jugador\" 1 si planeas jugar en modo dock/TV; configura los controles de \"Portátil\" si planeas jugar en modo portátil.\n\nActívalo si no sabes qué hacer.",
- "DirectKeyboardTooltip": "Direct keyboard access (HID) support. Provides games access to your keyboard as a text entry device.\n\nOnly works with games that natively support keyboard usage on Switch hardware.\n\nLeave OFF if unsure.",
- "DirectMouseTooltip": "Direct mouse access (HID) support. Provides games access to your mouse as a pointing device.\n\nOnly works with games that natively support mouse controls on Switch hardware, which are few and far between.\n\nWhen enabled, touch screen functionality may not work.\n\nLeave OFF if unsure.",
+ "DirectKeyboardTooltip": "Soporte de acceso directo al teclado (HID). Proporciona a los juegos acceso a su teclado como dispositivo de entrada de texto.\n\nSolo funciona con juegos que permiten de forma nativa el uso del teclado en el hardware de Switch.\n\nDesactívalo si no sabes qué hacer.",
+ "DirectMouseTooltip": "Soporte de acceso directo al mouse (HID). Proporciona a los juegos acceso a su mouse como puntero.\n\nSolo funciona con juegos que permiten de forma nativa el uso de controles con mouse en el hardware de switch, lo cual son pocos.\n\nCuando esté activado, la funcionalidad de pantalla táctil puede no funcionar.\n\nDesactívalo si no sabes qué hacer.",
"RegionTooltip": "Cambia la región del sistema",
"LanguageTooltip": "Cambia el idioma del sistema",
"TimezoneTooltip": "Cambia la zona horaria del sistema",
"TimeTooltip": "Cambia la hora del sistema",
- "VSyncToggleTooltip": "Emulated console's Vertical Sync. Essentially a frame-limiter for the majority of games; disabling it may cause games to run at higher speed or make loading screens take longer or get stuck.\n\nCan be toggled in-game with a hotkey of your preference (F1 by default). We recommend doing this if you plan on disabling it.\n\nLeave ON if unsure.",
+ "VSyncToggleTooltip": "Sincronización vertical de la consola emulada. En práctica un limitador del framerate para la mayoría de los juegos; desactivando puede causar que juegos corran a mayor velocidad o que las pantallas de carga tarden más o queden atascados.\n\nSe puede alternar en juego utilizando una tecla de acceso rápido configurable (F1 by default). Recomendamos hacer esto en caso de querer desactivar sincroniziación vertical.\n\nDesactívalo si no sabes qué hacer.",
"PptcToggleTooltip": "Guarda funciones de JIT traducidas para que no sea necesario traducirlas cada vez que el juego carga.\n\nReduce los tirones y acelera significativamente el tiempo de inicio de los juegos después de haberlos ejecutado al menos una vez.\n\nActívalo si no sabes qué hacer.",
- "LowPowerPptcToggleTooltip": "Load the PPTC using a third of the amount of cores.",
+ "LowPowerPptcToggleTooltip": "Cargue el PPTC utilizando un tercio de la cantidad de núcleos.",
"FsIntegrityToggleTooltip": "Comprueba si hay archivos corruptos en los juegos que ejecutes al abrirlos, y si detecta archivos corruptos, muestra un error de Hash en los registros.\n\nEsto no tiene impacto alguno en el rendimiento y está pensado para ayudar a resolver problemas.\n\nActívalo si no sabes qué hacer.",
"AudioBackendTooltip": "Cambia el motor usado para renderizar audio.\n\nSDL2 es el preferido, mientras que OpenAL y SoundIO se usan si hay problemas con este. Dummy no produce audio.\n\nSelecciona SDL2 si no sabes qué hacer.",
"MemoryManagerTooltip": "Cambia la forma de mapear y acceder a la memoria del guest. Afecta en gran medida al rendimiento de la CPU emulada.\n\nSelecciona \"Host sin verificación\" si no sabes qué hacer.",
@@ -597,10 +597,10 @@
"GraphicsBackendThreadingTooltip": "Ejecuta los comandos del motor gráfico en un segundo hilo. Acelera la compilación de sombreadores, reduce los tirones, y mejora el rendimiento en controladores gráficos que no realicen su propio procesamiento con múltiples hilos. Rendimiento ligeramente superior en controladores gráficos que soporten múltiples hilos.\n\nSelecciona \"Auto\" si no sabes qué hacer.",
"GalThreadingTooltip": "Ejecuta los comandos del motor gráfico en un segundo hilo. Acelera la compilación de sombreadores, reduce los tirones, y mejora el rendimiento en controladores gráficos que no realicen su propio procesamiento con múltiples hilos. Rendimiento ligeramente superior en controladores gráficos que soporten múltiples hilos.\n\nSelecciona \"Auto\" si no sabes qué hacer.",
"ShaderCacheToggleTooltip": "Guarda una caché de sombreadores en disco, la cual reduce los tirones a medida que vas jugando.\n\nActívalo si no sabes qué hacer.",
- "ResolutionScaleTooltip": "Multiplies the game's rendering resolution.\n\nA few games may not work with this and look pixelated even when the resolution is increased; for those games, you may need to find mods that remove anti-aliasing or that increase their internal rendering resolution. For using the latter, you'll likely want to select Native.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nKeep in mind 4x is overkill for virtually any setup.",
+ "ResolutionScaleTooltip": "Multiplica la resolución de rendereo del juego.\n\nAlgunos juegos podrían no funcionar con esto y verse pixelado al aumentar la resolución; en esos casos, quizás sería necesario buscar mods que de anti-aliasing o que aumenten la resolución interna. Para usar este último, probablemente necesitarás seleccionar Nativa.\n\nEsta opción puede ser modificada mientras que un juego este corriendo haciendo click en \"Aplicar\" más abajo; simplemente puedes mover la ventana de configuración a un lado y experimentar hasta que encuentres tu estilo preferido para un juego.\n\nTener en cuenta que 4x es excesivo para prácticamente cualquier configuración.",
"ResolutionScaleEntryTooltip": "Escalado de resolución de coma flotante, como por ejemplo 1,5. Los valores no íntegros pueden causar errores gráficos o crashes.",
- "AnisotropyTooltip": "Level of Anisotropic Filtering. Set to Auto to use the value requested by the game.",
- "AspectRatioTooltip": "Aspect Ratio applied to the renderer window.\n\nOnly change this if you're using an aspect ratio mod for your game, otherwise the graphics will be stretched.\n\nLeave on 16:9 if unsure.",
+ "AnisotropyTooltip": "Nivel de filtrado anisotrópico. Setear en Auto para utilizar el valor solicitado por el juego.",
+ "AspectRatioTooltip": "Relación de aspecto aplicada a la ventana del renderizador.\n\nSolamente modificar esto si estás utilizando un mod de relación de aspecto para su juego, en cualquier otro caso los gráficos se estirarán.\n\nDejar en 16:9 si no sabe que hacer.",
"ShaderDumpPathTooltip": "Directorio en el cual se volcarán los sombreadores de los gráficos",
"FileLogTooltip": "Guarda los registros de la consola en archivos en disco. No afectan al rendimiento.",
"StubLogTooltip": "Escribe mensajes de Stub en la consola. No afectan al rendimiento.",
@@ -616,8 +616,8 @@
"DebugLogTooltip": "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.",
"LoadApplicationFileTooltip": "Abre el explorador de archivos para elegir un archivo compatible con Switch para cargar",
"LoadApplicationFolderTooltip": "Abre el explorador de archivos para elegir un archivo desempaquetado y compatible con Switch para cargar",
- "LoadDlcFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load DLC from",
- "LoadTitleUpdatesFromFolderTooltip": "Open a file explorer to choose one or more folders to bulk load title updates from",
+ "LoadDlcFromFolderTooltip": "Abrir un explorador de archivos para seleccionar una o más carpetas para cargar DLC de forma masiva",
+ "LoadTitleUpdatesFromFolderTooltip": "Abrir un explorador de archivos para seleccionar una o más carpetas para cargar actualizaciones de título de forma masiva",
"OpenRyujinxFolderTooltip": "Abre la carpeta de sistema de Ryujinx",
"OpenRyujinxLogsTooltip": "Abre la carpeta en la que se guardan los registros",
"ExitTooltip": "Cierra Ryujinx",
@@ -726,18 +726,18 @@
"UserProfileWindowTitle": "Administrar perfiles de usuario",
"CheatWindowTitle": "Administrar cheats",
"DlcWindowTitle": "Administrar contenido descargable",
- "ModWindowTitle": "Manage Mods for {0} ({1})",
+ "ModWindowTitle": "Administrar Mods para {0} ({1})",
"UpdateWindowTitle": "Administrar actualizaciones",
- "UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
- "UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
+ "UpdateWindowUpdateAddedMessage": "{0} nueva(s) actualización(es) agregada(s)",
+ "UpdateWindowBundledContentNotice": "Las actualizaciones agrupadas no pueden ser eliminadas, solamente deshabilitadas.",
"CheatWindowHeading": "Cheats disponibles para {0} [{1}]",
"BuildId": "Id de compilación:",
"DlcWindowHeading": "Contenido descargable disponible para {0} [{1}]",
- "DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
- "AutoloadUpdateAddedMessage": "{0} new update(s) added",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
+ "DlcWindowDlcAddedMessage": "Se agregaron {0} nuevo(s) contenido(s) descargable(s)",
+ "AutoloadDlcAddedMessage": "Se agregaron {0} nuevo(s) contenido(s) descargable(s)",
+ "AutoloadDlcRemovedMessage": "Se eliminaron {0} contenido(s) descargable(s) faltantes",
+ "AutoloadUpdateAddedMessage": "Se agregaron {0} nueva(s) actualización(es)",
+ "AutoloadUpdateRemovedMessage": "Se eliminaron {0} actualización(es) faltantes",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Editar selección",
"Cancel": "Cancelar",
@@ -753,9 +753,9 @@
"UserProfilesName": "Nombre:",
"UserProfilesUserId": "Id de Usuario:",
"SettingsTabGraphicsBackend": "Fondo de gráficos",
- "SettingsTabGraphicsBackendTooltip": "Select the graphics backend that will be used in the emulator.\n\nVulkan is overall better for all modern graphics cards, as long as their drivers are up to date. Vulkan also features faster shader compilation (less stuttering) on all GPU vendors.\n\nOpenGL may achieve better results on old Nvidia GPUs, on old AMD GPUs on Linux, or on GPUs with lower VRAM, though shader compilation stutters will be greater.\n\nSet to Vulkan if unsure. Set to OpenGL if your GPU does not support Vulkan even with the latest graphics drivers.",
+ "SettingsTabGraphicsBackendTooltip": "Seleccione el backend gráfico que utilizará el emulador.\n\nVulkan, en general, es mejor para todas las tarjetas gráficas modernas, mientras que sus controladores estén actualizados. Vulkan también cuenta con complicación más rápida de sombreadores (menos tirones) en todos los proveredores de GPU.\n\nOpenGL puede lograr mejores resultados en GPU Nvidia antiguas, GPU AMD antiguas en Linux o en GPUs con menor VRAM, aunque tirones de compilación de sombreadores serán mayores.\n\nSetear en Vulkan si no sabe que hacer. Setear en OpenGL si su GPU no tiene soporte para Vulkan aún con los últimos controladores gráficos.",
"SettingsEnableTextureRecompression": "Activar recompresión de texturas",
- "SettingsEnableTextureRecompressionTooltip": "Compresses ASTC textures in order to reduce VRAM usage.\n\nGames using this texture format include Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder and The Legend of Zelda: Tears of the Kingdom.\n\nGraphics cards with 4GiB VRAM or less will likely crash at some point while running these games.\n\nEnable only if you're running out of VRAM on the aforementioned games. Leave OFF if unsure.",
+ "SettingsEnableTextureRecompressionTooltip": "Comprimir texturas ASTC para reducir uso de VRAM.\n\nJuegos que utilizan este formato de textura incluyen Astral Chain, Bayonetta 3, Fire Emblem Engage, Metroid Prime Remastered, Super Mario Bros. Wonder y The Legend of Zelda: Tears of the Kingdom.\n\nTarjetas gráficas con 4GiB de VRAM o menos probalemente se caeran en algún momento mientras que estén corriendo estos juegos.\n\nActivar solo si está quedan sin VRAM en los juegos antes mencionados. Desactívalo si no sabes qué hacer.",
"SettingsTabGraphicsPreferredGpu": "GPU preferida",
"SettingsTabGraphicsPreferredGpuTooltip": "Selecciona la tarjeta gráfica que se utilizará con los back-end de gráficos Vulkan.\n\nNo afecta la GPU que utilizará OpenGL.\n\nFije a la GPU marcada como \"dGUP\" ante dudas. Si no hay una, no haga modificaciones.",
"SettingsAppRequiredRestartMessage": "Reinicio de Ryujinx requerido.",
@@ -772,7 +772,7 @@
"UserProfilesManageSaves": "Administrar mis partidas guardadas",
"DeleteUserSave": "¿Quieres borrar los datos de usuario de este juego?",
"IrreversibleActionNote": "Esta acción no es reversible.",
- "SaveManagerHeading": "Manage Saves for {0}",
+ "SaveManagerHeading": "Administrar partidas guardadas para {0}",
"SaveManagerTitle": "Administrador de datos de guardado.",
"Name": "Nombre",
"Size": "Tamaño",
@@ -781,11 +781,11 @@
"Recover": "Recuperar",
"UserProfilesRecoverHeading": "Datos de guardado fueron encontrados para las siguientes cuentas",
"UserProfilesRecoverEmptyList": "No hay perfiles a recuperar",
- "GraphicsAATooltip": "Applies anti-aliasing to the game render.\n\nFXAA will blur most of the image, while SMAA will attempt to find jagged edges and smooth them out.\n\nNot recommended to use in conjunction with the FSR scaling filter.\n\nThis option can be changed while a game is running by clicking \"Apply\" below; you can simply move the settings window aside and experiment until you find your preferred look for a game.\n\nLeave on NONE if unsure.",
+ "GraphicsAATooltip": "Aplica antia-aliasing al rendereo del juego.\n\nFXAA desenfocará la mayor parte del la iamgen, mientras que SMAA intentará encontrar bordes irregulares y suavizarlos.\n\nNo se recomienda usar en conjunto con filtro de escala FSR.\n\nEsta opción puede ser modificada mientras que esté corriendo el juego haciendo click en \"Aplicar\" más abajo; simplemente puedes mover la ventana de configuración a un lado y experimentar hasta que encuentres tu estilo preferido para un juego.\n\nDejar en NADA si no está seguro.",
"GraphicsAALabel": "Suavizado de bordes:",
"GraphicsScalingFilterLabel": "Filtro de escalado:",
"GraphicsScalingFilterTooltip": "Elija el filtro de escala que se aplicará al utilizar la escala de resolución.\n\nBilinear funciona bien para juegos 3D y es una opción predeterminada segura.\n\nSe recomienda el bilinear para juegos de pixel art.\n\nFSR 1.0 es simplemente un filtro de afilado, no se recomienda su uso con FXAA o SMAA.\n\nEsta opción se puede cambiar mientras se ejecuta un juego haciendo clic en \"Aplicar\" a continuación; simplemente puedes mover la ventana de configuración a un lado y experimentar hasta que encuentres tu estilo preferido para un juego.\n\nDéjelo en BILINEAR si no está seguro.",
- "GraphicsScalingFilterBilinear": "Bilinear\n",
+ "GraphicsScalingFilterBilinear": "Bilinear",
"GraphicsScalingFilterNearest": "Cercano",
"GraphicsScalingFilterFsr": "FSR",
"GraphicsScalingFilterArea": "Area",
@@ -806,6 +806,18 @@
"SettingsTabNetworkMultiplayer": "Multijugador",
"MultiplayerMode": "Modo:",
"MultiplayerModeTooltip": "Cambiar modo LDN multijugador.\n\nLdnMitm modificará la funcionalidad local de juego inalámbrico para funcionar como si fuera LAN, permitiendo locales conexiones de la misma red con otras instancias de Ryujinx y consolas hackeadas de Nintendo Switch que tienen instalado el módulo ldn_mitm.\n\nMultijugador requiere que todos los jugadores estén en la misma versión del juego (por ejemplo, Super Smash Bros. Ultimate v13.0.1 no se puede conectar a v13.0.0).\n\nDejar DESACTIVADO si no está seguro.",
- "MultiplayerModeDisabled": "Deshabilitar",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeDisabled": "Deshabilitado",
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Desactivar El Hosteo De Red P2P (puede aumentar latencia)",
+ "MultiplayerDisableP2PTooltip": "Desactivar el hosteo de red P2P, pares se conectarán a través del servidor maestro en lugar de conectarse directamente contigo.",
+ "LdnPassphrase": "Frase de contraseña de la Red:",
+ "LdnPassphraseTooltip": "Solo podrás ver los juegos hosteados con la misma frase de contraseña que tú.",
+ "LdnPassphraseInputTooltip": "Ingresar una frase de contraseña en formato Ryujinx-<8 caracteres hexadecimales>. Solamente podrás ver juegos hosteados con la misma frase de contraseña que tú.",
+ "LdnPassphraseInputPublic": "(público)",
+ "GenLdnPass": "Generar aleatorio",
+ "GenLdnPassTooltip": "Genera una nueva frase de contraseña, que puede ser compartida con otros jugadores.",
+ "ClearLdnPass": "Borrar",
+ "ClearLdnPassTooltip": "Borra la frase de contraseña actual, regresando a la red pública.",
+ "InvalidLdnPassphrase": "Frase de Contraseña Inválida! Debe ser en formato \"Ryujinx-<8 caracteres hexadecimales>\""
}
--
2.47.1
From 52f42d450fb5fb7d2b2dd1d72aef70a07d4e44d5 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Sun, 17 Nov 2024 00:57:56 -0600
Subject: [PATCH 010/674] try 1: Fix IndexOutOfBounds in SDL2GamepadDriver.cs
---
src/Ryujinx.Input.SDL2/SDL2GamepadDriver.cs | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/src/Ryujinx.Input.SDL2/SDL2GamepadDriver.cs b/src/Ryujinx.Input.SDL2/SDL2GamepadDriver.cs
index 0acbaaa19..fd34fe219 100644
--- a/src/Ryujinx.Input.SDL2/SDL2GamepadDriver.cs
+++ b/src/Ryujinx.Input.SDL2/SDL2GamepadDriver.cs
@@ -115,7 +115,10 @@ namespace Ryujinx.Input.SDL2
{
lock (_lock)
{
- _gamepadsIds.Insert(joystickDeviceId, id);
+ if (joystickDeviceId <= _gamepadsIds.FindLastIndex(_ => true))
+ _gamepadsIds.Insert(joystickDeviceId, id);
+ else
+ _gamepadsIds.Add(id);
}
OnGamepadConnected?.Invoke(id);
--
2.47.1
From 25d69079cbe40c79ad959879a62679e35728ab8f Mon Sep 17 00:00:00 2001
From: GabCoolGuy
Date: Sun, 17 Nov 2024 11:35:37 +0100
Subject: [PATCH 011/674] Fix a couple dead links and spotty wording in docs
(#260)
Made it clearer that building is for contributors only in `COMPILING.md`
Fixed 2 dead links in `CONTRIBUTING.md`, that were caused by separating
`COMPILING.md` and file structure changed to `pr-guide.md`
---
COMPILING.md | 4 ++--
CONTRIBUTING.md | 4 ++--
docs/workflow/pr-guide.md | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/COMPILING.md b/COMPILING.md
index 06cebab44..20a2eb7ff 100644
--- a/COMPILING.md
+++ b/COMPILING.md
@@ -1,6 +1,6 @@
## Compilation
-Building the project is for advanced users.
+Building the project is for users that want to contribute code only.
If you wish to build the emulator yourself, follow these steps:
### Step 1
@@ -20,4 +20,4 @@ Then type the following command: `dotnet build -c Release -o build`
the built files will be found in the newly created build directory.
Ryujinx system files are stored in the `Ryujinx` folder.
-This folder is located in the user folder, which can be accessed by clicking `Open Ryujinx Folder` under the File menu in the GUI.
\ No newline at end of file
+This folder is located in the user folder, which can be accessed by clicking `Open Ryujinx Folder` under the File menu in the GUI.
diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md
index af47fc9d9..686ea3994 100644
--- a/CONTRIBUTING.md
+++ b/CONTRIBUTING.md
@@ -74,7 +74,7 @@ We use and recommend the following workflow:
3. In your fork, create a branch off of main (`git checkout -b mybranch`).
- Branches are useful since they isolate your changes from incoming changes from upstream. They also enable you to create multiple PRs from the same fork.
4. Make and commit your changes to your branch.
- - [Build Instructions](https://github.com/GreemDev/Ryujinx#building) explains how to build and test.
+ - [Build Instructions](https://github.com/GreemDev/Ryujinx/blob/master/COMPILING.md) explains how to build and test.
- Commit messages should be clear statements of action and intent.
6. Build the repository with your changes.
- Make sure that the builds are clean.
@@ -83,7 +83,7 @@ We use and recommend the following workflow:
- State in the description what issue or improvement your change is addressing.
- Check if all the Continuous Integration checks are passing. Refer to [Actions](https://github.com/GreemDev/Ryujinx/actions) to check for outstanding errors.
8. Wait for feedback or approval of your changes from the core development team
- - Details about the pull request [review procedure](docs/workflow/ci/pr-guide.md).
+ - Details about the pull request [review procedure](docs/workflow/pr-guide.md).
9. When the team members have signed off, and all checks are green, your PR will be merged.
- The next official build will automatically include your change.
- You can delete the branch you used for making the change.
diff --git a/docs/workflow/pr-guide.md b/docs/workflow/pr-guide.md
index c03db210b..50f44d87f 100644
--- a/docs/workflow/pr-guide.md
+++ b/docs/workflow/pr-guide.md
@@ -9,7 +9,7 @@ To merge pull requests, you must have write permissions in the repository.
## Quick Code Review Rules
* Do not mix unrelated changes in one pull request. For example, a code style change should never be mixed with a bug fix.
-* All changes should follow the existing code style. You can read more about our code style at [docs/coding-guidelines](../coding-guidelines/coding-style.md).
+* All changes should follow the existing code style. You can read more about our code style at [docs/coding-style](../coding-guidelines/coding-style.md).
* Adding external dependencies is to be avoided unless not doing so would introduce _significant_ complexity. Any dependency addition should be justified and discussed before merge.
* Use Draft pull requests for changes you are still working on but want early CI loop feedback. When you think your changes are ready for review, [change the status](https://help.github.com/en/github/collaborating-with-issues-and-pull-requests/changing-the-stage-of-a-pull-request) of your pull request.
* Rebase your changes when required or directly requested. Changes should always be commited on top of the upstream branch, not the other way around.
--
2.47.1
From f4b757c584aabdb43e2f564cf02a1e1ca540f38a Mon Sep 17 00:00:00 2001
From: GabCoolGuy
Date: Mon, 18 Nov 2024 22:05:00 +0100
Subject: [PATCH 012/674] Add `XCITrimmerTrim` and `XCITrimmerUntrim` Locales
(#273)
---
src/Ryujinx/Assets/Locales/ar_SA.json | 2 ++
src/Ryujinx/Assets/Locales/de_DE.json | 2 ++
src/Ryujinx/Assets/Locales/el_GR.json | 2 ++
src/Ryujinx/Assets/Locales/en_US.json | 2 ++
src/Ryujinx/Assets/Locales/es_ES.json | 2 ++
src/Ryujinx/Assets/Locales/he_IL.json | 2 ++
src/Ryujinx/Assets/Locales/it_IT.json | 2 ++
src/Ryujinx/Assets/Locales/ja_JP.json | 2 ++
src/Ryujinx/Assets/Locales/ko_KR.json | 2 ++
src/Ryujinx/Assets/Locales/pl_PL.json | 2 ++
src/Ryujinx/Assets/Locales/pt_BR.json | 2 ++
src/Ryujinx/Assets/Locales/ru_RU.json | 2 ++
src/Ryujinx/Assets/Locales/th_TH.json | 2 ++
src/Ryujinx/Assets/Locales/tr_TR.json | 2 ++
src/Ryujinx/Assets/Locales/uk_UA.json | 2 ++
src/Ryujinx/Assets/Locales/zh_CN.json | 2 ++
src/Ryujinx/Assets/Locales/zh_TW.json | 2 ++
src/Ryujinx/UI/Windows/XCITrimmerWindow.axaml | 4 ++--
18 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/src/Ryujinx/Assets/Locales/ar_SA.json b/src/Ryujinx/Assets/Locales/ar_SA.json
index 723a7f133..781568fee 100644
--- a/src/Ryujinx/Assets/Locales/ar_SA.json
+++ b/src/Ryujinx/Assets/Locales/ar_SA.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "إدارة المحتوى القابل للتنزيل لـ {0} ({1})",
"ModWindowTitle": "إدارة التعديلات لـ {0} ({1})",
"UpdateWindowTitle": "مدير تحديث العنوان",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "الغش متوفر لـ {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/de_DE.json b/src/Ryujinx/Assets/Locales/de_DE.json
index 856f87198..c6f9768c6 100644
--- a/src/Ryujinx/Assets/Locales/de_DE.json
+++ b/src/Ryujinx/Assets/Locales/de_DE.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "Spiel-DLC verwalten",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "Spiel-Updates verwalten",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Cheats verfügbar für {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/el_GR.json b/src/Ryujinx/Assets/Locales/el_GR.json
index 9bba65ae2..76049fc3f 100644
--- a/src/Ryujinx/Assets/Locales/el_GR.json
+++ b/src/Ryujinx/Assets/Locales/el_GR.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "Downloadable Content Manager",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "Διαχειριστής Ενημερώσεων Τίτλου",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Διαθέσιμα Cheats για {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index 85691481f..9354c8a41 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -767,6 +767,8 @@
"XCITrimmerDeselectDisplayed": "Deselect Shown",
"XCITrimmerSortName": "Title",
"XCITrimmerSortSaved": "Space Savings",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Cheats Available for {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index 41af0c900..cf5c586d0 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "Administrar contenido descargable",
"ModWindowTitle": "Administrar Mods para {0} ({1})",
"UpdateWindowTitle": "Administrar actualizaciones",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} nueva(s) actualización(es) agregada(s)",
"UpdateWindowBundledContentNotice": "Las actualizaciones agrupadas no pueden ser eliminadas, solamente deshabilitadas.",
"CheatWindowHeading": "Cheats disponibles para {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/he_IL.json b/src/Ryujinx/Assets/Locales/he_IL.json
index dd86e10f4..91e3e24e4 100644
--- a/src/Ryujinx/Assets/Locales/he_IL.json
+++ b/src/Ryujinx/Assets/Locales/he_IL.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "נהל הרחבות משחק עבור {0} ({1})",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "נהל עדכוני משחקים",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "צ'יטים זמינים עבור {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index fff0f99e9..2a92e70dc 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -767,6 +767,8 @@
"XCITrimmerDeselectDisplayed": "Deselziona Visualizzati",
"XCITrimmerSortName": "Titolo",
"XCITrimmerSortSaved": "Salvataggio Spazio",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} aggiornamento/i aggiunto/i",
"UpdateWindowBundledContentNotice": "Gli aggiornamenti inclusi non possono essere eliminati, ma solo disattivati",
"CheatWindowHeading": "Trucchi disponibili per {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/ja_JP.json b/src/Ryujinx/Assets/Locales/ja_JP.json
index ed7809d03..b8e5870a6 100644
--- a/src/Ryujinx/Assets/Locales/ja_JP.json
+++ b/src/Ryujinx/Assets/Locales/ja_JP.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "DLC 管理",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "アップデート管理",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "利用可能なチート {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index 275fd3802..5bda1565b 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -767,6 +767,8 @@
"XCITrimmerDeselectDisplayed": "표시됨 선택 취소",
"XCITrimmerSortName": "타이틀",
"XCITrimmerSortSaved": "공간 절약s",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0}개의 새 업데이트가 추가됨",
"UpdateWindowBundledContentNotice": "번들 업데이트는 제거할 수 없으며, 비활성화만 가능합니다.",
"CheatWindowHeading": "{0} [{1}]에 사용 가능한 치트",
diff --git a/src/Ryujinx/Assets/Locales/pl_PL.json b/src/Ryujinx/Assets/Locales/pl_PL.json
index 37b0df9e8..fa88bab5e 100644
--- a/src/Ryujinx/Assets/Locales/pl_PL.json
+++ b/src/Ryujinx/Assets/Locales/pl_PL.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "Menedżer Zawartości do Pobrania",
"ModWindowTitle": "Zarządzaj modami dla {0} ({1})",
"UpdateWindowTitle": "Menedżer Aktualizacji Tytułu",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Kody Dostępne dla {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/pt_BR.json b/src/Ryujinx/Assets/Locales/pt_BR.json
index e27c3d9a4..5b7a21494 100644
--- a/src/Ryujinx/Assets/Locales/pt_BR.json
+++ b/src/Ryujinx/Assets/Locales/pt_BR.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "Gerenciador de DLC",
"ModWindowTitle": "Gerenciar Mods para {0} ({1})",
"UpdateWindowTitle": "Gerenciador de atualizações",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} nova(s) atualização(ões) adicionada(s)",
"UpdateWindowBundledContentNotice": "Atualizações incorporadas não podem ser removidas, apenas desativadas.",
"CheatWindowHeading": "Cheats disponíveis para {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/ru_RU.json b/src/Ryujinx/Assets/Locales/ru_RU.json
index 910e8a443..cd17eb301 100644
--- a/src/Ryujinx/Assets/Locales/ru_RU.json
+++ b/src/Ryujinx/Assets/Locales/ru_RU.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "Управление DLC для {0} ({1})",
"ModWindowTitle": "Управление модами для {0} ({1})",
"UpdateWindowTitle": "Менеджер обновлений игр",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Доступные читы для {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/th_TH.json b/src/Ryujinx/Assets/Locales/th_TH.json
index ab7a26690..d32cfb737 100644
--- a/src/Ryujinx/Assets/Locales/th_TH.json
+++ b/src/Ryujinx/Assets/Locales/th_TH.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "จัดการ DLC ที่ดาวน์โหลดได้สำหรับ {0} ({1})",
"ModWindowTitle": "จัดการม็อดที่ดาวน์โหลดได้สำหรับ {0} ({1})",
"UpdateWindowTitle": "จัดการอัปเดตหัวข้อ",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} อัพเดตที่เพิ่มมาใหม่",
"UpdateWindowBundledContentNotice": "แพ็คที่อัพเดตมาไม่สามารถลบทิ้งได้ สามารถปิดใช้งานได้เท่านั้น",
"CheatWindowHeading": "สูตรโกงมีให้สำหรับ {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/tr_TR.json b/src/Ryujinx/Assets/Locales/tr_TR.json
index 2b08c4590..1ac9a0b6e 100644
--- a/src/Ryujinx/Assets/Locales/tr_TR.json
+++ b/src/Ryujinx/Assets/Locales/tr_TR.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "Oyun DLC'lerini Yönet",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "Oyun Güncellemelerini Yönet",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "{0} için Hile mevcut [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/uk_UA.json b/src/Ryujinx/Assets/Locales/uk_UA.json
index 3d6c131b8..0e22263b6 100644
--- a/src/Ryujinx/Assets/Locales/uk_UA.json
+++ b/src/Ryujinx/Assets/Locales/uk_UA.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "Менеджер вмісту для завантаження",
"ModWindowTitle": "Керувати модами для {0} ({1})",
"UpdateWindowTitle": "Менеджер оновлення назв",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "Коди доступні для {0} [{1}]",
diff --git a/src/Ryujinx/Assets/Locales/zh_CN.json b/src/Ryujinx/Assets/Locales/zh_CN.json
index dd43dc741..67b2cc9d1 100644
--- a/src/Ryujinx/Assets/Locales/zh_CN.json
+++ b/src/Ryujinx/Assets/Locales/zh_CN.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "管理 {0} ({1}) 的 DLC",
"ModWindowTitle": "管理 {0} ({1}) 的 MOD",
"UpdateWindowTitle": "游戏更新管理器",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} 个更新被添加",
"UpdateWindowBundledContentNotice": "捆绑的更新无法被移除,只可被禁用。",
"CheatWindowHeading": "适用于 {0} [{1}] 的金手指",
diff --git a/src/Ryujinx/Assets/Locales/zh_TW.json b/src/Ryujinx/Assets/Locales/zh_TW.json
index 35a7cffdc..9bfc243ae 100644
--- a/src/Ryujinx/Assets/Locales/zh_TW.json
+++ b/src/Ryujinx/Assets/Locales/zh_TW.json
@@ -728,6 +728,8 @@
"DlcWindowTitle": "管理 {0} 的可下載內容 ({1})",
"ModWindowTitle": "管理 {0} 的模組 ({1})",
"UpdateWindowTitle": "遊戲更新管理員",
+ "XCITrimmerTrim": "Trim",
+ "XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "已加入 {0} 個遊戲更新",
"UpdateWindowBundledContentNotice": "附帶的遊戲更新只能被停用而無法被刪除。",
"CheatWindowHeading": "可用於 {0} [{1}] 的密技",
diff --git a/src/Ryujinx/UI/Windows/XCITrimmerWindow.axaml b/src/Ryujinx/UI/Windows/XCITrimmerWindow.axaml
index e3640cd7e..d726f8099 100644
--- a/src/Ryujinx/UI/Windows/XCITrimmerWindow.axaml
+++ b/src/Ryujinx/UI/Windows/XCITrimmerWindow.axaml
@@ -296,7 +296,7 @@
Margin="5"
Click="Trim"
IsEnabled="{Binding CanTrim}">
-
+
Date: Tue, 19 Nov 2024 08:52:51 +0100
Subject: [PATCH 013/674] Created bool to store if the "Avilable Update" should
be hidden on startup (--hide-updates) (#272)
fixes #263
---
src/Ryujinx.UI.Common/Helper/CommandLineState.cs | 4 ++++
src/Ryujinx/UI/Windows/MainWindow.axaml.cs | 2 +-
2 files changed, 5 insertions(+), 1 deletion(-)
diff --git a/src/Ryujinx.UI.Common/Helper/CommandLineState.cs b/src/Ryujinx.UI.Common/Helper/CommandLineState.cs
index ae0e4d904..3a96a55c8 100644
--- a/src/Ryujinx.UI.Common/Helper/CommandLineState.cs
+++ b/src/Ryujinx.UI.Common/Helper/CommandLineState.cs
@@ -16,6 +16,7 @@ namespace Ryujinx.UI.Common.Helper
public static string LaunchPathArg { get; private set; }
public static string LaunchApplicationId { get; private set; }
public static bool StartFullscreenArg { get; private set; }
+ public static bool HideAvailableUpdates { get; private set; }
public static void ParseArguments(string[] args)
{
@@ -93,6 +94,9 @@ namespace Ryujinx.UI.Common.Helper
OverrideHideCursor = args[++i];
break;
+ case "--hide-updates":
+ HideAvailableUpdates = true;
+ break;
case "--software-gui":
OverrideHardwareAcceleration = false;
break;
diff --git a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
index 4ddcee07f..829db4bc9 100644
--- a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
+++ b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
@@ -383,7 +383,7 @@ namespace Ryujinx.Ava.UI.Windows
await Dispatcher.UIThread.InvokeAsync(async () => await UserErrorDialog.ShowUserErrorDialog(UserError.NoKeys));
}
- if (ConfigurationState.Instance.CheckUpdatesOnStart && Updater.CanUpdate())
+ if (ConfigurationState.Instance.CheckUpdatesOnStart && !CommandLineState.HideAvailableUpdates && Updater.CanUpdate())
{
await this.BeginUpdateAsync()
.ContinueWith(
--
2.47.1
From 722953211d88aa160469f1677f52b6f10f22582b Mon Sep 17 00:00:00 2001
From: Pitchoune
Date: Tue, 19 Nov 2024 08:59:00 +0100
Subject: [PATCH 014/674] Add Zelda Echoes of Wisdom Amiibos informations
(#262)
This adds missing informations about Zelda Echoes of Wisdom Amiibos.
---
assets/amiibo/Amiibo.json | 452 +++++++++++++++++++++++++++++++++++++-
1 file changed, 450 insertions(+), 2 deletions(-)
diff --git a/assets/amiibo/Amiibo.json b/assets/amiibo/Amiibo.json
index b877ea142..03c2c020e 100644
--- a/assets/amiibo/Amiibo.json
+++ b/assets/amiibo/Amiibo.json
@@ -707,6 +707,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Blue Attire",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01010300",
@@ -3526,6 +3542,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Black Cat Clothes",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01400000",
@@ -4160,6 +4192,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -5848,6 +5896,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -6126,6 +6190,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -8341,6 +8421,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -9020,6 +9116,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000100",
@@ -9496,6 +9608,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Blue Attire",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01010000",
@@ -9833,6 +9961,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -14667,6 +14811,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01030000",
@@ -16119,6 +16279,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Black Cat Clothes",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01050000",
@@ -16717,6 +16893,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Black Cat Clothes",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01070000",
@@ -19745,6 +19937,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Black Cat Clothes",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01080000",
@@ -20503,6 +20711,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Blue Attire",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01010000",
@@ -21805,6 +22029,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -22340,6 +22580,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Black Cat Clothes",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01020100",
@@ -22990,6 +23246,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -23440,6 +23712,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -24660,6 +24948,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Black Cat Clothes",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01410000",
@@ -24954,6 +25258,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Black Cat Clothes",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01060000",
@@ -25286,6 +25606,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -29114,6 +29450,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Blue Attire",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01010000",
@@ -32512,6 +32864,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -32928,6 +33296,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000100",
@@ -34800,6 +35184,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Red Tunic",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01000000",
@@ -37569,6 +37969,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Blue Attire",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01010100",
@@ -41293,6 +41709,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Black Cat Clothes",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01020100",
@@ -45153,6 +45585,22 @@
"0100F2C0115B6000"
],
"gameName": "The Legend of Zelda: Tears of the Kingdom"
+ },
+ {
+ "amiiboUsage": [
+ {
+ "Usage": "Receive the Blue Attire",
+ "write": false
+ },
+ {
+ "Usage": "Receive random materials",
+ "write": false
+ }
+ ],
+ "gameID": [
+ "01008CF01BAAC000"
+ ],
+ "gameName": "The Legend of Zelda: Echoes of Wisdom"
}
],
"head": "01010000",
@@ -47896,5 +48344,5 @@
"type": "Figure"
}
],
- "lastUpdated": "2024-10-01T00:00:25.035619"
-}
\ No newline at end of file
+ "lastUpdated": "2024-11-17T15:28:47.035619"
+}
--
2.47.1
From 008d908c5a2a4bdbdd42a75e2ede70242aef7fb7 Mon Sep 17 00:00:00 2001
From: Narugakuruga <31060534+Narugakuruga@users.noreply.github.com>
Date: Tue, 19 Nov 2024 15:59:56 +0800
Subject: [PATCH 015/674] Update Chinese locale missing line (#259)
---
src/Ryujinx/Assets/Locales/zh_CN.json | 30 +++++++++++++--------------
1 file changed, 15 insertions(+), 15 deletions(-)
diff --git a/src/Ryujinx/Assets/Locales/zh_CN.json b/src/Ryujinx/Assets/Locales/zh_CN.json
index 67b2cc9d1..004d5007b 100644
--- a/src/Ryujinx/Assets/Locales/zh_CN.json
+++ b/src/Ryujinx/Assets/Locales/zh_CN.json
@@ -6,7 +6,7 @@
"SettingsTabSystemMemoryManagerMode": "内存管理模式:",
"SettingsTabSystemMemoryManagerModeSoftware": "软件管理",
"SettingsTabSystemMemoryManagerModeHost": "本机映射 (较快)",
- "SettingsTabSystemMemoryManagerModeHostUnchecked": "跳过检查的本机映射 (最快,但不安全)",
+ "SettingsTabSystemMemoryManagerModeHostUnchecked": "跳过检查的本机映射 (最快,不安全)",
"SettingsTabSystemUseHypervisor": "使用 Hypervisor 虚拟化",
"MenuBarFile": "文件(_F)",
"MenuBarFileOpenFromFile": "加载游戏文件(_L)",
@@ -100,14 +100,14 @@
"SettingsTabGeneralCheckUpdatesOnLaunch": "启动时检查更新",
"SettingsTabGeneralShowConfirmExitDialog": "退出游戏时需要确认",
"SettingsTabGeneralRememberWindowState": "记住窗口大小和位置",
- "SettingsTabGeneralShowTitleBar": "Show Title Bar (Requires restart)",
+ "SettingsTabGeneralShowTitleBar": "显示标题栏 (需要重启)",
"SettingsTabGeneralHideCursor": "隐藏鼠标指针:",
"SettingsTabGeneralHideCursorNever": "从不隐藏",
"SettingsTabGeneralHideCursorOnIdle": "自动隐藏",
"SettingsTabGeneralHideCursorAlways": "始终隐藏",
"SettingsTabGeneralGameDirectories": "游戏目录",
"SettingsTabGeneralAutoloadDirectories": "自动加载DLC/游戏更新目录",
- "SettingsTabGeneralAutoloadNote": "DLC and Updates which refer to missing files will be unloaded automatically",
+ "SettingsTabGeneralAutoloadNote": "DLC/游戏更新可自动加载和卸载",
"SettingsTabGeneralAdd": "添加",
"SettingsTabGeneralRemove": "删除",
"SettingsTabSystem": "系统",
@@ -142,7 +142,7 @@
"SettingsTabSystemSystemTime": "系统时钟:",
"SettingsTabSystemEnableVsync": "启用垂直同步",
"SettingsTabSystemEnablePptc": "开启 PPTC 缓存",
- "SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC",
+ "SettingsTabSystemEnableLowPowerPptc": "低功耗 PPTC 加载",
"SettingsTabSystemEnableFsIntegrityChecks": "启用文件系统完整性检查",
"SettingsTabSystemAudioBackend": "音频处理引擎:",
"SettingsTabSystemAudioBackendDummy": "无",
@@ -407,7 +407,7 @@
"AvatarSetBackgroundColor": "设置背景色",
"AvatarClose": "关闭",
"ControllerSettingsLoadProfileToolTip": "加载配置文件",
- "ControllerSettingsViewProfileToolTip": "View Profile",
+ "ControllerSettingsViewProfileToolTip": "预览配置文件",
"ControllerSettingsAddProfileToolTip": "新增配置文件",
"ControllerSettingsRemoveProfileToolTip": "删除配置文件",
"ControllerSettingsSaveProfileToolTip": "保存配置文件",
@@ -667,7 +667,7 @@
"UserErrorUnknownDescription": "出现未知错误!",
"UserErrorUndefinedDescription": "出现未定义错误!此类错误不应出现,请联系开发者!",
"OpenSetupGuideMessage": "打开安装指南",
- "NoUpdate": "无更新(或不加载游戏更新)",
+ "NoUpdate": "无更新(默认版本)",
"TitleUpdateVersionLabel": "游戏更新的版本 {0}",
"TitleBundledUpdateVersionLabel": "捆绑:版本 {0}",
"TitleBundledDlcLabel": "捆绑:",
@@ -731,17 +731,17 @@
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} 个更新被添加",
- "UpdateWindowBundledContentNotice": "捆绑的更新无法被移除,只可被禁用。",
+ "UpdateWindowBundledContentNotice": "游戏整合的更新无法移除,可尝试禁用。",
"CheatWindowHeading": "适用于 {0} [{1}] 的金手指",
"BuildId": "游戏版本 ID:",
- "DlcWindowBundledContentNotice": "捆绑的DLC无法被移除,只可被禁用。",
+ "DlcWindowBundledContentNotice": "游戏整合的DLC无法移除,可尝试禁用。",
"DlcWindowHeading": "{0} 个 DLC",
"DlcWindowDlcAddedMessage": "{0} 个DLC被添加",
"AutoloadDlcAddedMessage": "{0} 个DLC被添加",
- "AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
+ "AutoloadDlcRemovedMessage": "{0} 个失效的DLC已移除",
"AutoloadUpdateAddedMessage": "{0} 个游戏更新被添加",
- "AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
- "ModWindowHeading": "{0} Mod(s)",
+ "AutoloadUpdateRemovedMessage": "{0} 个失效的游戏更新已移除",
+ "ModWindowHeading": "{0} Mod",
"UserProfilesEditProfile": "编辑所选",
"Cancel": "取消",
"Save": "保存",
@@ -770,7 +770,7 @@
"SettingsEnableMacroHLE": "启用 HLE 宏加速",
"SettingsEnableMacroHLETooltip": "GPU 宏指令的高级模拟。\n\n提高性能表现,但一些游戏可能会出现图形错误。\n\n如果不确定,请保持开启状态。",
"SettingsEnableColorSpacePassthrough": "色彩空间直通",
- "SettingsEnableColorSpacePassthroughTooltip": "使 Vulkan 图形引擎直接传输原始色彩信息。对于宽色域 (例如 DCI-P3) 显示器的用户来说,可以产生更鲜艳的颜色,代价是会损失部分色彩准确度。",
+ "SettingsEnableColorSpacePassthroughTooltip": "使 Vulkan 图形引擎直接传输原始色彩信息。对于广色域 (例如 DCI-P3) 显示器的用户来说,可以产生更鲜艳的颜色,代价是损失部分色彩准确度。",
"VolumeShort": "音量",
"UserProfilesManageSaves": "管理存档",
"DeleteUserSave": "确定删除此游戏的用户存档吗?",
@@ -789,9 +789,9 @@
"GraphicsScalingFilterLabel": "缩放过滤:",
"GraphicsScalingFilterTooltip": "选择在分辨率缩放时将使用的缩放过滤器。\n\nBilinear(双线性过滤)对于3D游戏效果较好,是一个安全的默认选项。\n\nNearest(最近邻过滤)推荐用于像素艺术游戏。\n\nFSR(超级分辨率锐画)只是一个锐化过滤器,不推荐与 FXAA 或 SMAA 抗锯齿一起使用。\n\nArea(局部过滤),当渲染分辨率大于窗口实际分辨率,推荐该选项。该选项在渲染比例大于2.0的情况下,可以实现超采样的效果。\n\n在游戏运行时,通过点击下面的“应用”按钮可以使设置生效;你可以将设置窗口移开,并试验找到您喜欢的游戏画面效果。\n\n如果不确定,请保持为“Bilinear(双线性过滤)”。",
"GraphicsScalingFilterBilinear": "Bilinear(双线性过滤)",
- "GraphicsScalingFilterNearest": "Nearest(最近邻过滤)",
+ "GraphicsScalingFilterNearest": "Nearest(邻近过滤)",
"GraphicsScalingFilterFsr": "FSR(超级分辨率锐画技术)",
- "GraphicsScalingFilterArea": "Area(局部过滤)",
+ "GraphicsScalingFilterArea": "Area(区域过滤)",
"GraphicsScalingFilterLevelLabel": "等级",
"GraphicsScalingFilterLevelTooltip": "设置 FSR 1.0 的锐化等级,数值越高,图像越锐利。",
"SmaaLow": "SMAA 低质量",
@@ -808,7 +808,7 @@
"AboutChangelogButtonTooltipMessage": "点击这里在浏览器中打开此版本的更新日志。",
"SettingsTabNetworkMultiplayer": "多人联机游玩",
"MultiplayerMode": "联机模式:",
- "MultiplayerModeTooltip": "修改 LDN 多人联机游玩模式。\n\nldn_mitm 联机插件将修改游戏中的本地无线和本地游玩功能,使其表现得像局域网一样,允许和其他安装了 ldn_mitm 插件的 Ryujinx 模拟器和破解的任天堂 Switch 主机在同一网络下进行本地连接,实现多人联机游玩。\n\n多人联机游玩要求所有玩家必须运行相同的游戏版本(例如,任天堂明星大乱斗特别版 v13.0.1 无法与 v13.0.0 版本联机)。\n\n如果不确定,请保持为“禁用”。",
+ "MultiplayerModeTooltip": "修改 LDN 多人联机游玩模式。\n\nldn_mitm 联机插件将修改游戏中的本地无线和本地游玩功能,使其表现得像局域网一样,允许和其他安装了 ldn_mitm 插件的 Ryujinx 模拟器和破解的任天堂 Switch 主机在同一网络下进行本地连接,实现多人联机游玩。\n\n多人联机游玩要求所有玩家必须运行相同的游戏版本(例如,游戏版本 v13.0.1 无法与 v13.0.0 联机)。\n\n如果不确定,请保持为“禁用”。",
"MultiplayerModeDisabled": "禁用",
"MultiplayerModeLdnMitm": "ldn_mitm"
}
--
2.47.1
From 8444e4dca01a4d3831655c909ef1647c8a6e68b0 Mon Sep 17 00:00:00 2001
From: Nicola <61830443+nicola02nb@users.noreply.github.com>
Date: Tue, 19 Nov 2024 09:16:15 +0100
Subject: [PATCH 016/674] Fixed mime types button not updating after
install/uninstall (#241)
---
src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs | 10 ++++++++--
src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs | 6 ++++--
2 files changed, 12 insertions(+), 4 deletions(-)
diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
index 53263847b..f1587a0ff 100644
--- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
@@ -102,6 +102,7 @@ namespace Ryujinx.Ava.UI.ViewModels
private float _volumeBeforeMute;
private string _backendText;
+ private bool _areMimeTypesRegistered = FileAssociationHelper.AreMimeTypesRegistered;
private bool _canUpdate = true;
private Cursor _cursor;
private string _title;
@@ -804,10 +805,15 @@ namespace Ryujinx.Ava.UI.ViewModels
{
get => FileAssociationHelper.IsTypeAssociationSupported;
}
-
+
public bool AreMimeTypesRegistered
{
- get => FileAssociationHelper.AreMimeTypesRegistered;
+ get => _areMimeTypesRegistered;
+ set {
+ _areMimeTypesRegistered = value;
+
+ OnPropertyChanged();
+ }
}
public ObservableCollectionExtended Applications
diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
index 144ab408f..41b27e9c1 100644
--- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
+++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
@@ -165,7 +165,8 @@ namespace Ryujinx.Ava.UI.Views.Main
private async void InstallFileTypes_Click(object sender, RoutedEventArgs e)
{
- if (FileAssociationHelper.Install())
+ ViewModel.AreMimeTypesRegistered = FileAssociationHelper.Install();
+ if (ViewModel.AreMimeTypesRegistered)
await ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.DialogInstallFileTypesSuccessMessage], string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], string.Empty, string.Empty);
else
await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance[LocaleKeys.DialogInstallFileTypesErrorMessage]);
@@ -173,7 +174,8 @@ namespace Ryujinx.Ava.UI.Views.Main
private async void UninstallFileTypes_Click(object sender, RoutedEventArgs e)
{
- if (FileAssociationHelper.Uninstall())
+ ViewModel.AreMimeTypesRegistered = !FileAssociationHelper.Uninstall();
+ if (!ViewModel.AreMimeTypesRegistered)
await ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.DialogUninstallFileTypesSuccessMessage], string.Empty, LocaleManager.Instance[LocaleKeys.InputDialogOk], string.Empty, string.Empty);
else
await ContentDialogHelper.CreateErrorDialog(LocaleManager.Instance[LocaleKeys.DialogUninstallFileTypesErrorMessage]);
--
2.47.1
From fda79efed4bfd00582fb749fc575c8a43752087b Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Tue, 19 Nov 2024 09:30:41 -0600
Subject: [PATCH 017/674] Fix Windows builds not being uploaded
---
.github/workflows/release.yml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 183d4c618..d1ea8e449 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -174,7 +174,7 @@ jobs:
uses: ncipollo/release-action@v1
with:
name: ${{ steps.version_info.outputs.build_version }}
- artifacts: "release_output/*.tar.gz,release_output/*.zip/*AppImage*"
+ artifacts: "release_output/*.tar.gz,release_output/*.zip,release_output/*AppImage*"
tag: ${{ steps.version_info.outputs.build_version }}
body: "**Full Changelog**: https://github.com/${{ github.repository }}/compare/${{ steps.version_info.outputs.prev_build_version }}...${{ steps.version_info.outputs.build_version }}"
omitBodyDuringUpdate: true
--
2.47.1
From c3831428e08e9299ab7104a4e4c5354533c2efbf Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Tue, 19 Nov 2024 10:22:11 -0600
Subject: [PATCH 018/674] Try and fix weird nullref
---
src/Ryujinx.UI.Common/Helper/FileAssociationHelper.cs | 8 ++++----
1 file changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/Ryujinx.UI.Common/Helper/FileAssociationHelper.cs b/src/Ryujinx.UI.Common/Helper/FileAssociationHelper.cs
index be10deca0..9333a1b76 100644
--- a/src/Ryujinx.UI.Common/Helper/FileAssociationHelper.cs
+++ b/src/Ryujinx.UI.Common/Helper/FileAssociationHelper.cs
@@ -101,13 +101,13 @@ namespace Ryujinx.UI.Common.Helper
{
RegistryKey key = Registry.CurrentUser.OpenSubKey(@$"Software\Classes\{ext}");
- if (key is null)
+ var openCmd = key?.OpenSubKey(@"shell\open\command");
+
+ if (openCmd is null)
{
return false;
}
-
- var openCmd = key.OpenSubKey(@"shell\open\command");
-
+
string keyValue = (string)openCmd.GetValue(string.Empty);
return keyValue is not null && (keyValue.Contains("Ryujinx") || keyValue.Contains(AppDomain.CurrentDomain.FriendlyName));
--
2.47.1
From c0a4d95c5d984df4a862a62d21f5090fb88a32de Mon Sep 17 00:00:00 2001
From: Luke Warner <65521430+LukeWarnut@users.noreply.github.com>
Date: Tue, 19 Nov 2024 14:02:24 -0500
Subject: [PATCH 019/674] ARMeilleure: Implement TPIDR2_EL0 (#280)
This is an implementation of the TPIDR2_EL0 register. There may be more
potential use-cases for this register not included in this PR, but this
implements the use-case seen in SuperTuxKart.
---
src/ARMeilleure/Instructions/InstEmitSystem.cs | 17 +++++++++++++++++
src/ARMeilleure/State/NativeContext.cs | 9 +++++++++
2 files changed, 26 insertions(+)
diff --git a/src/ARMeilleure/Instructions/InstEmitSystem.cs b/src/ARMeilleure/Instructions/InstEmitSystem.cs
index 8c430fc23..fbf3b4a70 100644
--- a/src/ARMeilleure/Instructions/InstEmitSystem.cs
+++ b/src/ARMeilleure/Instructions/InstEmitSystem.cs
@@ -49,6 +49,9 @@ namespace ARMeilleure.Instructions
case 0b11_011_1101_0000_011:
EmitGetTpidrroEl0(context);
return;
+ case 0b11_011_1101_0000_101:
+ EmitGetTpidr2El0(context);
+ return;
case 0b11_011_1110_0000_000:
info = typeof(NativeInterface).GetMethod(nameof(NativeInterface.GetCntfrqEl0));
break;
@@ -84,6 +87,9 @@ namespace ARMeilleure.Instructions
case 0b11_011_1101_0000_010:
EmitSetTpidrEl0(context);
return;
+ case 0b11_011_1101_0000_101:
+ EmitGetTpidr2El0(context);
+ return;
default:
throw new NotImplementedException($"Unknown MSR 0x{op.RawOpCode:X8} at 0x{op.Address:X16}.");
@@ -213,6 +219,17 @@ namespace ARMeilleure.Instructions
SetIntOrZR(context, op.Rt, result);
}
+ private static void EmitGetTpidr2El0(ArmEmitterContext context)
+ {
+ OpCodeSystem op = (OpCodeSystem)context.CurrOp;
+
+ Operand nativeContext = context.LoadArgument(OperandType.I64, 0);
+
+ Operand result = context.Load(OperandType.I64, context.Add(nativeContext, Const((ulong)NativeContext.GetTpidr2El0Offset())));
+
+ SetIntOrZR(context, op.Rt, result);
+ }
+
private static void EmitSetNzcv(ArmEmitterContext context)
{
OpCodeSystem op = (OpCodeSystem)context.CurrOp;
diff --git a/src/ARMeilleure/State/NativeContext.cs b/src/ARMeilleure/State/NativeContext.cs
index 628efde41..140b6f7a7 100644
--- a/src/ARMeilleure/State/NativeContext.cs
+++ b/src/ARMeilleure/State/NativeContext.cs
@@ -21,6 +21,7 @@ namespace ARMeilleure.State
public ulong ExclusiveValueLow;
public ulong ExclusiveValueHigh;
public int Running;
+ public long Tpidr2El0;
}
private static NativeCtxStorage _dummyStorage = new();
@@ -176,6 +177,9 @@ namespace ARMeilleure.State
public long GetTpidrroEl0() => GetStorage().TpidrroEl0;
public void SetTpidrroEl0(long value) => GetStorage().TpidrroEl0 = value;
+ public long GetTpidr2El0() => GetStorage().Tpidr2El0;
+ public void SetTpidr2El0(long value) => GetStorage().Tpidr2El0 = value;
+
public int GetCounter() => GetStorage().Counter;
public void SetCounter(int value) => GetStorage().Counter = value;
@@ -232,6 +236,11 @@ namespace ARMeilleure.State
return StorageOffset(ref _dummyStorage, ref _dummyStorage.TpidrroEl0);
}
+ public static int GetTpidr2El0Offset()
+ {
+ return StorageOffset(ref _dummyStorage, ref _dummyStorage.Tpidr2El0);
+ }
+
public static int GetCounterOffset()
{
return StorageOffset(ref _dummyStorage, ref _dummyStorage.Counter);
--
2.47.1
From 150e06e0de20305b521b838fbe5b63379878cc85 Mon Sep 17 00:00:00 2001
From: GabCoolGuy
Date: Wed, 20 Nov 2024 18:52:16 +0100
Subject: [PATCH 020/674] Add `documentation` and `ldn` labels to `labeler.yml`
(#282)
This should make it so that any changes made to ldn and documentation
related files should be auto-labeled
---
.github/labeler.yml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/.github/labeler.yml b/.github/labeler.yml
index 54f2757b0..871f9945f 100644
--- a/.github/labeler.yml
+++ b/.github/labeler.yml
@@ -33,3 +33,11 @@ kernel:
infra:
- changed-files:
- any-glob-to-any-file: ['.github/**', 'distribution/**', 'Directory.Packages.props']
+
+documentation:
+- changed-files:
+ - any-glob-to-any-file: 'docs/**'
+
+ldn:
+- changed-files:
+ - any-glob-to-any-file: 'src/Ryujinx.HLE/HOS/Services/Ldn/**'
--
2.47.1
From aaaf60b7a4e7793c137019459ab7ef7c8f20c91e Mon Sep 17 00:00:00 2001
From: GabCoolGuy
Date: Wed, 20 Nov 2024 19:20:38 +0100
Subject: [PATCH 021/674] Change headless to nogui in the release artifacts
(#285)
This makes it so that instead of the files you download being
`sdl2-ryujinx-headless` they are now `nogui-ryujinx`in the release (and
canary) artifacts
---
.github/workflows/build.yml | 4 ++--
.github/workflows/canary.yml | 4 ++--
.github/workflows/nightly_pr_comment.yml | 4 ++--
.github/workflows/release.yml | 4 ++--
distribution/macos/create_macos_build_headless.sh | 4 ++--
5 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
index b678e5f8e..21dc3eb0b 100644
--- a/.github/workflows/build.yml
+++ b/.github/workflows/build.yml
@@ -122,7 +122,7 @@ jobs:
- name: Upload Ryujinx.Headless.SDL2 artifact
uses: actions/upload-artifact@v4
with:
- name: sdl2-ryujinx-headless-${{ matrix.configuration }}-${{ env.RYUJINX_BASE_VERSION }}+${{ steps.git_short_hash.outputs.result }}-${{ matrix.platform.zip_os_name }}
+ name: nogui-ryujinx-${{ matrix.configuration }}-${{ env.RYUJINX_BASE_VERSION }}+${{ steps.git_short_hash.outputs.result }}-${{ matrix.platform.zip_os_name }}
path: publish_sdl2_headless
if: github.event_name == 'pull_request' && matrix.platform.os != 'macos-13'
@@ -185,6 +185,6 @@ jobs:
- name: Upload Ryujinx.Headless.SDL2 artifact
uses: actions/upload-artifact@v4
with:
- name: sdl2-ryujinx-headless-${{ matrix.configuration }}-${{ env.RYUJINX_BASE_VERSION }}+${{ steps.git_short_hash.outputs.result }}-macos_universal
+ name: nogui-ryujinx-${{ matrix.configuration }}-${{ env.RYUJINX_BASE_VERSION }}+${{ steps.git_short_hash.outputs.result }}-macos_universal
path: "publish_headless/*.tar.gz"
if: github.event_name == 'pull_request'
diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml
index d102beaa3..72e1b9515 100644
--- a/.github/workflows/canary.yml
+++ b/.github/workflows/canary.yml
@@ -116,7 +116,7 @@ jobs:
pushd publish_sdl2_headless
rm publish/libarmeilleure-jitsupport.dylib
- 7z a ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
+ 7z a ../release_output/nogui-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
popd
shell: bash
@@ -132,7 +132,7 @@ jobs:
pushd publish_sdl2_headless
rm publish/libarmeilleure-jitsupport.dylib
chmod +x publish/Ryujinx.sh publish/Ryujinx.Headless.SDL2
- tar -czvf ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
+ tar -czvf ../release_output/nogui-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
popd
shell: bash
diff --git a/.github/workflows/nightly_pr_comment.yml b/.github/workflows/nightly_pr_comment.yml
index 64705b6ee..85a6e2de4 100644
--- a/.github/workflows/nightly_pr_comment.yml
+++ b/.github/workflows/nightly_pr_comment.yml
@@ -38,12 +38,12 @@ jobs:
return core.error(`No artifacts found`);
}
let body = `Download the artifacts for this pull request:\n`;
- let hidden_headless_artifacts = `\n\n GUI-less (SDL2)\n`;
+ let hidden_headless_artifacts = `\n\n GUI-less\n`;
let hidden_debug_artifacts = `\n\n Only for Developers\n`;
for (const art of artifacts) {
if(art.name.includes('Debug')) {
hidden_debug_artifacts += `\n* [${art.name}](https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip)`;
- } else if(art.name.includes('sdl2-ryujinx-headless')) {
+ } else if(art.name.includes('nogui-ryujinx')) {
hidden_headless_artifacts += `\n* [${art.name}](https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip)`;
} else {
body += `\n* [${art.name}](https://nightly.link/${owner}/${repo}/actions/artifacts/${art.id}.zip)`;
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index d1ea8e449..44b1de09b 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -115,7 +115,7 @@ jobs:
pushd publish_sdl2_headless
rm libarmeilleure-jitsupport.dylib
- 7z a ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip ../publish
+ 7z a ../release_output/nogui-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip ../publish
popd
shell: bash
@@ -166,7 +166,7 @@ jobs:
pushd publish_sdl2_headless
chmod +x Ryujinx.sh Ryujinx.Headless.SDL2
- tar -czvf ../release_output/sdl2-ryujinx-headless-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz ../publish
+ tar -czvf ../release_output/nogui-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz ../publish
popd
shell: bash
diff --git a/distribution/macos/create_macos_build_headless.sh b/distribution/macos/create_macos_build_headless.sh
index 2715699d0..24836418d 100755
--- a/distribution/macos/create_macos_build_headless.sh
+++ b/distribution/macos/create_macos_build_headless.sh
@@ -22,9 +22,9 @@ EXTRA_ARGS=$8
if [ "$VERSION" == "1.1.0" ];
then
- RELEASE_TAR_FILE_NAME=sdl2-ryujinx-headless-$CONFIGURATION-$VERSION+$SOURCE_REVISION_ID-macos_universal.tar
+ RELEASE_TAR_FILE_NAME=nogui-ryujinx-$CONFIGURATION-$VERSION+$SOURCE_REVISION_ID-macos_universal.tar
else
- RELEASE_TAR_FILE_NAME=sdl2-ryujinx-headless-$VERSION-macos_universal.tar
+ RELEASE_TAR_FILE_NAME=nogui-ryujinx-$VERSION-macos_universal.tar
fi
ARM64_OUTPUT="$TEMP_DIRECTORY/publish_arm64"
--
2.47.1
From c2de5cc700e1ae6beefe3d8866b7cdadb0c7c5ba Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Thu, 21 Nov 2024 10:16:13 -0600
Subject: [PATCH 022/674] Fix really obvious typo, lol
---
README.md | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/README.md b/README.md
index 3bc223f3a..f6783b412 100644
--- a/README.md
+++ b/README.md
@@ -42,7 +42,7 @@
Guides and documentation can be found on the Wiki tab.
- If you would like a version more preservative fork of Ryujinx, check out ryujinx-mirror.
+ If you would like a more preservative fork of Ryujinx, check out ryujinx-mirror.
--
2.47.1
From 1d42c29335a87bd5ac2c53a5aa1edf948f211f4b Mon Sep 17 00:00:00 2001
From: GabCoolGuy
Date: Thu, 21 Nov 2024 19:34:53 +0100
Subject: [PATCH 023/674] Add more mentions of canary (#258)
This should hopefully make it clearer whether or not you're using
canary.
Changelog:
- Changed github workflows to have "canary" in the zip files
- Added `App.FullAppName` in the about section, so that it's clear in
there too
- Changed log name for canary builds to
`Ryujinx_Canary_{version}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log`
(normal builds should still be
"Ryujinx_{version}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log)
---
.github/workflows/canary.yml | 12 ++++++------
.github/workflows/release.yml | 4 ++--
distribution/macos/create_macos_build_ava.sh | 13 +++++++------
distribution/macos/create_macos_build_headless.sh | 13 +++++++------
src/Ryujinx.Common/Logging/Targets/FileLogTarget.cs | 3 ++-
src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs | 2 +-
6 files changed, 25 insertions(+), 22 deletions(-)
diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml
index 72e1b9515..a24436de3 100644
--- a/.github/workflows/canary.yml
+++ b/.github/workflows/canary.yml
@@ -111,12 +111,12 @@ jobs:
run: |
pushd publish_ava
rm publish/libarmeilleure-jitsupport.dylib
- 7z a ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
+ 7z a ../release_output/ryujinx-canary-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
popd
pushd publish_sdl2_headless
rm publish/libarmeilleure-jitsupport.dylib
- 7z a ../release_output/nogui-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
+ 7z a ../release_output/nogui-ryujinx-canary-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.zip publish
popd
shell: bash
@@ -126,13 +126,13 @@ jobs:
pushd publish_ava
rm publish/libarmeilleure-jitsupport.dylib
chmod +x publish/Ryujinx.sh publish/Ryujinx
- tar -czvf ../release_output/ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
+ tar -czvf ../release_output/ryujinx-canary-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
popd
pushd publish_sdl2_headless
rm publish/libarmeilleure-jitsupport.dylib
chmod +x publish/Ryujinx.sh publish/Ryujinx.Headless.SDL2
- tar -czvf ../release_output/nogui-ryujinx-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
+ tar -czvf ../release_output/nogui-ryujinx-canary-${{ steps.version_info.outputs.build_version }}-${{ matrix.platform.zip_os_name }}.tar.gz publish
popd
shell: bash
@@ -236,11 +236,11 @@ jobs:
- name: Publish macOS Ryujinx
run: |
- ./distribution/macos/create_macos_build_ava.sh . publish_tmp_ava publish_ava ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release
+ ./distribution/macos/create_macos_build_ava.sh . publish_tmp_ava publish_ava ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release 1
- name: Publish macOS Ryujinx.Headless.SDL2
run: |
- ./distribution/macos/create_macos_build_headless.sh . publish_tmp_headless publish_headless ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release
+ ./distribution/macos/create_macos_build_headless.sh . publish_tmp_headless publish_headless ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release 1
- name: Pushing new release
uses: ncipollo/release-action@v1
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 44b1de09b..ec02976a1 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -231,11 +231,11 @@ jobs:
- name: Publish macOS Ryujinx
run: |
- ./distribution/macos/create_macos_build_ava.sh . publish_tmp_ava publish ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release
+ ./distribution/macos/create_macos_build_ava.sh . publish_tmp_ava publish ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release 0
- name: Publish macOS Ryujinx.Headless.SDL2
run: |
- ./distribution/macos/create_macos_build_headless.sh . publish_tmp_headless publish_headless ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release
+ ./distribution/macos/create_macos_build_headless.sh . publish_tmp_headless publish_headless ./distribution/macos/entitlements.xml "${{ steps.version_info.outputs.build_version }}" "${{ steps.version_info.outputs.git_short_hash }}" Release 0
- name: Pushing new release
uses: ncipollo/release-action@v1
diff --git a/distribution/macos/create_macos_build_ava.sh b/distribution/macos/create_macos_build_ava.sh
index 80bd6662c..b19fa4863 100755
--- a/distribution/macos/create_macos_build_ava.sh
+++ b/distribution/macos/create_macos_build_ava.sh
@@ -2,8 +2,8 @@
set -e
-if [ "$#" -lt 7 ]; then
- echo "usage "
+if [ "$#" -lt 8 ]; then
+ echo "usage "
exit 1
fi
@@ -18,10 +18,11 @@ ENTITLEMENTS_FILE_PATH=$(readlink -f "$4")
VERSION=$5
SOURCE_REVISION_ID=$6
CONFIGURATION=$7
-EXTRA_ARGS=$8
+CANARY=$8
-if [ "$VERSION" == "1.1.0" ];
-then
+if [ "$CANARY" == "1" ]; then
+ RELEASE_TAR_FILE_NAME=ryujinx-canary-$VERSION-macos_universal.app.tar
+elif [ "$VERSION" == "1.1.0" ]; then
RELEASE_TAR_FILE_NAME=ryujinx-$CONFIGURATION-$VERSION+$SOURCE_REVISION_ID-macos_universal.app.tar
else
RELEASE_TAR_FILE_NAME=ryujinx-$VERSION-macos_universal.app.tar
@@ -61,7 +62,7 @@ mkdir -p "$OUTPUT_DIRECTORY"
cp -R "$ARM64_APP_BUNDLE" "$UNIVERSAL_APP_BUNDLE"
rm "$UNIVERSAL_APP_BUNDLE/$EXECUTABLE_SUB_PATH"
-# Make it libraries universal
+# Make its libraries universal
python3 "$BASE_DIR/distribution/macos/construct_universal_dylib.py" "$ARM64_APP_BUNDLE" "$X64_APP_BUNDLE" "$UNIVERSAL_APP_BUNDLE" "**/*.dylib"
if ! [ -x "$(command -v lipo)" ];
diff --git a/distribution/macos/create_macos_build_headless.sh b/distribution/macos/create_macos_build_headless.sh
index 24836418d..01951d878 100755
--- a/distribution/macos/create_macos_build_headless.sh
+++ b/distribution/macos/create_macos_build_headless.sh
@@ -2,8 +2,8 @@
set -e
-if [ "$#" -lt 7 ]; then
- echo "usage "
+if [ "$#" -lt 8 ]; then
+ echo "usage "
exit 1
fi
@@ -18,10 +18,11 @@ ENTITLEMENTS_FILE_PATH=$(readlink -f "$4")
VERSION=$5
SOURCE_REVISION_ID=$6
CONFIGURATION=$7
-EXTRA_ARGS=$8
+CANARY=$8
-if [ "$VERSION" == "1.1.0" ];
-then
+if [ "$CANARY" == "1" ]; then
+ RELEASE_TAR_FILE_NAME=nogui-ryujinx-canary-$VERSION-macos_universal.tar
+elif [ "$VERSION" == "1.1.0" ]; then
RELEASE_TAR_FILE_NAME=nogui-ryujinx-$CONFIGURATION-$VERSION+$SOURCE_REVISION_ID-macos_universal.tar
else
RELEASE_TAR_FILE_NAME=nogui-ryujinx-$VERSION-macos_universal.tar
@@ -56,7 +57,7 @@ mkdir -p "$OUTPUT_DIRECTORY"
cp -R "$ARM64_OUTPUT/" "$UNIVERSAL_OUTPUT"
rm "$UNIVERSAL_OUTPUT/$EXECUTABLE_SUB_PATH"
-# Make it libraries universal
+# Make its libraries universal
python3 "$BASE_DIR/distribution/macos/construct_universal_dylib.py" "$ARM64_OUTPUT" "$X64_OUTPUT" "$UNIVERSAL_OUTPUT" "**/*.dylib"
if ! [ -x "$(command -v lipo)" ];
diff --git a/src/Ryujinx.Common/Logging/Targets/FileLogTarget.cs b/src/Ryujinx.Common/Logging/Targets/FileLogTarget.cs
index 631df3056..94e9359c8 100644
--- a/src/Ryujinx.Common/Logging/Targets/FileLogTarget.cs
+++ b/src/Ryujinx.Common/Logging/Targets/FileLogTarget.cs
@@ -69,9 +69,10 @@ namespace Ryujinx.Common.Logging.Targets
}
string version = ReleaseInformation.Version;
+ string appName = ReleaseInformation.IsCanaryBuild ? "Ryujinx_Canary" : "Ryujinx";
// Get path for the current time
- path = Path.Combine(logDir.FullName, $"Ryujinx_{version}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log");
+ path = Path.Combine(logDir.FullName, $"{appName}_{version}_{DateTime.Now:yyyy-MM-dd_HH-mm-ss}.log");
try
{
diff --git a/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs
index 236711c31..c48ad378f 100644
--- a/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/AboutWindowViewModel.cs
@@ -49,7 +49,7 @@ namespace Ryujinx.Ava.UI.ViewModels
public AboutWindowViewModel()
{
- Version = Program.Version;
+ Version = App.FullAppName + "\n" + Program.Version;
UpdateLogoTheme(ConfigurationState.Instance.UI.BaseStyle.Value);
ThemeManager.ThemeChanged += ThemeManager_ThemeChanged;
--
2.47.1
From e2b7738465cc3b753ff255d0e10ed63fb6895058 Mon Sep 17 00:00:00 2001
From: GabCoolGuy
Date: Fri, 22 Nov 2024 18:07:47 +0100
Subject: [PATCH 024/674] Add all the missing locales from XCI Trimmer and LDN
merge (#281)
Hello any fellow developers that may be reading this. Whenever you add
any new locales to `en_US.json`, please make sure to add them to the
rest of the locale files. I will not always be there to add them myself.
---
src/Ryujinx/Assets/Locales/ar_SA.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/de_DE.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/el_GR.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/es_ES.json | 40 +++++++++++++++++++
src/Ryujinx/Assets/Locales/fr_FR.json | 56 ++++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/he_IL.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/it_IT.json | 14 ++++++-
src/Ryujinx/Assets/Locales/ja_JP.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/pl_PL.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/pt_BR.json | 55 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/ru_RU.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/th_TH.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/tr_TR.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/uk_UA.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/zh_CN.json | 54 +++++++++++++++++++++++++-
src/Ryujinx/Assets/Locales/zh_TW.json | 54 +++++++++++++++++++++++++-
16 files changed, 797 insertions(+), 16 deletions(-)
diff --git a/src/Ryujinx/Assets/Locales/ar_SA.json b/src/Ryujinx/Assets/Locales/ar_SA.json
index 781568fee..6dbc96135 100644
--- a/src/Ryujinx/Assets/Locales/ar_SA.json
+++ b/src/Ryujinx/Assets/Locales/ar_SA.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "إدارة أنواع الملفات",
"MenuBarToolsInstallFileTypes": "تثبيت أنواع الملفات",
"MenuBarToolsUninstallFileTypes": "إزالة أنواع الملفات",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_عرض",
"MenuBarViewWindow": "حجم النافذة",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "يفتح المجلد الذي يحتوي على تعديلات(mods) التطبيق",
"GameListContextMenuOpenSdModsDirectory": "فتح مجلد تعديلات(mods) أتموسفير",
"GameListContextMenuOpenSdModsDirectoryToolTip": "يفتح مجلد أتموسفير لبطاقة SD البديلة الذي يحتوي على تعديلات التطبيق. مفيد للتعديلات التي تم تعبئتها للأجهزة الحقيقية.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} لعبة تم تحميلها",
"StatusBarSystemVersion": "إصدار النظام: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "الحد الأدنى لتعيينات الذاكرة المكتشفة",
"LinuxVmMaxMapCountDialogTextPrimary": "هل ترغب في زيادة قيمة vm.max_map_count إلى {0}",
"LinuxVmMaxMapCountDialogTextSecondary": "قد تحاول بعض الألعاب إنشاء المزيد من تعيينات الذاكرة أكثر مما هو مسموح به حاليا. سيغلق ريوجينكس بمجرد تجاوز هذا الحد.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "حوار الإدخال",
"InputDialogOk": "موافق",
"InputDialogCancel": "إلغاء",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "اختر اسم الملف الشخصي",
"InputDialogAddNewProfileHeader": "الرجاء إدخال اسم الملف الشخصي",
"InputDialogAddNewProfileSubtext": "(الطول الأقصى: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "تم إلغاء تثبيت أنواع الملفات بنجاح!",
"DialogUninstallFileTypesErrorMessage": "فشل إلغاء تثبيت أنواع الملفات.",
"DialogOpenSettingsWindowLabel": "فتح نافذة الإعدادات",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "تطبيق وحدة التحكم المصغر",
"DialogMessageDialogErrorExceptionMessage": "خطأ في عرض مربع حوار الرسالة: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "خطأ في عرض لوحة مفاتيح البرامج: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "الإصدار: {0}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "ريوجينكس - معلومات",
"RyujinxConfirm": "ريوجينكس - تأكيد",
"FileDialogAllTypes": "كل الأنواع",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "حدد ملفات المحتوي الإضافي",
"SelectUpdateDialogTitle": "حدد ملفات التحديث",
"SelectModDialogTitle": "حدد مجلد التعديل",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "مدير الملفات الشخصية للمستخدمين",
"CheatWindowTitle": "مدير الغش",
"DlcWindowTitle": "إدارة المحتوى القابل للتنزيل لـ {0} ({1})",
"ModWindowTitle": "إدارة التعديلات لـ {0} ({1})",
"UpdateWindowTitle": "مدير تحديث العنوان",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} تعديل",
"UserProfilesEditProfile": "تعديل المحدد",
+ "Continue": "Continue",
"Cancel": "إلغاء",
"Save": "حفظ",
"Discard": "تجاهل",
@@ -810,5 +850,17 @@
"MultiplayerMode": "الوضع:",
"MultiplayerModeTooltip": "تغيير وضع LDN متعدد اللاعبين.\n\nسوف يقوم LdnMitm بتعديل وظيفة اللعب المحلية/اللاسلكية المحلية في الألعاب لتعمل كما لو كانت شبكة LAN، مما يسمح باتصالات الشبكة المحلية نفسها مع محاكيات ريوجينكس الأخرى وأجهزة نينتندو سويتش المخترقة التي تم تثبيت وحدة ldn_mitm عليها.\n\nيتطلب وضع اللاعبين المتعددين أن يكون جميع اللاعبين على نفس إصدار اللعبة (على سبيل المثال، يتعذر على الإصدار 13.0.1 من سوبر سماش برذرز ألتميت الاتصال بالإصدار 13.0.0).\n\nاتركه معطلا إذا لم تكن متأكدا.",
"MultiplayerModeDisabled": "معطل",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/de_DE.json b/src/Ryujinx/Assets/Locales/de_DE.json
index c6f9768c6..be95f3bc0 100644
--- a/src/Ryujinx/Assets/Locales/de_DE.json
+++ b/src/Ryujinx/Assets/Locales/de_DE.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "Dateitypen verwalten",
"MenuBarToolsInstallFileTypes": "Dateitypen installieren",
"MenuBarToolsUninstallFileTypes": "Dateitypen deinstallieren",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_Ansicht",
"MenuBarViewWindow": "Fenstergröße",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Öffnet das Verzeichnis, welches Mods für die Spiele beinhaltet",
"GameListContextMenuOpenSdModsDirectory": "Atmosphere-Mod-Verzeichnis öffnen",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Öffnet das alternative SD-Karten-Atmosphere-Verzeichnis, das die Mods der Anwendung enthält. Dieser Ordner ist nützlich für Mods, die für echte Hardware erstellt worden sind.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} Spiele geladen",
"StatusBarSystemVersion": "Systemversion: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Niedriges Limit für Speicherzuordnungen erkannt",
"LinuxVmMaxMapCountDialogTextPrimary": "Möchtest Du den Wert von vm.max_map_count auf {0} erhöhen",
"LinuxVmMaxMapCountDialogTextSecondary": "Einige Spiele könnten versuchen, mehr Speicherzuordnungen zu erstellen, als derzeit erlaubt. Ryujinx wird abstürzen, sobald dieses Limit überschritten wird.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "Eingabe-Dialog",
"InputDialogOk": "OK",
"InputDialogCancel": "Abbrechen",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "Wähle den Profilnamen",
"InputDialogAddNewProfileHeader": "Bitte gebe einen Profilnamen ein",
"InputDialogAddNewProfileSubtext": "(Maximale Länge: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "Dateitypen erfolgreich deinstalliert!",
"DialogUninstallFileTypesErrorMessage": "Deinstallation der Dateitypen fehlgeschlagen.",
"DialogOpenSettingsWindowLabel": "Fenster-Einstellungen öffnen",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "Controller-Applet",
"DialogMessageDialogErrorExceptionMessage": "Fehler bei der Anzeige des Meldungs-Dialogs: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Fehler bei der Anzeige der Software-Tastatur: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "Version {0} - {1}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - Info",
"RyujinxConfirm": "Ryujinx - Bestätigung",
"FileDialogAllTypes": "Alle Typen",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "DLC-Dateien auswählen",
"SelectUpdateDialogTitle": "Update-Datei auswählen",
"SelectModDialogTitle": "Mod-Ordner auswählen",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "Benutzerprofile verwalten",
"CheatWindowTitle": "Spiel-Cheats verwalten",
"DlcWindowTitle": "Spiel-DLC verwalten",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "Spiel-Updates verwalten",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Profil bearbeiten",
+ "Continue": "Continue",
"Cancel": "Abbrechen",
"Save": "Speichern",
"Discard": "Verwerfen",
@@ -810,5 +850,17 @@
"MultiplayerMode": "Modus:",
"MultiplayerModeTooltip": "Ändert den LDN-Mehrspielermodus.\n\nLdnMitm ändert die lokale drahtlose/lokale Spielfunktionalität in Spielen so, dass sie wie ein LAN funktioniert und lokale, netzwerkgleiche Verbindungen mit anderen Ryujinx-Instanzen und gehackten Nintendo Switch-Konsolen ermöglicht, auf denen das ldn_mitm-Modul installiert ist.\n\nMultiplayer erfordert, dass alle Spieler die gleiche Spielversion verwenden (d.h. Super Smash Bros. Ultimate v13.0.1 kann sich nicht mit v13.0.0 verbinden).\n\nIm Zweifelsfall auf DISABLED lassen.",
"MultiplayerModeDisabled": "Deaktiviert",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/el_GR.json b/src/Ryujinx/Assets/Locales/el_GR.json
index 76049fc3f..c6cfb9d62 100644
--- a/src/Ryujinx/Assets/Locales/el_GR.json
+++ b/src/Ryujinx/Assets/Locales/el_GR.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "Διαχείριση τύπων αρχείων",
"MenuBarToolsInstallFileTypes": "Εγκαταστήσετε τύπους αρχείων.",
"MenuBarToolsUninstallFileTypes": "Απεγκαταστήσετε τύπους αρχείων",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_View",
"MenuBarViewWindow": "Window Size",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Opens the directory which contains Application's Mods",
"GameListContextMenuOpenSdModsDirectory": "Open Atmosphere Mods Directory",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Opens the alternative SD card Atmosphere directory which contains Application's Mods. Useful for mods that are packaged for real hardware.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} Φορτωμένα Παιχνίδια",
"StatusBarSystemVersion": "Έκδοση Συστήματος: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Εντοπίστηκε χαμηλό όριο για αντιστοιχίσεις μνήμης",
"LinuxVmMaxMapCountDialogTextPrimary": "Θα θέλατε να αυξήσετε την τιμή του vm.max_map_count σε {0}",
"LinuxVmMaxMapCountDialogTextSecondary": "Μερικά παιχνίδια μπορεί να προσπαθήσουν να δημιουργήσουν περισσότερες αντιστοιχίσεις μνήμης από αυτές που επιτρέπονται τώρα. Ο Ryujinx θα καταρρεύσει μόλις ξεπεραστεί αυτό το όριο.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "Διάλογος Εισαγωγής",
"InputDialogOk": "ΟΚ",
"InputDialogCancel": "Ακύρωση",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "Επιλογή Ονόματος Προφίλ",
"InputDialogAddNewProfileHeader": "Εισαγωγή Ονόματος Προφίλ",
"InputDialogAddNewProfileSubtext": "(Σύνολο Χαρακτήρων: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "Επιτυχής απεγκατάσταση τύπων αρχείων!",
"DialogUninstallFileTypesErrorMessage": "Αποτυχία απεγκατάστασης τύπων αρχείων.",
"DialogOpenSettingsWindowLabel": "Άνοιγμα Παραθύρου Ρυθμίσεων",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "Applet Χειρισμού",
"DialogMessageDialogErrorExceptionMessage": "Σφάλμα εμφάνισης του διαλόγου Μηνυμάτων: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Σφάλμα εμφάνισης Λογισμικού Πληκτρολογίου: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "Version {0} - {1}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - Πληροφορίες",
"RyujinxConfirm": "Ryujinx - Επιβεβαίωση",
"FileDialogAllTypes": "Όλοι οι τύποι",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "Επιλογή αρχείων DLC",
"SelectUpdateDialogTitle": "Επιλογή αρχείων ενημέρωσης",
"SelectModDialogTitle": "Select mod directory",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "Διαχειριστής Προφίλ Χρήστη",
"CheatWindowTitle": "Διαχειριστής των Cheats",
"DlcWindowTitle": "Downloadable Content Manager",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "Διαχειριστής Ενημερώσεων Τίτλου",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Επεξεργασία Επιλεγμένων",
+ "Continue": "Continue",
"Cancel": "Ακύρωση",
"Save": "Αποθήκευση",
"Discard": "Απόρριψη",
@@ -810,5 +850,17 @@
"MultiplayerMode": "Λειτουργία:",
"MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
"MultiplayerModeDisabled": "Disabled",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index cf5c586d0..6a194960b 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "Administrar tipos de archivo",
"MenuBarToolsInstallFileTypes": "Instalar tipos de archivo",
"MenuBarToolsUninstallFileTypes": "Desinstalar tipos de archivo",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_View",
"MenuBarViewWindow": "Tamaño Ventana",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Abre el directorio que contiene los Mods de la Aplicación.",
"GameListContextMenuOpenSdModsDirectory": "Abrir Directorio de Mods de Atmosphere\n\n\n\n\n\n",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Abre el directorio alternativo de la tarjeta SD de Atmosphere que contiene los Mods de la Aplicación. Útil para los mods que están empaquetados para el hardware real.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} juegos cargados",
"StatusBarSystemVersion": "Versión del sistema: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Límite inferior para mapeos de memoria detectado",
"LinuxVmMaxMapCountDialogTextPrimary": "¿Quieres aumentar el valor de vm.max_map_count a {0}?",
"LinuxVmMaxMapCountDialogTextSecondary": "Algunos juegos podrían intentar crear más mapeos de memoria de los permitidos. Ryujinx se bloqueará tan pronto como se supere este límite.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "Cuadro de diálogo de entrada",
"InputDialogOk": "Aceptar",
"InputDialogCancel": "Cancelar",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "Introducir nombre de perfil",
"InputDialogAddNewProfileHeader": "Por favor elige un nombre de usuario",
"InputDialogAddNewProfileSubtext": "(Máximo de caracteres: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "¡Tipos de archivos desinstalados con éxito!",
"DialogUninstallFileTypesErrorMessage": "No se pudo desinstalar los tipos de archivo.",
"DialogOpenSettingsWindowLabel": "Abrir ventana de opciones",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "Applet de mandos",
"DialogMessageDialogErrorExceptionMessage": "Error al mostrar cuadro de diálogo: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Error al mostrar teclado de software: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "Versión {0} - {1}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - Info",
"RyujinxConfirm": "Ryujinx - Confirmación",
"FileDialogAllTypes": "Todos los tipos",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "Selecciona archivo(s) de DLC",
"SelectUpdateDialogTitle": "Selecciona archivo(s) de actualización",
"SelectModDialogTitle": "Seleccionar un directorio de Mods",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "Administrar perfiles de usuario",
"CheatWindowTitle": "Administrar cheats",
"DlcWindowTitle": "Administrar contenido descargable",
"ModWindowTitle": "Administrar Mods para {0} ({1})",
"UpdateWindowTitle": "Administrar actualizaciones",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} nueva(s) actualización(es) agregada(s)",
@@ -742,6 +781,7 @@
"AutoloadUpdateRemovedMessage": "Se eliminaron {0} actualización(es) faltantes",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Editar selección",
+ "Continue": "Continue",
"Cancel": "Cancelar",
"Save": "Guardar",
"Discard": "Descartar",
diff --git a/src/Ryujinx/Assets/Locales/fr_FR.json b/src/Ryujinx/Assets/Locales/fr_FR.json
index 0073a2cf5..dd23bef76 100644
--- a/src/Ryujinx/Assets/Locales/fr_FR.json
+++ b/src/Ryujinx/Assets/Locales/fr_FR.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "Gérer les types de fichiers",
"MenuBarToolsInstallFileTypes": "Installer les types de fichiers",
"MenuBarToolsUninstallFileTypes": "Désinstaller les types de fichiers",
+ "MenuBarToolsXCITrimmer": "Réduire les fichiers XCI",
"MenuBarView": "_Fenêtre",
"MenuBarViewWindow": "Taille de la fenêtre",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Ouvre le dossier contenant les mods du jeu",
"GameListContextMenuOpenSdModsDirectory": "Ouvrir le dossier des mods Atmosphère",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Ouvre le dossier alternatif de la carte SD Atmosphère qui contient les mods de l'application. Utile pour les mods conçus pour console.",
+ "GameListContextMenuTrimXCI": "Vérifier et réduire les fichiers XCI",
+ "GameListContextMenuTrimXCIToolTip": "Vérifier et réduire les fichiers XCI pour économiser de l'espace",
"StatusBarGamesLoaded": "{0}/{1} Jeux chargés",
"StatusBarSystemVersion": "Version du Firmware: {0}",
+ "StatusBarXCIFileTrimming": "Réduction du fichier XCI '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Limite basse pour les mappings mémoire détectée",
"LinuxVmMaxMapCountDialogTextPrimary": "Voulez-vous augmenter la valeur de vm.max_map_count à {0}",
"LinuxVmMaxMapCountDialogTextSecondary": "Certains jeux peuvent essayer de créer plus de mappings mémoire que ce qui est actuellement autorisé. Ryujinx plantera dès que cette limite sera dépassée.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "Fenêtre d'entrée de texte",
"InputDialogOk": "OK",
"InputDialogCancel": "Annuler",
+ "InputDialogCancelling": "Annulation en cours",
+ "InputDialogClose": "Fermer",
"InputDialogAddNewProfileTitle": "Choisir un nom de profil",
"InputDialogAddNewProfileHeader": "Merci d'entrer un nom de profil",
"InputDialogAddNewProfileSubtext": "(Longueur max.: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "Types de fichiers désinstallés avec succès!",
"DialogUninstallFileTypesErrorMessage": "Échec de la désinstallation des types de fichiers.",
"DialogOpenSettingsWindowLabel": "Ouvrir la fenêtre de configuration",
+ "DialogOpenXCITrimmerWindowLabel": "Fenêtre de réduction de fichiers XCI",
"DialogControllerAppletTitle": "Programme Manette",
"DialogMessageDialogErrorExceptionMessage": "Erreur lors de l'affichage de la boîte de dialogue : {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Erreur lors de l'affichage du clavier logiciel: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "Version {0}",
"TitleBundledUpdateVersionLabel": "Inclus avec le jeu: Version {0}",
"TitleBundledDlcLabel": "Inclus avec le jeu :",
+ "TitleXCIStatusPartialLabel": "Partiel",
+ "TitleXCIStatusTrimmableLabel": "Non réduit",
+ "TitleXCIStatusUntrimmableLabel": "Réduit",
+ "TitleXCIStatusFailedLabel": "(Échoué)",
+ "TitleXCICanSaveLabel": "Sauvegarde de {0:n0} Mo",
+ "TitleXCISavingLabel": "Sauvegardé {0:n0} Mo",
"RyujinxInfo": "Ryujinx - Info",
"RyujinxConfirm": "Ryujinx - Confirmation",
"FileDialogAllTypes": "Tous les types",
@@ -723,11 +736,39 @@
"SelectDlcDialogTitle": "Sélectionner les fichiers DLC",
"SelectUpdateDialogTitle": "Sélectionner les fichiers de mise à jour",
"SelectModDialogTitle": "Sélectionner le répertoire du mod",
+ "TrimXCIFileDialogTitle": "Vérifier et Réduire le fichier XCI",
+ "TrimXCIFileDialogPrimaryText": "Cette fonction va vérifier l'espace vide, puis réduire le fichier XCI pour économiser de l'espace de disque dur.",
+ "TrimXCIFileDialogSecondaryText": "Taille actuelle du fichier: {0:n} MB\nTaille des données de jeux: {1:n} MB\nÉconomie d'espaces sur le disque: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "Fichier XCI n'a pas besoin d'être réduit. Regarder les journaux pour plus de détails",
+ "TrimXCIFileNoUntrimPossible": "Fichier XCI ne peut pas être dé-réduit. Regarder les journaux pour plus de détails",
+ "TrimXCIFileReadOnlyFileCannotFix": "Fichier XCI est en Lecture Seule et n'a pas pu être rendu accessible en écriture. Regarder les journaux pour plus de détails",
+ "TrimXCIFileFileSizeChanged": "Fichier XCI a changé en taille depuis qu'il a été scanné. Vérifier que le fichier n'est pas en cours d'écriture et réessayer.",
+ "TrimXCIFileFreeSpaceCheckFailed": "Fichier XCI a des données dans la zone d'espace libre, ce n'est pas sûr de réduire",
+ "TrimXCIFileInvalidXCIFile": "Fichier XCI contient des données invalides. Regarder les journaux pour plus de détails",
+ "TrimXCIFileFileIOWriteError": "Fichier XCI n'a pas pu été ouvert pour écriture. Regarder les journaux pour plus de détails",
+ "TrimXCIFileFailedPrimaryText": "Réduction du fichier XCI a échoué",
+ "TrimXCIFileCancelled": "L'opération a été annulée",
+ "TrimXCIFileFileUndertermined": "Aucune opération a été faite",
"UserProfileWindowTitle": "Gestionnaire de profils utilisateur",
"CheatWindowTitle": "Gestionnaire de cheats",
"DlcWindowTitle": "Gérer le contenu téléchargeable pour {0} ({1})",
"ModWindowTitle": "Gérer les mods pour {0} ({1})",
"UpdateWindowTitle": "Gestionnaire de mises à jour",
+ "XCITrimmerWindowTitle": "Rogneur de fichier XCI",
+ "XCITrimmerTitleStatusCount": "{0} sur {1} Fichier(s) Sélectionnés",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} sur {1} Fichier(s) Sélectionnés ({2} affiché(s)",
+ "XCITrimmerTitleStatusTrimming": "Réduction de {0} Fichier(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Dé-Réduction de {0} Fichier(s)...",
+ "XCITrimmerTitleStatusFailed": "Échoué",
+ "XCITrimmerPotentialSavings": "Économies potentielles d'espace de disque dur",
+ "XCITrimmerActualSavings": "Économies actualles d'espace de disque dur",
+ "XCITrimmerSavingsMb": "{0:n0} Mo",
+ "XCITrimmerSelectDisplayed": "Sélectionner Affiché",
+ "XCITrimmerDeselectDisplayed": "Désélectionner Affiché",
+ "XCITrimmerSortName": "Titre",
+ "XCITrimmerSortSaved": "Économies de disque dur",
+ "XCITrimmerTrim": "Réduire",
+ "XCITrimmerUntrim": "Dé-Réduire",
"UpdateWindowUpdateAddedMessage": "{0} nouvelle(s) mise(s) à jour ajoutée(s)",
"UpdateWindowBundledContentNotice": "Les mises à jour incluses avec le jeu ne peuvent pas être supprimées mais peuvent être désactivées.",
"CheatWindowHeading": "Cheats disponibles pour {0} [{1}]",
@@ -741,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} mises à jour manquantes supprimées",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Éditer la sélection",
+ "Continue": "Continuer",
"Cancel": "Annuler",
"Save": "Enregistrer",
"Discard": "Abandonner",
@@ -808,5 +850,17 @@
"MultiplayerMode": "Mode :",
"MultiplayerModeTooltip": "Changer le mode multijoueur LDN.\n\nLdnMitm modifiera la fonctionnalité de jeu sans fil local/jeu local dans les jeux pour fonctionner comme s'il s'agissait d'un LAN, permettant des connexions locales sur le même réseau avec d'autres instances de Ryujinx et des consoles Nintendo Switch piratées ayant le module ldn_mitm installé.\n\nLe multijoueur nécessite que tous les joueurs soient sur la même version du jeu (par exemple, Super Smash Bros. Ultimate v13.0.1 ne peut pas se connecter à v13.0.0).\n\nLaissez DÉSACTIVÉ si vous n'êtes pas sûr.",
"MultiplayerModeDisabled": "Désactivé",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Désactiver PàP Hébergement de Réseau (pourrait augmenter la latence)",
+ "MultiplayerDisableP2PTooltip": "Désactiver PàP hébergement de réseau, les postes vont proxy avec le serveur principal au lieu de se connecter directement à vous.",
+ "LdnPassphrase": "Mot de passe Réseau :",
+ "LdnPassphraseTooltip": "Vous pourez seulement voir les jeux hébergé avec le même mot de passe que vous.",
+ "LdnPassphraseInputTooltip": "Entrer un mot de passe dans le format Ryujinx-<8 hex chars>. Vous pourez seulement voir les jeux hébergé avec le même mot de passe que vous.",
+ "LdnPassphraseInputPublic": "(publique)",
+ "GenLdnPass": "Générer Aléatoire",
+ "GenLdnPassTooltip": "Génére un nouveau mot de passe, qui peut être partagé avec les autres.",
+ "ClearLdnPass": "Supprimer",
+ "ClearLdnPassTooltip": "Supprime le mot de passe actuel, ce qui vous remet sur le réseau public.",
+ "InvalidLdnPassphrase": "Mot de passe invalide! Il doit être dans le format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/he_IL.json b/src/Ryujinx/Assets/Locales/he_IL.json
index 91e3e24e4..b9f89eb37 100644
--- a/src/Ryujinx/Assets/Locales/he_IL.json
+++ b/src/Ryujinx/Assets/Locales/he_IL.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "ניהול סוגי קבצים",
"MenuBarToolsInstallFileTypes": "סוגי קבצי התקנה",
"MenuBarToolsUninstallFileTypes": "סוגי קבצי הסרה",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_View",
"MenuBarViewWindow": "Window Size",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "פותח את התיקייה שמכילה מודים של האפליקציה",
"GameListContextMenuOpenSdModsDirectory": "פתח תיקיית מודים של Atmosphere",
"GameListContextMenuOpenSdModsDirectoryToolTip": "פותח את תיקיית כרטיס ה-SD החלופית של Atmosphere המכילה את המודים של האפליקציה. שימושי עבור מודים שארוזים עבור חומרה אמיתית.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{1}/{0} משחקים נטענו",
"StatusBarSystemVersion": "גרסת מערכת: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "זוהתה מגבלה נמוכה עבור מיפויי זיכרון",
"LinuxVmMaxMapCountDialogTextPrimary": "האם תרצה להגביר את הערך של vm.max_map_count ל{0}",
"LinuxVmMaxMapCountDialogTextSecondary": "משחקים מסוימים עלולים לייצר עוד מיפויי זיכרון ממה שמתאפשר. Ryujinx יקרוס ברגע שהמגבלה תחרוג.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "דיאלוג קלט",
"InputDialogOk": "בסדר",
"InputDialogCancel": "ביטול",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "בחרו את שם הפרופיל",
"InputDialogAddNewProfileHeader": "אנא הזינו שם לפרופיל",
"InputDialogAddNewProfileSubtext": "(אורך מרבי: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "סוגי קבצים הוסרו בהצלחה!",
"DialogUninstallFileTypesErrorMessage": "נכשל בהסרת סוגי קבצים.",
"DialogOpenSettingsWindowLabel": "פתח את חלון ההגדרות",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "יישומון בקר",
"DialogMessageDialogErrorExceptionMessage": "שגיאה בהצגת דיאלוג ההודעה: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "שגיאה בהצגת תוכנת המקלדת: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "גרסה {0}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "ריוג'ינקס - מידע",
"RyujinxConfirm": "ריוג'ינקס - אישור",
"FileDialogAllTypes": "כל הסוגים",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "בחרו קבצי הרחבות משחק",
"SelectUpdateDialogTitle": "בחרו קבצי עדכון",
"SelectModDialogTitle": "בחר תיקיית מודים",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "ניהול פרופילי משתמש",
"CheatWindowTitle": "נהל צ'יטים למשחק",
"DlcWindowTitle": "נהל הרחבות משחק עבור {0} ({1})",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "נהל עדכוני משחקים",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} מוד(ים)",
"UserProfilesEditProfile": "ערוך נבחר/ים",
+ "Continue": "Continue",
"Cancel": "בטל",
"Save": "שמור",
"Discard": "השלך",
@@ -810,5 +850,17 @@
"MultiplayerMode": "מצב:",
"MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
"MultiplayerModeDisabled": "Disabled",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index 2a92e70dc..f10dd9d35 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -850,5 +850,17 @@
"MultiplayerMode": "Modalità:",
"MultiplayerModeTooltip": "Cambia la modalità multigiocatore LDN.\n\nLdnMitm modificherà la funzionalità locale wireless/local play nei giochi per funzionare come se fosse in modalità LAN, consentendo connessioni locali sulla stessa rete con altre istanze di Ryujinx e console Nintendo Switch modificate che hanno il modulo ldn_mitm installato.\n\nLa modalità multigiocatore richiede che tutti i giocatori usino la stessa versione del gioco (es. Super Smash Bros. Ultimate v13.0.1 non può connettersi con la v13.0.0).\n\nNel dubbio, lascia l'opzione su Disabilitato.",
"MultiplayerModeDisabled": "Disabilitato",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/ja_JP.json b/src/Ryujinx/Assets/Locales/ja_JP.json
index b8e5870a6..34253acbf 100644
--- a/src/Ryujinx/Assets/Locales/ja_JP.json
+++ b/src/Ryujinx/Assets/Locales/ja_JP.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "ファイル形式を管理",
"MenuBarToolsInstallFileTypes": "ファイル形式をインストール",
"MenuBarToolsUninstallFileTypes": "ファイル形式をアンインストール",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_View",
"MenuBarViewWindow": "Window Size",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "アプリケーションの Mod データを格納するディレクトリを開きます",
"GameListContextMenuOpenSdModsDirectory": "Atmosphere Mods ディレクトリを開く",
"GameListContextMenuOpenSdModsDirectoryToolTip": "アプリケーションの Mod データを格納する SD カードの Atmosphere ディレクトリを開きます. 実際のハードウェア用に作成された Mod データに有用です.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} ゲーム",
"StatusBarSystemVersion": "システムバージョン: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "メモリマッピング上限値が小さすぎます",
"LinuxVmMaxMapCountDialogTextPrimary": "vm.max_map_count の値を {0}に増やしますか?",
"LinuxVmMaxMapCountDialogTextSecondary": "ゲームによっては, 現在許可されているサイズより大きなメモリマッピングを作成しようとすることがあります. この制限を超えると, Ryjinx はすぐにクラッシュします.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "入力ダイアログ",
"InputDialogOk": "OK",
"InputDialogCancel": "キャンセル",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "プロファイル名を選択",
"InputDialogAddNewProfileHeader": "プロファイル名を入力してください",
"InputDialogAddNewProfileSubtext": "(最大長: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "ファイル形式のアンインストールに成功しました!",
"DialogUninstallFileTypesErrorMessage": "ファイル形式のアンインストールに失敗しました.",
"DialogOpenSettingsWindowLabel": "設定ウインドウを開く",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "コントローラアプレット",
"DialogMessageDialogErrorExceptionMessage": "メッセージダイアログ表示エラー: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "ソフトウェアキーボード表示エラー: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "バージョン {0} - {1}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - 情報",
"RyujinxConfirm": "Ryujinx - 確認",
"FileDialogAllTypes": "すべての種別",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "DLC ファイルを選択",
"SelectUpdateDialogTitle": "アップデートファイルを選択",
"SelectModDialogTitle": "modディレクトリを選択",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "ユーザプロファイルを管理",
"CheatWindowTitle": "チート管理",
"DlcWindowTitle": "DLC 管理",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "アップデート管理",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
@@ -742,6 +781,7 @@
"AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "編集",
+ "Continue": "Continue",
"Cancel": "キャンセル",
"Save": "セーブ",
"Discard": "破棄",
@@ -809,5 +849,17 @@
"MultiplayerMode": "モード:",
"MultiplayerModeTooltip": "LDNマルチプレイヤーモードを変更します.\n\nldn_mitmモジュールがインストールされた, 他のRyujinxインスタンスや,ハックされたNintendo Switchコンソールとのローカル/同一ネットワーク接続を可能にします.\n\nマルチプレイでは, すべてのプレイヤーが同じゲームバージョンである必要があります(例:Super Smash Bros. Ultimate v13.0.1はv13.0.0に接続できません).\n\n不明な場合は「無効」のままにしてください.",
"MultiplayerModeDisabled": "無効",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/pl_PL.json b/src/Ryujinx/Assets/Locales/pl_PL.json
index fa88bab5e..015530833 100644
--- a/src/Ryujinx/Assets/Locales/pl_PL.json
+++ b/src/Ryujinx/Assets/Locales/pl_PL.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "Zarządzaj rodzajami plików",
"MenuBarToolsInstallFileTypes": "Typy plików instalacyjnych",
"MenuBarToolsUninstallFileTypes": "Typy plików dezinstalacyjnych",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_View",
"MenuBarViewWindow": "Window Size",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Otwiera katalog zawierający mody dla danej aplikacji",
"GameListContextMenuOpenSdModsDirectory": "Otwórz katalog modów Atmosphere",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Otwiera alternatywny katalog Atmosphere na karcie SD, który zawiera mody danej aplikacji. Przydatne dla modów przygotowanych pod prawdziwy sprzęt.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} Załadowane gry",
"StatusBarSystemVersion": "Wersja systemu: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Wykryto niski limit dla przypisań pamięci",
"LinuxVmMaxMapCountDialogTextPrimary": "Czy chcesz zwiększyć wartość vm.max_map_count do {0}",
"LinuxVmMaxMapCountDialogTextSecondary": "Niektóre gry mogą próbować przypisać sobie więcej pamięci niż obecnie, jest to dozwolone. Ryujinx ulegnie awarii, gdy limit zostanie przekroczony.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "Okno Dialogowe Wprowadzania",
"InputDialogOk": "OK",
"InputDialogCancel": "Anuluj",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "Wybierz nazwę profilu",
"InputDialogAddNewProfileHeader": "Wprowadź nazwę profilu",
"InputDialogAddNewProfileSubtext": "(Maksymalna długość: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "Pomyślnie odinstalowano typy plików!",
"DialogUninstallFileTypesErrorMessage": "Nie udało się odinstalować typów plików.",
"DialogOpenSettingsWindowLabel": "Otwórz Okno Ustawień",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "Aplet Kontrolera",
"DialogMessageDialogErrorExceptionMessage": "Błąd wyświetlania okna Dialogowego Wiadomości: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Błąd wyświetlania Klawiatury Oprogramowania: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "Wersja {0} - {1}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - Info",
"RyujinxConfirm": "Ryujinx - Potwierdzenie",
"FileDialogAllTypes": "Wszystkie typy",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "Wybierz pliki DLC",
"SelectUpdateDialogTitle": "Wybierz pliki aktualizacji",
"SelectModDialogTitle": "Wybierz katalog modów",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "Menedżer Profili Użytkowników",
"CheatWindowTitle": "Menedżer Kodów",
"DlcWindowTitle": "Menedżer Zawartości do Pobrania",
"ModWindowTitle": "Zarządzaj modami dla {0} ({1})",
"UpdateWindowTitle": "Menedżer Aktualizacji Tytułu",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} Mod(y/ów)",
"UserProfilesEditProfile": "Edytuj Zaznaczone",
+ "Continue": "Continue",
"Cancel": "Anuluj",
"Save": "Zapisz",
"Discard": "Odrzuć",
@@ -810,5 +850,17 @@
"MultiplayerMode": "Tryb:",
"MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
"MultiplayerModeDisabled": "Wyłączone",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/pt_BR.json b/src/Ryujinx/Assets/Locales/pt_BR.json
index 5b7a21494..512581c0e 100644
--- a/src/Ryujinx/Assets/Locales/pt_BR.json
+++ b/src/Ryujinx/Assets/Locales/pt_BR.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "Gerenciar tipos de arquivo",
"MenuBarToolsInstallFileTypes": "Instalar tipos de arquivo",
"MenuBarToolsUninstallFileTypes": "Desinstalar tipos de arquivos",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_View",
"MenuBarViewWindow": "Window Size",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Abre a pasta que contém os mods da aplicação ",
"GameListContextMenuOpenSdModsDirectory": "Abrir diretório de mods Atmosphere",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Opens the alternative SD card Atmosphere directory which contains Application's Mods. Useful for mods that are packaged for real hardware.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} jogos carregados",
"StatusBarSystemVersion": "Versão do firmware: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Limite baixo para mapeamentos de memória detectado",
"LinuxVmMaxMapCountDialogTextPrimary": "Você gostaria de aumentar o valor de vm.max_map_count para {0}",
"LinuxVmMaxMapCountDialogTextSecondary": "Alguns jogos podem tentar criar mais mapeamentos de memória do que o atualmente permitido. Ryujinx irá falhar assim que este limite for excedido.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "Diálogo de texto",
"InputDialogOk": "OK",
"InputDialogCancel": "Cancelar",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "Escolha o nome de perfil",
"InputDialogAddNewProfileHeader": "Escreva o nome do perfil",
"InputDialogAddNewProfileSubtext": "(Máximo de caracteres: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "Tipos de arquivo desinstalados com sucesso!",
"DialogUninstallFileTypesErrorMessage": "Falha ao desinstalar tipos de arquivo.",
"DialogOpenSettingsWindowLabel": "Abrir janela de configurações",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "Applet de controle",
"DialogMessageDialogErrorExceptionMessage": "Erro ao exibir diálogo de mensagem: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Erro ao exibir teclado virtual: {0}",
@@ -618,7 +625,6 @@
"LoadApplicationFolderTooltip": "Abre o navegador de pastas para seleção de pasta extraída do Switch compatível a ser carregada",
"OpenRyujinxFolderTooltip": "Abre o diretório do sistema de arquivos do Ryujinx",
"LoadTitleUpdatesFromFolderTooltip": "Abra o explorador de arquivos para selecionar uma ou mais pastas e carregar atualizações de jogo em massa.",
- "OpenRyujinxFolderTooltip": "Abrir diretório do sistema de arquivos do Ryujinx",
"OpenRyujinxLogsTooltip": "Abre o diretório onde os logs são salvos",
"ExitTooltip": "Sair do Ryujinx",
"OpenSettingsTooltip": "Abrir janela de configurações",
@@ -671,6 +677,12 @@
"TitleUpdateVersionLabel": "Versão {0}",
"TitleBundledUpdateVersionLabel": "Empacotado: Versão {0}",
"TitleBundledDlcLabel": "Empacotado:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - Informação",
"RyujinxConfirm": "Ryujinx - Confirmação",
"FileDialogAllTypes": "Todos os tipos",
@@ -724,10 +736,36 @@
"SelectUpdateDialogTitle": "Selecionar arquivos de atualização",
"SelectModDialogTitle": "Select mod directory",
"UserProfileWindowTitle": "Gerenciador de perfis de usuário",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"CheatWindowTitle": "Gerenciador de Cheats",
"DlcWindowTitle": "Gerenciador de DLC",
"ModWindowTitle": "Gerenciar Mods para {0} ({1})",
"UpdateWindowTitle": "Gerenciador de atualizações",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} nova(s) atualização(ões) adicionada(s)",
@@ -743,6 +781,7 @@
"AutoloadUpdateRemovedMessage": "{0} atualização(ões) ausente(s) removida(s)",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Editar selecionado",
+ "Continue": "Continue",
"Cancel": "Cancelar",
"Save": "Salvar",
"Discard": "Descartar",
@@ -810,5 +849,17 @@
"MultiplayerMode": "Modo:",
"MultiplayerModeTooltip": "Alterar o modo multiplayer LDN.\n\nLdnMitm modificará a funcionalidade de jogo sem fio/local nos jogos para funcionar como se fosse LAN, permitindo conexões locais, na mesma rede, com outras instâncias do Ryujinx e consoles Nintendo Switch hackeados que possuem o módulo ldn_mitm instalado.\n\nO multiplayer exige que todos os jogadores estejam na mesma versão do jogo (ex.: Super Smash Bros. Ultimate v13.0.1 não consegue se conectar à v13.0.0).\n\nDeixe DESATIVADO se estiver em dúvida.",
"MultiplayerModeDisabled": "Desativado",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/ru_RU.json b/src/Ryujinx/Assets/Locales/ru_RU.json
index cd17eb301..9d81116ef 100644
--- a/src/Ryujinx/Assets/Locales/ru_RU.json
+++ b/src/Ryujinx/Assets/Locales/ru_RU.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "Управление типами файлов",
"MenuBarToolsInstallFileTypes": "Установить типы файлов",
"MenuBarToolsUninstallFileTypes": "Удалить типы файлов",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_Вид",
"MenuBarViewWindow": "Размер окна",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Открывает папку, содержащую моды для приложений и игр",
"GameListContextMenuOpenSdModsDirectory": "Открыть папку с модами Atmosphere",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Открывает папку Atmosphere на альтернативной SD-карте, которая содержит моды для приложений и игр. Полезно для модов, сделанных для реальной консоли.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} игр загружено",
"StatusBarSystemVersion": "Версия прошивки: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Обнаружен низкий лимит разметки памяти",
"LinuxVmMaxMapCountDialogTextPrimary": "Хотите увеличить значение vm.max_map_count до {0}",
"LinuxVmMaxMapCountDialogTextSecondary": "Некоторые игры могут создавать большую разметку памяти, чем разрешено на данный момент по умолчанию. Ryujinx вылетит при превышении этого лимита.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "Диалоговое окно ввода",
"InputDialogOk": "ОК",
"InputDialogCancel": "Отмена",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "Выберите никнейм",
"InputDialogAddNewProfileHeader": "Пожалуйста, введите никнейм",
"InputDialogAddNewProfileSubtext": "(Максимальная длина: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "Типы файлов успешно удалены",
"DialogUninstallFileTypesErrorMessage": "Не удалось удалить типы файлов.",
"DialogOpenSettingsWindowLabel": "Открывает окно параметров",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "Апплет контроллера",
"DialogMessageDialogErrorExceptionMessage": "Ошибка отображения сообщения: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Ошибка отображения программной клавиатуры: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "Version {0} - {1}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - Информация",
"RyujinxConfirm": "Ryujinx - Подтверждение",
"FileDialogAllTypes": "Все типы",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "Выберите файлы DLC",
"SelectUpdateDialogTitle": "Выберите файлы обновлений",
"SelectModDialogTitle": "Выбрать папку с модами",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "Менеджер учетных записей",
"CheatWindowTitle": "Менеджер читов",
"DlcWindowTitle": "Управление DLC для {0} ({1})",
"ModWindowTitle": "Управление модами для {0} ({1})",
"UpdateWindowTitle": "Менеджер обновлений игр",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "Моды для {0} ",
"UserProfilesEditProfile": "Изменить выбранные",
+ "Continue": "Continue",
"Cancel": "Отмена",
"Save": "Сохранить",
"Discard": "Отменить",
@@ -810,5 +850,17 @@
"MultiplayerMode": "Режим:",
"MultiplayerModeTooltip": "Меняет многопользовательский режим LDN.\n\nLdnMitm модифицирует функциональность локальной беспроводной/игры на одном устройстве в играх, позволяя играть с другими пользователями Ryujinx или взломанными консолями Nintendo Switch с установленным модулем ldn_mitm, находящимися в одной локальной сети друг с другом.\n\nМногопользовательская игра требует наличия у всех игроков одной и той же версии игры (т.е. Super Smash Bros. Ultimate v13.0.1 не может подключиться к v13.0.0).\n\nРекомендуется оставить отключенным.",
"MultiplayerModeDisabled": "Отключено",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/th_TH.json b/src/Ryujinx/Assets/Locales/th_TH.json
index d32cfb737..fa59ba682 100644
--- a/src/Ryujinx/Assets/Locales/th_TH.json
+++ b/src/Ryujinx/Assets/Locales/th_TH.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "จัดการประเภทไฟล์",
"MenuBarToolsInstallFileTypes": "ติดตั้งประเภทไฟล์",
"MenuBarToolsUninstallFileTypes": "ถอนการติดตั้งประเภทไฟล์",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_มุมมอง",
"MenuBarViewWindow": "ขนาดหน้าต่าง",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "เปิดไดเร็กทอรี่ Mods ของแอปพลิเคชัน",
"GameListContextMenuOpenSdModsDirectory": "เปิดไดเร็กทอรี่ Mods Atmosphere",
"GameListContextMenuOpenSdModsDirectoryToolTip": "เปิดไดเร็กทอรี่ Atmosphere ของการ์ด SD สำรองซึ่งมี Mods ของแอปพลิเคชัน ซึ่งมีประโยชน์สำหรับ Mods ที่บรรจุมากับฮาร์ดแวร์จริง",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "เกมส์โหลดแล้ว {0}/{1}",
"StatusBarSystemVersion": "เวอร์ชั่นของระบบ: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "การตั้งค่าหน่วยความถึงขีดจำกัดต่ำสุดแล้ว",
"LinuxVmMaxMapCountDialogTextPrimary": "คุณต้องเพิ่มค่า vm.max_map_count ไปยัง {0}",
"LinuxVmMaxMapCountDialogTextSecondary": "บางเกมอาจพยายามใช้งานหน่วยความจำมากกว่าที่ได้รับอนุญาตในปัจจุบัน Ryujinx จะปิดตัวลงเมื่อเกินขีดจำกัดนี้",
@@ -400,6 +404,8 @@
"InputDialogTitle": "กล่องโต้ตอบการป้อนข้อมูล",
"InputDialogOk": "ตกลง",
"InputDialogCancel": "ยกเลิก",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "เลือก ชื่อโปรไฟล์",
"InputDialogAddNewProfileHeader": "กรุณาใส่ชื่อโปรไฟล์",
"InputDialogAddNewProfileSubtext": "(ความยาวสูงสุด: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "ถอนการติดตั้งตามประเภทของไฟล์สำเร็จแล้ว!",
"DialogUninstallFileTypesErrorMessage": "ไม่สามารถถอนการติดตั้งตามประเภทของไฟล์ได้",
"DialogOpenSettingsWindowLabel": "เปิดหน้าต่างการตั้งค่า",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "คอนโทรลเลอร์ Applet",
"DialogMessageDialogErrorExceptionMessage": "เกิดข้อผิดพลาดในการแสดงกล่องโต้ตอบข้อความ: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "เกิดข้อผิดพลาดในการแสดงซอฟต์แวร์แป้นพิมพ์: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "เวอร์ชั่น {0}",
"TitleBundledUpdateVersionLabel": "Bundled: เวอร์ชั่น {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx – ข้อมูล",
"RyujinxConfirm": "Ryujinx - ยืนยัน",
"FileDialogAllTypes": "ทุกประเภท",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "เลือกไฟล์ DLC",
"SelectUpdateDialogTitle": "เลือกไฟล์อัพเดต",
"SelectModDialogTitle": "เลือกไดเรกทอรี Mods",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "จัดการโปรไฟล์ผู้ใช้",
"CheatWindowTitle": "จัดการสูตรโกง",
"DlcWindowTitle": "จัดการ DLC ที่ดาวน์โหลดได้สำหรับ {0} ({1})",
"ModWindowTitle": "จัดการม็อดที่ดาวน์โหลดได้สำหรับ {0} ({1})",
"UpdateWindowTitle": "จัดการอัปเดตหัวข้อ",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} อัพเดตที่เพิ่มมาใหม่",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} ม็อด",
"UserProfilesEditProfile": "แก้ไขที่เลือกแล้ว",
+ "Continue": "Continue",
"Cancel": "ยกเลิก",
"Save": "บันทึก",
"Discard": "ละทิ้ง",
@@ -810,5 +850,17 @@
"MultiplayerMode": "โหมด:",
"MultiplayerModeTooltip": "เปลี่ยนโหมดผู้เล่นหลายคนของ LDN\n\nLdnMitm จะปรับเปลี่ยนฟังก์ชันการเล่นแบบไร้สาย/ภายใน จะให้เกมทำงานเหมือนกับว่าเป็น LAN ช่วยให้สามารถเชื่อมต่อภายในเครือข่ายเดียวกันกับอินสแตนซ์ Ryujinx อื่น ๆ และคอนโซล Nintendo Switch ที่ถูกแฮ็กซึ่งมีโมดูล ldn_mitm ติดตั้งอยู่\n\nผู้เล่นหลายคนต้องการให้ผู้เล่นทุกคนอยู่ในเกมเวอร์ชันเดียวกัน (เช่น Super Smash Bros. Ultimate v13.0.1 ไม่สามารถเชื่อมต่อกับ v13.0.0)\n\nปล่อยให้ปิดการใช้งานหากไม่แน่ใจ",
"MultiplayerModeDisabled": "ปิดใช้งาน",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/tr_TR.json b/src/Ryujinx/Assets/Locales/tr_TR.json
index 1ac9a0b6e..9b321c423 100644
--- a/src/Ryujinx/Assets/Locales/tr_TR.json
+++ b/src/Ryujinx/Assets/Locales/tr_TR.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "Dosya uzantılarını yönet",
"MenuBarToolsInstallFileTypes": "Dosya uzantılarını yükle",
"MenuBarToolsUninstallFileTypes": "Dosya uzantılarını kaldır",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_Görüntüle",
"MenuBarViewWindow": "Pencere Boyutu",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Opens the directory which contains Application's Mods",
"GameListContextMenuOpenSdModsDirectory": "Open Atmosphere Mods Directory",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Opens the alternative SD card Atmosphere directory which contains Application's Mods. Useful for mods that are packaged for real hardware.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} Oyun Yüklendi",
"StatusBarSystemVersion": "Sistem Sürümü: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Bellek Haritaları İçin Düşük Limit Tespit Edildi ",
"LinuxVmMaxMapCountDialogTextPrimary": "vm.max_map_count değerini {0} sayısına yükseltmek ister misiniz",
"LinuxVmMaxMapCountDialogTextSecondary": "Bazı oyunlar şu an izin verilen bellek haritası limitinden daha fazlasını yaratmaya çalışabilir. Ryujinx bu limitin geçildiği takdirde kendini kapatıcaktır.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "Giriş Yöntemi Diyaloğu",
"InputDialogOk": "Tamam",
"InputDialogCancel": "İptal",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "Profil İsmini Seç",
"InputDialogAddNewProfileHeader": "Lütfen Bir Profil İsmi Girin",
"InputDialogAddNewProfileSubtext": "(Maksimum Uzunluk: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "Dosya uzantıları başarıyla kaldırıldı!",
"DialogUninstallFileTypesErrorMessage": "Dosya uzantıları kaldırma işlemi başarısız oldu.",
"DialogOpenSettingsWindowLabel": "Seçenekler Penceresini Aç",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "Kumanda Applet'i",
"DialogMessageDialogErrorExceptionMessage": "Mesaj diyaloğu gösterilirken hata: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Mesaj diyaloğu gösterilirken hata: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "Sürüm {0} - {1}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - Bilgi",
"RyujinxConfirm": "Ryujinx - Doğrulama",
"FileDialogAllTypes": "Tüm türler",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "DLC dosyalarını seç",
"SelectUpdateDialogTitle": "Güncelleme dosyalarını seç",
"SelectModDialogTitle": "Mod Dizinini Seç",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "Kullanıcı Profillerini Yönet",
"CheatWindowTitle": "Oyun Hilelerini Yönet",
"DlcWindowTitle": "Oyun DLC'lerini Yönet",
"ModWindowTitle": "Manage Mods for {0} ({1})",
"UpdateWindowTitle": "Oyun Güncellemelerini Yönet",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} Mod(lar)",
"UserProfilesEditProfile": "Seçiliyi Düzenle",
+ "Continue": "Continue",
"Cancel": "İptal",
"Save": "Kaydet",
"Discard": "Iskarta",
@@ -810,5 +850,17 @@
"MultiplayerMode": "Mod:",
"MultiplayerModeTooltip": "Change LDN multiplayer mode.\n\nLdnMitm will modify local wireless/local play functionality in games to function as if it were LAN, allowing for local, same-network connections with other Ryujinx instances and hacked Nintendo Switch consoles that have the ldn_mitm module installed.\n\nMultiplayer requires all players to be on the same game version (i.e. Super Smash Bros. Ultimate v13.0.1 can't connect to v13.0.0).\n\nLeave DISABLED if unsure.",
"MultiplayerModeDisabled": "Devre Dışı",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/uk_UA.json b/src/Ryujinx/Assets/Locales/uk_UA.json
index 0e22263b6..09a7e8cb4 100644
--- a/src/Ryujinx/Assets/Locales/uk_UA.json
+++ b/src/Ryujinx/Assets/Locales/uk_UA.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "Керувати типами файлів",
"MenuBarToolsInstallFileTypes": "Установити типи файлів",
"MenuBarToolsUninstallFileTypes": "Видалити типи файлів",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "_View",
"MenuBarViewWindow": "Window Size",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Відкриває каталог, який містить модифікації Додатків",
"GameListContextMenuOpenSdModsDirectory": "Відкрити каталог модифікацій Atmosphere",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Відкриває альтернативний каталог SD-карти Atmosphere, що містить модифікації Додатків. Корисно для модифікацій, зроблених для реального обладнання.",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} ігор завантажено",
"StatusBarSystemVersion": "Версія системи: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Виявлено низьку межу для відображення памʼяті",
"LinuxVmMaxMapCountDialogTextPrimary": "Бажаєте збільшити значення vm.max_map_count на {0}",
"LinuxVmMaxMapCountDialogTextSecondary": "Деякі ігри можуть спробувати створити більше відображень памʼяті, ніж дозволено наразі. Ryujinx завершить роботу, щойно цей ліміт буде перевищено.",
@@ -400,6 +404,8 @@
"InputDialogTitle": "Діалог введення",
"InputDialogOk": "Гаразд",
"InputDialogCancel": "Скасувати",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "Виберіть ім'я профілю",
"InputDialogAddNewProfileHeader": "Будь ласка, введіть ім'я профілю",
"InputDialogAddNewProfileSubtext": "(Макс. довжина: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "Успішно видалено типи файлів!",
"DialogUninstallFileTypesErrorMessage": "Не вдалося видалити типи файлів.",
"DialogOpenSettingsWindowLabel": "Відкрити вікно налаштувань",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "Аплет контролера",
"DialogMessageDialogErrorExceptionMessage": "Помилка показу діалогового вікна повідомлення: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Помилка показу програмної клавіатури: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "Версія {0} - {1}",
"TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
"TitleBundledDlcLabel": "Bundled:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujin x - Інформація",
"RyujinxConfirm": "Ryujinx - Підтвердження",
"FileDialogAllTypes": "Всі типи",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "Виберіть файли DLC",
"SelectUpdateDialogTitle": "Виберіть файли оновлення",
"SelectModDialogTitle": "Виберіть теку з модами",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "Менеджер профілів користувачів",
"CheatWindowTitle": "Менеджер читів",
"DlcWindowTitle": "Менеджер вмісту для завантаження",
"ModWindowTitle": "Керувати модами для {0} ({1})",
"UpdateWindowTitle": "Менеджер оновлення назв",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} new update(s) added",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} missing update(s) removed",
"ModWindowHeading": "{0} мод(ів)",
"UserProfilesEditProfile": "Редагувати вибране",
+ "Continue": "Continue",
"Cancel": "Скасувати",
"Save": "Зберегти",
"Discard": "Скасувати",
@@ -810,5 +850,17 @@
"MultiplayerMode": "Режим:",
"MultiplayerModeTooltip": "Змінити LDN мультиплеєру.\n\nLdnMitm змінить функціонал бездротової/локальної гри в іграх, щоб вони працювали так, ніби це LAN, що дозволяє локальні підключення в тій самій мережі з іншими екземплярами Ryujinx та хакнутими консолями Nintendo Switch, які мають встановлений модуль ldn_mitm.\n\nМультиплеєр вимагає, щоб усі гравці були на одній і тій же версії гри (наприклад Super Smash Bros. Ultimate v13.0.1 не зможе під'єднатися до v13.0.0).\n\nЗалиште на \"Вимкнено\", якщо не впевнені, ",
"MultiplayerModeDisabled": "Вимкнено",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/zh_CN.json b/src/Ryujinx/Assets/Locales/zh_CN.json
index 004d5007b..11840e864 100644
--- a/src/Ryujinx/Assets/Locales/zh_CN.json
+++ b/src/Ryujinx/Assets/Locales/zh_CN.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "管理文件扩展名",
"MenuBarToolsInstallFileTypes": "关联文件扩展名",
"MenuBarToolsUninstallFileTypes": "取消关联扩展名",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "视图(_V)",
"MenuBarViewWindow": "窗口大小",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "打开存放游戏 MOD 的目录",
"GameListContextMenuOpenSdModsDirectory": "打开大气层系统 MOD 目录",
"GameListContextMenuOpenSdModsDirectoryToolTip": "打开存放适用于大气层系统的游戏 MOD 的目录,对于为真实硬件打包的 MOD 非常有用",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} 游戏加载完成",
"StatusBarSystemVersion": "系统固件版本:{0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "检测到操作系统内存映射最大数量被设置的过低",
"LinuxVmMaxMapCountDialogTextPrimary": "你想要将操作系统 vm.max_map_count 的值增加到 {0} 吗",
"LinuxVmMaxMapCountDialogTextSecondary": "有些游戏可能会尝试创建超过当前系统允许的内存映射最大数量,若超过当前最大数量,Ryujinx 模拟器将会闪退。",
@@ -400,6 +404,8 @@
"InputDialogTitle": "输入对话框",
"InputDialogOk": "完成",
"InputDialogCancel": "取消",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "选择用户名称",
"InputDialogAddNewProfileHeader": "请输入账户名称",
"InputDialogAddNewProfileSubtext": "(最大长度:{0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "成功解除文件类型关联!",
"DialogUninstallFileTypesErrorMessage": "解除文件类型关联失败!",
"DialogOpenSettingsWindowLabel": "打开设置窗口",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "控制器小窗口",
"DialogMessageDialogErrorExceptionMessage": "显示消息对话框时出错:{0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "显示软件键盘时出错:{0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "游戏更新的版本 {0}",
"TitleBundledUpdateVersionLabel": "捆绑:版本 {0}",
"TitleBundledDlcLabel": "捆绑:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - 信息",
"RyujinxConfirm": "Ryujinx - 确认",
"FileDialogAllTypes": "全部类型",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "选择 DLC 文件",
"SelectUpdateDialogTitle": "选择更新文件",
"SelectModDialogTitle": "选择 MOD 目录",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "管理用户账户",
"CheatWindowTitle": "金手指管理器",
"DlcWindowTitle": "管理 {0} ({1}) 的 DLC",
"ModWindowTitle": "管理 {0} ({1}) 的 MOD",
"UpdateWindowTitle": "游戏更新管理器",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "{0} 个更新被添加",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "{0} 个失效的游戏更新已移除",
"ModWindowHeading": "{0} Mod",
"UserProfilesEditProfile": "编辑所选",
+ "Continue": "Continue",
"Cancel": "取消",
"Save": "保存",
"Discard": "放弃",
@@ -810,5 +850,17 @@
"MultiplayerMode": "联机模式:",
"MultiplayerModeTooltip": "修改 LDN 多人联机游玩模式。\n\nldn_mitm 联机插件将修改游戏中的本地无线和本地游玩功能,使其表现得像局域网一样,允许和其他安装了 ldn_mitm 插件的 Ryujinx 模拟器和破解的任天堂 Switch 主机在同一网络下进行本地连接,实现多人联机游玩。\n\n多人联机游玩要求所有玩家必须运行相同的游戏版本(例如,游戏版本 v13.0.1 无法与 v13.0.0 联机)。\n\n如果不确定,请保持为“禁用”。",
"MultiplayerModeDisabled": "禁用",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
diff --git a/src/Ryujinx/Assets/Locales/zh_TW.json b/src/Ryujinx/Assets/Locales/zh_TW.json
index 9bfc243ae..d59df0e5b 100644
--- a/src/Ryujinx/Assets/Locales/zh_TW.json
+++ b/src/Ryujinx/Assets/Locales/zh_TW.json
@@ -33,6 +33,7 @@
"MenuBarToolsManageFileTypes": "管理檔案類型",
"MenuBarToolsInstallFileTypes": "安裝檔案類型",
"MenuBarToolsUninstallFileTypes": "移除檔案類型",
+ "MenuBarToolsXCITrimmer": "Trim XCI Files",
"MenuBarView": "檢視(_V)",
"MenuBarViewWindow": "視窗大小",
"MenuBarViewWindow720": "720p",
@@ -84,8 +85,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "開啟此應用程式模組的資料夾",
"GameListContextMenuOpenSdModsDirectory": "開啟 Atmosphere 模組資料夾",
"GameListContextMenuOpenSdModsDirectoryToolTip": "開啟此應用程式模組的另一個 SD 卡 Atmosphere 資料夾。適用於為真實硬體封裝的模組。",
+ "GameListContextMenuTrimXCI": "Check and Trim XCI File",
+ "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
"StatusBarGamesLoaded": "{0}/{1} 遊戲已載入",
"StatusBarSystemVersion": "系統版本: {0}",
+ "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
"LinuxVmMaxMapCountDialogTitle": "檢測到記憶體映射的低限值",
"LinuxVmMaxMapCountDialogTextPrimary": "您是否要將 vm.max_map_count 的數值增至 {0}?",
"LinuxVmMaxMapCountDialogTextSecondary": "某些遊戲可能會嘗試建立超過目前允許的記憶體映射。一旦超過此限制,Ryujinx 就會崩潰。",
@@ -400,6 +404,8 @@
"InputDialogTitle": "輸入對話方塊",
"InputDialogOk": "確定",
"InputDialogCancel": "取消",
+ "InputDialogCancelling": "Cancelling",
+ "InputDialogClose": "Close",
"InputDialogAddNewProfileTitle": "選擇設定檔名稱",
"InputDialogAddNewProfileHeader": "請輸入設定檔名稱",
"InputDialogAddNewProfileSubtext": "(最大長度: {0})",
@@ -469,6 +475,7 @@
"DialogUninstallFileTypesSuccessMessage": "成功移除檔案類型!",
"DialogUninstallFileTypesErrorMessage": "無法移除檔案類型。",
"DialogOpenSettingsWindowLabel": "開啟設定視窗",
+ "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
"DialogControllerAppletTitle": "控制器小程式",
"DialogMessageDialogErrorExceptionMessage": "顯示訊息對話方塊時出現錯誤: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "顯示軟體鍵盤時出現錯誤: {0}",
@@ -671,6 +678,12 @@
"TitleUpdateVersionLabel": "版本 {0}",
"TitleBundledUpdateVersionLabel": "附帶: 版本 {0}",
"TitleBundledDlcLabel": "附帶:",
+ "TitleXCIStatusPartialLabel": "Partial",
+ "TitleXCIStatusTrimmableLabel": "Untrimmed",
+ "TitleXCIStatusUntrimmableLabel": "Trimmed",
+ "TitleXCIStatusFailedLabel": "(Failed)",
+ "TitleXCICanSaveLabel": "Save {0:n0} Mb",
+ "TitleXCISavingLabel": "Saved {0:n0} Mb",
"RyujinxInfo": "Ryujinx - 資訊",
"RyujinxConfirm": "Ryujinx - 確認",
"FileDialogAllTypes": "全部類型",
@@ -723,11 +736,37 @@
"SelectDlcDialogTitle": "選取 DLC 檔案",
"SelectUpdateDialogTitle": "選取更新檔",
"SelectModDialogTitle": "選取模組資料夾",
+ "TrimXCIFileDialogTitle": "Check and Trim XCI File",
+ "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
+ "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
+ "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
+ "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
+ "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
+ "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
+ "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
+ "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
+ "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
+ "TrimXCIFileCancelled": "The operation was cancelled",
+ "TrimXCIFileFileUndertermined": "No operation was performed",
"UserProfileWindowTitle": "使用者設定檔管理員",
"CheatWindowTitle": "密技管理員",
"DlcWindowTitle": "管理 {0} 的可下載內容 ({1})",
"ModWindowTitle": "管理 {0} 的模組 ({1})",
"UpdateWindowTitle": "遊戲更新管理員",
+ "XCITrimmerWindowTitle": "XCI File Trimmer",
+ "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
+ "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
+ "XCITrimmerTitleStatusFailed": "Failed",
+ "XCITrimmerPotentialSavings": "Potential Savings",
+ "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerSavingsMb": "{0:n0} Mb",
+ "XCITrimmerSelectDisplayed": "Select Shown",
+ "XCITrimmerDeselectDisplayed": "Deselect Shown",
+ "XCITrimmerSortName": "Title",
+ "XCITrimmerSortSaved": "Space Savings",
"XCITrimmerTrim": "Trim",
"XCITrimmerUntrim": "Untrim",
"UpdateWindowUpdateAddedMessage": "已加入 {0} 個遊戲更新",
@@ -743,6 +782,7 @@
"AutoloadUpdateRemovedMessage": "已刪除 {0} 個遺失的遊戲更新",
"ModWindowHeading": "{0} 模組",
"UserProfilesEditProfile": "編輯所選",
+ "Continue": "Continue",
"Cancel": "取消",
"Save": "儲存",
"Discard": "放棄變更",
@@ -810,5 +850,17 @@
"MultiplayerMode": "模式:",
"MultiplayerModeTooltip": "變更 LDN 多人遊戲模式。\n\nLdnMitm 將修改遊戲中的本機無線/本機遊戲功能,使其如同區域網路一樣執行,允許與其他安裝了 ldn_mitm 模組的 Ryujinx 實例和已破解的 Nintendo Switch 遊戲機進行本機同網路連線。\n\n多人遊戲要求所有玩家使用相同的遊戲版本 (例如,Super Smash Bros. Ultimate v13.0.1 無法連接 v13.0.0)。\n\n如果不確定,請保持 Disabled (停用) 狀態。",
"MultiplayerModeDisabled": "已停用",
- "MultiplayerModeLdnMitm": "ldn_mitm"
+ "MultiplayerModeLdnMitm": "ldn_mitm",
+ "MultiplayerModeLdnRyu": "RyuLDN",
+ "MultiplayerDisableP2P": "Disable P2P Network Hosting (may increase latency)",
+ "MultiplayerDisableP2PTooltip": "Disable P2P network hosting, peers will proxy through the master server instead of connecting to you directly.",
+ "LdnPassphrase": "Network Passphrase:",
+ "LdnPassphraseTooltip": "You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputTooltip": "Enter a passphrase in the format Ryujinx-<8 hex chars>. You will only be able to see hosted games with the same passphrase as you.",
+ "LdnPassphraseInputPublic": "(public)",
+ "GenLdnPass": "Generate Random",
+ "GenLdnPassTooltip": "Generates a new passphrase, which can be shared with other players.",
+ "ClearLdnPass": "Clear",
+ "ClearLdnPassTooltip": "Clears the current passphrase, returning to the public network.",
+ "InvalidLdnPassphrase": "Invalid Passphrase! Must be in the format \"Ryujinx-<8 hex chars>\""
}
--
2.47.1
From f8d63f9a2fe6a094f147b414201c882e34f27e29 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Fri, 22 Nov 2024 14:38:58 -0600
Subject: [PATCH 025/674] UI: Add a show changelog button in the Updater, for
new updates & when you're on the latest version.
---
Directory.Packages.props | 4 +--
src/Ryujinx.Common/ReleaseInformation.cs | 9 +++++
src/Ryujinx/Assets/Locales/ar_SA.json | 1 +
src/Ryujinx/Assets/Locales/de_DE.json | 1 +
src/Ryujinx/Assets/Locales/el_GR.json | 1 +
src/Ryujinx/Assets/Locales/en_US.json | 1 +
src/Ryujinx/Assets/Locales/es_ES.json | 1 +
src/Ryujinx/Assets/Locales/fr_FR.json | 1 +
src/Ryujinx/Assets/Locales/he_IL.json | 1 +
src/Ryujinx/Assets/Locales/it_IT.json | 1 +
src/Ryujinx/Assets/Locales/ja_JP.json | 1 +
src/Ryujinx/Assets/Locales/ko_KR.json | 1 +
src/Ryujinx/Assets/Locales/pl_PL.json | 1 +
src/Ryujinx/Assets/Locales/pt_BR.json | 1 +
src/Ryujinx/Assets/Locales/ru_RU.json | 1 +
src/Ryujinx/Assets/Locales/th_TH.json | 1 +
src/Ryujinx/Assets/Locales/tr_TR.json | 1 +
src/Ryujinx/Assets/Locales/uk_UA.json | 1 +
src/Ryujinx/Assets/Locales/zh_CN.json | 1 +
src/Ryujinx/Assets/Locales/zh_TW.json | 1 +
src/Ryujinx/UI/Helpers/ContentDialogHelper.cs | 34 +++++++++++++++++++
src/Ryujinx/Updater.cs | 33 +++++++++++++-----
22 files changed, 87 insertions(+), 11 deletions(-)
diff --git a/Directory.Packages.props b/Directory.Packages.props
index c0ace079d..ffb5f2ead 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -38,7 +38,7 @@
-
+
@@ -52,4 +52,4 @@
-
\ No newline at end of file
+
diff --git a/src/Ryujinx.Common/ReleaseInformation.cs b/src/Ryujinx.Common/ReleaseInformation.cs
index f4c62155a..011d9848a 100644
--- a/src/Ryujinx.Common/ReleaseInformation.cs
+++ b/src/Ryujinx.Common/ReleaseInformation.cs
@@ -1,3 +1,4 @@
+using System;
using System.Reflection;
namespace Ryujinx.Common
@@ -35,5 +36,13 @@ namespace Ryujinx.Common
public static bool IsReleaseBuild => IsValid && ReleaseChannelName.Equals(ReleaseChannel);
public static string Version => IsValid ? BuildVersion : Assembly.GetEntryAssembly()!.GetCustomAttribute()?.InformationalVersion;
+
+ public static string GetChangelogUrl(Version currentVersion, Version newVersion) =>
+ IsCanaryBuild
+ ? $"https://github.com/{ReleaseChannelOwner}/{ReleaseChannelSourceRepo}/compare/Canary-{currentVersion}...Canary-{newVersion}"
+ : $"https://github.com/{ReleaseChannelOwner}/{ReleaseChannelSourceRepo}/releases/tag/{newVersion}";
+
+ public static string GetChangelogForVersion(Version version) =>
+ $"https://github.com/{ReleaseChannelOwner}/{ReleaseChannelRepo}/releases/tag/{version}";
}
}
diff --git a/src/Ryujinx/Assets/Locales/ar_SA.json b/src/Ryujinx/Assets/Locales/ar_SA.json
index 6dbc96135..c937a2eed 100644
--- a/src/Ryujinx/Assets/Locales/ar_SA.json
+++ b/src/Ryujinx/Assets/Locales/ar_SA.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "جاري استخراج التحديث...",
"DialogUpdaterRenamingMessage": "إعادة تسمية التحديث...",
"DialogUpdaterAddingFilesMessage": "إضافة تحديث جديد...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "اكتمل التحديث",
"DialogUpdaterRestartMessage": "هل تريد إعادة تشغيل ريوجينكس الآن؟",
"DialogUpdaterNoInternetMessage": "أنت غير متصل بالإنترنت.",
diff --git a/src/Ryujinx/Assets/Locales/de_DE.json b/src/Ryujinx/Assets/Locales/de_DE.json
index be95f3bc0..c27de5608 100644
--- a/src/Ryujinx/Assets/Locales/de_DE.json
+++ b/src/Ryujinx/Assets/Locales/de_DE.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Update wird entpackt...",
"DialogUpdaterRenamingMessage": "Update wird umbenannt...",
"DialogUpdaterAddingFilesMessage": "Update wird hinzugefügt...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "Update abgeschlossen!",
"DialogUpdaterRestartMessage": "Ryujinx jetzt neu starten?",
"DialogUpdaterNoInternetMessage": "Es besteht keine Verbindung mit dem Internet!",
diff --git a/src/Ryujinx/Assets/Locales/el_GR.json b/src/Ryujinx/Assets/Locales/el_GR.json
index c6cfb9d62..d47c8b9fe 100644
--- a/src/Ryujinx/Assets/Locales/el_GR.json
+++ b/src/Ryujinx/Assets/Locales/el_GR.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Εξαγωγή Ενημέρωσης...",
"DialogUpdaterRenamingMessage": "Μετονομασία Ενημέρωσης...",
"DialogUpdaterAddingFilesMessage": "Προσθήκη Νέας Ενημέρωσης...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "Η Ενημέρωση Ολοκληρώθηκε!",
"DialogUpdaterRestartMessage": "Θέλετε να επανεκκινήσετε το Ryujinx τώρα;",
"DialogUpdaterNoInternetMessage": "Δεν είστε συνδεδεμένοι στο Διαδίκτυο!",
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index 9354c8a41..23135866d 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Extracting Update...",
"DialogUpdaterRenamingMessage": "Renaming Update...",
"DialogUpdaterAddingFilesMessage": "Adding New Update...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "Update Complete!",
"DialogUpdaterRestartMessage": "Do you want to restart Ryujinx now?",
"DialogUpdaterNoInternetMessage": "You are not connected to the Internet!",
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index 6a194960b..8456040ce 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Extrayendo actualización...",
"DialogUpdaterRenamingMessage": "Renombrando actualización...",
"DialogUpdaterAddingFilesMessage": "Aplicando actualización...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "¡Actualización completa!",
"DialogUpdaterRestartMessage": "¿Quieres reiniciar Ryujinx?",
"DialogUpdaterNoInternetMessage": "¡No estás conectado a internet!",
diff --git a/src/Ryujinx/Assets/Locales/fr_FR.json b/src/Ryujinx/Assets/Locales/fr_FR.json
index dd23bef76..f17a7ba95 100644
--- a/src/Ryujinx/Assets/Locales/fr_FR.json
+++ b/src/Ryujinx/Assets/Locales/fr_FR.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Extraction de la mise à jour…",
"DialogUpdaterRenamingMessage": "Renommage de la mise à jour...",
"DialogUpdaterAddingFilesMessage": "Ajout d'une nouvelle mise à jour...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "Mise à jour terminée !",
"DialogUpdaterRestartMessage": "Voulez-vous redémarrer Ryujinx maintenant ?",
"DialogUpdaterNoInternetMessage": "Vous n'êtes pas connecté à Internet !",
diff --git a/src/Ryujinx/Assets/Locales/he_IL.json b/src/Ryujinx/Assets/Locales/he_IL.json
index b9f89eb37..f0cf4eb68 100644
--- a/src/Ryujinx/Assets/Locales/he_IL.json
+++ b/src/Ryujinx/Assets/Locales/he_IL.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "מחלץ עדכון...",
"DialogUpdaterRenamingMessage": "משנה את שם העדכון...",
"DialogUpdaterAddingFilesMessage": "מוסיף עדכון חדש...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "העדכון הושלם!",
"DialogUpdaterRestartMessage": "האם אתם רוצים להפעיל מחדש את ריוג'ינקס עכשיו?",
"DialogUpdaterNoInternetMessage": "אתם לא מחוברים לאינטרנט!",
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index f10dd9d35..dd408bf5b 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Estrazione dell'aggiornamento...",
"DialogUpdaterRenamingMessage": "Rinominazione dell'aggiornamento...",
"DialogUpdaterAddingFilesMessage": "Aggiunta del nuovo aggiornamento...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "Aggiornamento completato!",
"DialogUpdaterRestartMessage": "Vuoi riavviare Ryujinx adesso?",
"DialogUpdaterNoInternetMessage": "Non sei connesso ad Internet!",
diff --git a/src/Ryujinx/Assets/Locales/ja_JP.json b/src/Ryujinx/Assets/Locales/ja_JP.json
index 34253acbf..244730494 100644
--- a/src/Ryujinx/Assets/Locales/ja_JP.json
+++ b/src/Ryujinx/Assets/Locales/ja_JP.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "アップデートを展開中...",
"DialogUpdaterRenamingMessage": "アップデートをリネーム中...",
"DialogUpdaterAddingFilesMessage": "新規アップデートを追加中...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "アップデート完了!",
"DialogUpdaterRestartMessage": "すぐに Ryujinx を再起動しますか?",
"DialogUpdaterNoInternetMessage": "インターネットに接続されていません!",
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index 5bda1565b..47a619054 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "업데이트 추출 중...",
"DialogUpdaterRenamingMessage": "이름 변경 업데이트...",
"DialogUpdaterAddingFilesMessage": "새 업데이트 추가 중...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "업데이트가 완료되었습니다!",
"DialogUpdaterRestartMessage": "지금 Ryujinx를 다시 시작하시겠습니까?",
"DialogUpdaterNoInternetMessage": "인터넷에 연결되어 있지 않습니다!",
diff --git a/src/Ryujinx/Assets/Locales/pl_PL.json b/src/Ryujinx/Assets/Locales/pl_PL.json
index 015530833..cfa9d7a76 100644
--- a/src/Ryujinx/Assets/Locales/pl_PL.json
+++ b/src/Ryujinx/Assets/Locales/pl_PL.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Wypakowywanie Aktualizacji...",
"DialogUpdaterRenamingMessage": "Zmiana Nazwy Aktualizacji...",
"DialogUpdaterAddingFilesMessage": "Dodawanie Nowej Aktualizacji...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "Aktualizacja Zakończona!",
"DialogUpdaterRestartMessage": "Czy chcesz teraz zrestartować Ryujinx?",
"DialogUpdaterNoInternetMessage": "Nie masz połączenia z Internetem!",
diff --git a/src/Ryujinx/Assets/Locales/pt_BR.json b/src/Ryujinx/Assets/Locales/pt_BR.json
index 512581c0e..352fae46b 100644
--- a/src/Ryujinx/Assets/Locales/pt_BR.json
+++ b/src/Ryujinx/Assets/Locales/pt_BR.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Extraindo atualização...",
"DialogUpdaterRenamingMessage": "Renomeando atualização...",
"DialogUpdaterAddingFilesMessage": "Adicionando nova atualização...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "Atualização concluída!",
"DialogUpdaterRestartMessage": "Deseja reiniciar o Ryujinx agora?",
"DialogUpdaterNoInternetMessage": "Você não está conectado à Internet!",
diff --git a/src/Ryujinx/Assets/Locales/ru_RU.json b/src/Ryujinx/Assets/Locales/ru_RU.json
index 9d81116ef..112735e2d 100644
--- a/src/Ryujinx/Assets/Locales/ru_RU.json
+++ b/src/Ryujinx/Assets/Locales/ru_RU.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Извлечение обновления...",
"DialogUpdaterRenamingMessage": "Переименование обновления...",
"DialogUpdaterAddingFilesMessage": "Добавление нового обновления...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "Обновление завершено",
"DialogUpdaterRestartMessage": "Перезапустить Ryujinx?",
"DialogUpdaterNoInternetMessage": "Вы не подключены к интернету",
diff --git a/src/Ryujinx/Assets/Locales/th_TH.json b/src/Ryujinx/Assets/Locales/th_TH.json
index fa59ba682..35959ddbd 100644
--- a/src/Ryujinx/Assets/Locales/th_TH.json
+++ b/src/Ryujinx/Assets/Locales/th_TH.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "กำลังแตกไฟล์อัปเดต...",
"DialogUpdaterRenamingMessage": "กำลังลบไฟล์เก่า...",
"DialogUpdaterAddingFilesMessage": "กำลังเพิ่มไฟล์อัปเดตใหม่...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "อัปเดตเสร็จสมบูรณ์แล้ว!",
"DialogUpdaterRestartMessage": "คุณต้องการรีสตาร์ท Ryujinx ตอนนี้หรือไม่?",
"DialogUpdaterNoInternetMessage": "คุณไม่ได้เชื่อมต่อกับอินเทอร์เน็ต!",
diff --git a/src/Ryujinx/Assets/Locales/tr_TR.json b/src/Ryujinx/Assets/Locales/tr_TR.json
index 9b321c423..5d50b67db 100644
--- a/src/Ryujinx/Assets/Locales/tr_TR.json
+++ b/src/Ryujinx/Assets/Locales/tr_TR.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Güncelleme Ayıklanıyor...",
"DialogUpdaterRenamingMessage": "Güncelleme Yeniden Adlandırılıyor...",
"DialogUpdaterAddingFilesMessage": "Yeni Güncelleme Ekleniyor...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "Güncelleme Tamamlandı!",
"DialogUpdaterRestartMessage": "Ryujinx'i şimdi yeniden başlatmak istiyor musunuz?",
"DialogUpdaterNoInternetMessage": "İnternete bağlı değilsiniz!",
diff --git a/src/Ryujinx/Assets/Locales/uk_UA.json b/src/Ryujinx/Assets/Locales/uk_UA.json
index 09a7e8cb4..a45208486 100644
--- a/src/Ryujinx/Assets/Locales/uk_UA.json
+++ b/src/Ryujinx/Assets/Locales/uk_UA.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "Видобування оновлення...",
"DialogUpdaterRenamingMessage": "Перейменування оновлення...",
"DialogUpdaterAddingFilesMessage": "Додавання нового оновлення...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "Оновлення завершено!",
"DialogUpdaterRestartMessage": "Перезапустити Ryujinx зараз?",
"DialogUpdaterNoInternetMessage": "Ви не підключені до Інтернету!",
diff --git a/src/Ryujinx/Assets/Locales/zh_CN.json b/src/Ryujinx/Assets/Locales/zh_CN.json
index 11840e864..8a4995ea7 100644
--- a/src/Ryujinx/Assets/Locales/zh_CN.json
+++ b/src/Ryujinx/Assets/Locales/zh_CN.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "正在提取更新...",
"DialogUpdaterRenamingMessage": "正在重命名更新...",
"DialogUpdaterAddingFilesMessage": "安装更新中...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "更新成功!",
"DialogUpdaterRestartMessage": "是否立即重启 Ryujinx 模拟器?",
"DialogUpdaterNoInternetMessage": "没有连接到网络",
diff --git a/src/Ryujinx/Assets/Locales/zh_TW.json b/src/Ryujinx/Assets/Locales/zh_TW.json
index d59df0e5b..5649ba00a 100644
--- a/src/Ryujinx/Assets/Locales/zh_TW.json
+++ b/src/Ryujinx/Assets/Locales/zh_TW.json
@@ -457,6 +457,7 @@
"DialogUpdaterExtractionMessage": "正在提取更新...",
"DialogUpdaterRenamingMessage": "重新命名更新...",
"DialogUpdaterAddingFilesMessage": "加入新更新...",
+ "DialogUpdaterShowChangelogMessage": "Show Changelog",
"DialogUpdaterCompleteMessage": "更新成功!",
"DialogUpdaterRestartMessage": "您現在要重新啟動 Ryujinx 嗎?",
"DialogUpdaterNoInternetMessage": "您沒有連線到網際網路!",
diff --git a/src/Ryujinx/UI/Helpers/ContentDialogHelper.cs b/src/Ryujinx/UI/Helpers/ContentDialogHelper.cs
index a7fe3f0ce..3f0f0f033 100644
--- a/src/Ryujinx/UI/Helpers/ContentDialogHelper.cs
+++ b/src/Ryujinx/UI/Helpers/ContentDialogHelper.cs
@@ -261,6 +261,16 @@ namespace Ryujinx.Ava.UI.Helpers
string.Empty,
LocaleManager.Instance[LocaleKeys.InputDialogOk],
(int)Symbol.Important);
+
+ internal static async Task CreateUpdaterUpToDateInfoDialog(string primary, string secondaryText)
+ => await ShowTextDialog(
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterTitle],
+ primary,
+ secondaryText,
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterShowChangelogMessage],
+ string.Empty,
+ LocaleManager.Instance[LocaleKeys.InputDialogOk],
+ (int)Symbol.Important);
internal static async Task CreateWarningDialog(string primary, string secondaryText)
=> await ShowTextDialog(
@@ -309,6 +319,30 @@ namespace Ryujinx.Ava.UI.Helpers
return response == UserResult.Yes;
}
+
+ internal static async Task CreateUpdaterChoiceDialog(string title, string primary, string secondaryText)
+ {
+ if (_isChoiceDialogOpen)
+ {
+ return UserResult.Cancel;
+ }
+
+ _isChoiceDialogOpen = true;
+
+ UserResult response = await ShowTextDialog(
+ title,
+ primary,
+ secondaryText,
+ LocaleManager.Instance[LocaleKeys.InputDialogYes],
+ LocaleManager.Instance[LocaleKeys.DialogUpdaterShowChangelogMessage],
+ LocaleManager.Instance[LocaleKeys.InputDialogNo],
+ (int)Symbol.Help,
+ UserResult.Yes);
+
+ _isChoiceDialogOpen = false;
+
+ return response;
+ }
internal static async Task CreateExitDialog()
{
diff --git a/src/Ryujinx/Updater.cs b/src/Ryujinx/Updater.cs
index 9deff5e86..5f3ddb119 100644
--- a/src/Ryujinx/Updater.cs
+++ b/src/Ryujinx/Updater.cs
@@ -176,9 +176,14 @@ namespace Ryujinx.Ava
{
if (showVersionUpToDate)
{
- await ContentDialogHelper.CreateUpdaterInfoDialog(
+ UserResult userResult = await ContentDialogHelper.CreateUpdaterUpToDateInfoDialog(
LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage],
string.Empty);
+
+ if (userResult is UserResult.Yes)
+ {
+ OpenHelper.OpenUrl(ReleaseInformation.GetChangelogForVersion(currentVersion));
+ }
}
_running = false;
@@ -206,19 +211,29 @@ namespace Ryujinx.Ava
await Dispatcher.UIThread.InvokeAsync(async () =>
{
+ string newVersionString = ReleaseInformation.IsCanaryBuild
+ ? $"Canary {currentVersion} -> Canary {newVersion}"
+ : $"{currentVersion} -> {newVersion}";
+
+ RequestUserToUpdate:
// Show a message asking the user if they want to update
- var shouldUpdate = await ContentDialogHelper.CreateChoiceDialog(
+ UserResult shouldUpdate = await ContentDialogHelper.CreateUpdaterChoiceDialog(
LocaleManager.Instance[LocaleKeys.RyujinxUpdater],
LocaleManager.Instance[LocaleKeys.RyujinxUpdaterMessage],
- $"{Program.Version} -> {newVersion}");
+ newVersionString);
- if (shouldUpdate)
+ switch (shouldUpdate)
{
- await UpdateRyujinx(mainWindow, _buildUrl);
- }
- else
- {
- _running = false;
+ case UserResult.Yes:
+ await UpdateRyujinx(mainWindow, _buildUrl);
+ break;
+ // Secondary button maps to no, which in this case is the show changelog button.
+ case UserResult.No:
+ OpenHelper.OpenUrl(ReleaseInformation.GetChangelogUrl(currentVersion, newVersion));
+ goto RequestUserToUpdate;
+ default:
+ _running = false;
+ break;
}
});
}
--
2.47.1
From 49eeb26b6f4fd9ab94a1168d1a77bdcee4617ef9 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Fri, 22 Nov 2024 14:46:10 -0600
Subject: [PATCH 026/674] UI: I may be stupid. Primary button result is Ok, not
Yes.
---
src/Ryujinx/Updater.cs | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Ryujinx/Updater.cs b/src/Ryujinx/Updater.cs
index 5f3ddb119..47acbc343 100644
--- a/src/Ryujinx/Updater.cs
+++ b/src/Ryujinx/Updater.cs
@@ -180,7 +180,7 @@ namespace Ryujinx.Ava
LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage],
string.Empty);
- if (userResult is UserResult.Yes)
+ if (userResult is UserResult.Ok)
{
OpenHelper.OpenUrl(ReleaseInformation.GetChangelogForVersion(currentVersion));
}
--
2.47.1
From e05875a079e1a31a8e5401932949c6cdb0196856 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Fri, 22 Nov 2024 14:52:56 -0600
Subject: [PATCH 027/674] UI: It's called "live testing."
---
src/Ryujinx/Updater.cs | 14 ++++++++++++--
1 file changed, 12 insertions(+), 2 deletions(-)
diff --git a/src/Ryujinx/Updater.cs b/src/Ryujinx/Updater.cs
index 47acbc343..bdb44d668 100644
--- a/src/Ryujinx/Updater.cs
+++ b/src/Ryujinx/Updater.cs
@@ -114,9 +114,14 @@ namespace Ryujinx.Ava
{
if (showVersionUpToDate)
{
- await ContentDialogHelper.CreateUpdaterInfoDialog(
+ UserResult userResult = await ContentDialogHelper.CreateUpdaterUpToDateInfoDialog(
LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage],
string.Empty);
+
+ if (userResult is UserResult.Ok)
+ {
+ OpenHelper.OpenUrl(ReleaseInformation.GetChangelogForVersion(currentVersion));
+ }
}
_running = false;
@@ -133,9 +138,14 @@ namespace Ryujinx.Ava
{
if (showVersionUpToDate)
{
- await ContentDialogHelper.CreateUpdaterInfoDialog(
+ UserResult userResult = await ContentDialogHelper.CreateUpdaterUpToDateInfoDialog(
LocaleManager.Instance[LocaleKeys.DialogUpdaterAlreadyOnLatestVersionMessage],
string.Empty);
+
+ if (userResult is UserResult.Ok)
+ {
+ OpenHelper.OpenUrl(ReleaseInformation.GetChangelogForVersion(currentVersion));
+ }
}
_running = false;
--
2.47.1
From 55340011528aa8c05a826397ea41178cfc8de226 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Fri, 22 Nov 2024 15:08:24 -0600
Subject: [PATCH 028/674] UI: Always save screenshots to the Ryujinx data
directory.
---
src/Ryujinx/AppHost.cs | 6 +-----
1 file changed, 1 insertion(+), 5 deletions(-)
diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs
index 7246be4b9..d1398f194 100644
--- a/src/Ryujinx/AppHost.cs
+++ b/src/Ryujinx/AppHost.cs
@@ -352,11 +352,7 @@ namespace Ryujinx.Ava
string filename = $"{sanitizedApplicationName}_{currentTime.Year}-{currentTime.Month:D2}-{currentTime.Day:D2}_{currentTime.Hour:D2}-{currentTime.Minute:D2}-{currentTime.Second:D2}.png";
- string directory = AppDataManager.Mode switch
- {
- AppDataManager.LaunchMode.Portable or AppDataManager.LaunchMode.Custom => Path.Combine(AppDataManager.BaseDirPath, "screenshots"),
- _ => Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyPictures), "Ryujinx"),
- };
+ string directory = Path.Combine(AppDataManager.BaseDirPath, "screenshots");
string path = Path.Combine(directory, filename);
--
2.47.1
From e653848a2cdbd6571a325bededd3535a5dc09de2 Mon Sep 17 00:00:00 2001
From: LotP1 <68976644+LotP1@users.noreply.github.com>
Date: Fri, 22 Nov 2024 22:33:44 +0100
Subject: [PATCH 029/674] JIT Sparse Function Table (#250)
More up to date build of the JIT Sparse PR for continued development.
JIT Sparse Function Table was originally developed by riperiperi for the
original Ryujinx project, and decreased the amount of layers in the
Function Table structure, to decrease lookup times at the cost of
slightly higher RAM usage.
This PR rebalances the JIT Sparse Function Table to be a bit more RAM
intensive, but faster in workloads where the JIT Function Table is a
bottleneck. Faster RAM will see a bigger impact and slower RAM (DDR3 and
potentially slow DDR4) will see a slight performance decrease.
This PR also implements a base for a PPTC profile system that could
allow for PPTC with ExeFS mods enabled in the future.
This PR also potentially fixes a strange issue where Avalonia would time
out in some rare instances, e.g. when running ExeFS mods with TotK and a
strange controller configuration.
---------
Co-authored-by: Evan Husted
---
src/ARMeilleure/Common/AddressTable.cs | 252 ---------
src/ARMeilleure/Common/AddressTableLevel.cs | 44 ++
src/ARMeilleure/Common/AddressTablePresets.cs | 75 +++
src/ARMeilleure/Common/Allocator.cs | 2 +-
src/ARMeilleure/Common/IAddressTable.cs | 51 ++
src/ARMeilleure/Common/NativeAllocator.cs | 2 +-
.../Instructions/InstEmitFlowHelper.cs | 26 +
.../Signal/NativeSignalHandlerGenerator.cs | 2 +-
.../Translation/ArmEmitterContext.cs | 4 +-
src/ARMeilleure/Translation/PTC/Ptc.cs | 15 +-
src/ARMeilleure/Translation/Translator.cs | 30 +-
.../Translation/TranslatorStubs.cs | 4 +-
src/Ryujinx.Cpu/AddressTable.cs | 482 ++++++++++++++++++
src/Ryujinx.Cpu/AppleHv/HvCpuContext.cs | 2 +-
src/Ryujinx.Cpu/ICpuContext.cs | 2 +-
src/Ryujinx.Cpu/Jit/JitCpuContext.cs | 10 +-
.../Arm32/Target/Arm64/InstEmitFlow.cs | 62 ++-
.../Arm64/Target/Arm64/InstEmitSystem.cs | 62 ++-
.../LightningJit/LightningJitCpuContext.cs | 11 +-
src/Ryujinx.Cpu/LightningJit/Translator.cs | 23 +-
.../LightningJit/TranslatorStubs.cs | 4 +-
src/Ryujinx.HLE/HOS/ArmProcessContext.cs | 8 +-
.../HOS/ArmProcessContextFactory.cs | 2 +-
src/Ryujinx.Memory/SparseMemoryBlock.cs | 125 +++++
src/Ryujinx.Tests/Cpu/CpuContext.cs | 3 +-
src/Ryujinx.Tests/Cpu/EnvironmentTests.cs | 7 +-
src/Ryujinx.Tests/Memory/PartialUnmaps.cs | 7 +-
27 files changed, 990 insertions(+), 327 deletions(-)
delete mode 100644 src/ARMeilleure/Common/AddressTable.cs
create mode 100644 src/ARMeilleure/Common/AddressTableLevel.cs
create mode 100644 src/ARMeilleure/Common/AddressTablePresets.cs
create mode 100644 src/ARMeilleure/Common/IAddressTable.cs
create mode 100644 src/Ryujinx.Cpu/AddressTable.cs
create mode 100644 src/Ryujinx.Memory/SparseMemoryBlock.cs
diff --git a/src/ARMeilleure/Common/AddressTable.cs b/src/ARMeilleure/Common/AddressTable.cs
deleted file mode 100644
index a3ffaf470..000000000
--- a/src/ARMeilleure/Common/AddressTable.cs
+++ /dev/null
@@ -1,252 +0,0 @@
-using ARMeilleure.Diagnostics;
-using System;
-using System.Collections.Generic;
-using System.Runtime.InteropServices;
-
-namespace ARMeilleure.Common
-{
- ///
- /// Represents a table of guest address to a value.
- ///
- /// Type of the value
- public unsafe class AddressTable : IDisposable where TEntry : unmanaged
- {
- ///
- /// Represents a level in an .
- ///
- public readonly struct Level
- {
- ///
- /// Gets the index of the in the guest address.
- ///
- public int Index { get; }
-
- ///
- /// Gets the length of the in the guest address.
- ///
- public int Length { get; }
-
- ///
- /// Gets the mask which masks the bits used by the .
- ///
- public ulong Mask => ((1ul << Length) - 1) << Index;
-
- ///
- /// Initializes a new instance of the structure with the specified
- /// and .
- ///
- /// Index of the
- /// Length of the
- public Level(int index, int length)
- {
- (Index, Length) = (index, length);
- }
-
- ///
- /// Gets the value of the from the specified guest .
- ///
- /// Guest address
- /// Value of the from the specified guest
- public int GetValue(ulong address)
- {
- return (int)((address & Mask) >> Index);
- }
- }
-
- private bool _disposed;
- private TEntry** _table;
- private readonly List _pages;
-
- ///
- /// Gets the bits used by the of the instance.
- ///
- public ulong Mask { get; }
-
- ///
- /// Gets the s used by the instance.
- ///
- public Level[] Levels { get; }
-
- ///
- /// Gets or sets the default fill value of newly created leaf pages.
- ///
- public TEntry Fill { get; set; }
-
- ///
- /// Gets the base address of the .
- ///
- /// instance was disposed
- public nint Base
- {
- get
- {
- ObjectDisposedException.ThrowIf(_disposed, this);
-
- lock (_pages)
- {
- return (nint)GetRootPage();
- }
- }
- }
-
- ///
- /// Constructs a new instance of the class with the specified list of
- /// .
- ///
- /// is null
- /// Length of is less than 2
- public AddressTable(Level[] levels)
- {
- ArgumentNullException.ThrowIfNull(levels);
-
- if (levels.Length < 2)
- {
- throw new ArgumentException("Table must be at least 2 levels deep.", nameof(levels));
- }
-
- _pages = new List(capacity: 16);
-
- Levels = levels;
- Mask = 0;
-
- foreach (var level in Levels)
- {
- Mask |= level.Mask;
- }
- }
-
- ///
- /// Determines if the specified is in the range of the
- /// .
- ///
- /// Guest address
- /// if is valid; otherwise
- public bool IsValid(ulong address)
- {
- return (address & ~Mask) == 0;
- }
-
- ///
- /// Gets a reference to the value at the specified guest .
- ///
- /// Guest address
- /// Reference to the value at the specified guest
- /// instance was disposed
- /// is not mapped
- public ref TEntry GetValue(ulong address)
- {
- ObjectDisposedException.ThrowIf(_disposed, this);
-
- if (!IsValid(address))
- {
- throw new ArgumentException($"Address 0x{address:X} is not mapped onto the table.", nameof(address));
- }
-
- lock (_pages)
- {
- return ref GetPage(address)[Levels[^1].GetValue(address)];
- }
- }
-
- ///
- /// Gets the leaf page for the specified guest .
- ///
- /// Guest address
- /// Leaf page for the specified guest
- private TEntry* GetPage(ulong address)
- {
- TEntry** page = GetRootPage();
-
- for (int i = 0; i < Levels.Length - 1; i++)
- {
- ref Level level = ref Levels[i];
- ref TEntry* nextPage = ref page[level.GetValue(address)];
-
- if (nextPage == null)
- {
- ref Level nextLevel = ref Levels[i + 1];
-
- nextPage = i == Levels.Length - 2 ?
- (TEntry*)Allocate(1 << nextLevel.Length, Fill, leaf: true) :
- (TEntry*)Allocate(1 << nextLevel.Length, nint.Zero, leaf: false);
- }
-
- page = (TEntry**)nextPage;
- }
-
- return (TEntry*)page;
- }
-
- ///
- /// Lazily initialize and get the root page of the .
- ///
- /// Root page of the
- private TEntry** GetRootPage()
- {
- if (_table == null)
- {
- _table = (TEntry**)Allocate(1 << Levels[0].Length, fill: nint.Zero, leaf: false);
- }
-
- return _table;
- }
-
- ///
- /// Allocates a block of memory of the specified type and length.
- ///
- /// Type of elements
- /// Number of elements
- /// Fill value
- /// if leaf; otherwise
- /// Allocated block
- private nint Allocate(int length, T fill, bool leaf) where T : unmanaged
- {
- var size = sizeof(T) * length;
- var page = (nint)NativeAllocator.Instance.Allocate((uint)size);
- var span = new Span((void*)page, length);
-
- span.Fill(fill);
-
- _pages.Add(page);
-
- TranslatorEventSource.Log.AddressTableAllocated(size, leaf);
-
- return page;
- }
-
- ///
- /// Releases all resources used by the instance.
- ///
- public void Dispose()
- {
- Dispose(true);
- GC.SuppressFinalize(this);
- }
-
- ///
- /// Releases all unmanaged and optionally managed resources used by the
- /// instance.
- ///
- /// to dispose managed resources also; otherwise just unmanaged resouces
- protected virtual void Dispose(bool disposing)
- {
- if (!_disposed)
- {
- foreach (var page in _pages)
- {
- Marshal.FreeHGlobal(page);
- }
-
- _disposed = true;
- }
- }
-
- ///
- /// Frees resources used by the instance.
- ///
- ~AddressTable()
- {
- Dispose(false);
- }
- }
-}
diff --git a/src/ARMeilleure/Common/AddressTableLevel.cs b/src/ARMeilleure/Common/AddressTableLevel.cs
new file mode 100644
index 000000000..6107726ee
--- /dev/null
+++ b/src/ARMeilleure/Common/AddressTableLevel.cs
@@ -0,0 +1,44 @@
+namespace ARMeilleure.Common
+{
+ ///
+ /// Represents a level in an .
+ ///
+ public readonly struct AddressTableLevel
+ {
+ ///
+ /// Gets the index of the in the guest address.
+ ///
+ public int Index { get; }
+
+ ///
+ /// Gets the length of the in the guest address.
+ ///
+ public int Length { get; }
+
+ ///
+ /// Gets the mask which masks the bits used by the .
+ ///
+ public ulong Mask => ((1ul << Length) - 1) << Index;
+
+ ///
+ /// Initializes a new instance of the structure with the specified
+ /// and .
+ ///
+ /// Index of the
+ /// Length of the
+ public AddressTableLevel(int index, int length)
+ {
+ (Index, Length) = (index, length);
+ }
+
+ ///
+ /// Gets the value of the from the specified guest .
+ ///
+ /// Guest address
+ /// Value of the from the specified guest
+ public int GetValue(ulong address)
+ {
+ return (int)((address & Mask) >> Index);
+ }
+ }
+}
diff --git a/src/ARMeilleure/Common/AddressTablePresets.cs b/src/ARMeilleure/Common/AddressTablePresets.cs
new file mode 100644
index 000000000..977e84a36
--- /dev/null
+++ b/src/ARMeilleure/Common/AddressTablePresets.cs
@@ -0,0 +1,75 @@
+namespace ARMeilleure.Common
+{
+ public static class AddressTablePresets
+ {
+ private static readonly AddressTableLevel[] _levels64Bit =
+ new AddressTableLevel[]
+ {
+ new(31, 17),
+ new(23, 8),
+ new(15, 8),
+ new( 7, 8),
+ new( 2, 5),
+ };
+
+ private static readonly AddressTableLevel[] _levels32Bit =
+ new AddressTableLevel[]
+ {
+ new(31, 17),
+ new(23, 8),
+ new(15, 8),
+ new( 7, 8),
+ new( 1, 6),
+ };
+
+ private static readonly AddressTableLevel[] _levels64BitSparseTiny =
+ new AddressTableLevel[]
+ {
+ new( 11, 28),
+ new( 2, 9),
+ };
+
+ private static readonly AddressTableLevel[] _levels32BitSparseTiny =
+ new AddressTableLevel[]
+ {
+ new( 10, 22),
+ new( 1, 9),
+ };
+
+ private static readonly AddressTableLevel[] _levels64BitSparseGiant =
+ new AddressTableLevel[]
+ {
+ new( 38, 1),
+ new( 2, 36),
+ };
+
+ private static readonly AddressTableLevel[] _levels32BitSparseGiant =
+ new AddressTableLevel[]
+ {
+ new( 31, 1),
+ new( 1, 30),
+ };
+
+ //high power will run worse on DDR3 systems and some DDR4 systems due to the higher ram utilization
+ //low power will never run worse than non-sparse, but for most systems it won't be necessary
+ //high power is always used, but I've left low power in here for future reference
+ public static AddressTableLevel[] GetArmPreset(bool for64Bits, bool sparse, bool lowPower = false)
+ {
+ if (sparse)
+ {
+ if (lowPower)
+ {
+ return for64Bits ? _levels64BitSparseTiny : _levels32BitSparseTiny;
+ }
+ else
+ {
+ return for64Bits ? _levels64BitSparseGiant : _levels32BitSparseGiant;
+ }
+ }
+ else
+ {
+ return for64Bits ? _levels64Bit : _levels32Bit;
+ }
+ }
+ }
+}
diff --git a/src/ARMeilleure/Common/Allocator.cs b/src/ARMeilleure/Common/Allocator.cs
index 6905a614f..de6a77ebe 100644
--- a/src/ARMeilleure/Common/Allocator.cs
+++ b/src/ARMeilleure/Common/Allocator.cs
@@ -2,7 +2,7 @@ using System;
namespace ARMeilleure.Common
{
- unsafe abstract class Allocator : IDisposable
+ public unsafe abstract class Allocator : IDisposable
{
public T* Allocate(ulong count = 1) where T : unmanaged
{
diff --git a/src/ARMeilleure/Common/IAddressTable.cs b/src/ARMeilleure/Common/IAddressTable.cs
new file mode 100644
index 000000000..65077ec43
--- /dev/null
+++ b/src/ARMeilleure/Common/IAddressTable.cs
@@ -0,0 +1,51 @@
+using System;
+
+namespace ARMeilleure.Common
+{
+ public interface IAddressTable : IDisposable where TEntry : unmanaged
+ {
+ ///
+ /// True if the address table's bottom level is sparsely mapped.
+ /// This also ensures the second bottom level is filled with a dummy page rather than 0.
+ ///
+ bool Sparse { get; }
+
+ ///
+ /// Gets the bits used by the of the instance.
+ ///
+ ulong Mask { get; }
+
+ ///
+ /// Gets the s used by the instance.
+ ///
+ AddressTableLevel[] Levels { get; }
+
+ ///
+ /// Gets or sets the default fill value of newly created leaf pages.
+ ///
+ TEntry Fill { get; set; }
+
+ ///
+ /// Gets the base address of the .
+ ///
+ /// instance was disposed
+ nint Base { get; }
+
+ ///
+ /// Determines if the specified is in the range of the
+ /// .
+ ///
+ /// Guest address
+ /// if is valid; otherwise
+ bool IsValid(ulong address);
+
+ ///
+ /// Gets a reference to the value at the specified guest .
+ ///
+ /// Guest address
+ /// Reference to the value at the specified guest
+ /// instance was disposed
+ /// is not mapped
+ ref TEntry GetValue(ulong address);
+ }
+}
diff --git a/src/ARMeilleure/Common/NativeAllocator.cs b/src/ARMeilleure/Common/NativeAllocator.cs
index ca5d3a850..ffcffa4bc 100644
--- a/src/ARMeilleure/Common/NativeAllocator.cs
+++ b/src/ARMeilleure/Common/NativeAllocator.cs
@@ -3,7 +3,7 @@ using System.Runtime.InteropServices;
namespace ARMeilleure.Common
{
- unsafe sealed class NativeAllocator : Allocator
+ public unsafe sealed class NativeAllocator : Allocator
{
public static NativeAllocator Instance { get; } = new();
diff --git a/src/ARMeilleure/Instructions/InstEmitFlowHelper.cs b/src/ARMeilleure/Instructions/InstEmitFlowHelper.cs
index 2009bafda..a602ea49e 100644
--- a/src/ARMeilleure/Instructions/InstEmitFlowHelper.cs
+++ b/src/ARMeilleure/Instructions/InstEmitFlowHelper.cs
@@ -193,6 +193,8 @@ namespace ARMeilleure.Instructions
Operand hostAddress;
+ var table = context.FunctionTable;
+
// If address is mapped onto the function table, we can skip the table walk. Otherwise we fallback
// onto the dispatch stub.
if (guestAddress.Kind == OperandKind.Constant && context.FunctionTable.IsValid(guestAddress.Value))
@@ -203,6 +205,30 @@ namespace ARMeilleure.Instructions
hostAddress = context.Load(OperandType.I64, hostAddressAddr);
}
+ else if (table.Sparse)
+ {
+ // Inline table lookup. Only enabled when the sparse function table is enabled with 2 levels.
+ // Deliberately attempts to avoid branches.
+
+ Operand tableBase = !context.HasPtc ?
+ Const(table.Base) :
+ Const(table.Base, Ptc.FunctionTableSymbol);
+
+ hostAddress = tableBase;
+
+ for (int i = 0; i < table.Levels.Length; i++)
+ {
+ var level = table.Levels[i];
+ int clearBits = 64 - (level.Index + level.Length);
+
+ Operand index = context.ShiftLeft(
+ context.ShiftRightUI(context.ShiftLeft(guestAddress, Const(clearBits)), Const(clearBits + level.Index)),
+ Const(3)
+ );
+
+ hostAddress = context.Load(OperandType.I64, context.Add(hostAddress, index));
+ }
+ }
else
{
hostAddress = !context.HasPtc ?
diff --git a/src/ARMeilleure/Signal/NativeSignalHandlerGenerator.cs b/src/ARMeilleure/Signal/NativeSignalHandlerGenerator.cs
index 1b3689e3f..35747d7a4 100644
--- a/src/ARMeilleure/Signal/NativeSignalHandlerGenerator.cs
+++ b/src/ARMeilleure/Signal/NativeSignalHandlerGenerator.cs
@@ -8,7 +8,7 @@ namespace ARMeilleure.Signal
{
public static class NativeSignalHandlerGenerator
{
- public const int MaxTrackedRanges = 8;
+ public const int MaxTrackedRanges = 16;
private const int StructAddressOffset = 0;
private const int StructWriteOffset = 4;
diff --git a/src/ARMeilleure/Translation/ArmEmitterContext.cs b/src/ARMeilleure/Translation/ArmEmitterContext.cs
index 5d79171a2..82f12bb02 100644
--- a/src/ARMeilleure/Translation/ArmEmitterContext.cs
+++ b/src/ARMeilleure/Translation/ArmEmitterContext.cs
@@ -46,7 +46,7 @@ namespace ARMeilleure.Translation
public IMemoryManager Memory { get; }
public EntryTable CountTable { get; }
- public AddressTable FunctionTable { get; }
+ public IAddressTable FunctionTable { get; }
public TranslatorStubs Stubs { get; }
public ulong EntryAddress { get; }
@@ -62,7 +62,7 @@ namespace ARMeilleure.Translation
public ArmEmitterContext(
IMemoryManager memory,
EntryTable countTable,
- AddressTable funcTable,
+ IAddressTable funcTable,
TranslatorStubs stubs,
ulong entryAddress,
bool highCq,
diff --git a/src/ARMeilleure/Translation/PTC/Ptc.cs b/src/ARMeilleure/Translation/PTC/Ptc.cs
index 8236150fe..c722ce6be 100644
--- a/src/ARMeilleure/Translation/PTC/Ptc.cs
+++ b/src/ARMeilleure/Translation/PTC/Ptc.cs
@@ -30,7 +30,7 @@ namespace ARMeilleure.Translation.PTC
private const string OuterHeaderMagicString = "PTCohd\0\0";
private const string InnerHeaderMagicString = "PTCihd\0\0";
- private const uint InternalVersion = 6950; //! To be incremented manually for each change to the ARMeilleure project.
+ private const uint InternalVersion = 6992; //! To be incremented manually for each change to the ARMeilleure project.
private const string ActualDir = "0";
private const string BackupDir = "1";
@@ -41,6 +41,7 @@ namespace ARMeilleure.Translation.PTC
public static readonly Symbol PageTableSymbol = new(SymbolType.Special, 1);
public static readonly Symbol CountTableSymbol = new(SymbolType.Special, 2);
public static readonly Symbol DispatchStubSymbol = new(SymbolType.Special, 3);
+ public static readonly Symbol FunctionTableSymbol = new(SymbolType.Special, 4);
private const byte FillingByte = 0x00;
private const CompressionLevel SaveCompressionLevel = CompressionLevel.Fastest;
@@ -101,7 +102,7 @@ namespace ARMeilleure.Translation.PTC
Disable();
}
- public void Initialize(string titleIdText, string displayVersion, bool enabled, MemoryManagerType memoryMode)
+ public void Initialize(string titleIdText, string displayVersion, bool enabled, MemoryManagerType memoryMode, string cacheSelector)
{
Wait();
@@ -127,6 +128,8 @@ namespace ARMeilleure.Translation.PTC
DisplayVersion = !string.IsNullOrEmpty(displayVersion) ? displayVersion : DisplayVersionDefault;
_memoryMode = memoryMode;
+ Logger.Info?.Print(LogClass.Ptc, $"PPTC (v{InternalVersion}) Profile: {DisplayVersion}-{cacheSelector}");
+
string workPathActual = Path.Combine(AppDataManager.GamesDirPath, TitleIdText, "cache", "cpu", ActualDir);
string workPathBackup = Path.Combine(AppDataManager.GamesDirPath, TitleIdText, "cache", "cpu", BackupDir);
@@ -140,8 +143,8 @@ namespace ARMeilleure.Translation.PTC
Directory.CreateDirectory(workPathBackup);
}
- CachePathActual = Path.Combine(workPathActual, DisplayVersion);
- CachePathBackup = Path.Combine(workPathBackup, DisplayVersion);
+ CachePathActual = Path.Combine(workPathActual, DisplayVersion) + "-" + cacheSelector;
+ CachePathBackup = Path.Combine(workPathBackup, DisplayVersion) + "-" + cacheSelector;
PreLoad();
Profiler.PreLoad();
@@ -706,6 +709,10 @@ namespace ARMeilleure.Translation.PTC
{
imm = translator.Stubs.DispatchStub;
}
+ else if (symbol == FunctionTableSymbol)
+ {
+ imm = translator.FunctionTable.Base;
+ }
if (imm == null)
{
diff --git a/src/ARMeilleure/Translation/Translator.cs b/src/ARMeilleure/Translation/Translator.cs
index 24fbd7621..162368782 100644
--- a/src/ARMeilleure/Translation/Translator.cs
+++ b/src/ARMeilleure/Translation/Translator.cs
@@ -22,33 +22,13 @@ namespace ARMeilleure.Translation
{
public class Translator
{
- private static readonly AddressTable.Level[] _levels64Bit =
- new AddressTable.Level[]
- {
- new(31, 17),
- new(23, 8),
- new(15, 8),
- new( 7, 8),
- new( 2, 5),
- };
-
- private static readonly AddressTable.Level[] _levels32Bit =
- new AddressTable.Level[]
- {
- new(31, 17),
- new(23, 8),
- new(15, 8),
- new( 7, 8),
- new( 1, 6),
- };
-
private readonly IJitMemoryAllocator _allocator;
private readonly ConcurrentQueue> _oldFuncs;
private readonly Ptc _ptc;
internal TranslatorCache Functions { get; }
- internal AddressTable FunctionTable { get; }
+ internal IAddressTable FunctionTable { get; }
internal EntryTable CountTable { get; }
internal TranslatorStubs Stubs { get; }
internal TranslatorQueue Queue { get; }
@@ -57,7 +37,7 @@ namespace ARMeilleure.Translation
private Thread[] _backgroundTranslationThreads;
private volatile int _threadCount;
- public Translator(IJitMemoryAllocator allocator, IMemoryManager memory, bool for64Bits)
+ public Translator(IJitMemoryAllocator allocator, IMemoryManager memory, IAddressTable functionTable)
{
_allocator = allocator;
Memory = memory;
@@ -72,15 +52,15 @@ namespace ARMeilleure.Translation
CountTable = new EntryTable();
Functions = new TranslatorCache();
- FunctionTable = new AddressTable(for64Bits ? _levels64Bit : _levels32Bit);
+ FunctionTable = functionTable;
Stubs = new TranslatorStubs(FunctionTable);
FunctionTable.Fill = (ulong)Stubs.SlowDispatchStub;
}
- public IPtcLoadState LoadDiskCache(string titleIdText, string displayVersion, bool enabled)
+ public IPtcLoadState LoadDiskCache(string titleIdText, string displayVersion, bool enabled, string cacheSelector)
{
- _ptc.Initialize(titleIdText, displayVersion, enabled, Memory.Type);
+ _ptc.Initialize(titleIdText, displayVersion, enabled, Memory.Type, cacheSelector);
return _ptc;
}
diff --git a/src/ARMeilleure/Translation/TranslatorStubs.cs b/src/ARMeilleure/Translation/TranslatorStubs.cs
index 364cca13c..bd9aed8d4 100644
--- a/src/ARMeilleure/Translation/TranslatorStubs.cs
+++ b/src/ARMeilleure/Translation/TranslatorStubs.cs
@@ -19,7 +19,7 @@ namespace ARMeilleure.Translation
private bool _disposed;
- private readonly AddressTable _functionTable;
+ private readonly IAddressTable _functionTable;
private readonly Lazy _dispatchStub;
private readonly Lazy _dispatchLoop;
private readonly Lazy _contextWrapper;
@@ -86,7 +86,7 @@ namespace ARMeilleure.Translation
///
/// Function table used to store pointers to the functions that the guest code will call
/// is null
- public TranslatorStubs(AddressTable functionTable)
+ public TranslatorStubs(IAddressTable functionTable)
{
ArgumentNullException.ThrowIfNull(functionTable);
diff --git a/src/Ryujinx.Cpu/AddressTable.cs b/src/Ryujinx.Cpu/AddressTable.cs
new file mode 100644
index 000000000..d87b12ab0
--- /dev/null
+++ b/src/Ryujinx.Cpu/AddressTable.cs
@@ -0,0 +1,482 @@
+using ARMeilleure.Memory;
+using Ryujinx.Common;
+using Ryujinx.Cpu.Signal;
+using Ryujinx.Memory;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.InteropServices;
+using System.Threading;
+using static Ryujinx.Cpu.MemoryEhMeilleure;
+
+namespace ARMeilleure.Common
+{
+ ///
+ /// Represents a table of guest address to a value.
+ ///
+ /// Type of the value
+ public unsafe class AddressTable : IAddressTable where TEntry : unmanaged
+ {
+ ///
+ /// Represents a page of the address table.
+ ///
+ private readonly struct AddressTablePage
+ {
+ ///
+ /// True if the allocation belongs to a sparse block, false otherwise.
+ ///
+ public readonly bool IsSparse;
+
+ ///
+ /// Base address for the page.
+ ///
+ public readonly IntPtr Address;
+
+ public AddressTablePage(bool isSparse, IntPtr address)
+ {
+ IsSparse = isSparse;
+ Address = address;
+ }
+ }
+
+ ///
+ /// A sparsely mapped block of memory with a signal handler to map pages as they're accessed.
+ ///
+ private readonly struct TableSparseBlock : IDisposable
+ {
+ public readonly SparseMemoryBlock Block;
+ private readonly TrackingEventDelegate _trackingEvent;
+
+ public TableSparseBlock(ulong size, Action ensureMapped, PageInitDelegate pageInit)
+ {
+ var block = new SparseMemoryBlock(size, pageInit, null);
+
+ _trackingEvent = (ulong address, ulong size, bool write) =>
+ {
+ ulong pointer = (ulong)block.Block.Pointer + address;
+ ensureMapped((IntPtr)pointer);
+ return pointer;
+ };
+
+ bool added = NativeSignalHandler.AddTrackedRegion(
+ (nuint)block.Block.Pointer,
+ (nuint)(block.Block.Pointer + (IntPtr)block.Block.Size),
+ Marshal.GetFunctionPointerForDelegate(_trackingEvent));
+
+ if (!added)
+ {
+ throw new InvalidOperationException("Number of allowed tracked regions exceeded.");
+ }
+
+ Block = block;
+ }
+
+ public void Dispose()
+ {
+ NativeSignalHandler.RemoveTrackedRegion((nuint)Block.Block.Pointer);
+
+ Block.Dispose();
+ }
+ }
+
+ private bool _disposed;
+ private TEntry** _table;
+ private readonly List _pages;
+ private TEntry _fill;
+
+ private readonly MemoryBlock _sparseFill;
+ private readonly SparseMemoryBlock _fillBottomLevel;
+ private readonly TEntry* _fillBottomLevelPtr;
+
+ private readonly List _sparseReserved;
+ private readonly ReaderWriterLockSlim _sparseLock;
+
+ private ulong _sparseBlockSize;
+ private ulong _sparseReservedOffset;
+
+ public bool Sparse { get; }
+
+ ///
+ public ulong Mask { get; }
+
+ ///
+ public AddressTableLevel[] Levels { get; }
+
+ ///
+ public TEntry Fill
+ {
+ get
+ {
+ return _fill;
+ }
+ set
+ {
+ UpdateFill(value);
+ }
+ }
+
+ ///
+ public IntPtr Base
+ {
+ get
+ {
+ ObjectDisposedException.ThrowIf(_disposed, this);
+
+ lock (_pages)
+ {
+ return (IntPtr)GetRootPage();
+ }
+ }
+ }
+
+ ///
+ /// Constructs a new instance of the class with the specified list of
+ /// .
+ ///
+ /// Levels for the address table
+ /// True if the bottom page should be sparsely mapped
+ /// is null
+ /// Length of is less than 2
+ public AddressTable(AddressTableLevel[] levels, bool sparse)
+ {
+ ArgumentNullException.ThrowIfNull(levels);
+
+ _pages = new List(capacity: 16);
+
+ Levels = levels;
+ Mask = 0;
+
+ foreach (var level in Levels)
+ {
+ Mask |= level.Mask;
+ }
+
+ Sparse = sparse;
+
+ if (sparse)
+ {
+ // If the address table is sparse, allocate a fill block
+
+ _sparseFill = new MemoryBlock(268435456ul, MemoryAllocationFlags.Mirrorable); //low Power TC uses size: 65536ul
+
+ ulong bottomLevelSize = (1ul << levels.Last().Length) * (ulong)sizeof(TEntry);
+
+ _fillBottomLevel = new SparseMemoryBlock(bottomLevelSize, null, _sparseFill);
+ _fillBottomLevelPtr = (TEntry*)_fillBottomLevel.Block.Pointer;
+
+ _sparseReserved = new List();
+ _sparseLock = new ReaderWriterLockSlim();
+
+ _sparseBlockSize = bottomLevelSize;
+ }
+ }
+
+ ///
+ /// Create an instance for an ARM function table.
+ /// Selects the best table structure for A32/A64, taking into account the selected memory manager type.
+ ///
+ /// True if the guest is A64, false otherwise
+ /// Memory manager type
+ /// An for ARM function lookup
+ public static AddressTable CreateForArm(bool for64Bits, MemoryManagerType type)
+ {
+ // Assume software memory means that we don't want to use any signal handlers.
+ bool sparse = type != MemoryManagerType.SoftwareMmu && type != MemoryManagerType.SoftwarePageTable;
+
+ return new AddressTable(AddressTablePresets.GetArmPreset(for64Bits, sparse), sparse);
+ }
+
+ ///
+ /// Update the fill value for the bottom level of the table.
+ ///
+ /// New fill value
+ private void UpdateFill(TEntry fillValue)
+ {
+ if (_sparseFill != null)
+ {
+ Span span = _sparseFill.GetSpan(0, (int)_sparseFill.Size);
+ MemoryMarshal.Cast(span).Fill(fillValue);
+ }
+
+ _fill = fillValue;
+ }
+
+ ///
+ /// Signal that the given code range exists.
+ ///
+ ///
+ ///
+ public void SignalCodeRange(ulong address, ulong size)
+ {
+ AddressTableLevel bottom = Levels.Last();
+ ulong bottomLevelEntries = 1ul << bottom.Length;
+
+ ulong entryIndex = address >> bottom.Index;
+ ulong entries = size >> bottom.Index;
+ entries += entryIndex - BitUtils.AlignDown(entryIndex, bottomLevelEntries);
+
+ _sparseBlockSize = Math.Max(_sparseBlockSize, BitUtils.AlignUp(entries, bottomLevelEntries) * (ulong)sizeof(TEntry));
+ }
+
+ ///
+ public bool IsValid(ulong address)
+ {
+ return (address & ~Mask) == 0;
+ }
+
+ ///
+ public ref TEntry GetValue(ulong address)
+ {
+ ObjectDisposedException.ThrowIf(_disposed, this);
+
+ if (!IsValid(address))
+ {
+ throw new ArgumentException($"Address 0x{address:X} is not mapped onto the table.", nameof(address));
+ }
+
+ lock (_pages)
+ {
+ TEntry* page = GetPage(address);
+
+ int index = Levels[^1].GetValue(address);
+
+ EnsureMapped((IntPtr)(page + index));
+
+ return ref page[index];
+ }
+ }
+
+ ///
+ /// Gets the leaf page for the specified guest .
+ ///
+ /// Guest address
+ /// Leaf page for the specified guest
+ private TEntry* GetPage(ulong address)
+ {
+ TEntry** page = GetRootPage();
+
+ for (int i = 0; i < Levels.Length - 1; i++)
+ {
+ ref AddressTableLevel level = ref Levels[i];
+ ref TEntry* nextPage = ref page[level.GetValue(address)];
+
+ if (nextPage == null || nextPage == _fillBottomLevelPtr)
+ {
+ ref AddressTableLevel nextLevel = ref Levels[i + 1];
+
+ if (i == Levels.Length - 2)
+ {
+ nextPage = (TEntry*)Allocate(1 << nextLevel.Length, Fill, leaf: true);
+ }
+ else
+ {
+ nextPage = (TEntry*)Allocate(1 << nextLevel.Length, GetFillValue(i), leaf: false);
+ }
+ }
+
+ page = (TEntry**)nextPage;
+ }
+
+ return (TEntry*)page;
+ }
+
+ ///
+ /// Ensure the given pointer is mapped in any overlapping sparse reservations.
+ ///
+ /// Pointer to be mapped
+ private void EnsureMapped(IntPtr ptr)
+ {
+ if (Sparse)
+ {
+ // Check sparse allocations to see if the pointer is in any of them.
+ // Ensure the page is committed if there's a match.
+
+ _sparseLock.EnterReadLock();
+
+ try
+ {
+ foreach (TableSparseBlock reserved in _sparseReserved)
+ {
+ SparseMemoryBlock sparse = reserved.Block;
+
+ if (ptr >= sparse.Block.Pointer && ptr < sparse.Block.Pointer + (IntPtr)sparse.Block.Size)
+ {
+ sparse.EnsureMapped((ulong)(ptr - sparse.Block.Pointer));
+
+ break;
+ }
+ }
+ }
+ finally
+ {
+ _sparseLock.ExitReadLock();
+ }
+ }
+ }
+
+ ///
+ /// Get the fill value for a non-leaf level of the table.
+ ///
+ /// Level to get the fill value for
+ /// The fill value
+ private IntPtr GetFillValue(int level)
+ {
+ if (_fillBottomLevel != null && level == Levels.Length - 2)
+ {
+ return (IntPtr)_fillBottomLevelPtr;
+ }
+ else
+ {
+ return IntPtr.Zero;
+ }
+ }
+
+ ///
+ /// Lazily initialize and get the root page of the .
+ ///
+ /// Root page of the
+ private TEntry** GetRootPage()
+ {
+ if (_table == null)
+ {
+ if (Levels.Length == 1)
+ _table = (TEntry**)Allocate(1 << Levels[0].Length, Fill, leaf: true);
+ else
+ _table = (TEntry**)Allocate(1 << Levels[0].Length, GetFillValue(0), leaf: false);
+ }
+
+ return _table;
+ }
+
+ ///
+ /// Initialize a leaf page with the fill value.
+ ///
+ /// Page to initialize
+ private void InitLeafPage(Span page)
+ {
+ MemoryMarshal.Cast(page).Fill(_fill);
+ }
+
+ ///
+ /// Reserve a new sparse block, and add it to the list.
+ ///
+ /// The new sparse block that was added
+ private TableSparseBlock ReserveNewSparseBlock()
+ {
+ var block = new TableSparseBlock(_sparseBlockSize, EnsureMapped, InitLeafPage);
+
+ _sparseReserved.Add(block);
+ _sparseReservedOffset = 0;
+
+ return block;
+ }
+
+ ///
+ /// Allocates a block of memory of the specified type and length.
+ ///
+ /// Type of elements
+ /// Number of elements
+ /// Fill value
+ /// if leaf; otherwise
+ /// Allocated block
+ private IntPtr Allocate(int length, T fill, bool leaf) where T : unmanaged
+ {
+ var size = sizeof(T) * length;
+
+ AddressTablePage page;
+
+ if (Sparse && leaf)
+ {
+ _sparseLock.EnterWriteLock();
+
+ SparseMemoryBlock block;
+
+ if (_sparseReserved.Count == 0)
+ {
+ block = ReserveNewSparseBlock().Block;
+ }
+ else
+ {
+ block = _sparseReserved.Last().Block;
+
+ if (_sparseReservedOffset == block.Block.Size)
+ {
+ block = ReserveNewSparseBlock().Block;
+ }
+ }
+
+ page = new AddressTablePage(true, block.Block.Pointer + (IntPtr)_sparseReservedOffset);
+
+ _sparseReservedOffset += (ulong)size;
+
+ _sparseLock.ExitWriteLock();
+ }
+ else
+ {
+ var address = (IntPtr)NativeAllocator.Instance.Allocate((uint)size);
+ page = new AddressTablePage(false, address);
+
+ var span = new Span((void*)page.Address, length);
+ span.Fill(fill);
+ }
+
+ _pages.Add(page);
+
+ //TranslatorEventSource.Log.AddressTableAllocated(size, leaf);
+
+ return page.Address;
+ }
+
+ ///
+ /// Releases all resources used by the instance.
+ ///
+ public void Dispose()
+ {
+ Dispose(true);
+ GC.SuppressFinalize(this);
+ }
+
+ ///
+ /// Releases all unmanaged and optionally managed resources used by the
+ /// instance.
+ ///
+ /// to dispose managed resources also; otherwise just unmanaged resouces
+ protected virtual void Dispose(bool disposing)
+ {
+ if (!_disposed)
+ {
+ foreach (var page in _pages)
+ {
+ if (!page.IsSparse)
+ {
+ Marshal.FreeHGlobal(page.Address);
+ }
+ }
+
+ if (Sparse)
+ {
+ foreach (TableSparseBlock block in _sparseReserved)
+ {
+ block.Dispose();
+ }
+
+ _sparseReserved.Clear();
+
+ _fillBottomLevel.Dispose();
+ _sparseFill.Dispose();
+ _sparseLock.Dispose();
+ }
+
+ _disposed = true;
+ }
+ }
+
+ ///
+ /// Frees resources used by the instance.
+ ///
+ ~AddressTable()
+ {
+ Dispose(false);
+ }
+ }
+}
diff --git a/src/Ryujinx.Cpu/AppleHv/HvCpuContext.cs b/src/Ryujinx.Cpu/AppleHv/HvCpuContext.cs
index 99e4c0479..784949441 100644
--- a/src/Ryujinx.Cpu/AppleHv/HvCpuContext.cs
+++ b/src/Ryujinx.Cpu/AppleHv/HvCpuContext.cs
@@ -32,7 +32,7 @@ namespace Ryujinx.Cpu.AppleHv
{
}
- public IDiskCacheLoadState LoadDiskCache(string titleIdText, string displayVersion, bool enabled)
+ public IDiskCacheLoadState LoadDiskCache(string titleIdText, string displayVersion, bool enabled, string cacheSelector)
{
return new DummyDiskCacheLoadState();
}
diff --git a/src/Ryujinx.Cpu/ICpuContext.cs b/src/Ryujinx.Cpu/ICpuContext.cs
index edcebdfc4..1fb3b674d 100644
--- a/src/Ryujinx.Cpu/ICpuContext.cs
+++ b/src/Ryujinx.Cpu/ICpuContext.cs
@@ -48,7 +48,7 @@ namespace Ryujinx.Cpu
/// Version of the application
/// True if the cache should be loaded from disk if it exists, false otherwise
/// Disk cache load progress reporter and manager
- IDiskCacheLoadState LoadDiskCache(string titleIdText, string displayVersion, bool enabled);
+ IDiskCacheLoadState LoadDiskCache(string titleIdText, string displayVersion, bool enabled, string cacheSelector);
///
/// Indicates that code has been loaded into guest memory, and that it might be executed in the future.
diff --git a/src/Ryujinx.Cpu/Jit/JitCpuContext.cs b/src/Ryujinx.Cpu/Jit/JitCpuContext.cs
index 9893c59b2..0793f382d 100644
--- a/src/Ryujinx.Cpu/Jit/JitCpuContext.cs
+++ b/src/Ryujinx.Cpu/Jit/JitCpuContext.cs
@@ -1,3 +1,4 @@
+using ARMeilleure.Common;
using ARMeilleure.Memory;
using ARMeilleure.Translation;
using Ryujinx.Cpu.Signal;
@@ -9,11 +10,13 @@ namespace Ryujinx.Cpu.Jit
{
private readonly ITickSource _tickSource;
private readonly Translator _translator;
+ private readonly AddressTable _functionTable;
public JitCpuContext(ITickSource tickSource, IMemoryManager memory, bool for64Bit)
{
_tickSource = tickSource;
- _translator = new Translator(new JitMemoryAllocator(forJit: true), memory, for64Bit);
+ _functionTable = AddressTable.CreateForArm(for64Bit, memory.Type);
+ _translator = new Translator(new JitMemoryAllocator(forJit: true), memory, _functionTable);
if (memory.Type.IsHostMappedOrTracked())
{
@@ -47,14 +50,15 @@ namespace Ryujinx.Cpu.Jit
}
///
- public IDiskCacheLoadState LoadDiskCache(string titleIdText, string displayVersion, bool enabled)
+ public IDiskCacheLoadState LoadDiskCache(string titleIdText, string displayVersion, bool enabled, string cacheSelector)
{
- return new JitDiskCacheLoadState(_translator.LoadDiskCache(titleIdText, displayVersion, enabled));
+ return new JitDiskCacheLoadState(_translator.LoadDiskCache(titleIdText, displayVersion, enabled, cacheSelector));
}
///
public void PrepareCodeRange(ulong address, ulong size)
{
+ _functionTable.SignalCodeRange(address, size);
_translator.PrepareCodeRange(address, size);
}
diff --git a/src/Ryujinx.Cpu/LightningJit/Arm32/Target/Arm64/InstEmitFlow.cs b/src/Ryujinx.Cpu/LightningJit/Arm32/Target/Arm64/InstEmitFlow.cs
index 7f5e4835c..48bdbb573 100644
--- a/src/Ryujinx.Cpu/LightningJit/Arm32/Target/Arm64/InstEmitFlow.cs
+++ b/src/Ryujinx.Cpu/LightningJit/Arm32/Target/Arm64/InstEmitFlow.cs
@@ -140,6 +140,10 @@ namespace Ryujinx.Cpu.LightningJit.Arm32.Target.Arm64
bool isTail = false)
{
int tempRegister;
+ int tempGuestAddress = -1;
+
+ bool inlineLookup = guestAddress.Kind != OperandKind.Constant &&
+ funcTable is { Sparse: true };
if (guestAddress.Kind == OperandKind.Constant)
{
@@ -153,9 +157,16 @@ namespace Ryujinx.Cpu.LightningJit.Arm32.Target.Arm64
else
{
asm.StrRiUn(guestAddress, Register(regAlloc.FixedContextRegister), NativeContextOffsets.DispatchAddressOffset);
+
+ if (inlineLookup && guestAddress.Value == 0)
+ {
+ // X0 will be overwritten. Move the address to a temp register.
+ tempGuestAddress = regAlloc.AllocateTempGprRegister();
+ asm.Mov(Register(tempGuestAddress), guestAddress);
+ }
}
- tempRegister = regAlloc.FixedContextRegister == 1 ? 2 : 1;
+ tempRegister = NextFreeRegister(1, tempGuestAddress);
if (!isTail)
{
@@ -176,6 +187,40 @@ namespace Ryujinx.Cpu.LightningJit.Arm32.Target.Arm64
asm.Mov(rn, funcPtrLoc & ~0xfffUL);
asm.LdrRiUn(rn, rn, (int)(funcPtrLoc & 0xfffUL));
}
+ else if (inlineLookup)
+ {
+ // Inline table lookup. Only enabled when the sparse function table is enabled with 2 levels.
+
+ Operand indexReg = Register(NextFreeRegister(tempRegister + 1, tempGuestAddress));
+
+ if (tempGuestAddress != -1)
+ {
+ guestAddress = Register(tempGuestAddress);
+ }
+
+ ulong tableBase = (ulong)funcTable.Base;
+
+ // Index into the table.
+ asm.Mov(rn, tableBase);
+
+ for (int i = 0; i < funcTable.Levels.Length; i++)
+ {
+ var level = funcTable.Levels[i];
+ asm.Ubfx(indexReg, guestAddress, level.Index, level.Length);
+ asm.Lsl(indexReg, indexReg, Const(3));
+
+ // Index into the page.
+ asm.Add(rn, rn, indexReg);
+
+ // Load the page address.
+ asm.LdrRiUn(rn, rn, 0);
+ }
+
+ if (tempGuestAddress != -1)
+ {
+ regAlloc.FreeTempGprRegister(tempGuestAddress);
+ }
+ }
else
{
asm.Mov(rn, (ulong)funcPtr);
@@ -252,5 +297,20 @@ namespace Ryujinx.Cpu.LightningJit.Arm32.Target.Arm64
{
return new Operand(register, RegisterType.Integer, type);
}
+
+ private static Operand Const(long value, OperandType type = OperandType.I64)
+ {
+ return new Operand(type, (ulong)value);
+ }
+
+ private static int NextFreeRegister(int start, int avoid)
+ {
+ if (start == avoid)
+ {
+ start++;
+ }
+
+ return start;
+ }
}
}
diff --git a/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/InstEmitSystem.cs b/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/InstEmitSystem.cs
index 1eeeb746e..f534e8b6e 100644
--- a/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/InstEmitSystem.cs
+++ b/src/Ryujinx.Cpu/LightningJit/Arm64/Target/Arm64/InstEmitSystem.cs
@@ -305,6 +305,10 @@ namespace Ryujinx.Cpu.LightningJit.Arm64.Target.Arm64
bool isTail = false)
{
int tempRegister;
+ int tempGuestAddress = -1;
+
+ bool inlineLookup = guestAddress.Kind != OperandKind.Constant &&
+ funcTable is { Sparse: true };
if (guestAddress.Kind == OperandKind.Constant)
{
@@ -318,9 +322,16 @@ namespace Ryujinx.Cpu.LightningJit.Arm64.Target.Arm64
else
{
asm.StrRiUn(guestAddress, Register(regAlloc.FixedContextRegister), NativeContextOffsets.DispatchAddressOffset);
+
+ if (inlineLookup && guestAddress.Value == 0)
+ {
+ // X0 will be overwritten. Move the address to a temp register.
+ tempGuestAddress = regAlloc.AllocateTempGprRegister();
+ asm.Mov(Register(tempGuestAddress), guestAddress);
+ }
}
- tempRegister = regAlloc.FixedContextRegister == 1 ? 2 : 1;
+ tempRegister = NextFreeRegister(1, tempGuestAddress);
if (!isTail)
{
@@ -341,6 +352,40 @@ namespace Ryujinx.Cpu.LightningJit.Arm64.Target.Arm64
asm.Mov(rn, funcPtrLoc & ~0xfffUL);
asm.LdrRiUn(rn, rn, (int)(funcPtrLoc & 0xfffUL));
}
+ else if (inlineLookup)
+ {
+ // Inline table lookup. Only enabled when the sparse function table is enabled with 2 levels.
+
+ Operand indexReg = Register(NextFreeRegister(tempRegister + 1, tempGuestAddress));
+
+ if (tempGuestAddress != -1)
+ {
+ guestAddress = Register(tempGuestAddress);
+ }
+
+ ulong tableBase = (ulong)funcTable.Base;
+
+ // Index into the table.
+ asm.Mov(rn, tableBase);
+
+ for (int i = 0; i < funcTable.Levels.Length; i++)
+ {
+ var level = funcTable.Levels[i];
+ asm.Ubfx(indexReg, guestAddress, level.Index, level.Length);
+ asm.Lsl(indexReg, indexReg, Const(3));
+
+ // Index into the page.
+ asm.Add(rn, rn, indexReg);
+
+ // Load the page address.
+ asm.LdrRiUn(rn, rn, 0);
+ }
+
+ if (tempGuestAddress != -1)
+ {
+ regAlloc.FreeTempGprRegister(tempGuestAddress);
+ }
+ }
else
{
asm.Mov(rn, (ulong)funcPtr);
@@ -613,5 +658,20 @@ namespace Ryujinx.Cpu.LightningJit.Arm64.Target.Arm64
{
return new Operand(register, RegisterType.Integer, type);
}
+
+ private static Operand Const(long value, OperandType type = OperandType.I64)
+ {
+ return new Operand(type, (ulong)value);
+ }
+
+ private static int NextFreeRegister(int start, int avoid)
+ {
+ if (start == avoid)
+ {
+ start++;
+ }
+
+ return start;
+ }
}
}
diff --git a/src/Ryujinx.Cpu/LightningJit/LightningJitCpuContext.cs b/src/Ryujinx.Cpu/LightningJit/LightningJitCpuContext.cs
index b63636e39..0f47ffb15 100644
--- a/src/Ryujinx.Cpu/LightningJit/LightningJitCpuContext.cs
+++ b/src/Ryujinx.Cpu/LightningJit/LightningJitCpuContext.cs
@@ -1,3 +1,4 @@
+using ARMeilleure.Common;
using ARMeilleure.Memory;
using Ryujinx.Cpu.Jit;
using Ryujinx.Cpu.LightningJit.State;
@@ -8,11 +9,16 @@ namespace Ryujinx.Cpu.LightningJit
{
private readonly ITickSource _tickSource;
private readonly Translator _translator;
+ private readonly AddressTable _functionTable;
public LightningJitCpuContext(ITickSource tickSource, IMemoryManager memory, bool for64Bit)
{
_tickSource = tickSource;
- _translator = new Translator(memory, for64Bit);
+
+ _functionTable = AddressTable.CreateForArm(for64Bit, memory.Type);
+
+ _translator = new Translator(memory, _functionTable);
+
memory.UnmapEvent += UnmapHandler;
}
@@ -40,7 +46,7 @@ namespace Ryujinx.Cpu.LightningJit
}
///
- public IDiskCacheLoadState LoadDiskCache(string titleIdText, string displayVersion, bool enabled)
+ public IDiskCacheLoadState LoadDiskCache(string titleIdText, string displayVersion, bool enabled, string cacheSelector)
{
return new DummyDiskCacheLoadState();
}
@@ -48,6 +54,7 @@ namespace Ryujinx.Cpu.LightningJit
///
public void PrepareCodeRange(ulong address, ulong size)
{
+ _functionTable.SignalCodeRange(address, size);
}
public void Dispose()
diff --git a/src/Ryujinx.Cpu/LightningJit/Translator.cs b/src/Ryujinx.Cpu/LightningJit/Translator.cs
index b4710e34e..4c4011f11 100644
--- a/src/Ryujinx.Cpu/LightningJit/Translator.cs
+++ b/src/Ryujinx.Cpu/LightningJit/Translator.cs
@@ -19,25 +19,6 @@ namespace Ryujinx.Cpu.LightningJit
// Should be enabled on platforms that enforce W^X.
private static bool IsNoWxPlatform => false;
- private static readonly AddressTable.Level[] _levels64Bit =
- new AddressTable.Level[]
- {
- new(31, 17),
- new(23, 8),
- new(15, 8),
- new( 7, 8),
- new( 2, 5),
- };
-
- private static readonly AddressTable.Level[] _levels32Bit =
- new AddressTable.Level[]
- {
- new(23, 9),
- new(15, 8),
- new( 7, 8),
- new( 1, 6),
- };
-
private readonly ConcurrentQueue> _oldFuncs;
private readonly NoWxCache _noWxCache;
private bool _disposed;
@@ -47,7 +28,7 @@ namespace Ryujinx.Cpu.LightningJit
internal TranslatorStubs Stubs { get; }
internal IMemoryManager Memory { get; }
- public Translator(IMemoryManager memory, bool for64Bits)
+ public Translator(IMemoryManager memory, AddressTable functionTable)
{
Memory = memory;
@@ -63,7 +44,7 @@ namespace Ryujinx.Cpu.LightningJit
}
Functions = new TranslatorCache();
- FunctionTable = new AddressTable(for64Bits ? _levels64Bit : _levels32Bit);
+ FunctionTable = functionTable;
Stubs = new TranslatorStubs(FunctionTable, _noWxCache);
FunctionTable.Fill = (ulong)Stubs.SlowDispatchStub;
diff --git a/src/Ryujinx.Cpu/LightningJit/TranslatorStubs.cs b/src/Ryujinx.Cpu/LightningJit/TranslatorStubs.cs
index e88414d5e..c5231e506 100644
--- a/src/Ryujinx.Cpu/LightningJit/TranslatorStubs.cs
+++ b/src/Ryujinx.Cpu/LightningJit/TranslatorStubs.cs
@@ -23,7 +23,7 @@ namespace Ryujinx.Cpu.LightningJit
private bool _disposed;
- private readonly AddressTable _functionTable;
+ private readonly IAddressTable _functionTable;
private readonly NoWxCache _noWxCache;
private readonly GetFunctionAddressDelegate _getFunctionAddressRef;
private readonly nint _getFunctionAddress;
@@ -79,7 +79,7 @@ namespace Ryujinx.Cpu.LightningJit
/// Function table used to store pointers to the functions that the guest code will call
/// Cache used on platforms that enforce W^X, otherwise should be null
/// is null
- public TranslatorStubs(AddressTable functionTable, NoWxCache noWxCache)
+ public TranslatorStubs(IAddressTable functionTable, NoWxCache noWxCache)
{
ArgumentNullException.ThrowIfNull(functionTable);
diff --git a/src/Ryujinx.HLE/HOS/ArmProcessContext.cs b/src/Ryujinx.HLE/HOS/ArmProcessContext.cs
index fde489ab7..09a721644 100644
--- a/src/Ryujinx.HLE/HOS/ArmProcessContext.cs
+++ b/src/Ryujinx.HLE/HOS/ArmProcessContext.cs
@@ -13,7 +13,8 @@ namespace Ryujinx.HLE.HOS
string displayVersion,
bool diskCacheEnabled,
ulong codeAddress,
- ulong codeSize);
+ ulong codeSize,
+ string cacheSelector);
}
class ArmProcessContext : IArmProcessContext where T : class, IVirtualMemoryManagerTracked, IMemoryManager
@@ -67,10 +68,11 @@ namespace Ryujinx.HLE.HOS
string displayVersion,
bool diskCacheEnabled,
ulong codeAddress,
- ulong codeSize)
+ ulong codeSize,
+ string cacheSelector)
{
_cpuContext.PrepareCodeRange(codeAddress, codeSize);
- return _cpuContext.LoadDiskCache(titleIdText, displayVersion, diskCacheEnabled);
+ return _cpuContext.LoadDiskCache(titleIdText, displayVersion, diskCacheEnabled, cacheSelector);
}
public void InvalidateCacheRegion(ulong address, ulong size)
diff --git a/src/Ryujinx.HLE/HOS/ArmProcessContextFactory.cs b/src/Ryujinx.HLE/HOS/ArmProcessContextFactory.cs
index 6646826cb..14775fb1d 100644
--- a/src/Ryujinx.HLE/HOS/ArmProcessContextFactory.cs
+++ b/src/Ryujinx.HLE/HOS/ArmProcessContextFactory.cs
@@ -114,7 +114,7 @@ namespace Ryujinx.HLE.HOS
}
}
- DiskCacheLoadState = processContext.Initialize(_titleIdText, _displayVersion, _diskCacheEnabled, _codeAddress, _codeSize);
+ DiskCacheLoadState = processContext.Initialize(_titleIdText, _displayVersion, _diskCacheEnabled, _codeAddress, _codeSize, "default"); //Ready for exefs profiles
return processContext;
}
diff --git a/src/Ryujinx.Memory/SparseMemoryBlock.cs b/src/Ryujinx.Memory/SparseMemoryBlock.cs
new file mode 100644
index 000000000..523685de1
--- /dev/null
+++ b/src/Ryujinx.Memory/SparseMemoryBlock.cs
@@ -0,0 +1,125 @@
+using Ryujinx.Common;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Threading;
+
+namespace Ryujinx.Memory
+{
+ public delegate void PageInitDelegate(Span page);
+
+ public class SparseMemoryBlock : IDisposable
+ {
+ private const ulong MapGranularity = 1UL << 17;
+
+ private readonly PageInitDelegate _pageInit;
+
+ private readonly object _lock = new object();
+ private readonly ulong _pageSize;
+ private readonly MemoryBlock _reservedBlock;
+ private readonly List _mappedBlocks;
+ private ulong _mappedBlockUsage;
+
+ private readonly ulong[] _mappedPageBitmap;
+
+ public MemoryBlock Block => _reservedBlock;
+
+ public SparseMemoryBlock(ulong size, PageInitDelegate pageInit, MemoryBlock fill)
+ {
+ _pageSize = MemoryBlock.GetPageSize();
+ _reservedBlock = new MemoryBlock(size, MemoryAllocationFlags.Reserve | MemoryAllocationFlags.ViewCompatible);
+ _mappedBlocks = new List();
+ _pageInit = pageInit;
+
+ int pages = (int)BitUtils.DivRoundUp(size, _pageSize);
+ int bitmapEntries = BitUtils.DivRoundUp(pages, 64);
+ _mappedPageBitmap = new ulong[bitmapEntries];
+
+ if (fill != null)
+ {
+ // Fill the block with mappings from the fill block.
+
+ if (fill.Size % _pageSize != 0)
+ {
+ throw new ArgumentException("Fill memory block should be page aligned.", nameof(fill));
+ }
+
+ int repeats = (int)BitUtils.DivRoundUp(size, fill.Size);
+
+ ulong offset = 0;
+ for (int i = 0; i < repeats; i++)
+ {
+ _reservedBlock.MapView(fill, 0, offset, Math.Min(fill.Size, size - offset));
+ offset += fill.Size;
+ }
+ }
+
+ // If a fill block isn't provided, the pages that aren't EnsureMapped are unmapped.
+ // The caller can rely on signal handler to fill empty pages instead.
+ }
+
+ private void MapPage(ulong pageOffset)
+ {
+ // Take a page from the latest mapped block.
+ MemoryBlock block = _mappedBlocks.LastOrDefault();
+
+ if (block == null || _mappedBlockUsage == MapGranularity)
+ {
+ // Need to map some more memory.
+
+ block = new MemoryBlock(MapGranularity, MemoryAllocationFlags.Mirrorable);
+
+ _mappedBlocks.Add(block);
+
+ _mappedBlockUsage = 0;
+ }
+
+ _pageInit(block.GetSpan(_mappedBlockUsage, (int)_pageSize));
+ _reservedBlock.MapView(block, _mappedBlockUsage, pageOffset, _pageSize);
+
+ _mappedBlockUsage += _pageSize;
+ }
+
+ public void EnsureMapped(ulong offset)
+ {
+ int pageIndex = (int)(offset / _pageSize);
+ int bitmapIndex = pageIndex >> 6;
+
+ ref ulong entry = ref _mappedPageBitmap[bitmapIndex];
+ ulong bit = 1UL << (pageIndex & 63);
+
+ if ((Volatile.Read(ref entry) & bit) == 0)
+ {
+ // Not mapped.
+
+ lock (_lock)
+ {
+ // Check the bit while locked to make sure that this only happens once.
+
+ ulong lockedEntry = Volatile.Read(ref entry);
+
+ if ((lockedEntry & bit) == 0)
+ {
+ MapPage(offset & ~(_pageSize - 1));
+
+ lockedEntry |= bit;
+
+ Interlocked.Exchange(ref entry, lockedEntry);
+ }
+ }
+ }
+ }
+
+ public void Dispose()
+ {
+ _reservedBlock.Dispose();
+
+ foreach (MemoryBlock block in _mappedBlocks)
+ {
+ block.Dispose();
+ }
+
+ GC.SuppressFinalize(this);
+ }
+ }
+}
diff --git a/src/Ryujinx.Tests/Cpu/CpuContext.cs b/src/Ryujinx.Tests/Cpu/CpuContext.cs
index 96b4965a2..81e8ba8c9 100644
--- a/src/Ryujinx.Tests/Cpu/CpuContext.cs
+++ b/src/Ryujinx.Tests/Cpu/CpuContext.cs
@@ -1,3 +1,4 @@
+using ARMeilleure.Common;
using ARMeilleure.Memory;
using ARMeilleure.State;
using ARMeilleure.Translation;
@@ -12,7 +13,7 @@ namespace Ryujinx.Tests.Cpu
public CpuContext(IMemoryManager memory, bool for64Bit)
{
- _translator = new Translator(new JitMemoryAllocator(), memory, for64Bit);
+ _translator = new Translator(new JitMemoryAllocator(), memory, AddressTable.CreateForArm(for64Bit, memory.Type));
memory.UnmapEvent += UnmapHandler;
}
diff --git a/src/Ryujinx.Tests/Cpu/EnvironmentTests.cs b/src/Ryujinx.Tests/Cpu/EnvironmentTests.cs
index 2a4775a31..43c84c193 100644
--- a/src/Ryujinx.Tests/Cpu/EnvironmentTests.cs
+++ b/src/Ryujinx.Tests/Cpu/EnvironmentTests.cs
@@ -1,3 +1,5 @@
+using ARMeilleure.Common;
+using ARMeilleure.Memory;
using ARMeilleure.Translation;
using NUnit.Framework;
using Ryujinx.Cpu.Jit;
@@ -17,7 +19,10 @@ namespace Ryujinx.Tests.Cpu
private static void EnsureTranslator()
{
// Create a translator, as one is needed to register the signal handler or emit methods.
- _translator ??= new Translator(new JitMemoryAllocator(), new MockMemoryManager(), true);
+ _translator ??= new Translator(
+ new JitMemoryAllocator(),
+ new MockMemoryManager(),
+ AddressTable.CreateForArm(true, MemoryManagerType.SoftwarePageTable));
}
[MethodImpl(MethodImplOptions.NoInlining | MethodImplOptions.NoOptimization)]
diff --git a/src/Ryujinx.Tests/Memory/PartialUnmaps.cs b/src/Ryujinx.Tests/Memory/PartialUnmaps.cs
index 6d2ad8fb0..3e5b47423 100644
--- a/src/Ryujinx.Tests/Memory/PartialUnmaps.cs
+++ b/src/Ryujinx.Tests/Memory/PartialUnmaps.cs
@@ -1,3 +1,5 @@
+using ARMeilleure.Common;
+using ARMeilleure.Memory;
using ARMeilleure.Signal;
using ARMeilleure.Translation;
using NUnit.Framework;
@@ -53,7 +55,10 @@ namespace Ryujinx.Tests.Memory
private static void EnsureTranslator()
{
// Create a translator, as one is needed to register the signal handler or emit methods.
- _translator ??= new Translator(new JitMemoryAllocator(), new MockMemoryManager(), true);
+ _translator ??= new Translator(
+ new JitMemoryAllocator(),
+ new MockMemoryManager(),
+ AddressTable.CreateForArm(true, MemoryManagerType.SoftwarePageTable));
}
[Test]
--
2.47.1
From 3b6731a3519f408a361b7355f368583fbcc76107 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Fri, 22 Nov 2024 17:51:42 -0600
Subject: [PATCH 030/674] infra: Undo packing native libraries into executable.
---
.github/workflows/canary.yml | 4 ++--
.github/workflows/release.yml | 4 ++--
2 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/.github/workflows/canary.yml b/.github/workflows/canary.yml
index a24436de3..df28e4784 100644
--- a/.github/workflows/canary.yml
+++ b/.github/workflows/canary.yml
@@ -103,8 +103,8 @@ jobs:
- name: Publish
run: |
- dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_ava/publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx --self-contained -p:IncludeNativeLibrariesForSelfExtract=true
- dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_sdl2_headless/publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx.Headless.SDL2 --self-contained -p:IncludeNativeLibrariesForSelfExtract=true
+ dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_ava/publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx --self-contained
+ dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_sdl2_headless/publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx.Headless.SDL2 --self-contained
- name: Packing Windows builds
if: matrix.platform.os == 'windows-latest'
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index ec02976a1..fbf715756 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -102,8 +102,8 @@ jobs:
- name: Publish
run: |
- dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx --self-contained -p:IncludeNativeLibrariesForSelfExtract=true
- dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_sdl2_headless -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx.Headless.SDL2 --self-contained -p:IncludeNativeLibrariesForSelfExtract=true
+ dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx --self-contained
+ dotnet publish -c Release -r "${{ matrix.platform.name }}" -o ./publish_sdl2_headless -p:Version="${{ steps.version_info.outputs.build_version }}" -p:SourceRevisionId="${{ steps.version_info.outputs.git_short_hash }}" -p:DebugType=embedded src/Ryujinx.Headless.SDL2 --self-contained
- name: Packing Windows builds
if: matrix.platform.os == 'windows-latest'
--
2.47.1
From e8d3ad4d8b0d8ad195db32a04c97b7a253f98c1c Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Sat, 23 Nov 2024 13:10:53 -0600
Subject: [PATCH 031/674] UI: RPC: TSUKIHIME -A piece of blue glass moon- asset
image
---
src/Ryujinx.UI.Common/DiscordIntegrationModule.cs | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs b/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs
index a26f6a7b2..295a663b2 100644
--- a/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs
+++ b/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs
@@ -264,6 +264,7 @@ namespace Ryujinx.UI.Common
"0100800015926000", // Suika Game
"0100e46006708000", // Terraria
"01000a10041ea000", // The Elder Scrolls V: Skyrim
+ "010057a01e4d4000", // TSUKIHIME -A piece of blue glass moon-
"010080b00ad66000", // Undertale
];
}
--
2.47.1
From a81212bbf12418c0862384104f191b396732b2c7 Mon Sep 17 00:00:00 2001
From: Daniel Zauner
Date: Sun, 24 Nov 2024 16:49:44 +0100
Subject: [PATCH 032/674] Fix window decorations being too wide (#309)
---
src/Ryujinx/Assets/Styles/Styles.xaml | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
diff --git a/src/Ryujinx/Assets/Styles/Styles.xaml b/src/Ryujinx/Assets/Styles/Styles.xaml
index 05212a7dd..878b5e7f1 100644
--- a/src/Ryujinx/Assets/Styles/Styles.xaml
+++ b/src/Ryujinx/Assets/Styles/Styles.xaml
@@ -1,7 +1,8 @@
+ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
+ xmlns:windowing="clr-namespace:FluentAvalonia.UI.Windowing;assembly=FluentAvalonia">
@@ -231,7 +232,7 @@
-
--
2.47.1
From 7e16fccfc108c92aef1015fb6b37d956f9526947 Mon Sep 17 00:00:00 2001
From: GabCoolGuy
Date: Sun, 24 Nov 2024 18:33:53 +0100
Subject: [PATCH 033/674] UI: Fix icons getting cutoff in the About window
(#310)
Before:

After:

---
src/Ryujinx/UI/Windows/AboutWindow.axaml | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/Ryujinx/UI/Windows/AboutWindow.axaml b/src/Ryujinx/UI/Windows/AboutWindow.axaml
index 6d4a7b7e3..1d0e36ae9 100644
--- a/src/Ryujinx/UI/Windows/AboutWindow.axaml
+++ b/src/Ryujinx/UI/Windows/AboutWindow.axaml
@@ -6,8 +6,10 @@
xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:viewModel="clr-namespace:Ryujinx.Ava.UI.ViewModels"
- Width="550"
- Height="260"
+ MinWidth="550"
+ MinHeight="260"
+ MaxWidth="600"
+ MaxHeight="500"
Margin="0,-12,0,0"
d:DesignHeight="260"
d:DesignWidth="550"
--
2.47.1
From 2e6794e69b33405990aff15e7dbe5a0f589666bf Mon Sep 17 00:00:00 2001
From: Keaton
Date: Mon, 25 Nov 2024 13:39:09 -0600
Subject: [PATCH 034/674] Add custom refresh rate mode to VSync option (#238)
Rebased @jcm93's refreshinterval branch:
https://github.com/jcm93/Ryujinx/tree/refreshinterval
The option is placed under System/Hacks. Disabled, it's the default
Ryujinx behavior. Enabled, the behavior is shown in the attached
screenshots. If a framerate is too high or low, you can adjust the value
where you normally toggle VSync on and off. It will also cycle through
the default on/off toggles.
Also, in order to reduce clutter, I made an adjustment to remove the
target FPS and only show the percentage.
---------
Co-authored-by: jcm <6864788+jcm93@users.noreply.github.com>
---
.../Configuration/Hid/KeyboardHotkeys.cs | 4 +-
src/Ryujinx.Common/Configuration/VSyncMode.cs | 9 ++
src/Ryujinx.Graphics.GAL/IWindow.cs | 2 +-
.../Multithreading/ThreadedWindow.cs | 2 +-
src/Ryujinx.Graphics.GAL/VSyncMode.cs | 9 ++
src/Ryujinx.Graphics.OpenGL/Window.cs | 2 +-
src/Ryujinx.Graphics.Vulkan/Window.cs | 13 +-
src/Ryujinx.Graphics.Vulkan/WindowBase.cs | 2 +-
src/Ryujinx.HLE/HLEConfiguration.cs | 18 ++-
.../Services/SurfaceFlinger/SurfaceFlinger.cs | 20 ++-
src/Ryujinx.HLE/Switch.cs | 38 +++++-
src/Ryujinx.Headless.SDL2/Options.cs | 7 +-
src/Ryujinx.Headless.SDL2/Program.cs | 5 +-
.../StatusUpdatedEventArgs.cs | 4 +-
src/Ryujinx.Headless.SDL2/WindowBase.cs | 2 +-
.../Configuration/ConfigurationFileFormat.cs | 20 ++-
.../ConfigurationState.Migration.cs | 45 +++++--
.../Configuration/ConfigurationState.Model.cs | 24 +++-
.../Configuration/ConfigurationState.cs | 10 +-
src/Ryujinx/AppHost.cs | 105 +++++++++++++--
src/Ryujinx/Assets/Locales/en_US.json | 20 ++-
src/Ryujinx/Assets/Styles/Themes.xaml | 5 +-
src/Ryujinx/Common/KeyboardHotkeyState.cs | 4 +-
src/Ryujinx/UI/Models/Input/HotkeyConfig.cs | 38 +++++-
src/Ryujinx/UI/Models/SaveModel.cs | 2 +-
.../UI/Models/StatusUpdatedEventArgs.cs | 7 +-
.../UI/ViewModels/MainWindowViewModel.cs | 123 ++++++++++++++++--
.../UI/ViewModels/SettingsViewModel.cs | 82 +++++++++++-
.../UI/Views/Main/MainStatusBarView.axaml | 54 +++++++-
.../UI/Views/Main/MainStatusBarView.axaml.cs | 7 +-
.../Views/Settings/SettingsHotkeysView.axaml | 20 ++-
.../Settings/SettingsHotkeysView.axaml.cs | 10 +-
.../Views/Settings/SettingsSystemView.axaml | 71 +++++++++-
src/Ryujinx/UI/Windows/MainWindow.axaml.cs | 4 +-
34 files changed, 678 insertions(+), 110 deletions(-)
create mode 100644 src/Ryujinx.Common/Configuration/VSyncMode.cs
create mode 100644 src/Ryujinx.Graphics.GAL/VSyncMode.cs
diff --git a/src/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs b/src/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs
index 0cb49ca8c..6b8152b9d 100644
--- a/src/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs
+++ b/src/Ryujinx.Common/Configuration/Hid/KeyboardHotkeys.cs
@@ -2,7 +2,7 @@ namespace Ryujinx.Common.Configuration.Hid
{
public class KeyboardHotkeys
{
- public Key ToggleVsync { get; set; }
+ public Key ToggleVSyncMode { get; set; }
public Key Screenshot { get; set; }
public Key ShowUI { get; set; }
public Key Pause { get; set; }
@@ -11,5 +11,7 @@ namespace Ryujinx.Common.Configuration.Hid
public Key ResScaleDown { get; set; }
public Key VolumeUp { get; set; }
public Key VolumeDown { get; set; }
+ public Key CustomVSyncIntervalIncrement { get; set; }
+ public Key CustomVSyncIntervalDecrement { get; set; }
}
}
diff --git a/src/Ryujinx.Common/Configuration/VSyncMode.cs b/src/Ryujinx.Common/Configuration/VSyncMode.cs
new file mode 100644
index 000000000..ca93b5e1c
--- /dev/null
+++ b/src/Ryujinx.Common/Configuration/VSyncMode.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.Common.Configuration
+{
+ public enum VSyncMode
+ {
+ Switch,
+ Unbounded,
+ Custom
+ }
+}
diff --git a/src/Ryujinx.Graphics.GAL/IWindow.cs b/src/Ryujinx.Graphics.GAL/IWindow.cs
index 83418e709..12686cb28 100644
--- a/src/Ryujinx.Graphics.GAL/IWindow.cs
+++ b/src/Ryujinx.Graphics.GAL/IWindow.cs
@@ -8,7 +8,7 @@ namespace Ryujinx.Graphics.GAL
void SetSize(int width, int height);
- void ChangeVSyncMode(bool vsyncEnabled);
+ void ChangeVSyncMode(VSyncMode vSyncMode);
void SetAntiAliasing(AntiAliasing antialiasing);
void SetScalingFilter(ScalingFilter type);
diff --git a/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedWindow.cs b/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedWindow.cs
index acda37ef3..102fdb1bb 100644
--- a/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedWindow.cs
+++ b/src/Ryujinx.Graphics.GAL/Multithreading/ThreadedWindow.cs
@@ -31,7 +31,7 @@ namespace Ryujinx.Graphics.GAL.Multithreading
_impl.Window.SetSize(width, height);
}
- public void ChangeVSyncMode(bool vsyncEnabled) { }
+ public void ChangeVSyncMode(VSyncMode vSyncMode) { }
public void SetAntiAliasing(AntiAliasing effect) { }
diff --git a/src/Ryujinx.Graphics.GAL/VSyncMode.cs b/src/Ryujinx.Graphics.GAL/VSyncMode.cs
new file mode 100644
index 000000000..c5794b8f7
--- /dev/null
+++ b/src/Ryujinx.Graphics.GAL/VSyncMode.cs
@@ -0,0 +1,9 @@
+namespace Ryujinx.Graphics.GAL
+{
+ public enum VSyncMode
+ {
+ Switch,
+ Unbounded,
+ Custom
+ }
+}
diff --git a/src/Ryujinx.Graphics.OpenGL/Window.cs b/src/Ryujinx.Graphics.OpenGL/Window.cs
index 285ab725e..1dc8a51f6 100644
--- a/src/Ryujinx.Graphics.OpenGL/Window.cs
+++ b/src/Ryujinx.Graphics.OpenGL/Window.cs
@@ -54,7 +54,7 @@ namespace Ryujinx.Graphics.OpenGL
GL.PixelStore(PixelStoreParameter.UnpackAlignment, 4);
}
- public void ChangeVSyncMode(bool vsyncEnabled) { }
+ public void ChangeVSyncMode(VSyncMode vSyncMode) { }
public void SetSize(int width, int height)
{
diff --git a/src/Ryujinx.Graphics.Vulkan/Window.cs b/src/Ryujinx.Graphics.Vulkan/Window.cs
index 3dc6d4e19..3e8d3b375 100644
--- a/src/Ryujinx.Graphics.Vulkan/Window.cs
+++ b/src/Ryujinx.Graphics.Vulkan/Window.cs
@@ -29,7 +29,7 @@ namespace Ryujinx.Graphics.Vulkan
private int _width;
private int _height;
- private bool _vsyncEnabled;
+ private VSyncMode _vSyncMode;
private bool _swapchainIsDirty;
private VkFormat _format;
private AntiAliasing _currentAntiAliasing;
@@ -139,7 +139,7 @@ namespace Ryujinx.Graphics.Vulkan
ImageArrayLayers = 1,
PreTransform = capabilities.CurrentTransform,
CompositeAlpha = ChooseCompositeAlpha(capabilities.SupportedCompositeAlpha),
- PresentMode = ChooseSwapPresentMode(presentModes, _vsyncEnabled),
+ PresentMode = ChooseSwapPresentMode(presentModes, _vSyncMode),
Clipped = true,
};
@@ -279,9 +279,9 @@ namespace Ryujinx.Graphics.Vulkan
}
}
- private static PresentModeKHR ChooseSwapPresentMode(PresentModeKHR[] availablePresentModes, bool vsyncEnabled)
+ private static PresentModeKHR ChooseSwapPresentMode(PresentModeKHR[] availablePresentModes, VSyncMode vSyncMode)
{
- if (!vsyncEnabled && availablePresentModes.Contains(PresentModeKHR.ImmediateKhr))
+ if (vSyncMode == VSyncMode.Unbounded && availablePresentModes.Contains(PresentModeKHR.ImmediateKhr))
{
return PresentModeKHR.ImmediateKhr;
}
@@ -634,9 +634,10 @@ namespace Ryujinx.Graphics.Vulkan
_swapchainIsDirty = true;
}
- public override void ChangeVSyncMode(bool vsyncEnabled)
+ public override void ChangeVSyncMode(VSyncMode vSyncMode)
{
- _vsyncEnabled = vsyncEnabled;
+ _vSyncMode = vSyncMode;
+ //present mode may change, so mark the swapchain for recreation
_swapchainIsDirty = true;
}
diff --git a/src/Ryujinx.Graphics.Vulkan/WindowBase.cs b/src/Ryujinx.Graphics.Vulkan/WindowBase.cs
index edb9c688c..ca06ec0b8 100644
--- a/src/Ryujinx.Graphics.Vulkan/WindowBase.cs
+++ b/src/Ryujinx.Graphics.Vulkan/WindowBase.cs
@@ -10,7 +10,7 @@ namespace Ryujinx.Graphics.Vulkan
public abstract void Dispose();
public abstract void Present(ITexture texture, ImageCrop crop, Action swapBuffersCallback);
public abstract void SetSize(int width, int height);
- public abstract void ChangeVSyncMode(bool vsyncEnabled);
+ public abstract void ChangeVSyncMode(VSyncMode vSyncMode);
public abstract void SetAntiAliasing(AntiAliasing effect);
public abstract void SetScalingFilter(ScalingFilter scalerType);
public abstract void SetScalingFilterLevel(float scale);
diff --git a/src/Ryujinx.HLE/HLEConfiguration.cs b/src/Ryujinx.HLE/HLEConfiguration.cs
index 70fcf278d..f75ead588 100644
--- a/src/Ryujinx.HLE/HLEConfiguration.cs
+++ b/src/Ryujinx.HLE/HLEConfiguration.cs
@@ -9,6 +9,7 @@ using Ryujinx.HLE.HOS.Services.Account.Acc;
using Ryujinx.HLE.HOS.SystemState;
using Ryujinx.HLE.UI;
using System;
+using VSyncMode = Ryujinx.Common.Configuration.VSyncMode;
namespace Ryujinx.HLE
{
@@ -84,9 +85,14 @@ namespace Ryujinx.HLE
internal readonly RegionCode Region;
///
- /// Control the initial state of the vertical sync in the SurfaceFlinger service.
+ /// Control the initial state of the present interval in the SurfaceFlinger service (previously Vsync).
///
- internal readonly bool EnableVsync;
+ internal readonly VSyncMode VSyncMode;
+
+ ///
+ /// Control the custom VSync interval, if enabled and active.
+ ///
+ internal readonly int CustomVSyncInterval;
///
/// Control the initial state of the docked mode.
@@ -195,7 +201,7 @@ namespace Ryujinx.HLE
IHostUIHandler hostUIHandler,
SystemLanguage systemLanguage,
RegionCode region,
- bool enableVsync,
+ VSyncMode vSyncMode,
bool enableDockedMode,
bool enablePtc,
bool enableInternetAccess,
@@ -212,7 +218,8 @@ namespace Ryujinx.HLE
MultiplayerMode multiplayerMode,
bool multiplayerDisableP2p,
string multiplayerLdnPassphrase,
- string multiplayerLdnServer)
+ string multiplayerLdnServer,
+ int customVSyncInterval)
{
VirtualFileSystem = virtualFileSystem;
LibHacHorizonManager = libHacHorizonManager;
@@ -225,7 +232,8 @@ namespace Ryujinx.HLE
HostUIHandler = hostUIHandler;
SystemLanguage = systemLanguage;
Region = region;
- EnableVsync = enableVsync;
+ VSyncMode = vSyncMode;
+ CustomVSyncInterval = customVSyncInterval;
EnableDockedMode = enableDockedMode;
EnablePtc = enablePtc;
EnableInternetAccess = enableInternetAccess;
diff --git a/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/SurfaceFlinger.cs b/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/SurfaceFlinger.cs
index 4c17e7aed..601e85867 100644
--- a/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/SurfaceFlinger.cs
+++ b/src/Ryujinx.HLE/HOS/Services/SurfaceFlinger/SurfaceFlinger.cs
@@ -10,13 +10,12 @@ using System.Collections.Generic;
using System.Diagnostics;
using System.Linq;
using System.Threading;
+using VSyncMode = Ryujinx.Common.Configuration.VSyncMode;
namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
{
class SurfaceFlinger : IConsumerListener, IDisposable
{
- private const int TargetFps = 60;
-
private readonly Switch _device;
private readonly Dictionary _layers;
@@ -32,6 +31,9 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
private readonly long _spinTicks;
private readonly long _1msTicks;
+ private VSyncMode _vSyncMode;
+ private long _targetVSyncInterval;
+
private int _swapInterval;
private int _swapIntervalDelay;
@@ -88,7 +90,8 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
}
else
{
- _ticksPerFrame = Stopwatch.Frequency / TargetFps;
+ _ticksPerFrame = Stopwatch.Frequency / _device.TargetVSyncInterval;
+ _targetVSyncInterval = _device.TargetVSyncInterval;
}
}
@@ -370,15 +373,20 @@ namespace Ryujinx.HLE.HOS.Services.SurfaceFlinger
if (acquireStatus == Status.Success)
{
- // If device vsync is disabled, reflect the change.
- if (!_device.EnableDeviceVsync)
+ if (_device.VSyncMode == VSyncMode.Unbounded)
{
if (_swapInterval != 0)
{
UpdateSwapInterval(0);
+ _vSyncMode = _device.VSyncMode;
}
}
- else if (item.SwapInterval != _swapInterval)
+ else if (_device.VSyncMode != _vSyncMode)
+ {
+ UpdateSwapInterval(_device.VSyncMode == VSyncMode.Unbounded ? 0 : item.SwapInterval);
+ _vSyncMode = _device.VSyncMode;
+ }
+ else if (item.SwapInterval != _swapInterval || _device.TargetVSyncInterval != _targetVSyncInterval)
{
UpdateSwapInterval(item.SwapInterval);
}
diff --git a/src/Ryujinx.HLE/Switch.cs b/src/Ryujinx.HLE/Switch.cs
index d12cb8f77..466352152 100644
--- a/src/Ryujinx.HLE/Switch.cs
+++ b/src/Ryujinx.HLE/Switch.cs
@@ -27,7 +27,11 @@ namespace Ryujinx.HLE
public TamperMachine TamperMachine { get; }
public IHostUIHandler UIHandler { get; }
- public bool EnableDeviceVsync { get; set; }
+ public VSyncMode VSyncMode { get; set; } = VSyncMode.Switch;
+ public bool CustomVSyncIntervalEnabled { get; set; } = false;
+ public int CustomVSyncInterval { get; set; }
+
+ public long TargetVSyncInterval { get; set; } = 60;
public bool IsFrameAvailable => Gpu.Window.IsFrameAvailable;
@@ -59,12 +63,14 @@ namespace Ryujinx.HLE
System.State.SetLanguage(Configuration.SystemLanguage);
System.State.SetRegion(Configuration.Region);
- EnableDeviceVsync = Configuration.EnableVsync;
+ VSyncMode = Configuration.VSyncMode;
+ CustomVSyncInterval = Configuration.CustomVSyncInterval;
System.State.DockedMode = Configuration.EnableDockedMode;
System.PerformanceState.PerformanceMode = System.State.DockedMode ? PerformanceMode.Boost : PerformanceMode.Default;
System.EnablePtc = Configuration.EnablePtc;
System.FsIntegrityCheckLevel = Configuration.FsIntegrityCheckLevel;
System.GlobalAccessLogMode = Configuration.FsGlobalAccessLogMode;
+ UpdateVSyncInterval();
#pragma warning restore IDE0055
}
@@ -75,6 +81,34 @@ namespace Ryujinx.HLE
Gpu.GPFifo.DispatchCalls();
}
+ public void IncrementCustomVSyncInterval()
+ {
+ CustomVSyncInterval += 1;
+ UpdateVSyncInterval();
+ }
+
+ public void DecrementCustomVSyncInterval()
+ {
+ CustomVSyncInterval -= 1;
+ UpdateVSyncInterval();
+ }
+
+ public void UpdateVSyncInterval()
+ {
+ switch (VSyncMode)
+ {
+ case VSyncMode.Custom:
+ TargetVSyncInterval = CustomVSyncInterval;
+ break;
+ case VSyncMode.Switch:
+ TargetVSyncInterval = 60;
+ break;
+ case VSyncMode.Unbounded:
+ TargetVSyncInterval = 1;
+ break;
+ }
+ }
+
public bool LoadCart(string exeFsDir, string romFsFile = null) => Processes.LoadUnpackedNca(exeFsDir, romFsFile);
public bool LoadXci(string xciFile, ulong applicationId = 0) => Processes.LoadXci(xciFile, applicationId);
public bool LoadNca(string ncaFile) => Processes.LoadNca(ncaFile);
diff --git a/src/Ryujinx.Headless.SDL2/Options.cs b/src/Ryujinx.Headless.SDL2/Options.cs
index 8078ca5e4..4e2ad5b58 100644
--- a/src/Ryujinx.Headless.SDL2/Options.cs
+++ b/src/Ryujinx.Headless.SDL2/Options.cs
@@ -115,8 +115,11 @@ namespace Ryujinx.Headless.SDL2
[Option("fs-global-access-log-mode", Required = false, Default = 0, HelpText = "Enables FS access log output to the console.")]
public int FsGlobalAccessLogMode { get; set; }
- [Option("disable-vsync", Required = false, HelpText = "Disables Vertical Sync.")]
- public bool DisableVSync { get; set; }
+ [Option("vsync-mode", Required = false, Default = VSyncMode.Switch, HelpText = "Sets the emulated VSync mode (Switch, Unbounded, or Custom).")]
+ public VSyncMode VSyncMode { get; set; }
+
+ [Option("custom-refresh-rate", Required = false, Default = 90, HelpText = "Sets the custom refresh rate target value (integer).")]
+ public int CustomVSyncInterval { get; set; }
[Option("disable-shader-cache", Required = false, HelpText = "Disables Shader cache.")]
public bool DisableShaderCache { get; set; }
diff --git a/src/Ryujinx.Headless.SDL2/Program.cs b/src/Ryujinx.Headless.SDL2/Program.cs
index e3bbd1e51..ff87a3845 100644
--- a/src/Ryujinx.Headless.SDL2/Program.cs
+++ b/src/Ryujinx.Headless.SDL2/Program.cs
@@ -563,7 +563,7 @@ namespace Ryujinx.Headless.SDL2
window,
options.SystemLanguage,
options.SystemRegion,
- !options.DisableVSync,
+ options.VSyncMode,
!options.DisableDockedMode,
!options.DisablePTC,
options.EnableInternetAccess,
@@ -580,7 +580,8 @@ namespace Ryujinx.Headless.SDL2
Common.Configuration.Multiplayer.MultiplayerMode.Disabled,
false,
"",
- "");
+ "",
+ options.CustomVSyncInterval);
return new Switch(configuration);
}
diff --git a/src/Ryujinx.Headless.SDL2/StatusUpdatedEventArgs.cs b/src/Ryujinx.Headless.SDL2/StatusUpdatedEventArgs.cs
index cd7715712..c1dd3805f 100644
--- a/src/Ryujinx.Headless.SDL2/StatusUpdatedEventArgs.cs
+++ b/src/Ryujinx.Headless.SDL2/StatusUpdatedEventArgs.cs
@@ -3,7 +3,7 @@ using System;
namespace Ryujinx.Headless.SDL2
{
class StatusUpdatedEventArgs(
- bool vSyncEnabled,
+ string vSyncMode,
string dockedMode,
string aspectRatio,
string gameStatus,
@@ -11,7 +11,7 @@ namespace Ryujinx.Headless.SDL2
string gpuName)
: EventArgs
{
- public bool VSyncEnabled = vSyncEnabled;
+ public string VSyncMode = vSyncMode;
public string DockedMode = dockedMode;
public string AspectRatio = aspectRatio;
public string GameStatus = gameStatus;
diff --git a/src/Ryujinx.Headless.SDL2/WindowBase.cs b/src/Ryujinx.Headless.SDL2/WindowBase.cs
index 6d681e100..2479ec127 100644
--- a/src/Ryujinx.Headless.SDL2/WindowBase.cs
+++ b/src/Ryujinx.Headless.SDL2/WindowBase.cs
@@ -314,7 +314,7 @@ namespace Ryujinx.Headless.SDL2
}
StatusUpdatedEvent?.Invoke(this, new StatusUpdatedEventArgs(
- Device.EnableDeviceVsync,
+ Device.VSyncMode.ToString(),
dockedMode,
Device.Configuration.AspectRatio.ToText(),
$"Game: {Device.Statistics.GetGameFrameRate():00.00} FPS ({Device.Statistics.GetGameFrameTime():00.00} ms)",
diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
index 80ba1b186..027e1052b 100644
--- a/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
+++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationFileFormat.cs
@@ -1,3 +1,4 @@
+using Ryujinx.Common;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Configuration.Hid;
using Ryujinx.Common.Configuration.Multiplayer;
@@ -16,7 +17,7 @@ namespace Ryujinx.UI.Common.Configuration
///
/// The current version of the file format
///
- public const int CurrentVersion = 56;
+ public const int CurrentVersion = 57;
///
/// Version of the configuration file format
@@ -191,8 +192,25 @@ namespace Ryujinx.UI.Common.Configuration
///
/// Enables or disables Vertical Sync
///
+ /// Kept for file format compatibility (to avoid possible failure when parsing configuration on old versions)
+ /// TODO: Remove this when those older versions aren't in use anymore.
public bool EnableVsync { get; set; }
+ ///
+ /// Current VSync mode; 60 (Switch), unbounded ("Vsync off"), or custom
+ ///
+ public VSyncMode VSyncMode { get; set; }
+
+ ///
+ /// Enables or disables the custom present interval
+ ///
+ public bool EnableCustomVSyncInterval { get; set; }
+
+ ///
+ /// The custom present interval value
+ ///
+ public int CustomVSyncInterval { get; set; }
+
///
/// Enables or disables Shader cache
///
diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.Migration.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.Migration.cs
index 65dd88106..a41ea2cd7 100644
--- a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.Migration.cs
+++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.Migration.cs
@@ -82,7 +82,7 @@ namespace Ryujinx.UI.Common.Configuration
configurationFileFormat.Hotkeys = new KeyboardHotkeys
{
- ToggleVsync = Key.F1,
+ ToggleVSyncMode = Key.F1,
};
configurationFileUpdated = true;
@@ -276,7 +276,7 @@ namespace Ryujinx.UI.Common.Configuration
configurationFileFormat.Hotkeys = new KeyboardHotkeys
{
- ToggleVsync = Key.F1,
+ ToggleVSyncMode = Key.F1,
Screenshot = Key.F8,
};
@@ -289,7 +289,7 @@ namespace Ryujinx.UI.Common.Configuration
configurationFileFormat.Hotkeys = new KeyboardHotkeys
{
- ToggleVsync = Key.F1,
+ ToggleVSyncMode = Key.F1,
Screenshot = Key.F8,
ShowUI = Key.F4,
};
@@ -332,7 +332,7 @@ namespace Ryujinx.UI.Common.Configuration
configurationFileFormat.Hotkeys = new KeyboardHotkeys
{
- ToggleVsync = configurationFileFormat.Hotkeys.ToggleVsync,
+ ToggleVSyncMode = configurationFileFormat.Hotkeys.ToggleVSyncMode,
Screenshot = configurationFileFormat.Hotkeys.Screenshot,
ShowUI = configurationFileFormat.Hotkeys.ShowUI,
Pause = Key.F5,
@@ -347,7 +347,7 @@ namespace Ryujinx.UI.Common.Configuration
configurationFileFormat.Hotkeys = new KeyboardHotkeys
{
- ToggleVsync = configurationFileFormat.Hotkeys.ToggleVsync,
+ ToggleVSyncMode = configurationFileFormat.Hotkeys.ToggleVSyncMode,
Screenshot = configurationFileFormat.Hotkeys.Screenshot,
ShowUI = configurationFileFormat.Hotkeys.ShowUI,
Pause = configurationFileFormat.Hotkeys.Pause,
@@ -421,7 +421,7 @@ namespace Ryujinx.UI.Common.Configuration
configurationFileFormat.Hotkeys = new KeyboardHotkeys
{
- ToggleVsync = configurationFileFormat.Hotkeys.ToggleVsync,
+ ToggleVSyncMode = configurationFileFormat.Hotkeys.ToggleVSyncMode,
Screenshot = configurationFileFormat.Hotkeys.Screenshot,
ShowUI = configurationFileFormat.Hotkeys.ShowUI,
Pause = configurationFileFormat.Hotkeys.Pause,
@@ -448,7 +448,7 @@ namespace Ryujinx.UI.Common.Configuration
configurationFileFormat.Hotkeys = new KeyboardHotkeys
{
- ToggleVsync = configurationFileFormat.Hotkeys.ToggleVsync,
+ ToggleVSyncMode = configurationFileFormat.Hotkeys.ToggleVSyncMode,
Screenshot = configurationFileFormat.Hotkeys.Screenshot,
ShowUI = configurationFileFormat.Hotkeys.ShowUI,
Pause = configurationFileFormat.Hotkeys.Pause,
@@ -611,6 +611,33 @@ namespace Ryujinx.UI.Common.Configuration
configurationFileUpdated = true;
}
+ if (configurationFileFormat.Version < 57)
+ {
+ Ryujinx.Common.Logging.Logger.Warning?.Print(LogClass.Application, $"Outdated configuration version {configurationFileFormat.Version}, migrating to version 57.");
+
+ configurationFileFormat.VSyncMode = VSyncMode.Switch;
+ configurationFileFormat.EnableCustomVSyncInterval = false;
+
+ configurationFileFormat.Hotkeys = new KeyboardHotkeys
+ {
+ ToggleVSyncMode = Key.F1,
+ Screenshot = configurationFileFormat.Hotkeys.Screenshot,
+ ShowUI = configurationFileFormat.Hotkeys.ShowUI,
+ Pause = configurationFileFormat.Hotkeys.Pause,
+ ToggleMute = configurationFileFormat.Hotkeys.ToggleMute,
+ ResScaleUp = configurationFileFormat.Hotkeys.ResScaleUp,
+ ResScaleDown = configurationFileFormat.Hotkeys.ResScaleDown,
+ VolumeUp = configurationFileFormat.Hotkeys.VolumeUp,
+ VolumeDown = configurationFileFormat.Hotkeys.VolumeDown,
+ CustomVSyncIntervalIncrement = Key.Unbound,
+ CustomVSyncIntervalDecrement = Key.Unbound,
+ };
+
+ configurationFileFormat.CustomVSyncInterval = 120;
+
+ configurationFileUpdated = true;
+ }
+
Logger.EnableFileLog.Value = configurationFileFormat.EnableFileLog;
Graphics.ResScale.Value = configurationFileFormat.ResScale;
Graphics.ResScaleCustom.Value = configurationFileFormat.ResScaleCustom;
@@ -646,7 +673,9 @@ namespace Ryujinx.UI.Common.Configuration
ShowTitleBar.Value = configurationFileFormat.ShowTitleBar;
EnableHardwareAcceleration.Value = configurationFileFormat.EnableHardwareAcceleration;
HideCursor.Value = configurationFileFormat.HideCursor;
- Graphics.EnableVsync.Value = configurationFileFormat.EnableVsync;
+ Graphics.VSyncMode.Value = configurationFileFormat.VSyncMode;
+ Graphics.EnableCustomVSyncInterval.Value = configurationFileFormat.EnableCustomVSyncInterval;
+ Graphics.CustomVSyncInterval.Value = configurationFileFormat.CustomVSyncInterval;
Graphics.EnableShaderCache.Value = configurationFileFormat.EnableShaderCache;
Graphics.EnableTextureRecompression.Value = configurationFileFormat.EnableTextureRecompression;
Graphics.EnableMacroHLE.Value = configurationFileFormat.EnableMacroHLE;
diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.Model.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.Model.cs
index 9be8f4df7..f28ce0348 100644
--- a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.Model.cs
+++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.Model.cs
@@ -1,4 +1,4 @@
-using ARMeilleure;
+using ARMeilleure;
using Ryujinx.Common;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Configuration.Hid;
@@ -474,9 +474,19 @@ namespace Ryujinx.UI.Common.Configuration
public ReactiveObject ShadersDumpPath { get; private set; }
///
- /// Enables or disables Vertical Sync
+ /// Toggles the present interval mode. Options are Switch (60Hz), Unbounded (previously Vsync off), and Custom, if enabled.
///
- public ReactiveObject EnableVsync { get; private set; }
+ public ReactiveObject VSyncMode { get; private set; }
+
+ ///
+ /// Enables or disables the custom present interval mode.
+ ///
+ public ReactiveObject EnableCustomVSyncInterval { get; private set; }
+
+ ///
+ /// Changes the custom present interval.
+ ///
+ public ReactiveObject CustomVSyncInterval { get; private set; }
///
/// Enables or disables Shader cache
@@ -536,8 +546,12 @@ namespace Ryujinx.UI.Common.Configuration
AspectRatio = new ReactiveObject();
AspectRatio.LogChangesToValue(nameof(AspectRatio));
ShadersDumpPath = new ReactiveObject();
- EnableVsync = new ReactiveObject();
- EnableVsync.LogChangesToValue(nameof(EnableVsync));
+ VSyncMode = new ReactiveObject();
+ VSyncMode.LogChangesToValue(nameof(VSyncMode));
+ EnableCustomVSyncInterval = new ReactiveObject();
+ EnableCustomVSyncInterval.LogChangesToValue(nameof(EnableCustomVSyncInterval));
+ CustomVSyncInterval = new ReactiveObject();
+ CustomVSyncInterval.LogChangesToValue(nameof(CustomVSyncInterval));
EnableShaderCache = new ReactiveObject();
EnableShaderCache.LogChangesToValue(nameof(EnableShaderCache));
EnableTextureRecompression = new ReactiveObject();
diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
index b3012568e..badb047df 100644
--- a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
+++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
@@ -64,7 +64,9 @@ namespace Ryujinx.UI.Common.Configuration
ShowTitleBar = ShowTitleBar,
EnableHardwareAcceleration = EnableHardwareAcceleration,
HideCursor = HideCursor,
- EnableVsync = Graphics.EnableVsync,
+ VSyncMode = Graphics.VSyncMode,
+ EnableCustomVSyncInterval = Graphics.EnableCustomVSyncInterval,
+ CustomVSyncInterval = Graphics.CustomVSyncInterval,
EnableShaderCache = Graphics.EnableShaderCache,
EnableTextureRecompression = Graphics.EnableTextureRecompression,
EnableMacroHLE = Graphics.EnableMacroHLE,
@@ -179,7 +181,9 @@ namespace Ryujinx.UI.Common.Configuration
ShowTitleBar.Value = !OperatingSystem.IsWindows();
EnableHardwareAcceleration.Value = true;
HideCursor.Value = HideCursorMode.OnIdle;
- Graphics.EnableVsync.Value = true;
+ Graphics.VSyncMode.Value = VSyncMode.Switch;
+ Graphics.CustomVSyncInterval.Value = 120;
+ Graphics.EnableCustomVSyncInterval.Value = false;
Graphics.EnableShaderCache.Value = true;
Graphics.EnableTextureRecompression.Value = false;
Graphics.EnableMacroHLE.Value = true;
@@ -240,7 +244,7 @@ namespace Ryujinx.UI.Common.Configuration
Hid.EnableMouse.Value = false;
Hid.Hotkeys.Value = new KeyboardHotkeys
{
- ToggleVsync = Key.F1,
+ ToggleVSyncMode = Key.F1,
ToggleMute = Key.F2,
Screenshot = Key.F8,
ShowUI = Key.F4,
diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs
index d1398f194..5789737d6 100644
--- a/src/Ryujinx/AppHost.cs
+++ b/src/Ryujinx/AppHost.cs
@@ -57,6 +57,8 @@ using Key = Ryujinx.Input.Key;
using MouseButton = Ryujinx.Input.MouseButton;
using ScalingFilter = Ryujinx.Common.Configuration.ScalingFilter;
using Size = Avalonia.Size;
+using Switch = Ryujinx.HLE.Switch;
+using VSyncMode = Ryujinx.Common.Configuration.VSyncMode;
namespace Ryujinx.Ava
{
@@ -203,6 +205,9 @@ namespace Ryujinx.Ava
ConfigurationState.Instance.Graphics.ScalingFilter.Event += UpdateScalingFilter;
ConfigurationState.Instance.Graphics.ScalingFilterLevel.Event += UpdateScalingFilterLevel;
ConfigurationState.Instance.Graphics.EnableColorSpacePassthrough.Event += UpdateColorSpacePassthrough;
+ ConfigurationState.Instance.Graphics.VSyncMode.Event += UpdateVSyncMode;
+ ConfigurationState.Instance.Graphics.CustomVSyncInterval.Event += UpdateCustomVSyncIntervalValue;
+ ConfigurationState.Instance.Graphics.EnableCustomVSyncInterval.Event += UpdateCustomVSyncIntervalEnabled;
ConfigurationState.Instance.System.EnableInternetAccess.Event += UpdateEnableInternetAccessState;
ConfigurationState.Instance.Multiplayer.LanInterfaceId.Event += UpdateLanInterfaceIdState;
@@ -295,6 +300,66 @@ namespace Ryujinx.Ava
_renderer.Window?.SetColorSpacePassthrough((bool)ConfigurationState.Instance.Graphics.EnableColorSpacePassthrough.Value);
}
+ public void UpdateVSyncMode(object sender, ReactiveEventArgs e)
+ {
+ if (Device != null)
+ {
+ Device.VSyncMode = e.NewValue;
+ Device.UpdateVSyncInterval();
+ }
+ _renderer.Window?.ChangeVSyncMode((Ryujinx.Graphics.GAL.VSyncMode)e.NewValue);
+
+ _viewModel.ShowCustomVSyncIntervalPicker = (e.NewValue == VSyncMode.Custom);
+ }
+
+ public void VSyncModeToggle()
+ {
+ VSyncMode oldVSyncMode = Device.VSyncMode;
+ VSyncMode newVSyncMode = VSyncMode.Switch;
+ bool customVSyncIntervalEnabled = ConfigurationState.Instance.Graphics.EnableCustomVSyncInterval.Value;
+
+ switch (oldVSyncMode)
+ {
+ case VSyncMode.Switch:
+ newVSyncMode = VSyncMode.Unbounded;
+ break;
+ case VSyncMode.Unbounded:
+ if (customVSyncIntervalEnabled)
+ {
+ newVSyncMode = VSyncMode.Custom;
+ }
+ else
+ {
+ newVSyncMode = VSyncMode.Switch;
+ }
+
+ break;
+ case VSyncMode.Custom:
+ newVSyncMode = VSyncMode.Switch;
+ break;
+ }
+
+ UpdateVSyncMode(this, new ReactiveEventArgs(oldVSyncMode, newVSyncMode));
+ }
+
+ private void UpdateCustomVSyncIntervalValue(object sender, ReactiveEventArgs e)
+ {
+ if (Device != null)
+ {
+ Device.TargetVSyncInterval = e.NewValue;
+ Device.UpdateVSyncInterval();
+ }
+ }
+
+ private void UpdateCustomVSyncIntervalEnabled(object sender, ReactiveEventArgs e)
+ {
+ if (Device != null)
+ {
+ Device.CustomVSyncIntervalEnabled = e.NewValue;
+ Device.UpdateVSyncInterval();
+ }
+ }
+
private void ShowCursor()
{
Dispatcher.UIThread.Post(() =>
@@ -505,12 +570,6 @@ namespace Ryujinx.Ava
Device.Configuration.MultiplayerDisableP2p = e.NewValue;
}
- public void ToggleVSync()
- {
- Device.EnableDeviceVsync = !Device.EnableDeviceVsync;
- _renderer.Window.ChangeVSyncMode(Device.EnableDeviceVsync);
- }
-
public void Stop()
{
_isActive = false;
@@ -864,7 +923,7 @@ namespace Ryujinx.Ava
_viewModel.UiHandler,
(SystemLanguage)ConfigurationState.Instance.System.Language.Value,
(RegionCode)ConfigurationState.Instance.System.Region.Value,
- ConfigurationState.Instance.Graphics.EnableVsync,
+ ConfigurationState.Instance.Graphics.VSyncMode,
ConfigurationState.Instance.System.EnableDockedMode,
ConfigurationState.Instance.System.EnablePtc,
ConfigurationState.Instance.System.EnableInternetAccess,
@@ -881,7 +940,8 @@ namespace Ryujinx.Ava
ConfigurationState.Instance.Multiplayer.Mode,
ConfigurationState.Instance.Multiplayer.DisableP2p,
ConfigurationState.Instance.Multiplayer.LdnPassphrase,
- ConfigurationState.Instance.Multiplayer.LdnServer));
+ ConfigurationState.Instance.Multiplayer.LdnServer,
+ ConfigurationState.Instance.Graphics.CustomVSyncInterval.Value));
}
private static IHardwareDeviceDriver InitializeAudio()
@@ -1002,7 +1062,7 @@ namespace Ryujinx.Ava
Device.Gpu.SetGpuThread();
Device.Gpu.InitializeShaderCache(_gpuCancellationTokenSource.Token);
- _renderer.Window.ChangeVSyncMode(Device.EnableDeviceVsync);
+ _renderer.Window.ChangeVSyncMode((Ryujinx.Graphics.GAL.VSyncMode)Device.VSyncMode);
while (_isActive)
{
@@ -1063,6 +1123,7 @@ namespace Ryujinx.Ava
{
// Run a status update only when a frame is to be drawn. This prevents from updating the ui and wasting a render when no frame is queued.
string dockedMode = ConfigurationState.Instance.System.EnableDockedMode ? LocaleManager.Instance[LocaleKeys.Docked] : LocaleManager.Instance[LocaleKeys.Handheld];
+ string vSyncMode = Device.VSyncMode.ToString();
UpdateShaderCount();
@@ -1072,7 +1133,7 @@ namespace Ryujinx.Ava
}
StatusUpdatedEvent?.Invoke(this, new StatusUpdatedEventArgs(
- Device.EnableDeviceVsync,
+ vSyncMode,
LocaleManager.Instance[LocaleKeys.VolumeShort] + $": {(int)(Device.GetVolume() * 100)}%",
dockedMode,
ConfigurationState.Instance.Graphics.AspectRatio.Value.ToText(),
@@ -1175,8 +1236,16 @@ namespace Ryujinx.Ava
{
switch (currentHotkeyState)
{
- case KeyboardHotkeyState.ToggleVSync:
- ToggleVSync();
+ case KeyboardHotkeyState.ToggleVSyncMode:
+ VSyncModeToggle();
+ break;
+ case KeyboardHotkeyState.CustomVSyncIntervalDecrement:
+ Device.DecrementCustomVSyncInterval();
+ _viewModel.CustomVSyncInterval -= 1;
+ break;
+ case KeyboardHotkeyState.CustomVSyncIntervalIncrement:
+ Device.IncrementCustomVSyncInterval();
+ _viewModel.CustomVSyncInterval += 1;
break;
case KeyboardHotkeyState.Screenshot:
ScreenshotRequested = true;
@@ -1263,9 +1332,9 @@ namespace Ryujinx.Ava
{
KeyboardHotkeyState state = KeyboardHotkeyState.None;
- if (_keyboardInterface.IsPressed((Key)ConfigurationState.Instance.Hid.Hotkeys.Value.ToggleVsync))
+ if (_keyboardInterface.IsPressed((Key)ConfigurationState.Instance.Hid.Hotkeys.Value.ToggleVSyncMode))
{
- state = KeyboardHotkeyState.ToggleVSync;
+ state = KeyboardHotkeyState.ToggleVSyncMode;
}
else if (_keyboardInterface.IsPressed((Key)ConfigurationState.Instance.Hid.Hotkeys.Value.Screenshot))
{
@@ -1299,6 +1368,14 @@ namespace Ryujinx.Ava
{
state = KeyboardHotkeyState.VolumeDown;
}
+ else if (_keyboardInterface.IsPressed((Key)ConfigurationState.Instance.Hid.Hotkeys.Value.CustomVSyncIntervalIncrement))
+ {
+ state = KeyboardHotkeyState.CustomVSyncIntervalIncrement;
+ }
+ else if (_keyboardInterface.IsPressed((Key)ConfigurationState.Instance.Hid.Hotkeys.Value.CustomVSyncIntervalDecrement))
+ {
+ state = KeyboardHotkeyState.CustomVSyncIntervalDecrement;
+ }
return state;
}
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index 23135866d..13ffeb759 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -142,9 +142,20 @@
"SettingsTabSystemSystemLanguageLatinAmericanSpanish": "Latin American Spanish",
"SettingsTabSystemSystemLanguageSimplifiedChinese": "Simplified Chinese",
"SettingsTabSystemSystemLanguageTraditionalChinese": "Traditional Chinese",
- "SettingsTabSystemSystemTimeZone": "System TimeZone:",
+ "SettingsTabSystemSystemTimeZone": "System Time Zone:",
"SettingsTabSystemSystemTime": "System Time:",
- "SettingsTabSystemEnableVsync": "VSync",
+ "SettingsTabSystemVSyncMode": "VSync:",
+ "SettingsTabSystemEnableCustomVSyncInterval": "Enable custom refresh rate (Experimental)",
+ "SettingsTabSystemVSyncModeSwitch": "Switch",
+ "SettingsTabSystemVSyncModeUnbounded": "Unbounded",
+ "SettingsTabSystemVSyncModeCustom": "Custom Refresh Rate",
+ "SettingsTabSystemVSyncModeTooltip": "Emulated Vertical Sync. 'Switch' emulates the Switch's refresh rate of 60Hz. 'Unbounded' is an unbounded refresh rate.",
+ "SettingsTabSystemVSyncModeTooltipCustom": "Emulated Vertical Sync. 'Switch' emulates the Switch's refresh rate of 60Hz. 'Unbounded' is an unbounded refresh rate. 'Custom' emulates the specified custom refresh rate.",
+ "SettingsTabSystemEnableCustomVSyncIntervalTooltip": "Allows the user to specify an emulated refresh rate. In some titles, this may speed up or slow down the rate of gameplay logic. In other titles, it may allow for capping FPS at some multiple of the refresh rate, or lead to unpredictable behavior. This is an experimental feature, with no guarantees for how gameplay will be affected. \n\nLeave OFF if unsure.",
+ "SettingsTabSystemCustomVSyncIntervalValueTooltip": "The custom refresh rate target value.",
+ "SettingsTabSystemCustomVSyncIntervalSliderTooltip": "The custom refresh rate, as a percentage of the normal Switch refresh rate.",
+ "SettingsTabSystemCustomVSyncIntervalPercentage": "Custom Refresh Rate %:",
+ "SettingsTabSystemCustomVSyncIntervalValue": "Custom Refresh Rate Value:",
"SettingsTabSystemEnablePptc": "PPTC (Profiled Persistent Translation Cache)",
"SettingsTabSystemEnableLowPowerPptc": "Low-power PPTC cache",
"SettingsTabSystemEnableFsIntegrityChecks": "FS Integrity Checks",
@@ -153,6 +164,7 @@
"SettingsTabSystemAudioBackendOpenAL": "OpenAL",
"SettingsTabSystemAudioBackendSoundIO": "SoundIO",
"SettingsTabSystemAudioBackendSDL2": "SDL2",
+ "SettingsTabSystemCustomVSyncInterval": "Interval",
"SettingsTabSystemHacks": "Hacks",
"SettingsTabSystemHacksNote": "May cause instability",
"SettingsTabSystemDramSize": "DRAM size:",
@@ -720,11 +732,13 @@
"RyujinxUpdater": "Ryujinx Updater",
"SettingsTabHotkeys": "Keyboard Hotkeys",
"SettingsTabHotkeysHotkeys": "Keyboard Hotkeys",
- "SettingsTabHotkeysToggleVsyncHotkey": "Toggle VSync:",
+ "SettingsTabHotkeysToggleVSyncModeHotkey": "Toggle VSync mode:",
"SettingsTabHotkeysScreenshotHotkey": "Screenshot:",
"SettingsTabHotkeysShowUiHotkey": "Show UI:",
"SettingsTabHotkeysPauseHotkey": "Pause:",
"SettingsTabHotkeysToggleMuteHotkey": "Mute:",
+ "SettingsTabHotkeysIncrementCustomVSyncIntervalHotkey": "Raise custom refresh rate",
+ "SettingsTabHotkeysDecrementCustomVSyncIntervalHotkey": "Lower custom refresh rate",
"ControllerMotionTitle": "Motion Control Settings",
"ControllerRumbleTitle": "Rumble Settings",
"SettingsSelectThemeFileDialogTitle": "Select Theme File",
diff --git a/src/Ryujinx/Assets/Styles/Themes.xaml b/src/Ryujinx/Assets/Styles/Themes.xaml
index 0f323f84b..056eba228 100644
--- a/src/Ryujinx/Assets/Styles/Themes.xaml
+++ b/src/Ryujinx/Assets/Styles/Themes.xaml
@@ -26,8 +26,9 @@
#b3ffffff#80cccccc#A0000000
- #FF2EEAC9
- #FFFF4554
+ #FF2EEAC9
+ #FFFF4554
+ #6483F5 _toggleVsync;
+ get => _toggleVSyncMode;
set
{
- _toggleVsync = value;
+ _toggleVSyncMode = value;
OnPropertyChanged();
}
}
@@ -104,11 +104,33 @@ namespace Ryujinx.Ava.UI.Models.Input
}
}
+ private Key _customVSyncIntervalIncrement;
+ public Key CustomVSyncIntervalIncrement
+ {
+ get => _customVSyncIntervalIncrement;
+ set
+ {
+ _customVSyncIntervalIncrement = value;
+ OnPropertyChanged();
+ }
+ }
+
+ private Key _customVSyncIntervalDecrement;
+ public Key CustomVSyncIntervalDecrement
+ {
+ get => _customVSyncIntervalDecrement;
+ set
+ {
+ _customVSyncIntervalDecrement = value;
+ OnPropertyChanged();
+ }
+ }
+
public HotkeyConfig(KeyboardHotkeys config)
{
if (config != null)
{
- ToggleVsync = config.ToggleVsync;
+ ToggleVSyncMode = config.ToggleVSyncMode;
Screenshot = config.Screenshot;
ShowUI = config.ShowUI;
Pause = config.Pause;
@@ -117,6 +139,8 @@ namespace Ryujinx.Ava.UI.Models.Input
ResScaleDown = config.ResScaleDown;
VolumeUp = config.VolumeUp;
VolumeDown = config.VolumeDown;
+ CustomVSyncIntervalIncrement = config.CustomVSyncIntervalIncrement;
+ CustomVSyncIntervalDecrement = config.CustomVSyncIntervalDecrement;
}
}
@@ -124,7 +148,7 @@ namespace Ryujinx.Ava.UI.Models.Input
{
var config = new KeyboardHotkeys
{
- ToggleVsync = ToggleVsync,
+ ToggleVSyncMode = ToggleVSyncMode,
Screenshot = Screenshot,
ShowUI = ShowUI,
Pause = Pause,
@@ -133,6 +157,8 @@ namespace Ryujinx.Ava.UI.Models.Input
ResScaleDown = ResScaleDown,
VolumeUp = VolumeUp,
VolumeDown = VolumeDown,
+ CustomVSyncIntervalIncrement = CustomVSyncIntervalIncrement,
+ CustomVSyncIntervalDecrement = CustomVSyncIntervalDecrement,
};
return config;
diff --git a/src/Ryujinx/UI/Models/SaveModel.cs b/src/Ryujinx/UI/Models/SaveModel.cs
index 55408ac3a..cfc397c6e 100644
--- a/src/Ryujinx/UI/Models/SaveModel.cs
+++ b/src/Ryujinx/UI/Models/SaveModel.cs
@@ -47,7 +47,7 @@ namespace Ryujinx.Ava.UI.Models
TitleId = info.ProgramId;
UserId = info.UserId;
- var appData = App.MainWindow.ViewModel.Applications.FirstOrDefault(x => x.IdString.Equals(TitleIdString, StringComparison.OrdinalIgnoreCase));
+ var appData = MainWindow.MainWindowViewModel.Applications.FirstOrDefault(x => x.IdString.Equals(TitleIdString, StringComparison.OrdinalIgnoreCase));
InGameList = appData != null;
diff --git a/src/Ryujinx/UI/Models/StatusUpdatedEventArgs.cs b/src/Ryujinx/UI/Models/StatusUpdatedEventArgs.cs
index 40f783c44..6f0f5ab5d 100644
--- a/src/Ryujinx/UI/Models/StatusUpdatedEventArgs.cs
+++ b/src/Ryujinx/UI/Models/StatusUpdatedEventArgs.cs
@@ -4,18 +4,17 @@ namespace Ryujinx.Ava.UI.Models
{
internal class StatusUpdatedEventArgs : EventArgs
{
- public bool VSyncEnabled { get; }
+ public string VSyncMode { get; }
public string VolumeStatus { get; }
public string AspectRatio { get; }
public string DockedMode { get; }
public string FifoStatus { get; }
public string GameStatus { get; }
-
public uint ShaderCount { get; }
- public StatusUpdatedEventArgs(bool vSyncEnabled, string volumeStatus, string dockedMode, string aspectRatio, string gameStatus, string fifoStatus, uint shaderCount)
+ public StatusUpdatedEventArgs(string vSyncMode, string volumeStatus, string dockedMode, string aspectRatio, string gameStatus, string fifoStatus, uint shaderCount)
{
- VSyncEnabled = vSyncEnabled;
+ VSyncMode = vSyncMode;
VolumeStatus = volumeStatus;
DockedMode = dockedMode;
AspectRatio = aspectRatio;
diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
index f1587a0ff..824fdd717 100644
--- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
@@ -63,6 +63,7 @@ namespace Ryujinx.Ava.UI.ViewModels
private string _searchText;
private Timer _searchTimer;
private string _dockedStatusText;
+ private string _vSyncModeText;
private string _fifoStatusText;
private string _gameStatusText;
private string _volumeStatusText;
@@ -80,7 +81,7 @@ namespace Ryujinx.Ava.UI.ViewModels
private bool _showStatusSeparator;
private Brush _progressBarForegroundColor;
private Brush _progressBarBackgroundColor;
- private Brush _vsyncColor;
+ private Brush _vSyncModeColor;
private byte[] _selectedIcon;
private bool _isAppletMenuActive;
private int _statusBarProgressMaximum;
@@ -111,6 +112,8 @@ namespace Ryujinx.Ava.UI.ViewModels
private WindowState _windowState;
private double _windowWidth;
private double _windowHeight;
+ private int _customVSyncInterval;
+ private int _customVSyncIntervalPercentageProxy;
private bool _isActive;
private bool _isSubMenuOpen;
@@ -145,6 +148,7 @@ namespace Ryujinx.Ava.UI.ViewModels
Volume = ConfigurationState.Instance.System.AudioVolume;
}
+ CustomVSyncInterval = ConfigurationState.Instance.Graphics.CustomVSyncInterval.Value;
}
public void Initialize(
@@ -447,17 +451,87 @@ namespace Ryujinx.Ava.UI.ViewModels
}
}
- public Brush VsyncColor
+ public Brush VSyncModeColor
{
- get => _vsyncColor;
+ get => _vSyncModeColor;
set
{
- _vsyncColor = value;
+ _vSyncModeColor = value;
OnPropertyChanged();
}
}
+ public bool ShowCustomVSyncIntervalPicker
+ {
+ get
+ {
+ if (_isGameRunning)
+ {
+ return AppHost.Device.VSyncMode ==
+ VSyncMode.Custom;
+ }
+ else
+ {
+ return false;
+ }
+ }
+ set
+ {
+ OnPropertyChanged();
+ }
+ }
+
+ public int CustomVSyncIntervalPercentageProxy
+ {
+ get => _customVSyncIntervalPercentageProxy;
+ set
+ {
+ int newInterval = (int)((value / 100f) * 60);
+ _customVSyncInterval = newInterval;
+ _customVSyncIntervalPercentageProxy = value;
+ if (_isGameRunning)
+ {
+ AppHost.Device.CustomVSyncInterval = newInterval;
+ AppHost.Device.UpdateVSyncInterval();
+ }
+ OnPropertyChanged((nameof(CustomVSyncInterval)));
+ OnPropertyChanged((nameof(CustomVSyncIntervalPercentageText)));
+ }
+ }
+
+ public string CustomVSyncIntervalPercentageText
+ {
+ get
+ {
+ string text = CustomVSyncIntervalPercentageProxy.ToString() + "%";
+ return text;
+ }
+ set
+ {
+
+ }
+ }
+
+ public int CustomVSyncInterval
+ {
+ get => _customVSyncInterval;
+ set
+ {
+ _customVSyncInterval = value;
+ int newPercent = (int)((value / 60f) * 100);
+ _customVSyncIntervalPercentageProxy = newPercent;
+ if (_isGameRunning)
+ {
+ AppHost.Device.CustomVSyncInterval = value;
+ AppHost.Device.UpdateVSyncInterval();
+ }
+ OnPropertyChanged(nameof(CustomVSyncIntervalPercentageProxy));
+ OnPropertyChanged(nameof(CustomVSyncIntervalPercentageText));
+ OnPropertyChanged();
+ }
+ }
+
public byte[] SelectedIcon
{
get => _selectedIcon;
@@ -578,6 +652,17 @@ namespace Ryujinx.Ava.UI.ViewModels
}
}
+ public string VSyncModeText
+ {
+ get => _vSyncModeText;
+ set
+ {
+ _vSyncModeText = value;
+
+ OnPropertyChanged();
+ }
+ }
+
public string DockedStatusText
{
get => _dockedStatusText;
@@ -1292,17 +1377,18 @@ namespace Ryujinx.Ava.UI.ViewModels
{
Dispatcher.UIThread.InvokeAsync(() =>
{
- Application.Current!.Styles.TryGetResource(args.VSyncEnabled
- ? "VsyncEnabled"
- : "VsyncDisabled",
+ Application.Current!.Styles.TryGetResource(args.VSyncMode,
Application.Current.ActualThemeVariant,
out object color);
if (color is Color clr)
{
- VsyncColor = new SolidColorBrush(clr);
+ VSyncModeColor = new SolidColorBrush(clr);
}
+ VSyncModeText = args.VSyncMode == "Custom" ? "Custom" : "VSync";
+ ShowCustomVSyncIntervalPicker =
+ args.VSyncMode == VSyncMode.Custom.ToString();
DockedStatusText = args.DockedMode;
AspectRatioStatusText = args.AspectRatio;
GameStatusText = args.GameStatus;
@@ -1495,6 +1581,27 @@ namespace Ryujinx.Ava.UI.ViewModels
}
}
+ public void ToggleVSyncMode()
+ {
+ AppHost.VSyncModeToggle();
+ OnPropertyChanged(nameof(ShowCustomVSyncIntervalPicker));
+ }
+
+ public void VSyncModeSettingChanged()
+ {
+ if (_isGameRunning)
+ {
+ AppHost.Device.CustomVSyncInterval = ConfigurationState.Instance.Graphics.CustomVSyncInterval.Value;
+ AppHost.Device.UpdateVSyncInterval();
+ }
+
+ CustomVSyncInterval = ConfigurationState.Instance.Graphics.CustomVSyncInterval.Value;
+ OnPropertyChanged(nameof(ShowCustomVSyncIntervalPicker));
+ OnPropertyChanged(nameof(CustomVSyncIntervalPercentageProxy));
+ OnPropertyChanged(nameof(CustomVSyncIntervalPercentageText));
+ OnPropertyChanged(nameof(CustomVSyncInterval));
+ }
+
public async Task ExitCurrentState()
{
if (WindowState is WindowState.FullScreen)
diff --git a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs
index 2da252d00..a5abeb36b 100644
--- a/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/SettingsViewModel.cs
@@ -52,6 +52,10 @@ namespace Ryujinx.Ava.UI.ViewModels
private int _graphicsBackendIndex;
private int _scalingFilter;
private int _scalingFilterLevel;
+ private int _customVSyncInterval;
+ private bool _enableCustomVSyncInterval;
+ private int _customVSyncIntervalPercentageProxy;
+ private VSyncMode _vSyncMode;
public event Action CloseWindow;
public event Action SaveSettingsEvent;
@@ -154,7 +158,74 @@ namespace Ryujinx.Ava.UI.ViewModels
public bool EnableDockedMode { get; set; }
public bool EnableKeyboard { get; set; }
public bool EnableMouse { get; set; }
- public bool EnableVsync { get; set; }
+ public VSyncMode VSyncMode
+ {
+ get => _vSyncMode;
+ set
+ {
+ if (value == VSyncMode.Custom ||
+ value == VSyncMode.Switch ||
+ value == VSyncMode.Unbounded)
+ {
+ _vSyncMode = value;
+ OnPropertyChanged();
+ }
+ }
+ }
+
+ public int CustomVSyncIntervalPercentageProxy
+ {
+ get => _customVSyncIntervalPercentageProxy;
+ set
+ {
+ int newInterval = (int)((value / 100f) * 60);
+ _customVSyncInterval = newInterval;
+ _customVSyncIntervalPercentageProxy = value;
+ OnPropertyChanged((nameof(CustomVSyncInterval)));
+ OnPropertyChanged((nameof(CustomVSyncIntervalPercentageText)));
+ }
+ }
+
+ public string CustomVSyncIntervalPercentageText
+ {
+ get
+ {
+ string text = CustomVSyncIntervalPercentageProxy.ToString() + "%";
+ return text;
+ }
+ }
+
+ public bool EnableCustomVSyncInterval
+ {
+ get => _enableCustomVSyncInterval;
+ set
+ {
+ _enableCustomVSyncInterval = value;
+ if (_vSyncMode == VSyncMode.Custom && !value)
+ {
+ VSyncMode = VSyncMode.Switch;
+ }
+ else if (value)
+ {
+ VSyncMode = VSyncMode.Custom;
+ }
+ OnPropertyChanged();
+ }
+ }
+
+ public int CustomVSyncInterval
+ {
+ get => _customVSyncInterval;
+ set
+ {
+ _customVSyncInterval = value;
+ int newPercent = (int)((value / 60f) * 100);
+ _customVSyncIntervalPercentageProxy = newPercent;
+ OnPropertyChanged(nameof(CustomVSyncIntervalPercentageProxy));
+ OnPropertyChanged(nameof(CustomVSyncIntervalPercentageText));
+ OnPropertyChanged();
+ }
+ }
public bool EnablePptc { get; set; }
public bool EnableLowPowerPptc { get; set; }
public bool EnableInternetAccess { get; set; }
@@ -484,7 +555,9 @@ namespace Ryujinx.Ava.UI.ViewModels
CurrentDate = currentDateTime.Date;
CurrentTime = currentDateTime.TimeOfDay;
- EnableVsync = config.Graphics.EnableVsync;
+ EnableCustomVSyncInterval = config.Graphics.EnableCustomVSyncInterval.Value;
+ CustomVSyncInterval = config.Graphics.CustomVSyncInterval;
+ VSyncMode = config.Graphics.VSyncMode;
EnableFsIntegrityChecks = config.System.EnableFsIntegrityChecks;
DramSize = config.System.DramSize;
IgnoreMissingServices = config.System.IgnoreMissingServices;
@@ -590,7 +663,9 @@ namespace Ryujinx.Ava.UI.ViewModels
}
config.System.SystemTimeOffset.Value = Convert.ToInt64((CurrentDate.ToUnixTimeSeconds() + CurrentTime.TotalSeconds) - DateTimeOffset.Now.ToUnixTimeSeconds());
- config.Graphics.EnableVsync.Value = EnableVsync;
+ config.Graphics.VSyncMode.Value = VSyncMode;
+ config.Graphics.EnableCustomVSyncInterval.Value = EnableCustomVSyncInterval;
+ config.Graphics.CustomVSyncInterval.Value = CustomVSyncInterval;
config.System.EnableFsIntegrityChecks.Value = EnableFsIntegrityChecks;
config.System.DramSize.Value = DramSize;
config.System.IgnoreMissingServices.Value = IgnoreMissingServices;
@@ -660,6 +735,7 @@ namespace Ryujinx.Ava.UI.ViewModels
config.ToFileFormat().SaveConfig(Program.ConfigurationPath);
MainWindow.UpdateGraphicsConfig();
+ MainWindow.MainWindowViewModel.VSyncModeSettingChanged();
SaveSettingsEvent?.Invoke();
diff --git a/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml b/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml
index 0e0526f49..597cf10e1 100644
--- a/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml
+++ b/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml
@@ -79,15 +79,59 @@
MaxHeight="18"
Orientation="Horizontal">
+ PointerReleased="VSyncMode_PointerReleased"
+ Text="{Binding VSyncModeText}"
+ TextAlignment="Start"/>
+
-
-
-
+
+
+
@@ -103,6 +103,18 @@
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs b/src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs
index fb0fe2bb1..609f61633 100644
--- a/src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs
+++ b/src/Ryujinx/UI/Views/Settings/SettingsHotkeysView.axaml.cs
@@ -82,8 +82,8 @@ namespace Ryujinx.Ava.UI.Views.Settings
switch (button.Name)
{
- case "ToggleVsync":
- viewModel.KeyboardHotkey.ToggleVsync = buttonValue.AsHidType();
+ case "ToggleVSyncMode":
+ viewModel.KeyboardHotkey.ToggleVSyncMode = buttonValue.AsHidType();
break;
case "Screenshot":
viewModel.KeyboardHotkey.Screenshot = buttonValue.AsHidType();
@@ -109,6 +109,12 @@ namespace Ryujinx.Ava.UI.Views.Settings
case "VolumeDown":
viewModel.KeyboardHotkey.VolumeDown = buttonValue.AsHidType();
break;
+ case "CustomVSyncIntervalIncrement":
+ viewModel.KeyboardHotkey.CustomVSyncIntervalIncrement = buttonValue.AsHidType();
+ break;
+ case "CustomVSyncIntervalDecrement":
+ viewModel.KeyboardHotkey.CustomVSyncIntervalDecrement = buttonValue.AsHidType();
+ break;
}
}
};
diff --git a/src/Ryujinx/UI/Views/Settings/SettingsSystemView.axaml b/src/Ryujinx/UI/Views/Settings/SettingsSystemView.axaml
index 4fe57b425..e04e541c3 100644
--- a/src/Ryujinx/UI/Views/Settings/SettingsSystemView.axaml
+++ b/src/Ryujinx/UI/Views/Settings/SettingsSystemView.axaml
@@ -4,6 +4,7 @@
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
+ xmlns:ui="clr-namespace:FluentAvalonia.UI.Controls;assembly=FluentAvalonia"
xmlns:ext="clr-namespace:Ryujinx.Ava.Common.Markup"
xmlns:viewModels="clr-namespace:Ryujinx.Ava.UI.ViewModels"
xmlns:helpers="clr-namespace:Ryujinx.Ava.UI.Helpers"
@@ -181,11 +182,68 @@
Width="350"
ToolTip.Tip="{ext:Locale TimeTooltip}" />
-
+
-
+ VerticalAlignment="Center"
+ Text="{ext:Locale SettingsTabSystemVSyncMode}"
+ ToolTip.Tip="{ext:Locale SettingsTabSystemVSyncModeTooltip}"
+ Width="250" />
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
index 829db4bc9..059f99a60 100644
--- a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
+++ b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
@@ -38,6 +38,8 @@ namespace Ryujinx.Ava.UI.Windows
{
public partial class MainWindow : StyleableAppWindow
{
+ internal static MainWindowViewModel MainWindowViewModel { get; private set; }
+
public MainWindowViewModel ViewModel { get; }
internal readonly AvaHostUIHandler UiHandler;
@@ -73,7 +75,7 @@ namespace Ryujinx.Ava.UI.Windows
public MainWindow()
{
- DataContext = ViewModel = new MainWindowViewModel
+ DataContext = ViewModel = MainWindowViewModel = new MainWindowViewModel
{
Window = this
};
--
2.47.1
From a18cecbc30168e347757ced631e652a40b001133 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Hack=E8=8C=B6=E3=82=93?=
<120134269+Hackjjang@users.noreply.github.com>
Date: Tue, 26 Nov 2024 04:40:39 +0900
Subject: [PATCH 035/674] Korean "Show Changelog" translation (#313)
---
src/Ryujinx/Assets/Locales/ko_KR.json | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index 47a619054..8baf559be 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -457,7 +457,7 @@
"DialogUpdaterExtractionMessage": "업데이트 추출 중...",
"DialogUpdaterRenamingMessage": "이름 변경 업데이트...",
"DialogUpdaterAddingFilesMessage": "새 업데이트 추가 중...",
- "DialogUpdaterShowChangelogMessage": "Show Changelog",
+ "DialogUpdaterShowChangelogMessage": "변경 로그 보기",
"DialogUpdaterCompleteMessage": "업데이트가 완료되었습니다!",
"DialogUpdaterRestartMessage": "지금 Ryujinx를 다시 시작하시겠습니까?",
"DialogUpdaterNoInternetMessage": "인터넷에 연결되어 있지 않습니다!",
--
2.47.1
From f72d2c1b2bd17aa25df146d31a39b98a47b524aa Mon Sep 17 00:00:00 2001
From: GabCoolGuy
Date: Mon, 25 Nov 2024 20:43:01 +0100
Subject: [PATCH 036/674] UI: Add Mii Edit Applet Locale (#311)
This allows the "Mii Edit Applet" dropdown to be localized ( I already
went ahead and localized French )
---
src/Ryujinx/Assets/Locales/ar_SA.json | 1 +
src/Ryujinx/Assets/Locales/de_DE.json | 1 +
src/Ryujinx/Assets/Locales/el_GR.json | 1 +
src/Ryujinx/Assets/Locales/en_US.json | 1 +
src/Ryujinx/Assets/Locales/es_ES.json | 1 +
src/Ryujinx/Assets/Locales/fr_FR.json | 1 +
src/Ryujinx/Assets/Locales/he_IL.json | 1 +
src/Ryujinx/Assets/Locales/it_IT.json | 1 +
src/Ryujinx/Assets/Locales/ja_JP.json | 1 +
src/Ryujinx/Assets/Locales/ko_KR.json | 1 +
src/Ryujinx/Assets/Locales/pl_PL.json | 1 +
src/Ryujinx/Assets/Locales/pt_BR.json | 1 +
src/Ryujinx/Assets/Locales/ru_RU.json | 1 +
src/Ryujinx/Assets/Locales/th_TH.json | 1 +
src/Ryujinx/Assets/Locales/tr_TR.json | 1 +
src/Ryujinx/Assets/Locales/uk_UA.json | 1 +
src/Ryujinx/Assets/Locales/zh_CN.json | 1 +
src/Ryujinx/Assets/Locales/zh_TW.json | 1 +
src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml | 2 +-
19 files changed, 19 insertions(+), 1 deletion(-)
diff --git a/src/Ryujinx/Assets/Locales/ar_SA.json b/src/Ryujinx/Assets/Locales/ar_SA.json
index c937a2eed..62992ff34 100644
--- a/src/Ryujinx/Assets/Locales/ar_SA.json
+++ b/src/Ryujinx/Assets/Locales/ar_SA.json
@@ -1,6 +1,7 @@
{
"Language": "اَلْعَرَبِيَّةُ",
"MenuBarFileOpenApplet": "فتح التطبيق المصغر",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "افتح تطبيق تحرير Mii في الوضع المستقل",
"SettingsTabInputDirectMouseAccess": "الوصول المباشر للفأرة",
"SettingsTabSystemMemoryManagerMode": "وضع إدارة الذاكرة:",
diff --git a/src/Ryujinx/Assets/Locales/de_DE.json b/src/Ryujinx/Assets/Locales/de_DE.json
index c27de5608..91141b7af 100644
--- a/src/Ryujinx/Assets/Locales/de_DE.json
+++ b/src/Ryujinx/Assets/Locales/de_DE.json
@@ -1,6 +1,7 @@
{
"Language": "Deutsch",
"MenuBarFileOpenApplet": "Öffne Anwendung",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Öffnet das Mii-Editor-Applet im Standalone-Modus",
"SettingsTabInputDirectMouseAccess": "Direkter Mauszugriff",
"SettingsTabSystemMemoryManagerMode": "Speichermanagermodus:",
diff --git a/src/Ryujinx/Assets/Locales/el_GR.json b/src/Ryujinx/Assets/Locales/el_GR.json
index d47c8b9fe..a589d31ad 100644
--- a/src/Ryujinx/Assets/Locales/el_GR.json
+++ b/src/Ryujinx/Assets/Locales/el_GR.json
@@ -1,6 +1,7 @@
{
"Language": "Ελληνικά",
"MenuBarFileOpenApplet": "Άνοιγμα Applet",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Άνοιγμα του Mii Editor Applet σε Αυτόνομη λειτουργία",
"SettingsTabInputDirectMouseAccess": "Άμεση Πρόσβαση Ποντικιού",
"SettingsTabSystemMemoryManagerMode": "Λειτουργία Διαχείρισης Μνήμης:",
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index 13ffeb759..90290b760 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -1,6 +1,7 @@
{
"Language": "English (US)",
"MenuBarFileOpenApplet": "Open Applet",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Open Mii Editor Applet in Standalone mode",
"SettingsTabInputDirectMouseAccess": "Direct Mouse Access",
"SettingsTabSystemMemoryManagerMode": "Memory Manager Mode:",
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index 8456040ce..8a426b3a4 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -1,6 +1,7 @@
{
"Language": "Español (ES)",
"MenuBarFileOpenApplet": "Abrir applet",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Abre el editor de Mii en modo autónomo",
"SettingsTabInputDirectMouseAccess": "Acceso directo al ratón",
"SettingsTabSystemMemoryManagerMode": "Modo del administrador de memoria:",
diff --git a/src/Ryujinx/Assets/Locales/fr_FR.json b/src/Ryujinx/Assets/Locales/fr_FR.json
index f17a7ba95..355c2814d 100644
--- a/src/Ryujinx/Assets/Locales/fr_FR.json
+++ b/src/Ryujinx/Assets/Locales/fr_FR.json
@@ -1,6 +1,7 @@
{
"Language": "Français",
"MenuBarFileOpenApplet": "Ouvrir un programme",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Éditeur de Mii",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Ouvrir l'éditeur Mii en mode Standalone",
"SettingsTabInputDirectMouseAccess": "Accès direct à la souris",
"SettingsTabSystemMemoryManagerMode": "Mode de gestion de la mémoire :",
diff --git a/src/Ryujinx/Assets/Locales/he_IL.json b/src/Ryujinx/Assets/Locales/he_IL.json
index f0cf4eb68..51c3c8835 100644
--- a/src/Ryujinx/Assets/Locales/he_IL.json
+++ b/src/Ryujinx/Assets/Locales/he_IL.json
@@ -1,6 +1,7 @@
{
"Language": "עִברִית",
"MenuBarFileOpenApplet": "פתח יישומון",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "פתח את יישומון עורך ה- Mii במצב עצמאי",
"SettingsTabInputDirectMouseAccess": "גישה ישירה לעכבר",
"SettingsTabSystemMemoryManagerMode": "מצב מנהל זיכרון:",
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index dd408bf5b..52ea833d3 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -1,6 +1,7 @@
{
"Language": "Italiano",
"MenuBarFileOpenApplet": "Apri applet",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Apri l'applet Mii Editor in modalità Standalone",
"SettingsTabInputDirectMouseAccess": "Accesso diretto al mouse",
"SettingsTabSystemMemoryManagerMode": "Modalità di gestione della memoria:",
diff --git a/src/Ryujinx/Assets/Locales/ja_JP.json b/src/Ryujinx/Assets/Locales/ja_JP.json
index 244730494..59b7aa3b3 100644
--- a/src/Ryujinx/Assets/Locales/ja_JP.json
+++ b/src/Ryujinx/Assets/Locales/ja_JP.json
@@ -1,6 +1,7 @@
{
"Language": "日本語",
"MenuBarFileOpenApplet": "アプレットを開く",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "スタンドアロンモードで Mii エディタアプレットを開きます",
"SettingsTabInputDirectMouseAccess": "マウス直接アクセス",
"SettingsTabSystemMemoryManagerMode": "メモリ管理モード:",
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index 8baf559be..aeeb84c62 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -1,6 +1,7 @@
{
"Language": "한국어",
"MenuBarFileOpenApplet": "애플릿 열기",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "독립 실행형 모드로 Mii 편집기 애플릿 열기",
"SettingsTabInputDirectMouseAccess": "마우스 직접 접근",
"SettingsTabSystemMemoryManagerMode": "메모리 관리자 모드 :",
diff --git a/src/Ryujinx/Assets/Locales/pl_PL.json b/src/Ryujinx/Assets/Locales/pl_PL.json
index cfa9d7a76..1d8cf4f03 100644
--- a/src/Ryujinx/Assets/Locales/pl_PL.json
+++ b/src/Ryujinx/Assets/Locales/pl_PL.json
@@ -1,6 +1,7 @@
{
"Language": "Polski",
"MenuBarFileOpenApplet": "Otwórz Aplet",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Otwórz aplet Mii Editor w trybie indywidualnym",
"SettingsTabInputDirectMouseAccess": "Bezpośredni dostęp do myszy",
"SettingsTabSystemMemoryManagerMode": "Tryb menedżera pamięci:",
diff --git a/src/Ryujinx/Assets/Locales/pt_BR.json b/src/Ryujinx/Assets/Locales/pt_BR.json
index 352fae46b..7574c1d20 100644
--- a/src/Ryujinx/Assets/Locales/pt_BR.json
+++ b/src/Ryujinx/Assets/Locales/pt_BR.json
@@ -1,6 +1,7 @@
{
"Language": "Português (BR)",
"MenuBarFileOpenApplet": "Abrir Applet",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Abrir editor Mii em modo avulso",
"SettingsTabInputDirectMouseAccess": "Acesso direto ao mouse",
"SettingsTabSystemMemoryManagerMode": "Modo de gerenciamento de memória:",
diff --git a/src/Ryujinx/Assets/Locales/ru_RU.json b/src/Ryujinx/Assets/Locales/ru_RU.json
index 112735e2d..86e51f09f 100644
--- a/src/Ryujinx/Assets/Locales/ru_RU.json
+++ b/src/Ryujinx/Assets/Locales/ru_RU.json
@@ -1,6 +1,7 @@
{
"Language": "Русский (RU)",
"MenuBarFileOpenApplet": "Открыть апплет",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Открывает апплет Mii Editor в автономном режиме",
"SettingsTabInputDirectMouseAccess": "Прямой ввод мыши",
"SettingsTabSystemMemoryManagerMode": "Режим менеджера памяти:",
diff --git a/src/Ryujinx/Assets/Locales/th_TH.json b/src/Ryujinx/Assets/Locales/th_TH.json
index 35959ddbd..259828583 100644
--- a/src/Ryujinx/Assets/Locales/th_TH.json
+++ b/src/Ryujinx/Assets/Locales/th_TH.json
@@ -1,6 +1,7 @@
{
"Language": "ภาษาไทย",
"MenuBarFileOpenApplet": "เปิด Applet",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "เปิดโปรแกรม Mii Editor Applet",
"SettingsTabInputDirectMouseAccess": "เข้าถึงเมาส์ได้โดยตรง",
"SettingsTabSystemMemoryManagerMode": "โหมดจัดการหน่วยความจำ:",
diff --git a/src/Ryujinx/Assets/Locales/tr_TR.json b/src/Ryujinx/Assets/Locales/tr_TR.json
index 5d50b67db..18dbb12b0 100644
--- a/src/Ryujinx/Assets/Locales/tr_TR.json
+++ b/src/Ryujinx/Assets/Locales/tr_TR.json
@@ -1,6 +1,7 @@
{
"Language": "Türkçe",
"MenuBarFileOpenApplet": "Applet'i Aç",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Mii Editör Applet'ini Bağımsız Mod'da Aç",
"SettingsTabInputDirectMouseAccess": "Doğrudan Mouse Erişimi",
"SettingsTabSystemMemoryManagerMode": "Hafıza Yönetim Modu:",
diff --git a/src/Ryujinx/Assets/Locales/uk_UA.json b/src/Ryujinx/Assets/Locales/uk_UA.json
index a45208486..e123afa6b 100644
--- a/src/Ryujinx/Assets/Locales/uk_UA.json
+++ b/src/Ryujinx/Assets/Locales/uk_UA.json
@@ -1,6 +1,7 @@
{
"Language": "Українська",
"MenuBarFileOpenApplet": "Відкрити аплет",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Відкрити аплет Mii Editor в автономному режимі",
"SettingsTabInputDirectMouseAccess": "Прямий доступ мишею",
"SettingsTabSystemMemoryManagerMode": "Режим диспетчера пам’яті:",
diff --git a/src/Ryujinx/Assets/Locales/zh_CN.json b/src/Ryujinx/Assets/Locales/zh_CN.json
index 8a4995ea7..8fcd41cd2 100644
--- a/src/Ryujinx/Assets/Locales/zh_CN.json
+++ b/src/Ryujinx/Assets/Locales/zh_CN.json
@@ -1,6 +1,7 @@
{
"Language": "简体中文",
"MenuBarFileOpenApplet": "打开小程序",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "打开独立的 Mii 小程序",
"SettingsTabInputDirectMouseAccess": "直通鼠标操作",
"SettingsTabSystemMemoryManagerMode": "内存管理模式:",
diff --git a/src/Ryujinx/Assets/Locales/zh_TW.json b/src/Ryujinx/Assets/Locales/zh_TW.json
index 5649ba00a..d219bc708 100644
--- a/src/Ryujinx/Assets/Locales/zh_TW.json
+++ b/src/Ryujinx/Assets/Locales/zh_TW.json
@@ -1,6 +1,7 @@
{
"Language": "繁體中文 (台灣)",
"MenuBarFileOpenApplet": "開啟小程式",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "在獨立模式下開啟 Mii 編輯器小程式",
"SettingsTabInputDirectMouseAccess": "滑鼠直接存取",
"SettingsTabSystemMemoryManagerMode": "記憶體管理員模式:",
diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml
index 883bf8971..6cf76cf49 100644
--- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml
+++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml
@@ -58,7 +58,7 @@
--
2.47.1
From 0caeab22707b336d66427d91b35c437f44d9c6d2 Mon Sep 17 00:00:00 2001
From: Luke Warner <65521430+LukeWarnut@users.noreply.github.com>
Date: Mon, 25 Nov 2024 14:46:41 -0500
Subject: [PATCH 037/674] Remove 'Enter' hotkey in settings menu (#95)
This allows the Enter key to be bound to a button when using the
Avalonia UI.
---
src/Ryujinx/UI/Windows/SettingsWindow.axaml | 1 -
1 file changed, 1 deletion(-)
diff --git a/src/Ryujinx/UI/Windows/SettingsWindow.axaml b/src/Ryujinx/UI/Windows/SettingsWindow.axaml
index f9d10fe4f..2bf5b55e7 100644
--- a/src/Ryujinx/UI/Windows/SettingsWindow.axaml
+++ b/src/Ryujinx/UI/Windows/SettingsWindow.axaml
@@ -109,7 +109,6 @@
HorizontalAlignment="Right"
ReverseOrder="{Binding IsMacOS}">
--
2.47.1
From 2a72fb2088c74f249f51d6f79059cf1cd99ed99d Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Tue, 26 Nov 2024 17:15:11 -0600
Subject: [PATCH 038/674] UI: RPC: Add Diablo III
---
src/Ryujinx.UI.Common/DiscordIntegrationModule.cs | 1 +
1 file changed, 1 insertion(+)
diff --git a/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs b/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs
index 295a663b2..338d28531 100644
--- a/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs
+++ b/src/Ryujinx.UI.Common/DiscordIntegrationModule.cs
@@ -247,6 +247,7 @@ namespace Ryujinx.UI.Common
"0100dbf01000a000", // Burnout Paradise Remastered
"0100744001588000", // Cars 3: Driven to Win
"0100b41013c82000", // Cruis'n Blast
+ "01001b300b9be000", // Diablo III: Eternal Collection
"01008c8012920000", // Dying Light Platinum Edition
"010073c01af34000", // LEGO Horizon Adventures
"0100770008dd8000", // Monster Hunter Generations Ultimate
--
2.47.1
From baf179efdbe92160cb291b10663460cfa06e976e Mon Sep 17 00:00:00 2001
From: TheToid
Date: Fri, 29 Nov 2024 08:55:51 +1000
Subject: [PATCH 039/674] ignore macos attribute files (#302)
---
.gitignore | 3 +++
src/ARMeilleure/ARMeilleure.csproj | 1 +
.../Ryujinx.Audio.Backends.OpenAL.csproj | 1 +
.../Ryujinx.Audio.Backends.SDL2.csproj | 1 +
.../Ryujinx.Audio.Backends.SoundIo.csproj | 1 +
src/Ryujinx.Audio/Ryujinx.Audio.csproj | 1 +
src/Ryujinx.Common/Ryujinx.Common.csproj | 1 +
src/Ryujinx.Cpu/Ryujinx.Cpu.csproj | 1 +
src/Ryujinx.Graphics.Device/Ryujinx.Graphics.Device.csproj | 1 +
src/Ryujinx.Graphics.GAL/Ryujinx.Graphics.GAL.csproj | 1 +
src/Ryujinx.Graphics.Gpu/Ryujinx.Graphics.Gpu.csproj | 1 +
src/Ryujinx.Graphics.Host1x/Ryujinx.Graphics.Host1x.csproj | 1 +
.../Ryujinx.Graphics.Nvdec.FFmpeg.csproj | 1 +
.../Ryujinx.Graphics.Nvdec.Vp9.csproj | 1 +
src/Ryujinx.Graphics.Nvdec/Ryujinx.Graphics.Nvdec.csproj | 1 +
src/Ryujinx.Graphics.OpenGL/Ryujinx.Graphics.OpenGL.csproj | 1 +
src/Ryujinx.Graphics.Shader/Ryujinx.Graphics.Shader.csproj | 1 +
src/Ryujinx.Graphics.Texture/Ryujinx.Graphics.Texture.csproj | 1 +
src/Ryujinx.Graphics.Vic/Ryujinx.Graphics.Vic.csproj | 1 +
src/Ryujinx.Graphics.Video/Ryujinx.Graphics.Video.csproj | 1 +
src/Ryujinx.Graphics.Vulkan/Ryujinx.Graphics.Vulkan.csproj | 1 +
src/Ryujinx.HLE.Generators/Ryujinx.HLE.Generators.csproj | 1 +
src/Ryujinx.HLE/Ryujinx.HLE.csproj | 1 +
src/Ryujinx.Headless.SDL2/Ryujinx.Headless.SDL2.csproj | 1 +
src/Ryujinx.Horizon.Common/Ryujinx.Horizon.Common.csproj | 1 +
.../Ryujinx.Horizon.Generators.csproj | 1 +
.../Ryujinx.Horizon.Kernel.Generators.csproj | 2 ++
src/Ryujinx.Horizon/Ryujinx.Horizon.csproj | 1 +
src/Ryujinx.Input.SDL2/Ryujinx.Input.SDL2.csproj | 1 +
src/Ryujinx.Input/Ryujinx.Input.csproj | 1 +
src/Ryujinx.Memory/Ryujinx.Memory.csproj | 1 +
src/Ryujinx.SDL2.Common/Ryujinx.SDL2.Common.csproj | 1 +
src/Ryujinx.ShaderTools/Ryujinx.ShaderTools.csproj | 1 +
src/Ryujinx.Tests.Memory/Ryujinx.Tests.Memory.csproj | 1 +
src/Ryujinx.Tests.Unicorn/Ryujinx.Tests.Unicorn.csproj | 1 +
src/Ryujinx.Tests/Ryujinx.Tests.csproj | 1 +
src/Ryujinx.UI.Common/Ryujinx.UI.Common.csproj | 1 +
.../Ryujinx.UI.LocaleGenerator.csproj | 1 +
src/Ryujinx/Ryujinx.csproj | 1 +
src/Spv.Generator/Spv.Generator.csproj | 1 +
40 files changed, 43 insertions(+)
diff --git a/.gitignore b/.gitignore
index f71237b1a..9a192926f 100644
--- a/.gitignore
+++ b/.gitignore
@@ -175,3 +175,6 @@ PublishProfiles/
# Glade backup files
*.glade~
+
+# Ignore MacOS Attribute Files
+._*
diff --git a/src/ARMeilleure/ARMeilleure.csproj b/src/ARMeilleure/ARMeilleure.csproj
index 550e50c26..4b67fdb3b 100644
--- a/src/ARMeilleure/ARMeilleure.csproj
+++ b/src/ARMeilleure/ARMeilleure.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Audio.Backends.OpenAL/Ryujinx.Audio.Backends.OpenAL.csproj b/src/Ryujinx.Audio.Backends.OpenAL/Ryujinx.Audio.Backends.OpenAL.csproj
index b5fd8f9e7..bdf46d688 100644
--- a/src/Ryujinx.Audio.Backends.OpenAL/Ryujinx.Audio.Backends.OpenAL.csproj
+++ b/src/Ryujinx.Audio.Backends.OpenAL/Ryujinx.Audio.Backends.OpenAL.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Audio.Backends.SDL2/Ryujinx.Audio.Backends.SDL2.csproj b/src/Ryujinx.Audio.Backends.SDL2/Ryujinx.Audio.Backends.SDL2.csproj
index dd18e70a1..940e47308 100644
--- a/src/Ryujinx.Audio.Backends.SDL2/Ryujinx.Audio.Backends.SDL2.csproj
+++ b/src/Ryujinx.Audio.Backends.SDL2/Ryujinx.Audio.Backends.SDL2.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Audio.Backends.SoundIo/Ryujinx.Audio.Backends.SoundIo.csproj b/src/Ryujinx.Audio.Backends.SoundIo/Ryujinx.Audio.Backends.SoundIo.csproj
index 5c9423463..671a6ad5e 100644
--- a/src/Ryujinx.Audio.Backends.SoundIo/Ryujinx.Audio.Backends.SoundIo.csproj
+++ b/src/Ryujinx.Audio.Backends.SoundIo/Ryujinx.Audio.Backends.SoundIo.csproj
@@ -4,6 +4,7 @@
net8.0truewin-x64;osx-x64;linux-x64
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Audio/Ryujinx.Audio.csproj b/src/Ryujinx.Audio/Ryujinx.Audio.csproj
index fc20f4ec4..8901bbf59 100644
--- a/src/Ryujinx.Audio/Ryujinx.Audio.csproj
+++ b/src/Ryujinx.Audio/Ryujinx.Audio.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Common/Ryujinx.Common.csproj b/src/Ryujinx.Common/Ryujinx.Common.csproj
index dee462fdb..85d4b58bd 100644
--- a/src/Ryujinx.Common/Ryujinx.Common.csproj
+++ b/src/Ryujinx.Common/Ryujinx.Common.csproj
@@ -4,6 +4,7 @@
net8.0true$(DefineConstants);$(ExtraDefineConstants)
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Cpu/Ryujinx.Cpu.csproj b/src/Ryujinx.Cpu/Ryujinx.Cpu.csproj
index 5a6bf5c3d..0a55a7dea 100644
--- a/src/Ryujinx.Cpu/Ryujinx.Cpu.csproj
+++ b/src/Ryujinx.Cpu/Ryujinx.Cpu.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Device/Ryujinx.Graphics.Device.csproj b/src/Ryujinx.Graphics.Device/Ryujinx.Graphics.Device.csproj
index 973a9e260..58f54de7d 100644
--- a/src/Ryujinx.Graphics.Device/Ryujinx.Graphics.Device.csproj
+++ b/src/Ryujinx.Graphics.Device/Ryujinx.Graphics.Device.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.GAL/Ryujinx.Graphics.GAL.csproj b/src/Ryujinx.Graphics.GAL/Ryujinx.Graphics.GAL.csproj
index d88b641a3..a230296c1 100644
--- a/src/Ryujinx.Graphics.GAL/Ryujinx.Graphics.GAL.csproj
+++ b/src/Ryujinx.Graphics.GAL/Ryujinx.Graphics.GAL.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Gpu/Ryujinx.Graphics.Gpu.csproj b/src/Ryujinx.Graphics.Gpu/Ryujinx.Graphics.Gpu.csproj
index 6f1cce6ac..8c740fadc 100644
--- a/src/Ryujinx.Graphics.Gpu/Ryujinx.Graphics.Gpu.csproj
+++ b/src/Ryujinx.Graphics.Gpu/Ryujinx.Graphics.Gpu.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Host1x/Ryujinx.Graphics.Host1x.csproj b/src/Ryujinx.Graphics.Host1x/Ryujinx.Graphics.Host1x.csproj
index d631d039f..92077e26a 100644
--- a/src/Ryujinx.Graphics.Host1x/Ryujinx.Graphics.Host1x.csproj
+++ b/src/Ryujinx.Graphics.Host1x/Ryujinx.Graphics.Host1x.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Nvdec.FFmpeg/Ryujinx.Graphics.Nvdec.FFmpeg.csproj b/src/Ryujinx.Graphics.Nvdec.FFmpeg/Ryujinx.Graphics.Nvdec.FFmpeg.csproj
index d1a6358c2..7659c4b25 100644
--- a/src/Ryujinx.Graphics.Nvdec.FFmpeg/Ryujinx.Graphics.Nvdec.FFmpeg.csproj
+++ b/src/Ryujinx.Graphics.Nvdec.FFmpeg/Ryujinx.Graphics.Nvdec.FFmpeg.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Nvdec.Vp9/Ryujinx.Graphics.Nvdec.Vp9.csproj b/src/Ryujinx.Graphics.Nvdec.Vp9/Ryujinx.Graphics.Nvdec.Vp9.csproj
index d1a6358c2..7659c4b25 100644
--- a/src/Ryujinx.Graphics.Nvdec.Vp9/Ryujinx.Graphics.Nvdec.Vp9.csproj
+++ b/src/Ryujinx.Graphics.Nvdec.Vp9/Ryujinx.Graphics.Nvdec.Vp9.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Nvdec/Ryujinx.Graphics.Nvdec.csproj b/src/Ryujinx.Graphics.Nvdec/Ryujinx.Graphics.Nvdec.csproj
index 6c00e9a7c..7a13b5d1b 100644
--- a/src/Ryujinx.Graphics.Nvdec/Ryujinx.Graphics.Nvdec.csproj
+++ b/src/Ryujinx.Graphics.Nvdec/Ryujinx.Graphics.Nvdec.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.OpenGL/Ryujinx.Graphics.OpenGL.csproj b/src/Ryujinx.Graphics.OpenGL/Ryujinx.Graphics.OpenGL.csproj
index f3071f486..931e70c03 100644
--- a/src/Ryujinx.Graphics.OpenGL/Ryujinx.Graphics.OpenGL.csproj
+++ b/src/Ryujinx.Graphics.OpenGL/Ryujinx.Graphics.OpenGL.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Shader/Ryujinx.Graphics.Shader.csproj b/src/Ryujinx.Graphics.Shader/Ryujinx.Graphics.Shader.csproj
index 8ccf5348f..be32641eb 100644
--- a/src/Ryujinx.Graphics.Shader/Ryujinx.Graphics.Shader.csproj
+++ b/src/Ryujinx.Graphics.Shader/Ryujinx.Graphics.Shader.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Texture/Ryujinx.Graphics.Texture.csproj b/src/Ryujinx.Graphics.Texture/Ryujinx.Graphics.Texture.csproj
index 51721490e..48d10f1d5 100644
--- a/src/Ryujinx.Graphics.Texture/Ryujinx.Graphics.Texture.csproj
+++ b/src/Ryujinx.Graphics.Texture/Ryujinx.Graphics.Texture.csproj
@@ -2,6 +2,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Vic/Ryujinx.Graphics.Vic.csproj b/src/Ryujinx.Graphics.Vic/Ryujinx.Graphics.Vic.csproj
index a6c4fb2bb..820e807e6 100644
--- a/src/Ryujinx.Graphics.Vic/Ryujinx.Graphics.Vic.csproj
+++ b/src/Ryujinx.Graphics.Vic/Ryujinx.Graphics.Vic.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Video/Ryujinx.Graphics.Video.csproj b/src/Ryujinx.Graphics.Video/Ryujinx.Graphics.Video.csproj
index abff58a53..d85effe32 100644
--- a/src/Ryujinx.Graphics.Video/Ryujinx.Graphics.Video.csproj
+++ b/src/Ryujinx.Graphics.Video/Ryujinx.Graphics.Video.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Graphics.Vulkan/Ryujinx.Graphics.Vulkan.csproj b/src/Ryujinx.Graphics.Vulkan/Ryujinx.Graphics.Vulkan.csproj
index aae28733f..b138e309a 100644
--- a/src/Ryujinx.Graphics.Vulkan/Ryujinx.Graphics.Vulkan.csproj
+++ b/src/Ryujinx.Graphics.Vulkan/Ryujinx.Graphics.Vulkan.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.HLE.Generators/Ryujinx.HLE.Generators.csproj b/src/Ryujinx.HLE.Generators/Ryujinx.HLE.Generators.csproj
index eeab9c0e9..4791a3b27 100644
--- a/src/Ryujinx.HLE.Generators/Ryujinx.HLE.Generators.csproj
+++ b/src/Ryujinx.HLE.Generators/Ryujinx.HLE.Generators.csproj
@@ -6,6 +6,7 @@
trueGeneratedtrue
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.HLE/Ryujinx.HLE.csproj b/src/Ryujinx.HLE/Ryujinx.HLE.csproj
index 5f7f6db69..83e7b8810 100644
--- a/src/Ryujinx.HLE/Ryujinx.HLE.csproj
+++ b/src/Ryujinx.HLE/Ryujinx.HLE.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Headless.SDL2/Ryujinx.Headless.SDL2.csproj b/src/Ryujinx.Headless.SDL2/Ryujinx.Headless.SDL2.csproj
index ebda97b46..8fbf9be1e 100644
--- a/src/Ryujinx.Headless.SDL2/Ryujinx.Headless.SDL2.csproj
+++ b/src/Ryujinx.Headless.SDL2/Ryujinx.Headless.SDL2.csproj
@@ -9,6 +9,7 @@
$(DefineConstants);$(ExtraDefineConstants)-true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Horizon.Common/Ryujinx.Horizon.Common.csproj b/src/Ryujinx.Horizon.Common/Ryujinx.Horizon.Common.csproj
index fa1544c4f..00e0b1af9 100644
--- a/src/Ryujinx.Horizon.Common/Ryujinx.Horizon.Common.csproj
+++ b/src/Ryujinx.Horizon.Common/Ryujinx.Horizon.Common.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Horizon.Generators/Ryujinx.Horizon.Generators.csproj b/src/Ryujinx.Horizon.Generators/Ryujinx.Horizon.Generators.csproj
index d58803993..416eefc27 100644
--- a/src/Ryujinx.Horizon.Generators/Ryujinx.Horizon.Generators.csproj
+++ b/src/Ryujinx.Horizon.Generators/Ryujinx.Horizon.Generators.csproj
@@ -3,6 +3,7 @@
netstandard2.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Horizon.Kernel.Generators/Ryujinx.Horizon.Kernel.Generators.csproj b/src/Ryujinx.Horizon.Kernel.Generators/Ryujinx.Horizon.Kernel.Generators.csproj
index d58803993..02a8ec2c6 100644
--- a/src/Ryujinx.Horizon.Kernel.Generators/Ryujinx.Horizon.Kernel.Generators.csproj
+++ b/src/Ryujinx.Horizon.Kernel.Generators/Ryujinx.Horizon.Kernel.Generators.csproj
@@ -3,6 +3,8 @@
netstandard2.0true
+ $(DefaultItemExcludes);._*
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Horizon/Ryujinx.Horizon.csproj b/src/Ryujinx.Horizon/Ryujinx.Horizon.csproj
index bf34ddd17..18c639d67 100644
--- a/src/Ryujinx.Horizon/Ryujinx.Horizon.csproj
+++ b/src/Ryujinx.Horizon/Ryujinx.Horizon.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Input.SDL2/Ryujinx.Input.SDL2.csproj b/src/Ryujinx.Input.SDL2/Ryujinx.Input.SDL2.csproj
index 1ab79d08a..3d880d5fa 100644
--- a/src/Ryujinx.Input.SDL2/Ryujinx.Input.SDL2.csproj
+++ b/src/Ryujinx.Input.SDL2/Ryujinx.Input.SDL2.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Input/Ryujinx.Input.csproj b/src/Ryujinx.Input/Ryujinx.Input.csproj
index 59a9eeb61..0974b707a 100644
--- a/src/Ryujinx.Input/Ryujinx.Input.csproj
+++ b/src/Ryujinx.Input/Ryujinx.Input.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Memory/Ryujinx.Memory.csproj b/src/Ryujinx.Memory/Ryujinx.Memory.csproj
index 8310a3e5c..17745dd61 100644
--- a/src/Ryujinx.Memory/Ryujinx.Memory.csproj
+++ b/src/Ryujinx.Memory/Ryujinx.Memory.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.SDL2.Common/Ryujinx.SDL2.Common.csproj b/src/Ryujinx.SDL2.Common/Ryujinx.SDL2.Common.csproj
index 8e7953045..0811ad850 100644
--- a/src/Ryujinx.SDL2.Common/Ryujinx.SDL2.Common.csproj
+++ b/src/Ryujinx.SDL2.Common/Ryujinx.SDL2.Common.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.ShaderTools/Ryujinx.ShaderTools.csproj b/src/Ryujinx.ShaderTools/Ryujinx.ShaderTools.csproj
index ab89fb5c7..639ceeac2 100644
--- a/src/Ryujinx.ShaderTools/Ryujinx.ShaderTools.csproj
+++ b/src/Ryujinx.ShaderTools/Ryujinx.ShaderTools.csproj
@@ -4,6 +4,7 @@
net8.0ExeDebug;Release
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Tests.Memory/Ryujinx.Tests.Memory.csproj b/src/Ryujinx.Tests.Memory/Ryujinx.Tests.Memory.csproj
index f05060838..3bb4bf74d 100644
--- a/src/Ryujinx.Tests.Memory/Ryujinx.Tests.Memory.csproj
+++ b/src/Ryujinx.Tests.Memory/Ryujinx.Tests.Memory.csproj
@@ -3,6 +3,7 @@
net8.0false
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Tests.Unicorn/Ryujinx.Tests.Unicorn.csproj b/src/Ryujinx.Tests.Unicorn/Ryujinx.Tests.Unicorn.csproj
index befacfb22..2f7695356 100644
--- a/src/Ryujinx.Tests.Unicorn/Ryujinx.Tests.Unicorn.csproj
+++ b/src/Ryujinx.Tests.Unicorn/Ryujinx.Tests.Unicorn.csproj
@@ -4,6 +4,7 @@
net8.0trueDebug;Release
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.Tests/Ryujinx.Tests.csproj b/src/Ryujinx.Tests/Ryujinx.Tests.csproj
index 3be9787a3..0480c206e 100644
--- a/src/Ryujinx.Tests/Ryujinx.Tests.csproj
+++ b/src/Ryujinx.Tests/Ryujinx.Tests.csproj
@@ -10,6 +10,7 @@
linuxDebug;Release$(MSBuildProjectDirectory)\.runsettings
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.UI.Common/Ryujinx.UI.Common.csproj b/src/Ryujinx.UI.Common/Ryujinx.UI.Common.csproj
index df6532a63..7f57c7bf5 100644
--- a/src/Ryujinx.UI.Common/Ryujinx.UI.Common.csproj
+++ b/src/Ryujinx.UI.Common/Ryujinx.UI.Common.csproj
@@ -3,6 +3,7 @@
net8.0true
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx.UI.LocaleGenerator/Ryujinx.UI.LocaleGenerator.csproj b/src/Ryujinx.UI.LocaleGenerator/Ryujinx.UI.LocaleGenerator.csproj
index 05cbc7644..e4e627072 100644
--- a/src/Ryujinx.UI.LocaleGenerator/Ryujinx.UI.LocaleGenerator.csproj
+++ b/src/Ryujinx.UI.LocaleGenerator/Ryujinx.UI.LocaleGenerator.csproj
@@ -5,6 +5,7 @@
enablelatesttrue
+ $(DefaultItemExcludes);._*
diff --git a/src/Ryujinx/Ryujinx.csproj b/src/Ryujinx/Ryujinx.csproj
index b41ec1cd4..989a3a5bd 100644
--- a/src/Ryujinx/Ryujinx.csproj
+++ b/src/Ryujinx/Ryujinx.csproj
@@ -11,6 +11,7 @@
truetrueapp.manifest
+ $(DefaultItemExcludes);._*
diff --git a/src/Spv.Generator/Spv.Generator.csproj b/src/Spv.Generator/Spv.Generator.csproj
index ae2821edb..5dec0b64e 100644
--- a/src/Spv.Generator/Spv.Generator.csproj
+++ b/src/Spv.Generator/Spv.Generator.csproj
@@ -2,6 +2,7 @@
net8.0
+ $(DefaultItemExcludes);._*
--
2.47.1
From 8a2b56cae685483f8193c190e80e6781afa93bec Mon Sep 17 00:00:00 2001
From: Jonas Henriksson
Date: Fri, 29 Nov 2024 00:00:12 +0100
Subject: [PATCH 040/674] Fix logic surrounding PushDescriptors in Vulkan
(#257)
---
src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs | 10 ++++++++++
1 file changed, 10 insertions(+)
diff --git a/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs b/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
index c9aab4018..436914330 100644
--- a/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
+++ b/src/Ryujinx.Graphics.Vulkan/ShaderCollection.cs
@@ -182,6 +182,16 @@ namespace Ryujinx.Graphics.Vulkan
return false;
}
}
+
+ //Prevent the sum of descriptors from exceeding MaxPushDescriptors
+ int totalDescriptors = 0;
+ foreach (ResourceDescriptor desc in layout.Sets.First().Descriptors)
+ {
+ if (!reserved.Contains(desc.Binding))
+ totalDescriptors += desc.Count;
+ }
+ if (totalDescriptors > gd.Capabilities.MaxPushDescriptors)
+ return false;
return true;
}
--
2.47.1
From 346dfe954255df59a5aa3fb9bdedea3e704d0b65 Mon Sep 17 00:00:00 2001
From: Nicola <61830443+nicola02nb@users.noreply.github.com>
Date: Fri, 29 Nov 2024 00:32:07 +0100
Subject: [PATCH 041/674] Added Tool for installing keys (#233)
#232

---
src/Ryujinx.HLE/FileSystem/ContentManager.cs | 134 ++++++++++++++++
.../FileSystem/VirtualFileSystem.cs | 17 +-
src/Ryujinx/Assets/Locales/ar_SA.json | 10 ++
src/Ryujinx/Assets/Locales/de_DE.json | 10 ++
src/Ryujinx/Assets/Locales/el_GR.json | 10 ++
src/Ryujinx/Assets/Locales/en_US.json | 10 ++
src/Ryujinx/Assets/Locales/es_ES.json | 10 ++
src/Ryujinx/Assets/Locales/fr_FR.json | 10 ++
src/Ryujinx/Assets/Locales/he_IL.json | 10 ++
src/Ryujinx/Assets/Locales/it_IT.json | 10 ++
src/Ryujinx/Assets/Locales/ja_JP.json | 10 ++
src/Ryujinx/Assets/Locales/ko_KR.json | 10 ++
src/Ryujinx/Assets/Locales/pl_PL.json | 10 ++
src/Ryujinx/Assets/Locales/pt_BR.json | 10 ++
src/Ryujinx/Assets/Locales/ru_RU.json | 10 ++
src/Ryujinx/Assets/Locales/th_TH.json | 10 ++
src/Ryujinx/Assets/Locales/tr_TR.json | 10 ++
src/Ryujinx/Assets/Locales/uk_UA.json | 10 ++
src/Ryujinx/Assets/Locales/zh_CN.json | 10 ++
src/Ryujinx/Assets/Locales/zh_TW.json | 10 ++
.../UI/ViewModels/MainWindowViewModel.cs | 149 ++++++++++++++++++
.../UI/Views/Main/MainMenuBarView.axaml | 4 +
22 files changed, 479 insertions(+), 5 deletions(-)
diff --git a/src/Ryujinx.HLE/FileSystem/ContentManager.cs b/src/Ryujinx.HLE/FileSystem/ContentManager.cs
index fc8def9d2..51f6058fc 100644
--- a/src/Ryujinx.HLE/FileSystem/ContentManager.cs
+++ b/src/Ryujinx.HLE/FileSystem/ContentManager.cs
@@ -21,6 +21,7 @@ using System.IO;
using System.IO.Compression;
using System.Linq;
using System.Text;
+using System.Text.RegularExpressions;
using Path = System.IO.Path;
namespace Ryujinx.HLE.FileSystem
@@ -474,6 +475,74 @@ namespace Ryujinx.HLE.FileSystem
FinishInstallation(temporaryDirectory, registeredDirectory);
}
+ public void InstallKeys(string keysSource, string installDirectory)
+ {
+ if (Directory.Exists(keysSource))
+ {
+ foreach (var filePath in Directory.EnumerateFiles(keysSource, "*.keys"))
+ {
+ VerifyKeysFile(filePath);
+ File.Copy(filePath, Path.Combine(installDirectory, Path.GetFileName(filePath)), true);
+ }
+
+ return;
+ }
+
+ if (!File.Exists(keysSource))
+ {
+ throw new FileNotFoundException("Keys file does not exist.");
+ }
+
+ FileInfo info = new(keysSource);
+
+ using FileStream file = File.OpenRead(keysSource);
+
+ switch (info.Extension)
+ {
+ case ".zip":
+ using (ZipArchive archive = ZipFile.OpenRead(keysSource))
+ {
+ InstallKeysFromZip(archive, installDirectory);
+ }
+ break;
+ case ".keys":
+ VerifyKeysFile(keysSource);
+ File.Copy(keysSource, Path.Combine(installDirectory, info.Name), true);
+ break;
+ default:
+ throw new InvalidFirmwarePackageException("Input file is not a valid key package");
+ }
+ }
+
+ private void InstallKeysFromZip(ZipArchive archive, string installDirectory)
+ {
+ string temporaryDirectory = Path.Combine(installDirectory, "temp");
+ if (Directory.Exists(temporaryDirectory))
+ {
+ Directory.Delete(temporaryDirectory, true);
+ }
+ Directory.CreateDirectory(temporaryDirectory);
+ foreach (var entry in archive.Entries)
+ {
+ if (Path.GetExtension(entry.FullName).Equals(".keys", StringComparison.OrdinalIgnoreCase))
+ {
+ string extractDestination = Path.Combine(temporaryDirectory, entry.Name);
+ entry.ExtractToFile(extractDestination, overwrite: true);
+ try
+ {
+ VerifyKeysFile(extractDestination);
+ File.Move(extractDestination, Path.Combine(installDirectory, entry.Name), true);
+ }
+ catch (Exception)
+ {
+ Directory.Delete(temporaryDirectory, true);
+ throw;
+ }
+ }
+ }
+ Directory.Delete(temporaryDirectory, true);
+ }
+
private void FinishInstallation(string temporaryDirectory, string registeredDirectory)
{
if (Directory.Exists(registeredDirectory))
@@ -947,5 +1016,70 @@ namespace Ryujinx.HLE.FileSystem
return null;
}
+
+ public void VerifyKeysFile(string filePath)
+ {
+ // Verify the keys file format refers to https://github.com/Thealexbarney/LibHac/blob/master/KEYS.md
+ string genericPattern = @"^[a-z0-9_]+ = [a-z0-9]+$";
+ string titlePattern = @"^[a-z0-9]{32} = [a-z0-9]{32}$";
+
+ if (File.Exists(filePath))
+ {
+ // Read all lines from the file
+ string fileName = Path.GetFileName(filePath);
+ string[] lines = File.ReadAllLines(filePath);
+
+ bool verified = false;
+ switch (fileName)
+ {
+ case "prod.keys":
+ verified = verifyKeys(lines, genericPattern);
+ break;
+ case "title.keys":
+ verified = verifyKeys(lines, titlePattern);
+ break;
+ case "console.keys":
+ verified = verifyKeys(lines, genericPattern);
+ break;
+ case "dev.keys":
+ verified = verifyKeys(lines, genericPattern);
+ break;
+ default:
+ throw new FormatException($"Keys file name \"{fileName}\" not supported. Only \"prod.keys\", \"title.keys\", \"console.keys\", \"dev.keys\" are supported.");
+ }
+ if (!verified)
+ {
+ throw new FormatException($"Invalid \"{filePath}\" file format.");
+ }
+ } else
+ {
+ throw new FileNotFoundException($"Keys file not found at \"{filePath}\".");
+ }
+ }
+
+ private bool verifyKeys(string[] lines, string regex)
+ {
+ foreach (string line in lines)
+ {
+ if (!Regex.IsMatch(line, regex))
+ {
+ return false;
+ }
+ }
+ return true;
+ }
+
+ public bool AreKeysAlredyPresent(string pathToCheck)
+ {
+ string[] fileNames = { "prod.keys", "title.keys", "console.keys", "dev.keys" };
+ foreach (var file in fileNames)
+ {
+ if (File.Exists(Path.Combine(pathToCheck, file)))
+ {
+ return true;
+ }
+ }
+ return false;
+ }
}
}
diff --git a/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs b/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs
index 39c544eac..ef9c493a8 100644
--- a/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs
+++ b/src/Ryujinx.HLE/FileSystem/VirtualFileSystem.cs
@@ -223,9 +223,10 @@ namespace Ryujinx.HLE.FileSystem
{
KeySet ??= KeySet.CreateDefaultKeySet();
- string keyFile = null;
+ string prodKeyFile = null;
string titleKeyFile = null;
string consoleKeyFile = null;
+ string devKeyFile = null;
if (AppDataManager.Mode == AppDataManager.LaunchMode.UserProfile)
{
@@ -236,13 +237,14 @@ namespace Ryujinx.HLE.FileSystem
void LoadSetAtPath(string basePath)
{
- string localKeyFile = Path.Combine(basePath, "prod.keys");
+ string localProdKeyFile = Path.Combine(basePath, "prod.keys");
string localTitleKeyFile = Path.Combine(basePath, "title.keys");
string localConsoleKeyFile = Path.Combine(basePath, "console.keys");
+ string localDevKeyFile = Path.Combine(basePath, "dev.keys");
- if (File.Exists(localKeyFile))
+ if (File.Exists(localProdKeyFile))
{
- keyFile = localKeyFile;
+ prodKeyFile = localProdKeyFile;
}
if (File.Exists(localTitleKeyFile))
@@ -254,9 +256,14 @@ namespace Ryujinx.HLE.FileSystem
{
consoleKeyFile = localConsoleKeyFile;
}
+
+ if (File.Exists(localDevKeyFile))
+ {
+ devKeyFile = localDevKeyFile;
+ }
}
- ExternalKeyReader.ReadKeyFile(KeySet, keyFile, titleKeyFile, consoleKeyFile, null);
+ ExternalKeyReader.ReadKeyFile(KeySet, prodKeyFile, devKeyFile, titleKeyFile, consoleKeyFile, null);
}
public void ImportTickets(IFileSystem fs)
diff --git a/src/Ryujinx/Assets/Locales/ar_SA.json b/src/Ryujinx/Assets/Locales/ar_SA.json
index 62992ff34..34b4f7212 100644
--- a/src/Ryujinx/Assets/Locales/ar_SA.json
+++ b/src/Ryujinx/Assets/Locales/ar_SA.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "تثبيت البرنامج الثابت",
"MenuBarFileToolsInstallFirmwareFromFile": "تثبيت برنامج ثابت من XCI أو ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "تثبيت برنامج ثابت من مجلد",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "إدارة أنواع الملفات",
"MenuBarToolsInstallFileTypes": "تثبيت أنواع الملفات",
"MenuBarToolsUninstallFileTypes": "إزالة أنواع الملفات",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\nهل تريد المتابعة؟",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "تثبيت البرنامج الثابت...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "تم تثبيت إصدار النظام {0} بنجاح.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "لن تكون هناك ملفات الشخصية أخرى لفتحها إذا تم حذف الملف الشخصي المحدد",
"DialogUserProfileDeletionConfirmMessage": "هل تريد حذف الملف الشخصي المحدد",
"DialogUserProfileUnsavedChangesTitle": "تحذير - التغييرات غير محفوظة",
diff --git a/src/Ryujinx/Assets/Locales/de_DE.json b/src/Ryujinx/Assets/Locales/de_DE.json
index 91141b7af..013120738 100644
--- a/src/Ryujinx/Assets/Locales/de_DE.json
+++ b/src/Ryujinx/Assets/Locales/de_DE.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "Firmware installieren",
"MenuBarFileToolsInstallFirmwareFromFile": "Firmware von einer XCI- oder einer ZIP-Datei installieren",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Firmware aus einem Verzeichnis installieren",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "Dateitypen verwalten",
"MenuBarToolsInstallFileTypes": "Dateitypen installieren",
"MenuBarToolsUninstallFileTypes": "Dateitypen deinstallieren",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nMöchtest du fortfahren?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Firmware wird installiert...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Systemversion {0} wurde erfolgreich installiert.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "Es können keine anderen Profile geöffnet werden, wenn das ausgewählte Profil gelöscht wird.",
"DialogUserProfileDeletionConfirmMessage": "Möchtest du das ausgewählte Profil löschen?",
"DialogUserProfileUnsavedChangesTitle": "Warnung - Nicht gespeicherte Änderungen",
diff --git a/src/Ryujinx/Assets/Locales/el_GR.json b/src/Ryujinx/Assets/Locales/el_GR.json
index a589d31ad..c5d6a60e6 100644
--- a/src/Ryujinx/Assets/Locales/el_GR.json
+++ b/src/Ryujinx/Assets/Locales/el_GR.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "Εγκατάσταση Firmware",
"MenuBarFileToolsInstallFirmwareFromFile": "Εγκατάσταση Firmware από XCI ή ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Εγκατάσταση Firmware από τοποθεσία",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "Διαχείριση τύπων αρχείων",
"MenuBarToolsInstallFileTypes": "Εγκαταστήσετε τύπους αρχείων.",
"MenuBarToolsUninstallFileTypes": "Απεγκαταστήσετε τύπους αρχείων",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nΘέλετε να συνεχίσετε;",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Εγκατάσταση Firmware...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Η έκδοση συστήματος {0} εγκαταστάθηκε με επιτυχία.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "Δεν θα υπάρχουν άλλα προφίλ εάν διαγραφεί το επιλεγμένο",
"DialogUserProfileDeletionConfirmMessage": "Θέλετε να διαγράψετε το επιλεγμένο προφίλ",
"DialogUserProfileUnsavedChangesTitle": "Προσοχή - Μην Αποθηκευμένες Αλλαγές.",
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index 90290b760..b7ab8969b 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "Install Firmware",
"MenuBarFileToolsInstallFirmwareFromFile": "Install a firmware from XCI or ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Install a firmware from a directory",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "Manage file types",
"MenuBarToolsInstallFileTypes": "Install file types",
"MenuBarToolsUninstallFileTypes": "Uninstall file types",
@@ -518,6 +521,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nDo you want to continue?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Installing firmware...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "System version {0} successfully installed.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "There would be no other profiles to be opened if selected profile is deleted",
"DialogUserProfileDeletionConfirmMessage": "Do you want to delete the selected profile",
"DialogUserProfileUnsavedChangesTitle": "Warning - Unsaved Changes",
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index 8a426b3a4..730bd7961 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "Instalar firmware",
"MenuBarFileToolsInstallFirmwareFromFile": "Instalar firmware desde un archivo XCI o ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Instalar firmware desde una carpeta",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "Administrar tipos de archivo",
"MenuBarToolsInstallFileTypes": "Instalar tipos de archivo",
"MenuBarToolsUninstallFileTypes": "Desinstalar tipos de archivo",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\n¿Continuar?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Instalando firmware...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Versión de sistema {0} instalada con éxito.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "Si eliminas el perfil seleccionado no quedará ningún otro perfil",
"DialogUserProfileDeletionConfirmMessage": "¿Quieres eliminar el perfil seleccionado?",
"DialogUserProfileUnsavedChangesTitle": "Advertencia - Cambios sin guardar",
diff --git a/src/Ryujinx/Assets/Locales/fr_FR.json b/src/Ryujinx/Assets/Locales/fr_FR.json
index 355c2814d..947c48eab 100644
--- a/src/Ryujinx/Assets/Locales/fr_FR.json
+++ b/src/Ryujinx/Assets/Locales/fr_FR.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "Installer un firmware",
"MenuBarFileToolsInstallFirmwareFromFile": "Installer un firmware depuis un fichier XCI ou ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Installer un firmware depuis un dossier",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "Gérer les types de fichiers",
"MenuBarToolsInstallFileTypes": "Installer les types de fichiers",
"MenuBarToolsUninstallFileTypes": "Désinstaller les types de fichiers",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nVoulez-vous continuer ?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Installation du firmware...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Version du système {0} installée avec succès.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "Il n'y aurait aucun autre profil à ouvrir si le profil sélectionné est supprimé",
"DialogUserProfileDeletionConfirmMessage": "Voulez-vous supprimer le profil sélectionné ?",
"DialogUserProfileUnsavedChangesTitle": "Avertissement - Modifications non enregistrées",
diff --git a/src/Ryujinx/Assets/Locales/he_IL.json b/src/Ryujinx/Assets/Locales/he_IL.json
index 51c3c8835..88b6a059a 100644
--- a/src/Ryujinx/Assets/Locales/he_IL.json
+++ b/src/Ryujinx/Assets/Locales/he_IL.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "התקן קושחה",
"MenuBarFileToolsInstallFirmwareFromFile": "התקן קושחה מקובץ- ZIP/XCI",
"MenuBarFileToolsInstallFirmwareFromDirectory": "התקן קושחה מתוך תקייה",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "ניהול סוגי קבצים",
"MenuBarToolsInstallFileTypes": "סוגי קבצי התקנה",
"MenuBarToolsUninstallFileTypes": "סוגי קבצי הסרה",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nהאם ברצונך להמשיך?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "מתקין קושחה...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "גרסת המערכת {0} הותקנה בהצלחה.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "לא יהיו פרופילים אחרים שייפתחו אם הפרופיל שנבחר יימחק",
"DialogUserProfileDeletionConfirmMessage": "האם ברצונך למחוק את הפרופיל שנבחר",
"DialogUserProfileUnsavedChangesTitle": "אזהרה - שינויים לא שמורים",
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index 52ea833d3..e689a2cd9 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -28,6 +28,9 @@
"MenuBarToolsInstallFirmware": "Installa firmware",
"MenuBarFileToolsInstallFirmwareFromFile": "Installa un firmware da file XCI o ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Installa un firmare da una cartella",
+ "MenuBarToolsInstallKeys": "Installa Chiavi",
+ "MenuBarFileToolsInstallKeysFromFile": "Installa Chiavi da file KEYS o ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Installa Chiavi da una Cartella",
"MenuBarToolsManageFileTypes": "Gestisci i tipi di file",
"MenuBarToolsInstallFileTypes": "Installa i tipi di file",
"MenuBarToolsUninstallFileTypes": "Disinstalla i tipi di file",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nVuoi continuare?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Installazione del firmware...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "La versione del sistema {0} è stata installata.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "E' stato trovato un file di chiavi invalido ' {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Installa Chavi",
+ "DialogKeysInstallerKeysInstallMessage": "Un nuovo file di Chiavi sarà intallato.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nQuesto potrebbe sovrascrivere alcune delle Chiavi già installate.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nVuoi continuare?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installando le chiavi...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "Nuovo file di chiavi installato con successo.",
"DialogUserProfileDeletionWarningMessage": "Non ci sarebbero altri profili da aprire se il profilo selezionato viene cancellato",
"DialogUserProfileDeletionConfirmMessage": "Vuoi eliminare il profilo selezionato?",
"DialogUserProfileUnsavedChangesTitle": "Attenzione - Modifiche Non Salvate",
diff --git a/src/Ryujinx/Assets/Locales/ja_JP.json b/src/Ryujinx/Assets/Locales/ja_JP.json
index 59b7aa3b3..d55d1449d 100644
--- a/src/Ryujinx/Assets/Locales/ja_JP.json
+++ b/src/Ryujinx/Assets/Locales/ja_JP.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "ファームウェアをインストール",
"MenuBarFileToolsInstallFirmwareFromFile": "XCI または ZIP からファームウェアをインストール",
"MenuBarFileToolsInstallFirmwareFromDirectory": "ディレクトリからファームウェアをインストール",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "ファイル形式を管理",
"MenuBarToolsInstallFileTypes": "ファイル形式をインストール",
"MenuBarToolsUninstallFileTypes": "ファイル形式をアンインストール",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\n続けてよろしいですか?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "ファームウェアをインストール中...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "システムバージョン {0} が正常にインストールされました.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "選択されたプロファイルを削除すると,プロファイルがひとつも存在しなくなります",
"DialogUserProfileDeletionConfirmMessage": "選択されたプロファイルを削除しますか",
"DialogUserProfileUnsavedChangesTitle": "警告 - 保存されていない変更",
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index aeeb84c62..ef4e96440 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "펌웨어 설치",
"MenuBarFileToolsInstallFirmwareFromFile": "XCI 또는 ZIP으로 펌웨어 설치",
"MenuBarFileToolsInstallFirmwareFromDirectory": "디렉터리에서 펌웨어 설치",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "파일 형식 관리",
"MenuBarToolsInstallFileTypes": "파일 형식 설치",
"MenuBarToolsUninstallFileTypes": "파일 형식 제거",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\n계속하시겠습니까?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "펌웨어 설치 중...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "시스템 버전 {0}이(가) 설치되었습니다.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "선택한 프로필을 삭제하면 다른 프로필을 열 수 없음",
"DialogUserProfileDeletionConfirmMessage": "선택한 프로필을 삭제하시겠습니까?",
"DialogUserProfileUnsavedChangesTitle": "경고 - 저장되지 않은 변경 사항",
diff --git a/src/Ryujinx/Assets/Locales/pl_PL.json b/src/Ryujinx/Assets/Locales/pl_PL.json
index 1d8cf4f03..c3202020f 100644
--- a/src/Ryujinx/Assets/Locales/pl_PL.json
+++ b/src/Ryujinx/Assets/Locales/pl_PL.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "Zainstaluj oprogramowanie",
"MenuBarFileToolsInstallFirmwareFromFile": "Zainstaluj oprogramowanie z XCI lub ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Zainstaluj oprogramowanie z katalogu",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "Zarządzaj rodzajami plików",
"MenuBarToolsInstallFileTypes": "Typy plików instalacyjnych",
"MenuBarToolsUninstallFileTypes": "Typy plików dezinstalacyjnych",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nCzy chcesz kontynuować?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Instalowanie firmware'u...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Wersja systemu {0} została pomyślnie zainstalowana.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "Nie będzie innych profili do otwarcia, jeśli wybrany profil zostanie usunięty",
"DialogUserProfileDeletionConfirmMessage": "Czy chcesz usunąć wybrany profil",
"DialogUserProfileUnsavedChangesTitle": "Uwaga - Niezapisane zmiany",
diff --git a/src/Ryujinx/Assets/Locales/pt_BR.json b/src/Ryujinx/Assets/Locales/pt_BR.json
index 7574c1d20..71992434b 100644
--- a/src/Ryujinx/Assets/Locales/pt_BR.json
+++ b/src/Ryujinx/Assets/Locales/pt_BR.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "_Instalar firmware",
"MenuBarFileToolsInstallFirmwareFromFile": "Instalar firmware a partir de um arquivo ZIP/XCI",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Instalar firmware a partir de um diretório",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "Gerenciar tipos de arquivo",
"MenuBarToolsInstallFileTypes": "Instalar tipos de arquivo",
"MenuBarToolsUninstallFileTypes": "Desinstalar tipos de arquivos",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nDeseja continuar?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Instalando firmware...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Versão do sistema {0} instalada com sucesso.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "Não haveria nenhum perfil selecionado se o perfil atual fosse deletado",
"DialogUserProfileDeletionConfirmMessage": "Deseja deletar o perfil selecionado",
"DialogUserProfileUnsavedChangesTitle": "Alerta - Alterações não salvas",
diff --git a/src/Ryujinx/Assets/Locales/ru_RU.json b/src/Ryujinx/Assets/Locales/ru_RU.json
index 86e51f09f..f0218ffcc 100644
--- a/src/Ryujinx/Assets/Locales/ru_RU.json
+++ b/src/Ryujinx/Assets/Locales/ru_RU.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "Установка прошивки",
"MenuBarFileToolsInstallFirmwareFromFile": "Установить прошивку из XCI или ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Установить прошивку из папки",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "Управление типами файлов",
"MenuBarToolsInstallFileTypes": "Установить типы файлов",
"MenuBarToolsUninstallFileTypes": "Удалить типы файлов",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nПродолжить?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Установка прошивки...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Прошивка версии {0} успешно установлена.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "Если выбранный профиль будет удален, другие профили не будут открываться.",
"DialogUserProfileDeletionConfirmMessage": "Удалить выбранный профиль?",
"DialogUserProfileUnsavedChangesTitle": "Внимание - Несохраненные изменения",
diff --git a/src/Ryujinx/Assets/Locales/th_TH.json b/src/Ryujinx/Assets/Locales/th_TH.json
index 259828583..02ddda899 100644
--- a/src/Ryujinx/Assets/Locales/th_TH.json
+++ b/src/Ryujinx/Assets/Locales/th_TH.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "ติดตั้งเฟิร์มแวร์",
"MenuBarFileToolsInstallFirmwareFromFile": "ติดตั้งเฟิร์มแวร์จาก ไฟล์ XCI หรือ ไฟล์ ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "ติดตั้งเฟิร์มแวร์จากไดเร็กทอรี",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "จัดการประเภทไฟล์",
"MenuBarToolsInstallFileTypes": "ติดตั้งประเภทไฟล์",
"MenuBarToolsUninstallFileTypes": "ถอนการติดตั้งประเภทไฟล์",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nคุณต้องการดำเนินการต่อหรือไม่?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "กำลังติดตั้งเฟิร์มแวร์...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "ระบบเวอร์ชั่น {0} ติดตั้งเรียบร้อยแล้ว",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "จะไม่มีโปรไฟล์อื่นให้เปิดหากโปรไฟล์ที่เลือกถูกลบ",
"DialogUserProfileDeletionConfirmMessage": "คุณต้องการลบโปรไฟล์ที่เลือกหรือไม่?",
"DialogUserProfileUnsavedChangesTitle": "คำเตือน - มีการเปลี่ยนแปลงที่ไม่ได้บันทึก",
diff --git a/src/Ryujinx/Assets/Locales/tr_TR.json b/src/Ryujinx/Assets/Locales/tr_TR.json
index 18dbb12b0..a65064a38 100644
--- a/src/Ryujinx/Assets/Locales/tr_TR.json
+++ b/src/Ryujinx/Assets/Locales/tr_TR.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "Yazılım Yükle",
"MenuBarFileToolsInstallFirmwareFromFile": "XCI veya ZIP'ten Yazılım Yükle",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Bir Dizin Üzerinden Yazılım Yükle",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "Dosya uzantılarını yönet",
"MenuBarToolsInstallFileTypes": "Dosya uzantılarını yükle",
"MenuBarToolsUninstallFileTypes": "Dosya uzantılarını kaldır",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nDevam etmek istiyor musunuz?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Firmware yükleniyor...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Sistem sürümü {0} başarıyla yüklendi.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "Seçilen profil silinirse kullanılabilen başka profil kalmayacak",
"DialogUserProfileDeletionConfirmMessage": "Seçilen profili silmek istiyor musunuz",
"DialogUserProfileUnsavedChangesTitle": "Uyarı - Kaydedilmemiş Değişiklikler",
diff --git a/src/Ryujinx/Assets/Locales/uk_UA.json b/src/Ryujinx/Assets/Locales/uk_UA.json
index e123afa6b..ef26ace65 100644
--- a/src/Ryujinx/Assets/Locales/uk_UA.json
+++ b/src/Ryujinx/Assets/Locales/uk_UA.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "Установити прошивку",
"MenuBarFileToolsInstallFirmwareFromFile": "Установити прошивку з XCI або ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Установити прошивку з теки",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "Керувати типами файлів",
"MenuBarToolsInstallFileTypes": "Установити типи файлів",
"MenuBarToolsUninstallFileTypes": "Видалити типи файлів",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\nВи хочете продовжити?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Встановлення прошивки...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Версію системи {0} успішно встановлено.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "Якщо вибраний профіль буде видалено, інші профілі не відкриватимуться",
"DialogUserProfileDeletionConfirmMessage": "Ви хочете видалити вибраний профіль",
"DialogUserProfileUnsavedChangesTitle": "Увага — Незбережені зміни",
diff --git a/src/Ryujinx/Assets/Locales/zh_CN.json b/src/Ryujinx/Assets/Locales/zh_CN.json
index 8fcd41cd2..dc3f27b5a 100644
--- a/src/Ryujinx/Assets/Locales/zh_CN.json
+++ b/src/Ryujinx/Assets/Locales/zh_CN.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "安装系统固件",
"MenuBarFileToolsInstallFirmwareFromFile": "从 XCI 或 ZIP 文件中安装系统固件",
"MenuBarFileToolsInstallFirmwareFromDirectory": "从文件夹中安装系统固件",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "管理文件扩展名",
"MenuBarToolsInstallFileTypes": "关联文件扩展名",
"MenuBarToolsUninstallFileTypes": "取消关联扩展名",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\n是否继续?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "安装系统固件中...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "成功安装系统固件版本 {0} 。",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "删除后将没有可用的账户",
"DialogUserProfileDeletionConfirmMessage": "是否删除所选账户",
"DialogUserProfileUnsavedChangesTitle": "警告 - 有未保存的更改",
diff --git a/src/Ryujinx/Assets/Locales/zh_TW.json b/src/Ryujinx/Assets/Locales/zh_TW.json
index d219bc708..c33885784 100644
--- a/src/Ryujinx/Assets/Locales/zh_TW.json
+++ b/src/Ryujinx/Assets/Locales/zh_TW.json
@@ -31,6 +31,9 @@
"MenuBarToolsInstallFirmware": "安裝韌體",
"MenuBarFileToolsInstallFirmwareFromFile": "從 XCI 或 ZIP 安裝韌體",
"MenuBarFileToolsInstallFirmwareFromDirectory": "從資料夾安裝韌體",
+ "MenuBarToolsInstallKeys": "Install Keys",
+ "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
"MenuBarToolsManageFileTypes": "管理檔案類型",
"MenuBarToolsInstallFileTypes": "安裝檔案類型",
"MenuBarToolsUninstallFileTypes": "移除檔案類型",
@@ -506,6 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\n您確定要繼續嗎?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "正在安裝韌體...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "成功安裝系統版本 {0}。",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Install Keys",
+ "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
"DialogUserProfileDeletionWarningMessage": "如果刪除選取的設定檔,將無法開啟其他設定檔",
"DialogUserProfileDeletionConfirmMessage": "您是否要刪除所選設定檔",
"DialogUserProfileUnsavedChangesTitle": "警告 - 未儲存的變更",
diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
index 824fdd717..3672f8c71 100644
--- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
@@ -1271,6 +1271,108 @@ namespace Ryujinx.Ava.UI.ViewModels
}
}
+ private async Task HandleKeysInstallation(string filename)
+ {
+ try
+ {
+ string systemDirectory = AppDataManager.KeysDirPath;
+ if (AppDataManager.Mode == AppDataManager.LaunchMode.UserProfile && Directory.Exists(AppDataManager.KeysDirPathUser))
+ {
+ systemDirectory = AppDataManager.KeysDirPathUser;
+ }
+
+ string dialogTitle = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogKeysInstallerKeysInstallTitle);
+ string dialogMessage = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogKeysInstallerKeysInstallMessage);
+
+ bool alreadyKesyInstalled = ContentManager.AreKeysAlredyPresent(systemDirectory);
+ if (alreadyKesyInstalled)
+ {
+ dialogMessage += LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogKeysInstallerKeysInstallSubMessage);
+ }
+
+ dialogMessage += LocaleManager.Instance[LocaleKeys.DialogKeysInstallerKeysInstallConfirmMessage];
+
+ UserResult result = await ContentDialogHelper.CreateConfirmationDialog(
+ dialogTitle,
+ dialogMessage,
+ LocaleManager.Instance[LocaleKeys.InputDialogYes],
+ LocaleManager.Instance[LocaleKeys.InputDialogNo],
+ LocaleManager.Instance[LocaleKeys.RyujinxConfirm]);
+
+ UpdateWaitWindow waitingDialog = new(dialogTitle, LocaleManager.Instance[LocaleKeys.DialogKeysInstallerKeysInstallWaitMessage]);
+
+ if (result == UserResult.Yes)
+ {
+ Logger.Info?.Print(LogClass.Application, $"Installing Keys");
+
+ Thread thread = new(() =>
+ {
+ Dispatcher.UIThread.InvokeAsync(delegate
+ {
+ waitingDialog.Show();
+ });
+
+ try
+ {
+ ContentManager.InstallKeys(filename, systemDirectory);
+
+ Dispatcher.UIThread.InvokeAsync(async delegate
+ {
+ waitingDialog.Close();
+
+ string message = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogKeysInstallerKeysInstallSuccessMessage);
+
+ await ContentDialogHelper.CreateInfoDialog(
+ dialogTitle,
+ message,
+ LocaleManager.Instance[LocaleKeys.InputDialogOk],
+ string.Empty,
+ LocaleManager.Instance[LocaleKeys.RyujinxInfo]);
+
+ Logger.Info?.Print(LogClass.Application, message);
+ });
+ }
+ catch (Exception ex)
+ {
+ Dispatcher.UIThread.InvokeAsync(async () =>
+ {
+ waitingDialog.Close();
+
+ string message = ex.Message;
+ if(ex is FormatException)
+ {
+ message = LocaleManager.Instance.UpdateAndGetDynamicValue(LocaleKeys.DialogKeysInstallerKeysNotFoundErrorMessage, filename);
+ }
+
+ await ContentDialogHelper.CreateErrorDialog(message);
+ });
+ }
+ finally
+ {
+ VirtualFileSystem.ReloadKeySet();
+ }
+ })
+ {
+ Name = "GUI.KeysInstallerThread",
+ };
+
+ thread.Start();
+ }
+ }
+ catch (MissingKeyException ex)
+ {
+ if (Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime)
+ {
+ Logger.Error?.Print(LogClass.Application, ex.ToString());
+
+ await UserErrorDialog.ShowUserErrorDialog(UserError.NoKeys);
+ }
+ }
+ catch (Exception ex)
+ {
+ await ContentDialogHelper.CreateErrorDialog(ex.Message);
+ }
+ }
private void ProgressHandler(T state, int current, int total) where T : Enum
{
Dispatcher.UIThread.Post(() =>
@@ -1559,6 +1661,53 @@ namespace Ryujinx.Ava.UI.ViewModels
}
}
+ public async Task InstallKeysFromFile()
+ {
+ var result = await StorageProvider.OpenFilePickerAsync(new FilePickerOpenOptions
+ {
+ AllowMultiple = false,
+ FileTypeFilter = new List
+ {
+ new(LocaleManager.Instance[LocaleKeys.FileDialogAllTypes])
+ {
+ Patterns = new[] { "*.keys", "*.zip" },
+ AppleUniformTypeIdentifiers = new[] { "com.ryujinx.xci", "public.zip-archive" },
+ MimeTypes = new[] { "application/keys", "application/zip" },
+ },
+ new("KEYS")
+ {
+ Patterns = new[] { "*.keys" },
+ AppleUniformTypeIdentifiers = new[] { "com.ryujinx.xci" },
+ MimeTypes = new[] { "application/keys" },
+ },
+ new("ZIP")
+ {
+ Patterns = new[] { "*.zip" },
+ AppleUniformTypeIdentifiers = new[] { "public.zip-archive" },
+ MimeTypes = new[] { "application/zip" },
+ },
+ },
+ });
+
+ if (result.Count > 0)
+ {
+ await HandleKeysInstallation(result[0].Path.LocalPath);
+ }
+ }
+
+ public async Task InstallKeysFromFolder()
+ {
+ var result = await StorageProvider.OpenFolderPickerAsync(new FolderPickerOpenOptions
+ {
+ AllowMultiple = false,
+ });
+
+ if (result.Count > 0)
+ {
+ await HandleKeysInstallation(result[0].Path.LocalPath);
+ }
+ }
+
public void OpenRyujinxFolder()
{
OpenHelper.OpenFolder(AppDataManager.BaseDirPath);
diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml
index 6cf76cf49..c5e794da2 100644
--- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml
+++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml
@@ -260,6 +260,10 @@
IsEnabled="{Binding IsGameRunning}" />
+
+
+
+
--
2.47.1
From 8e55e6d6d725ea5f341449c5e0f8e116d4df6884 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Hack=E8=8C=B6=E3=82=93?=
<120134269+Hackjjang@users.noreply.github.com>
Date: Sat, 30 Nov 2024 06:39:11 +0900
Subject: [PATCH 042/674] Korean translation for key install tool (#329)
---
src/Ryujinx/Assets/Locales/ko_KR.json | 20 ++++++++++----------
1 file changed, 10 insertions(+), 10 deletions(-)
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index ef4e96440..8a3799e15 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -31,9 +31,9 @@
"MenuBarToolsInstallFirmware": "펌웨어 설치",
"MenuBarFileToolsInstallFirmwareFromFile": "XCI 또는 ZIP으로 펌웨어 설치",
"MenuBarFileToolsInstallFirmwareFromDirectory": "디렉터리에서 펌웨어 설치",
- "MenuBarToolsInstallKeys": "Install Keys",
- "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
- "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
+ "MenuBarToolsInstallKeys": "설치 키",
+ "MenuBarFileToolsInstallKeysFromFile": "키나 ZIP에서 키 설치",
+ "MenuBarFileToolsInstallKeysFromFolder": "디렉터리에서 키 설치",
"MenuBarToolsManageFileTypes": "파일 형식 관리",
"MenuBarToolsInstallFileTypes": "파일 형식 설치",
"MenuBarToolsUninstallFileTypes": "파일 형식 제거",
@@ -509,13 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\n계속하시겠습니까?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "펌웨어 설치 중...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "시스템 버전 {0}이(가) 설치되었습니다.",
- "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
- "DialogKeysInstallerKeysInstallTitle": "Install Keys",
- "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
- "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
- "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
- "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
- "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "{0}에서 잘못된 키 파일이 발견",
+ "DialogKeysInstallerKeysInstallTitle": "설치 키",
+ "DialogKeysInstallerKeysInstallMessage": "새로운 키 파일이 설치됩니다.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\n이로 인해 현재 설치된 키 중 일부가 대체될 수 있습니다.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\n계속하시겠습니까?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "키 설치 중...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "새로운 키 파일이 성공적으로 설치되었습니다.",
"DialogUserProfileDeletionWarningMessage": "선택한 프로필을 삭제하면 다른 프로필을 열 수 없음",
"DialogUserProfileDeletionConfirmMessage": "선택한 프로필을 삭제하시겠습니까?",
"DialogUserProfileUnsavedChangesTitle": "경고 - 저장되지 않은 변경 사항",
--
2.47.1
From facc12a94a678ded1bae3a6df6f17bd973ca364b Mon Sep 17 00:00:00 2001
From: LotP1 <68976644+LotP1@users.noreply.github.com>
Date: Fri, 29 Nov 2024 23:32:55 +0100
Subject: [PATCH 043/674] JIT Sparse Function Table random crash fix (#319)
A couple of games have random crashing with the JIT Sparse Ftable changes, and it seems to have been caused by an insufficient int size returned by `AddressTableLevel#GetValue(ulong address)`.
It was 32 bits (Int32), but the GiantBlock (which is the current address table impl) uses potentially 36 bits for the first level.
---
src/ARMeilleure/Common/AddressTableLevel.cs | 4 ++--
src/ARMeilleure/Translation/PTC/Ptc.cs | 2 +-
src/Ryujinx.Cpu/AddressTable.cs | 2 +-
3 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/src/ARMeilleure/Common/AddressTableLevel.cs b/src/ARMeilleure/Common/AddressTableLevel.cs
index 6107726ee..af3b9b99f 100644
--- a/src/ARMeilleure/Common/AddressTableLevel.cs
+++ b/src/ARMeilleure/Common/AddressTableLevel.cs
@@ -36,9 +36,9 @@ namespace ARMeilleure.Common
///
/// Guest address
/// Value of the from the specified guest
- public int GetValue(ulong address)
+ public long GetValue(ulong address)
{
- return (int)((address & Mask) >> Index);
+ return (long)((address & Mask) >> Index);
}
}
}
diff --git a/src/ARMeilleure/Translation/PTC/Ptc.cs b/src/ARMeilleure/Translation/PTC/Ptc.cs
index c722ce6be..841e5fefa 100644
--- a/src/ARMeilleure/Translation/PTC/Ptc.cs
+++ b/src/ARMeilleure/Translation/PTC/Ptc.cs
@@ -30,7 +30,7 @@ namespace ARMeilleure.Translation.PTC
private const string OuterHeaderMagicString = "PTCohd\0\0";
private const string InnerHeaderMagicString = "PTCihd\0\0";
- private const uint InternalVersion = 6992; //! To be incremented manually for each change to the ARMeilleure project.
+ private const uint InternalVersion = 6997; //! To be incremented manually for each change to the ARMeilleure project.
private const string ActualDir = "0";
private const string BackupDir = "1";
diff --git a/src/Ryujinx.Cpu/AddressTable.cs b/src/Ryujinx.Cpu/AddressTable.cs
index d87b12ab0..038a2009c 100644
--- a/src/Ryujinx.Cpu/AddressTable.cs
+++ b/src/Ryujinx.Cpu/AddressTable.cs
@@ -238,7 +238,7 @@ namespace ARMeilleure.Common
{
TEntry* page = GetPage(address);
- int index = Levels[^1].GetValue(address);
+ long index = Levels[^1].GetValue(address);
EnsureMapped((IntPtr)(page + index));
--
2.47.1
From 3680df6092394493f165f963cee4b202b63beb96 Mon Sep 17 00:00:00 2001
From: Piplup <100526773+piplup55@users.noreply.github.com>
Date: Sat, 30 Nov 2024 23:17:30 +0000
Subject: [PATCH 044/674] Fix for missing text with specific system locale
encoding (#330)
---
distribution/linux/Ryujinx.sh | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/distribution/linux/Ryujinx.sh b/distribution/linux/Ryujinx.sh
index 30eb14399..daeea9bfd 100755
--- a/distribution/linux/Ryujinx.sh
+++ b/distribution/linux/Ryujinx.sh
@@ -14,7 +14,7 @@ if [ -z "$RYUJINX_BIN" ]; then
exit 1
fi
-COMMAND="env DOTNET_EnableAlternateStackCheck=1"
+COMMAND="env LANG=C.UTF-8 DOTNET_EnableAlternateStackCheck=1"
if command -v gamemoderun > /dev/null 2>&1; then
COMMAND="$COMMAND gamemoderun"
--
2.47.1
From 6b5cb151c3574d6b08f421071968121bbed6ab7f Mon Sep 17 00:00:00 2001
From: Luke Warner <65521430+LukeWarnut@users.noreply.github.com>
Date: Sat, 30 Nov 2024 18:20:48 -0500
Subject: [PATCH 045/674] Implement and stub services required for Mario Kart
Live: Home Circuit (#331)
These changes allow Mario Kart Live: Home Circuit (v2.0.0) to boot into
menus. Kart functionality has not been implemented and will not work.
Version 1.0.0 is currently unsupported due to unimplemented ARM
registers. I plan on addressing this issue at a later date.
### Here is a list of the implemented and stubbed services in this PR:
#### Implemented:
Ldn.Lp2p.IServiceCreator: 0 (CreateNetworkService)
Ldn.Lp2p.IServiceCreator: 8 (CreateNetworkServiceMonitor)
Ldn.Lp2p.ISfService: 0 (Initialize)
Ldn.Lp2p.ISfServiceMonitor: 0 (Initialize)
Ldn.Lp2p.ISfServiceMonitor: 256 (AttachNetworkInterfaceStateChangeEvent)
Ldn.Lp2p.ISfServiceMonitor: 328 (AttachJoinEvent)
#### Stubbed:
Ldn.Lp2p.ISfService: 768 (CreateGroup)
Ldn.Lp2p.ISfService: 1536 (SendToOtherGroup)
Ldn.Lp2p.ISfService: 1544 (RecvFromOtherGroup)
Ldn.Lp2p.ISfServiceMonitor: 288 (GetGroupInfo)
Ldn.Lp2p.ISfServiceMonitor: 296 (GetGroupInfo2)
Ldn.Lp2p.ISfServiceMonitor: 312 (GetIpConfig)
---
.../HOS/Services/Ldn/Lp2p/IServiceCreator.cs | 18 ++++
.../HOS/Services/Ldn/Lp2p/ISfService.cs | 45 ++++++++++
.../Services/Ldn/Lp2p/ISfServiceMonitor.cs | 86 +++++++++++++++++++
3 files changed, 149 insertions(+)
create mode 100644 src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs
create mode 100644 src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfServiceMonitor.cs
diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs
index 797a7a9bd..705e5f258 100644
--- a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs
+++ b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/IServiceCreator.cs
@@ -5,5 +5,23 @@ namespace Ryujinx.HLE.HOS.Services.Ldn.Lp2p
class IServiceCreator : IpcService
{
public IServiceCreator(ServiceCtx context) { }
+
+ [CommandCmif(0)]
+ // CreateNetworkService(pid, u64, u32) -> object
+ public ResultCode CreateNetworkService(ServiceCtx context)
+ {
+ MakeObject(context, new ISfService(context));
+
+ return ResultCode.Success;
+ }
+
+ [CommandCmif(8)]
+ // CreateNetworkServiceMonitor(pid, u64) -> object
+ public ResultCode CreateNetworkServiceMonitor(ServiceCtx context)
+ {
+ MakeObject(context, new ISfServiceMonitor(context));
+
+ return ResultCode.Success;
+ }
}
}
diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs
new file mode 100644
index 000000000..d48a88978
--- /dev/null
+++ b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs
@@ -0,0 +1,45 @@
+using Ryujinx.Common.Logging;
+
+namespace Ryujinx.HLE.HOS.Services.Ldn.Lp2p
+{
+ class ISfService : IpcService
+ {
+ public ISfService(ServiceCtx context) { }
+
+ [CommandCmif(0)]
+ // Initialize()
+ public ResultCode Initialize(ServiceCtx context)
+ {
+ context.ResponseData.Write(0);
+
+ return ResultCode.Success;
+ }
+
+ [CommandCmif(768)]
+ // CreateGroup(buffer)
+ public ResultCode SendToOtherGroup(ServiceCtx context)
+ {
+ Logger.Stub?.PrintStub(LogClass.ServiceLdn);
+
+ return ResultCode.Success;
+ }
+
+ [CommandCmif(1544)]
+ // RecvFromOtherGroup(u32, buffer) -> (nn::lp2p::MacAddress, u16, s16, u32, s32)
+ public ResultCode RecvFromOtherGroup(ServiceCtx context)
+ {
+ Logger.Stub?.PrintStub(LogClass.ServiceLdn);
+
+ return ResultCode.Success;
+ }
+ }
+}
diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfServiceMonitor.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfServiceMonitor.cs
new file mode 100644
index 000000000..d3a8bead2
--- /dev/null
+++ b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfServiceMonitor.cs
@@ -0,0 +1,86 @@
+using Ryujinx.Common.Logging;
+using Ryujinx.HLE.HOS.Ipc;
+using Ryujinx.HLE.HOS.Kernel.Threading;
+using Ryujinx.Horizon.Common;
+using System;
+
+namespace Ryujinx.HLE.HOS.Services.Ldn.Lp2p
+{
+ class ISfServiceMonitor : IpcService
+ {
+ private readonly KEvent _stateChangeEvent;
+ private readonly KEvent _jointEvent;
+ private int _stateChangeEventHandle = 0;
+ private int _jointEventHandle = 0;
+
+ public ISfServiceMonitor(ServiceCtx context)
+ {
+ _stateChangeEvent = new KEvent(context.Device.System.KernelContext);
+ _jointEvent = new KEvent(context.Device.System.KernelContext);
+ }
+
+ [CommandCmif(0)]
+ // Initialize()
+ public ResultCode Initialize(ServiceCtx context)
+ {
+ context.ResponseData.Write(0);
+
+ return ResultCode.Success;
+ }
+
+ [CommandCmif(256)]
+ // AttachNetworkInterfaceStateChangeEvent() -> handle
+ public ResultCode AttachNetworkInterfaceStateChangeEvent(ServiceCtx context)
+ {
+ if (context.Process.HandleTable.GenerateHandle(_stateChangeEvent.ReadableEvent, out _stateChangeEventHandle) != Result.Success)
+ {
+ throw new InvalidOperationException("Out of handles!");
+ }
+
+ context.Response.HandleDesc = IpcHandleDesc.MakeCopy(_stateChangeEventHandle);
+
+ return ResultCode.Success;
+ }
+
+ [CommandCmif(288)]
+ // GetGroupInfo(buffer)
+ public ResultCode GetGroupInfo(ServiceCtx context)
+ {
+ Logger.Stub?.PrintStub(LogClass.ServiceLdn);
+
+ return ResultCode.Success;
+ }
+
+ [CommandCmif(296)]
+ // GetGroupInfo2(buffer, buffer)
+ public ResultCode GetGroupInfo2(ServiceCtx context)
+ {
+ Logger.Stub?.PrintStub(LogClass.ServiceLdn);
+
+ return ResultCode.Success;
+ }
+
+ [CommandCmif(312)]
+ // GetIpConfig(buffer, 0x1a>)
+ public ResultCode GetIpConfig(ServiceCtx context)
+ {
+ Logger.Stub?.PrintStub(LogClass.ServiceLdn);
+
+ return ResultCode.Success;
+ }
+
+ [CommandCmif(328)]
+ // AttachNetworkInterfaceStateChangeEvent() -> handle
+ public ResultCode AttachJoinEvent(ServiceCtx context)
+ {
+ if (context.Process.HandleTable.GenerateHandle(_jointEvent.ReadableEvent, out _jointEventHandle) != Result.Success)
+ {
+ throw new InvalidOperationException("Out of handles!");
+ }
+
+ context.Response.HandleDesc = IpcHandleDesc.MakeCopy(_jointEventHandle);
+
+ return ResultCode.Success;
+ }
+ }
+}
--
2.47.1
From 17483aad247c6c7ee97337e1a11140de70aebda9 Mon Sep 17 00:00:00 2001
From: Luke Warner <65521430+LukeWarnut@users.noreply.github.com>
Date: Mon, 2 Dec 2024 15:42:07 -0500
Subject: [PATCH 046/674] ARMeilleure: Allow TPIDR2_EL0 to be set properly
(#339)
---
src/ARMeilleure/Instructions/InstEmitSystem.cs | 13 ++++++++++++-
1 file changed, 12 insertions(+), 1 deletion(-)
diff --git a/src/ARMeilleure/Instructions/InstEmitSystem.cs b/src/ARMeilleure/Instructions/InstEmitSystem.cs
index fbf3b4a70..11c1d0328 100644
--- a/src/ARMeilleure/Instructions/InstEmitSystem.cs
+++ b/src/ARMeilleure/Instructions/InstEmitSystem.cs
@@ -88,7 +88,7 @@ namespace ARMeilleure.Instructions
EmitSetTpidrEl0(context);
return;
case 0b11_011_1101_0000_101:
- EmitGetTpidr2El0(context);
+ EmitSetTpidr2El0(context);
return;
default:
@@ -291,5 +291,16 @@ namespace ARMeilleure.Instructions
context.Store(context.Add(nativeContext, Const((ulong)NativeContext.GetTpidrEl0Offset())), value);
}
+
+ private static void EmitSetTpidr2El0(ArmEmitterContext context)
+ {
+ OpCodeSystem op = (OpCodeSystem)context.CurrOp;
+
+ Operand value = GetIntOrZR(context, op.Rt);
+
+ Operand nativeContext = context.LoadArgument(OperandType.I64, 0);
+
+ context.Store(context.Add(nativeContext, Const((ulong)NativeContext.GetTpidr2El0Offset())), value);
+ }
}
}
--
2.47.1
From 08b7257be5ca27b0f4fdd0269d325dd58f68a4c5 Mon Sep 17 00:00:00 2001
From: Jacobwasbeast <38381609+Jacobwasbeast@users.noreply.github.com>
Date: Mon, 2 Dec 2024 23:40:02 -0600
Subject: [PATCH 047/674] Add the Cabinet Applet (#340)
This adds the missing Cabinet Applet, which allows for formatting
Amiibos and changing their names.
---
src/Ryujinx.HLE/HOS/Applets/AppletManager.cs | 3 +
.../HOS/Applets/Cabinet/CabinetApplet.cs | 195 ++++++++++++++++++
.../HOS/Services/Nfc/Nfp/VirtualAmiibo.cs | 7 +
src/Ryujinx.HLE/UI/IHostUIHandler.cs | 12 ++
src/Ryujinx.Headless.SDL2/WindowBase.cs | 14 ++
src/Ryujinx/Assets/Locales/ar_SA.json | 3 +
src/Ryujinx/Assets/Locales/de_DE.json | 3 +
src/Ryujinx/Assets/Locales/el_GR.json | 3 +
src/Ryujinx/Assets/Locales/en_US.json | 3 +
src/Ryujinx/Assets/Locales/es_ES.json | 3 +
src/Ryujinx/Assets/Locales/fr_FR.json | 3 +
src/Ryujinx/Assets/Locales/he_IL.json | 3 +
src/Ryujinx/Assets/Locales/it_IT.json | 3 +
src/Ryujinx/Assets/Locales/ja_JP.json | 3 +
src/Ryujinx/Assets/Locales/ko_KR.json | 3 +
src/Ryujinx/Assets/Locales/pl_PL.json | 3 +
src/Ryujinx/Assets/Locales/pt_BR.json | 3 +
src/Ryujinx/Assets/Locales/ru_RU.json | 3 +
src/Ryujinx/Assets/Locales/th_TH.json | 3 +
src/Ryujinx/Assets/Locales/tr_TR.json | 3 +
src/Ryujinx/Assets/Locales/uk_UA.json | 3 +
src/Ryujinx/Assets/Locales/zh_CN.json | 3 +
src/Ryujinx/Assets/Locales/zh_TW.json | 3 +
src/Ryujinx/UI/Applet/AvaHostUIHandler.cs | 50 +++++
24 files changed, 335 insertions(+)
create mode 100644 src/Ryujinx.HLE/HOS/Applets/Cabinet/CabinetApplet.cs
diff --git a/src/Ryujinx.HLE/HOS/Applets/AppletManager.cs b/src/Ryujinx.HLE/HOS/Applets/AppletManager.cs
index da4d2e51b..a2ddd573d 100644
--- a/src/Ryujinx.HLE/HOS/Applets/AppletManager.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/AppletManager.cs
@@ -1,5 +1,6 @@
using Ryujinx.Common.Logging;
using Ryujinx.HLE.HOS.Applets.Browser;
+using Ryujinx.HLE.HOS.Applets.Cabinet;
using Ryujinx.HLE.HOS.Applets.Dummy;
using Ryujinx.HLE.HOS.Applets.Error;
using Ryujinx.HLE.HOS.Services.Am.AppletAE;
@@ -31,6 +32,8 @@ namespace Ryujinx.HLE.HOS.Applets
case AppletId.MiiEdit:
Logger.Warning?.Print(LogClass.Application, $"Please use the MiiEdit inside File/Open Applet");
return new DummyApplet(system);
+ case AppletId.Cabinet:
+ return new CabinetApplet(system);
}
Logger.Warning?.Print(LogClass.Application, $"Applet {applet} not implemented!");
diff --git a/src/Ryujinx.HLE/HOS/Applets/Cabinet/CabinetApplet.cs b/src/Ryujinx.HLE/HOS/Applets/Cabinet/CabinetApplet.cs
new file mode 100644
index 000000000..f4f935d34
--- /dev/null
+++ b/src/Ryujinx.HLE/HOS/Applets/Cabinet/CabinetApplet.cs
@@ -0,0 +1,195 @@
+using Ryujinx.Common.Logging;
+using Ryujinx.Common.Memory;
+using Ryujinx.HLE.HOS.Services.Am.AppletAE;
+using Ryujinx.HLE.HOS.Services.Hid.HidServer;
+using Ryujinx.HLE.HOS.Services.Hid;
+using Ryujinx.HLE.HOS.Services.Nfc.Nfp;
+using Ryujinx.HLE.HOS.Services.Nfc.Nfp.NfpManager;
+using System;
+using System.Runtime.CompilerServices;
+using System.Runtime.InteropServices;
+using System.Text;
+
+namespace Ryujinx.HLE.HOS.Applets.Cabinet
+{
+ internal unsafe class CabinetApplet : IApplet
+ {
+ private readonly Horizon _system;
+ private AppletSession _normalSession;
+
+ public event EventHandler AppletStateChanged;
+
+ public CabinetApplet(Horizon system)
+ {
+ _system = system;
+ }
+
+ public ResultCode Start(AppletSession normalSession, AppletSession interactiveSession)
+ {
+ _normalSession = normalSession;
+
+ byte[] launchParams = _normalSession.Pop();
+ byte[] startParamBytes = _normalSession.Pop();
+
+ StartParamForAmiiboSettings startParam = IApplet.ReadStruct(startParamBytes);
+
+ Logger.Stub?.PrintStub(LogClass.ServiceAm, $"CabinetApplet Start Type: {startParam.Type}");
+
+ switch (startParam.Type)
+ {
+ case 0:
+ StartNicknameAndOwnerSettings(ref startParam);
+ break;
+ case 1:
+ case 3:
+ StartFormatter(ref startParam);
+ break;
+ default:
+ Logger.Error?.Print(LogClass.ServiceAm, $"Unknown AmiiboSettings type: {startParam.Type}");
+ break;
+ }
+
+ // Prepare the response
+ ReturnValueForAmiiboSettings returnValue = new()
+ {
+ AmiiboSettingsReturnFlag = (byte)AmiiboSettingsReturnFlag.HasRegisterInfo,
+ DeviceHandle = new DeviceHandle
+ {
+ Handle = 0 // Dummy device handle
+ },
+ RegisterInfo = startParam.RegisterInfo
+ };
+
+ // Push the response
+ _normalSession.Push(BuildResponse(returnValue));
+ AppletStateChanged?.Invoke(this, null);
+
+ _system.ReturnFocus();
+
+ return ResultCode.Success;
+ }
+
+ public ResultCode GetResult()
+ {
+ _system.Device.System.NfpDevices.RemoveAt(0);
+ return ResultCode.Success;
+ }
+
+ private void StartFormatter(ref StartParamForAmiiboSettings startParam)
+ {
+ // Initialize RegisterInfo
+ startParam.RegisterInfo = new RegisterInfo();
+ }
+
+ private void StartNicknameAndOwnerSettings(ref StartParamForAmiiboSettings startParam)
+ {
+ _system.Device.UIHandler.DisplayCabinetDialog(out string newName);
+ byte[] nameBytes = Encoding.UTF8.GetBytes(newName);
+ Array41 nickName = new Array41();
+ nameBytes.CopyTo(nickName.AsSpan());
+ startParam.RegisterInfo.Nickname = nickName;
+ NfpDevice devicePlayer1 = new()
+ {
+ NpadIdType = NpadIdType.Player1,
+ Handle = HidUtils.GetIndexFromNpadIdType(NpadIdType.Player1),
+ State = NfpDeviceState.SearchingForTag,
+ };
+ _system.Device.System.NfpDevices.Add(devicePlayer1);
+ _system.Device.UIHandler.DisplayCabinetMessageDialog();
+ string amiiboId = string.Empty;
+ bool scanned = false;
+ while (!scanned)
+ {
+ for (int i = 0; i < _system.Device.System.NfpDevices.Count; i++)
+ {
+ if (_system.Device.System.NfpDevices[i].State == NfpDeviceState.TagFound)
+ {
+ amiiboId = _system.Device.System.NfpDevices[i].AmiiboId;
+ scanned = true;
+ }
+ }
+ }
+ VirtualAmiibo.UpdateNickName(amiiboId, newName);
+ }
+
+ private static byte[] BuildResponse(ReturnValueForAmiiboSettings returnValue)
+ {
+ int size = Unsafe.SizeOf();
+ byte[] bytes = new byte[size];
+
+ fixed (byte* bytesPtr = bytes)
+ {
+ Unsafe.Write(bytesPtr, returnValue);
+ }
+
+ return bytes;
+ }
+
+ public static T ReadStruct(byte[] data) where T : unmanaged
+ {
+ if (data.Length < Unsafe.SizeOf())
+ {
+ throw new ArgumentException("Not enough data to read the struct");
+ }
+
+ fixed (byte* dataPtr = data)
+ {
+ return Unsafe.Read(dataPtr);
+ }
+ }
+
+ #region Structs
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ public unsafe struct TagInfo
+ {
+ public fixed byte Data[0x58];
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ public unsafe struct StartParamForAmiiboSettings
+ {
+ public byte ZeroValue; // Left at zero by sdknso
+ public byte Type;
+ public byte Flags;
+ public byte AmiiboSettingsStartParamOffset28;
+ public ulong AmiiboSettingsStartParam0;
+
+ public TagInfo TagInfo; // Only enabled when flags bit 1 is set
+ public RegisterInfo RegisterInfo; // Only enabled when flags bit 2 is set
+
+ public fixed byte StartParamExtraData[0x20];
+
+ public fixed byte Reserved[0x24];
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ public unsafe struct ReturnValueForAmiiboSettings
+ {
+ public byte AmiiboSettingsReturnFlag;
+ private byte Padding1;
+ private byte Padding2;
+ private byte Padding3;
+ public DeviceHandle DeviceHandle;
+ public TagInfo TagInfo;
+ public RegisterInfo RegisterInfo;
+ public fixed byte IgnoredBySdknso[0x24];
+ }
+
+ [StructLayout(LayoutKind.Sequential, Pack = 1)]
+ public struct DeviceHandle
+ {
+ public ulong Handle;
+ }
+
+ public enum AmiiboSettingsReturnFlag : byte
+ {
+ Cancel = 0,
+ HasTagInfo = 2,
+ HasRegisterInfo = 4,
+ HasTagInfoAndRegisterInfo = 6
+ }
+
+ #endregion
+ }
+}
diff --git a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs
index 7ce749d1a..0c685471c 100644
--- a/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs
+++ b/src/Ryujinx.HLE/HOS/Services/Nfc/Nfp/VirtualAmiibo.cs
@@ -93,6 +93,13 @@ namespace Ryujinx.HLE.HOS.Services.Nfc.Nfp
return registerInfo;
}
+ public static void UpdateNickName(string amiiboId, string newNickName)
+ {
+ VirtualAmiiboFile virtualAmiiboFile = LoadAmiiboFile(amiiboId);
+ virtualAmiiboFile.NickName = newNickName;
+ SaveAmiiboFile(virtualAmiiboFile);
+ }
+
public static bool OpenApplicationArea(string amiiboId, uint applicationAreaId)
{
VirtualAmiiboFile virtualAmiiboFile = LoadAmiiboFile(amiiboId);
diff --git a/src/Ryujinx.HLE/UI/IHostUIHandler.cs b/src/Ryujinx.HLE/UI/IHostUIHandler.cs
index 8debfcca0..88af83735 100644
--- a/src/Ryujinx.HLE/UI/IHostUIHandler.cs
+++ b/src/Ryujinx.HLE/UI/IHostUIHandler.cs
@@ -24,6 +24,18 @@ namespace Ryujinx.HLE.UI
/// True when OK is pressed, False otherwise.
bool DisplayMessageDialog(ControllerAppletUIArgs args);
+ ///
+ /// Displays an Input Dialog box to the user so they can enter the Amiibo's new name
+ ///
+ /// Text that the user entered. Set to `null` on internal errors
+ /// True when OK is pressed, False otherwise. Also returns True on internal errors
+ bool DisplayCabinetDialog(out string userText);
+
+ ///
+ /// Displays a Message Dialog box to the user to notify them to scan the Amiibo.
+ ///
+ void DisplayCabinetMessageDialog();
+
///
/// Tell the UI that we need to transition to another program.
///
diff --git a/src/Ryujinx.Headless.SDL2/WindowBase.cs b/src/Ryujinx.Headless.SDL2/WindowBase.cs
index 2479ec127..fbe7cb49c 100644
--- a/src/Ryujinx.Headless.SDL2/WindowBase.cs
+++ b/src/Ryujinx.Headless.SDL2/WindowBase.cs
@@ -1,4 +1,5 @@
using Humanizer;
+using LibHac.Tools.Fs;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Configuration.Hid;
using Ryujinx.Common.Logging;
@@ -485,6 +486,19 @@ namespace Ryujinx.Headless.SDL2
return true;
}
+ public bool DisplayCabinetDialog(out string userText)
+ {
+ // SDL2 doesn't support input dialogs
+ userText = "Ryujinx";
+
+ return true;
+ }
+
+ public void DisplayCabinetMessageDialog()
+ {
+ SDL_ShowSimpleMessageBox(SDL_MessageBoxFlags.SDL_MESSAGEBOX_INFORMATION, "Cabinet Dialog", "Please scan your Amiibo now.", WindowHandle);
+ }
+
public bool DisplayMessageDialog(ControllerAppletUIArgs args)
{
if (_ignoreControllerApplet) return false;
diff --git a/src/Ryujinx/Assets/Locales/ar_SA.json b/src/Ryujinx/Assets/Locales/ar_SA.json
index 34b4f7212..c1ee30f19 100644
--- a/src/Ryujinx/Assets/Locales/ar_SA.json
+++ b/src/Ryujinx/Assets/Locales/ar_SA.json
@@ -702,6 +702,9 @@
"Never": "مطلقا",
"SwkbdMinCharacters": "يجب أن يبلغ طوله {0} حرفا على الأقل",
"SwkbdMinRangeCharacters": "يجب أن يتكون من {0}-{1} حرفا",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "لوحة المفاتيح البرمجية",
"SoftwareKeyboardModeNumeric": "يجب أن يكون 0-9 أو '.' فقط",
"SoftwareKeyboardModeAlphabet": "يجب أن تكون الأحرف غير CJK فقط",
diff --git a/src/Ryujinx/Assets/Locales/de_DE.json b/src/Ryujinx/Assets/Locales/de_DE.json
index 013120738..e3f6b1be1 100644
--- a/src/Ryujinx/Assets/Locales/de_DE.json
+++ b/src/Ryujinx/Assets/Locales/de_DE.json
@@ -702,6 +702,9 @@
"Never": "Niemals",
"SwkbdMinCharacters": "Muss mindestens {0} Zeichen lang sein",
"SwkbdMinRangeCharacters": "Muss {0}-{1} Zeichen lang sein",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Software-Tastatur",
"SoftwareKeyboardModeNumeric": "Darf nur 0-9 oder \".\" sein",
"SoftwareKeyboardModeAlphabet": "Keine CJK-Zeichen",
diff --git a/src/Ryujinx/Assets/Locales/el_GR.json b/src/Ryujinx/Assets/Locales/el_GR.json
index c5d6a60e6..e93e9310a 100644
--- a/src/Ryujinx/Assets/Locales/el_GR.json
+++ b/src/Ryujinx/Assets/Locales/el_GR.json
@@ -702,6 +702,9 @@
"Never": "Ποτέ",
"SwkbdMinCharacters": "Πρέπει να έχει μήκος τουλάχιστον {0} χαρακτήρες",
"SwkbdMinRangeCharacters": "Πρέπει να έχει μήκος {0}-{1} χαρακτήρες",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Εικονικό Πληκτρολόγιο",
"SoftwareKeyboardModeNumeric": "Πρέπει να είναι 0-9 ή '.' μόνο",
"SoftwareKeyboardModeAlphabet": "Πρέπει να μην είναι μόνο χαρακτήρες CJK",
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index b7ab8969b..ee0d03171 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -714,6 +714,9 @@
"Never": "Never",
"SwkbdMinCharacters": "Must be at least {0} characters long",
"SwkbdMinRangeCharacters": "Must be {0}-{1} characters long",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Software Keyboard",
"SoftwareKeyboardModeNumeric": "Must be 0-9 or '.' only",
"SoftwareKeyboardModeAlphabet": "Must be non CJK-characters only",
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index 730bd7961..0a68d44c6 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -702,6 +702,9 @@
"Never": "Nunca",
"SwkbdMinCharacters": "Debe tener al menos {0} caracteres",
"SwkbdMinRangeCharacters": "Debe tener {0}-{1} caracteres",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Teclado de software",
"SoftwareKeyboardModeNumeric": "Debe ser sólo 0-9 o '.'",
"SoftwareKeyboardModeAlphabet": "Solo deben ser caracteres no CJK",
diff --git a/src/Ryujinx/Assets/Locales/fr_FR.json b/src/Ryujinx/Assets/Locales/fr_FR.json
index 947c48eab..471dfbe5e 100644
--- a/src/Ryujinx/Assets/Locales/fr_FR.json
+++ b/src/Ryujinx/Assets/Locales/fr_FR.json
@@ -702,6 +702,9 @@
"Never": "Jamais",
"SwkbdMinCharacters": "Doit comporter au moins {0} caractères",
"SwkbdMinRangeCharacters": "Doit comporter entre {0} et {1} caractères",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Clavier logiciel",
"SoftwareKeyboardModeNumeric": "Doit être 0-9 ou '.' uniquement",
"SoftwareKeyboardModeAlphabet": "Doit être uniquement des caractères non CJK",
diff --git a/src/Ryujinx/Assets/Locales/he_IL.json b/src/Ryujinx/Assets/Locales/he_IL.json
index 88b6a059a..dbacf5ea1 100644
--- a/src/Ryujinx/Assets/Locales/he_IL.json
+++ b/src/Ryujinx/Assets/Locales/he_IL.json
@@ -702,6 +702,9 @@
"Never": "אף פעם",
"SwkbdMinCharacters": "לפחות {0} תווים",
"SwkbdMinRangeCharacters": "באורך {0}-{1} תווים",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "מקלדת וירטואלית",
"SoftwareKeyboardModeNumeric": "חייב להיות בין 0-9 או '.' בלבד",
"SoftwareKeyboardModeAlphabet": "מחויב להיות ללא אותיות CJK",
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index e689a2cd9..61ea2a355 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -702,6 +702,9 @@
"Never": "Mai",
"SwkbdMinCharacters": "Non può avere meno di {0} caratteri",
"SwkbdMinRangeCharacters": "Può avere da {0} a {1} caratteri",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Tastiera software",
"SoftwareKeyboardModeNumeric": "Deve essere solo 0-9 o '.'",
"SoftwareKeyboardModeAlphabet": "Deve essere solo caratteri non CJK",
diff --git a/src/Ryujinx/Assets/Locales/ja_JP.json b/src/Ryujinx/Assets/Locales/ja_JP.json
index d55d1449d..9acd1c486 100644
--- a/src/Ryujinx/Assets/Locales/ja_JP.json
+++ b/src/Ryujinx/Assets/Locales/ja_JP.json
@@ -702,6 +702,9 @@
"Never": "決して",
"SwkbdMinCharacters": "最低 {0} 文字必要です",
"SwkbdMinRangeCharacters": "{0}-{1} 文字にしてください",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "ソフトウェアキーボード",
"SoftwareKeyboardModeNumeric": "0-9 または '.' のみでなければなりません",
"SoftwareKeyboardModeAlphabet": "CJK文字以外のみ",
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index 8a3799e15..86592aa69 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -702,6 +702,9 @@
"Never": "절대 안 함",
"SwkbdMinCharacters": "{0}자 이상이어야 함",
"SwkbdMinRangeCharacters": "{0}-{1}자 길이여야 함",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "소프트웨어 키보드",
"SoftwareKeyboardModeNumeric": "0-9 또는 '.'만 가능",
"SoftwareKeyboardModeAlphabet": "CJK 문자가 아닌 문자만 가능",
diff --git a/src/Ryujinx/Assets/Locales/pl_PL.json b/src/Ryujinx/Assets/Locales/pl_PL.json
index c3202020f..1ed0988f9 100644
--- a/src/Ryujinx/Assets/Locales/pl_PL.json
+++ b/src/Ryujinx/Assets/Locales/pl_PL.json
@@ -702,6 +702,9 @@
"Never": "Nigdy",
"SwkbdMinCharacters": "Musi mieć co najmniej {0} znaków",
"SwkbdMinRangeCharacters": "Musi mieć długość od {0}-{1} znaków",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Klawiatura Oprogramowania",
"SoftwareKeyboardModeNumeric": "Może składać się jedynie z 0-9 lub '.'",
"SoftwareKeyboardModeAlphabet": "Nie może zawierać znaków CJK",
diff --git a/src/Ryujinx/Assets/Locales/pt_BR.json b/src/Ryujinx/Assets/Locales/pt_BR.json
index 71992434b..676d89d96 100644
--- a/src/Ryujinx/Assets/Locales/pt_BR.json
+++ b/src/Ryujinx/Assets/Locales/pt_BR.json
@@ -701,6 +701,9 @@
"Never": "Nunca",
"SwkbdMinCharacters": "Deve ter pelo menos {0} caracteres",
"SwkbdMinRangeCharacters": "Deve ter entre {0}-{1} caracteres",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Teclado por Software",
"SoftwareKeyboardModeNumeric": "Deve ser somente 0-9 ou '.'",
"SoftwareKeyboardModeAlphabet": "Apenas devem ser caracteres não CJK.",
diff --git a/src/Ryujinx/Assets/Locales/ru_RU.json b/src/Ryujinx/Assets/Locales/ru_RU.json
index f0218ffcc..ea4dcc8c8 100644
--- a/src/Ryujinx/Assets/Locales/ru_RU.json
+++ b/src/Ryujinx/Assets/Locales/ru_RU.json
@@ -702,6 +702,9 @@
"Never": "Никогда",
"SwkbdMinCharacters": "Должно быть не менее {0} символов.",
"SwkbdMinRangeCharacters": "Должно быть {0}-{1} символов",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Программная клавиатура",
"SoftwareKeyboardModeNumeric": "Должно быть в диапазоне 0-9 или '.'",
"SoftwareKeyboardModeAlphabet": "Не должно быть CJK-символов",
diff --git a/src/Ryujinx/Assets/Locales/th_TH.json b/src/Ryujinx/Assets/Locales/th_TH.json
index 02ddda899..fa4c1d334 100644
--- a/src/Ryujinx/Assets/Locales/th_TH.json
+++ b/src/Ryujinx/Assets/Locales/th_TH.json
@@ -702,6 +702,9 @@
"Never": "ไม่ต้อง",
"SwkbdMinCharacters": "ต้องมีความยาวของตัวอักษรอย่างน้อย {0} ตัว",
"SwkbdMinRangeCharacters": "ต้องมีความยาวของตัวอักษร {0}-{1} ตัว",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "ซอฟต์แวร์คีย์บอร์ด",
"SoftwareKeyboardModeNumeric": "ต้องเป็น 0-9 หรือ '.' เท่านั้น",
"SoftwareKeyboardModeAlphabet": "ต้องเป็นตัวอักษรที่ไม่ใช่ประเภท CJK เท่านั้น",
diff --git a/src/Ryujinx/Assets/Locales/tr_TR.json b/src/Ryujinx/Assets/Locales/tr_TR.json
index a65064a38..475086e44 100644
--- a/src/Ryujinx/Assets/Locales/tr_TR.json
+++ b/src/Ryujinx/Assets/Locales/tr_TR.json
@@ -702,6 +702,9 @@
"Never": "Hiçbir Zaman",
"SwkbdMinCharacters": "En az {0} karakter uzunluğunda olmalı",
"SwkbdMinRangeCharacters": "{0}-{1} karakter uzunluğunda olmalı",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Yazılım Klavyesi",
"SoftwareKeyboardModeNumeric": "Sadece 0-9 veya '.' olabilir",
"SoftwareKeyboardModeAlphabet": "Sadece CJK-characters olmayan karakterler olabilir",
diff --git a/src/Ryujinx/Assets/Locales/uk_UA.json b/src/Ryujinx/Assets/Locales/uk_UA.json
index ef26ace65..68679a9b2 100644
--- a/src/Ryujinx/Assets/Locales/uk_UA.json
+++ b/src/Ryujinx/Assets/Locales/uk_UA.json
@@ -702,6 +702,9 @@
"Never": "Ніколи",
"SwkbdMinCharacters": "Мінімальна кількість символів: {0}",
"SwkbdMinRangeCharacters": "Має бути {0}-{1} символів",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "Програмна клавіатура",
"SoftwareKeyboardModeNumeric": "Повинно бути лише 0-9 або “.”",
"SoftwareKeyboardModeAlphabet": "Повинно бути лише не CJK-символи",
diff --git a/src/Ryujinx/Assets/Locales/zh_CN.json b/src/Ryujinx/Assets/Locales/zh_CN.json
index dc3f27b5a..741b5b370 100644
--- a/src/Ryujinx/Assets/Locales/zh_CN.json
+++ b/src/Ryujinx/Assets/Locales/zh_CN.json
@@ -702,6 +702,9 @@
"Never": "从不",
"SwkbdMinCharacters": "不少于 {0} 个字符",
"SwkbdMinRangeCharacters": "必须为 {0}-{1} 个字符",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "软键盘",
"SoftwareKeyboardModeNumeric": "只能输入 0-9 或 \".\"",
"SoftwareKeyboardModeAlphabet": "仅支持非中文字符",
diff --git a/src/Ryujinx/Assets/Locales/zh_TW.json b/src/Ryujinx/Assets/Locales/zh_TW.json
index c33885784..aaf8170c0 100644
--- a/src/Ryujinx/Assets/Locales/zh_TW.json
+++ b/src/Ryujinx/Assets/Locales/zh_TW.json
@@ -702,6 +702,9 @@
"Never": "從不",
"SwkbdMinCharacters": "長度必須至少為 {0} 個字元",
"SwkbdMinRangeCharacters": "長度必須為 {0} 到 {1} 個字元",
+ "CabinetTitle": "Cabinet Dialog",
+ "CabinetDialog": "Enter your Amiibo's new name",
+ "CabinetScanDialog": "Please scan your Amiibo now.",
"SoftwareKeyboard": "軟體鍵盤",
"SoftwareKeyboardModeNumeric": "必須是 0 到 9 或「.」",
"SoftwareKeyboardModeAlphabet": "必須是「非中日韓字元」 (non CJK)",
diff --git a/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs b/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs
index 2ebba7ac0..893ea95ac 100644
--- a/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs
+++ b/src/Ryujinx/UI/Applet/AvaHostUIHandler.cs
@@ -7,6 +7,7 @@ using Ryujinx.Ava.UI.Helpers;
using Ryujinx.Ava.UI.Windows;
using Ryujinx.HLE;
using Ryujinx.HLE.HOS.Applets;
+using Ryujinx.HLE.HOS.Applets.SoftwareKeyboard;
using Ryujinx.HLE.HOS.Services.Am.AppletOE.ApplicationProxyService.ApplicationProxy.Types;
using Ryujinx.HLE.UI;
using Ryujinx.UI.Common.Configuration;
@@ -155,6 +156,55 @@ namespace Ryujinx.Ava.UI.Applet
return error || okPressed;
}
+ public bool DisplayCabinetDialog(out string userText)
+ {
+ ManualResetEvent dialogCloseEvent = new(false);
+ bool okPressed = false;
+ string inputText = "My Amiibo";
+ Dispatcher.UIThread.InvokeAsync(async () =>
+ {
+ try
+ {
+ _parent.ViewModel.AppHost.NpadManager.BlockInputUpdates();
+ SoftwareKeyboardUIArgs args = new SoftwareKeyboardUIArgs();
+ args.KeyboardMode = KeyboardMode.Default;
+ args.InitialText = "Ryujinx";
+ args.StringLengthMin = 1;
+ args.StringLengthMax = 25;
+ (UserResult result, string userInput) = await SwkbdAppletDialog.ShowInputDialog(LocaleManager.Instance[LocaleKeys.CabinetDialog], args);
+ if (result == UserResult.Ok)
+ {
+ inputText = userInput;
+ okPressed = true;
+ }
+ }
+ finally
+ {
+ dialogCloseEvent.Set();
+ }
+ });
+ dialogCloseEvent.WaitOne();
+ _parent.ViewModel.AppHost.NpadManager.UnblockInputUpdates();
+ userText = inputText;
+ return okPressed;
+ }
+
+ public void DisplayCabinetMessageDialog()
+ {
+ ManualResetEvent dialogCloseEvent = new(false);
+ Dispatcher.UIThread.InvokeAsync(async () =>
+ {
+ dialogCloseEvent.Set();
+ await ContentDialogHelper.CreateInfoDialog(LocaleManager.Instance[LocaleKeys.CabinetScanDialog],
+ string.Empty,
+ LocaleManager.Instance[LocaleKeys.InputDialogOk],
+ string.Empty,
+ LocaleManager.Instance[LocaleKeys.CabinetTitle]);
+ });
+ dialogCloseEvent.WaitOne();
+ }
+
+
public void ExecuteProgram(Switch device, ProgramSpecifyKind kind, ulong value)
{
device.Configuration.UserChannelPersistence.ExecuteProgram(kind, value);
--
2.47.1
From 07690e452726d64054dca239fd3e0b0a6e333287 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Wed, 4 Dec 2024 02:24:40 -0600
Subject: [PATCH 048/674] chore: applets: Cleanup redundant ReadStruct
implementations & provide a default implementation for IApplet#GetResult.
---
src/Ryujinx.HLE/HOS/Applets/AppletManager.cs | 4 +---
.../HOS/Applets/Browser/BrowserApplet.cs | 7 -------
.../HOS/Applets/Cabinet/CabinetApplet.cs | 13 -------------
.../HOS/Applets/Controller/ControllerApplet.cs | 5 -----
src/Ryujinx.HLE/HOS/Applets/Dummy/DummyApplet.cs | 12 ++++--------
src/Ryujinx.HLE/HOS/Applets/Error/ErrorApplet.cs | 5 -----
src/Ryujinx.HLE/HOS/Applets/IApplet.cs | 2 +-
.../HOS/Applets/PlayerSelect/PlayerSelectApplet.cs | 5 -----
.../SoftwareKeyboard/SoftwareKeyboardApplet.cs | 5 -----
.../HOS/Applets/SoftwareKeyboard/TRef.cs | 2 +-
10 files changed, 7 insertions(+), 53 deletions(-)
diff --git a/src/Ryujinx.HLE/HOS/Applets/AppletManager.cs b/src/Ryujinx.HLE/HOS/Applets/AppletManager.cs
index a2ddd573d..5895c67bb 100644
--- a/src/Ryujinx.HLE/HOS/Applets/AppletManager.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/AppletManager.cs
@@ -24,11 +24,9 @@ namespace Ryujinx.HLE.HOS.Applets
case AppletId.SoftwareKeyboard:
return new SoftwareKeyboardApplet(system);
case AppletId.LibAppletWeb:
- return new BrowserApplet(system);
case AppletId.LibAppletShop:
- return new BrowserApplet(system);
case AppletId.LibAppletOff:
- return new BrowserApplet(system);
+ return new BrowserApplet();
case AppletId.MiiEdit:
Logger.Warning?.Print(LogClass.Application, $"Please use the MiiEdit inside File/Open Applet");
return new DummyApplet(system);
diff --git a/src/Ryujinx.HLE/HOS/Applets/Browser/BrowserApplet.cs b/src/Ryujinx.HLE/HOS/Applets/Browser/BrowserApplet.cs
index 6afbe4a72..c5f13dab3 100644
--- a/src/Ryujinx.HLE/HOS/Applets/Browser/BrowserApplet.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/Browser/BrowserApplet.cs
@@ -18,13 +18,6 @@ namespace Ryujinx.HLE.HOS.Applets.Browser
private List _arguments;
private ShimKind _shimKind;
- public BrowserApplet(Horizon system) { }
-
- public ResultCode GetResult()
- {
- return ResultCode.Success;
- }
-
public ResultCode Start(AppletSession normalSession, AppletSession interactiveSession)
{
_normalSession = normalSession;
diff --git a/src/Ryujinx.HLE/HOS/Applets/Cabinet/CabinetApplet.cs b/src/Ryujinx.HLE/HOS/Applets/Cabinet/CabinetApplet.cs
index f4f935d34..294b8d1f6 100644
--- a/src/Ryujinx.HLE/HOS/Applets/Cabinet/CabinetApplet.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/Cabinet/CabinetApplet.cs
@@ -125,19 +125,6 @@ namespace Ryujinx.HLE.HOS.Applets.Cabinet
return bytes;
}
- public static T ReadStruct(byte[] data) where T : unmanaged
- {
- if (data.Length < Unsafe.SizeOf())
- {
- throw new ArgumentException("Not enough data to read the struct");
- }
-
- fixed (byte* dataPtr = data)
- {
- return Unsafe.Read(dataPtr);
- }
- }
-
#region Structs
[StructLayout(LayoutKind.Sequential, Pack = 1)]
diff --git a/src/Ryujinx.HLE/HOS/Applets/Controller/ControllerApplet.cs b/src/Ryujinx.HLE/HOS/Applets/Controller/ControllerApplet.cs
index 5ec9d4b08..3a7b29ab5 100644
--- a/src/Ryujinx.HLE/HOS/Applets/Controller/ControllerApplet.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/Controller/ControllerApplet.cs
@@ -117,11 +117,6 @@ namespace Ryujinx.HLE.HOS.Applets
return ResultCode.Success;
}
- public ResultCode GetResult()
- {
- return ResultCode.Success;
- }
-
private static byte[] BuildResponse(ControllerSupportResultInfo result)
{
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
diff --git a/src/Ryujinx.HLE/HOS/Applets/Dummy/DummyApplet.cs b/src/Ryujinx.HLE/HOS/Applets/Dummy/DummyApplet.cs
index 75df7a373..6b16aee7b 100644
--- a/src/Ryujinx.HLE/HOS/Applets/Dummy/DummyApplet.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/Dummy/DummyApplet.cs
@@ -11,11 +11,14 @@ namespace Ryujinx.HLE.HOS.Applets.Dummy
{
private readonly Horizon _system;
private AppletSession _normalSession;
+
public event EventHandler AppletStateChanged;
+
public DummyApplet(Horizon system)
{
_system = system;
}
+
public ResultCode Start(AppletSession normalSession, AppletSession interactiveSession)
{
_normalSession = normalSession;
@@ -24,10 +27,7 @@ namespace Ryujinx.HLE.HOS.Applets.Dummy
_system.ReturnFocus();
return ResultCode.Success;
}
- private static T ReadStruct(byte[] data) where T : struct
- {
- return MemoryMarshal.Read(data.AsSpan());
- }
+
private static byte[] BuildResponse()
{
using MemoryStream stream = MemoryStreamManager.Shared.GetStream();
@@ -35,9 +35,5 @@ namespace Ryujinx.HLE.HOS.Applets.Dummy
writer.Write((ulong)ResultCode.Success);
return stream.ToArray();
}
- public ResultCode GetResult()
- {
- return ResultCode.Success;
- }
}
}
diff --git a/src/Ryujinx.HLE/HOS/Applets/Error/ErrorApplet.cs b/src/Ryujinx.HLE/HOS/Applets/Error/ErrorApplet.cs
index 87d88fc65..0e043cc45 100644
--- a/src/Ryujinx.HLE/HOS/Applets/Error/ErrorApplet.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/Error/ErrorApplet.cs
@@ -203,10 +203,5 @@ namespace Ryujinx.HLE.HOS.Applets.Error
_horizon.Device.UIHandler.DisplayErrorAppletDialog($"Error Number: {applicationErrorArg.ErrorNumber} (Details)", "\n" + detailsText, buttons.ToArray());
}
}
-
- public ResultCode GetResult()
- {
- return ResultCode.Success;
- }
}
}
diff --git a/src/Ryujinx.HLE/HOS/Applets/IApplet.cs b/src/Ryujinx.HLE/HOS/Applets/IApplet.cs
index bc5353841..4500b2f63 100644
--- a/src/Ryujinx.HLE/HOS/Applets/IApplet.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/IApplet.cs
@@ -13,7 +13,7 @@ namespace Ryujinx.HLE.HOS.Applets
ResultCode Start(AppletSession normalSession,
AppletSession interactiveSession);
- ResultCode GetResult();
+ ResultCode GetResult() => ResultCode.Success;
bool DrawTo(RenderingSurfaceInfo surfaceInfo, IVirtualMemoryManager destination, ulong position) => false;
diff --git a/src/Ryujinx.HLE/HOS/Applets/PlayerSelect/PlayerSelectApplet.cs b/src/Ryujinx.HLE/HOS/Applets/PlayerSelect/PlayerSelectApplet.cs
index ccc761ba1..05bddc76f 100644
--- a/src/Ryujinx.HLE/HOS/Applets/PlayerSelect/PlayerSelectApplet.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/PlayerSelect/PlayerSelectApplet.cs
@@ -37,11 +37,6 @@ namespace Ryujinx.HLE.HOS.Applets
return ResultCode.Success;
}
- public ResultCode GetResult()
- {
- return ResultCode.Success;
- }
-
private byte[] BuildResponse()
{
UserProfile currentUser = _system.AccountManager.LastOpenedUser;
diff --git a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs
index e04fc64fe..9ec202357 100644
--- a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/SoftwareKeyboardApplet.cs
@@ -144,11 +144,6 @@ namespace Ryujinx.HLE.HOS.Applets
}
}
- public ResultCode GetResult()
- {
- return ResultCode.Success;
- }
-
private bool IsKeyboardActive()
{
return _backgroundState >= InlineKeyboardState.Appearing && _backgroundState < InlineKeyboardState.Disappearing;
diff --git a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/TRef.cs b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/TRef.cs
index 32d9e68da..51571401f 100644
--- a/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/TRef.cs
+++ b/src/Ryujinx.HLE/HOS/Applets/SoftwareKeyboard/TRef.cs
@@ -2,7 +2,7 @@ namespace Ryujinx.HLE.HOS.Applets.SoftwareKeyboard
{
///
/// Wraps a type in a class so it gets stored in the GC managed heap. This is used as communication mechanism
- /// between classed that need to be disposed and, thus, can't share their references.
+ /// between classes that need to be disposed and, thus, can't share their references.
///
/// The internal type.
class TRef
--
2.47.1
From 1d0152b9617a8918c7db3d01873bbf46c546c969 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Wed, 4 Dec 2024 03:37:21 -0600
Subject: [PATCH 049/674] UI: Move Shader Compilation hint, graphics backend,
and GPU manufacturer to the right side of the status bar, next to firmware
version. Removed the "Game:" prefix in front of FPS.
---
Directory.Packages.props | 2 +-
.../LdnRyu/Proxy/P2pProxyServer.cs | 12 ++++-
src/Ryujinx/AppHost.cs | 2 +-
src/Ryujinx/Assets/Locales/ar_SA.json | 1 -
src/Ryujinx/Assets/Locales/de_DE.json | 1 -
src/Ryujinx/Assets/Locales/el_GR.json | 1 -
src/Ryujinx/Assets/Locales/en_US.json | 1 -
src/Ryujinx/Assets/Locales/es_ES.json | 1 -
src/Ryujinx/Assets/Locales/fr_FR.json | 1 -
src/Ryujinx/Assets/Locales/he_IL.json | 1 -
src/Ryujinx/Assets/Locales/it_IT.json | 1 -
src/Ryujinx/Assets/Locales/ja_JP.json | 1 -
src/Ryujinx/Assets/Locales/ko_KR.json | 1 -
src/Ryujinx/Assets/Locales/pl_PL.json | 1 -
src/Ryujinx/Assets/Locales/pt_BR.json | 1 -
src/Ryujinx/Assets/Locales/ru_RU.json | 1 -
src/Ryujinx/Assets/Locales/th_TH.json | 1 -
src/Ryujinx/Assets/Locales/tr_TR.json | 1 -
src/Ryujinx/Assets/Locales/uk_UA.json | 1 -
src/Ryujinx/Assets/Locales/zh_CN.json | 1 -
src/Ryujinx/Assets/Locales/zh_TW.json | 1 -
.../UI/ViewModels/MainWindowViewModel.cs | 10 ++---
.../UI/Views/Main/MainMenuBarView.axaml.cs | 3 +-
.../UI/Views/Main/MainStatusBarView.axaml | 45 +++++++++++--------
src/Ryujinx/UI/Windows/MainWindow.axaml.cs | 7 ++-
src/Ryujinx/Updater.cs | 11 +++--
26 files changed, 52 insertions(+), 58 deletions(-)
diff --git a/Directory.Packages.props b/Directory.Packages.props
index ffb5f2ead..7059af0e0 100644
--- a/Directory.Packages.props
+++ b/Directory.Packages.props
@@ -38,7 +38,7 @@
-
+
diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/LdnRyu/Proxy/P2pProxyServer.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/LdnRyu/Proxy/P2pProxyServer.cs
index 598fb654f..fbce5c10c 100644
--- a/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/LdnRyu/Proxy/P2pProxyServer.cs
+++ b/src/Ryujinx.HLE/HOS/Services/Ldn/UserServiceCreator/LdnRyu/Proxy/P2pProxyServer.cs
@@ -1,3 +1,5 @@
+using Gommon;
+using Humanizer;
using NetCoreServer;
using Open.Nat;
using Ryujinx.Common.Logging;
@@ -153,7 +155,10 @@ namespace Ryujinx.HLE.HOS.Services.Ldn.UserServiceCreator.LdnRyu.Proxy
if (_publicPort != 0)
{
- _ = Task.Delay(PortLeaseRenew * 1000, _disposedCancellation.Token).ContinueWith((task) => Task.Run(RefreshLease));
+ _ = Executor.ExecuteAfterDelayAsync(
+ PortLeaseRenew.Seconds(),
+ _disposedCancellation.Token,
+ RefreshLease);
}
_natDevice = device;
@@ -257,7 +262,10 @@ namespace Ryujinx.HLE.HOS.Services.Ldn.UserServiceCreator.LdnRyu.Proxy
}
- _ = Task.Delay(PortLeaseRenew, _disposedCancellation.Token).ContinueWith((task) => Task.Run(RefreshLease));
+ _ = Executor.ExecuteAfterDelayAsync(
+ PortLeaseRenew.Milliseconds(),
+ _disposedCancellation.Token,
+ RefreshLease);
}
public bool TryRegisterUser(P2pProxySession session, ExternalProxyConfig config)
diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs
index 5789737d6..9a7f82661 100644
--- a/src/Ryujinx/AppHost.cs
+++ b/src/Ryujinx/AppHost.cs
@@ -1137,7 +1137,7 @@ namespace Ryujinx.Ava
LocaleManager.Instance[LocaleKeys.VolumeShort] + $": {(int)(Device.GetVolume() * 100)}%",
dockedMode,
ConfigurationState.Instance.Graphics.AspectRatio.Value.ToText(),
- LocaleManager.Instance[LocaleKeys.Game] + $": {Device.Statistics.GetGameFrameRate():00.00} FPS ({Device.Statistics.GetGameFrameTime():00.00} ms)",
+ $"{Device.Statistics.GetGameFrameRate():00.00} FPS ({Device.Statistics.GetGameFrameTime():00.00} ms)",
$"FIFO: {Device.Statistics.GetFifoPercent():00.00} %",
_displayCount));
}
diff --git a/src/Ryujinx/Assets/Locales/ar_SA.json b/src/Ryujinx/Assets/Locales/ar_SA.json
index c1ee30f19..412695af6 100644
--- a/src/Ryujinx/Assets/Locales/ar_SA.json
+++ b/src/Ryujinx/Assets/Locales/ar_SA.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "إضافة ملفات جديدة...",
"UpdaterExtracting": "استخراج التحديث...",
"UpdaterDownloading": "تحميل التحديث...",
- "Game": "لعبة",
"Docked": "تركيب بالمنصة",
"Handheld": "محمول",
"ConnectionError": "خطأ في الاتصال",
diff --git a/src/Ryujinx/Assets/Locales/de_DE.json b/src/Ryujinx/Assets/Locales/de_DE.json
index e3f6b1be1..76e8dfadd 100644
--- a/src/Ryujinx/Assets/Locales/de_DE.json
+++ b/src/Ryujinx/Assets/Locales/de_DE.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "Neue Dateien hinzufügen...",
"UpdaterExtracting": "Update extrahieren...",
"UpdaterDownloading": "Update herunterladen...",
- "Game": "Spiel",
"Docked": "Docked",
"Handheld": "Handheld",
"ConnectionError": "Verbindungsfehler.",
diff --git a/src/Ryujinx/Assets/Locales/el_GR.json b/src/Ryujinx/Assets/Locales/el_GR.json
index e93e9310a..0409297ac 100644
--- a/src/Ryujinx/Assets/Locales/el_GR.json
+++ b/src/Ryujinx/Assets/Locales/el_GR.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "Προσθήκη Νέων Αρχείων...",
"UpdaterExtracting": "Εξαγωγή Ενημέρωσης...",
"UpdaterDownloading": "Λήψη Ενημέρωσης...",
- "Game": "Παιχνίδι",
"Docked": "Προσκολλημένο",
"Handheld": "Χειροκίνητο",
"ConnectionError": "Σφάλμα Σύνδεσης.",
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index ee0d03171..ba183c8bd 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -730,7 +730,6 @@
"UpdaterAddingFiles": "Adding New Files...",
"UpdaterExtracting": "Extracting Update...",
"UpdaterDownloading": "Downloading Update...",
- "Game": "Game",
"Docked": "Docked",
"Handheld": "Handheld",
"ConnectionError": "Connection Error.",
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index 0a68d44c6..b473b1197 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "Añadiendo nuevos archivos...",
"UpdaterExtracting": "Extrayendo actualización...",
"UpdaterDownloading": "Descargando actualización...",
- "Game": "Juego",
"Docked": "Dock/TV",
"Handheld": "Portátil",
"ConnectionError": "Error de conexión.",
diff --git a/src/Ryujinx/Assets/Locales/fr_FR.json b/src/Ryujinx/Assets/Locales/fr_FR.json
index 471dfbe5e..0223e322e 100644
--- a/src/Ryujinx/Assets/Locales/fr_FR.json
+++ b/src/Ryujinx/Assets/Locales/fr_FR.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "Ajout des nouveaux fichiers...",
"UpdaterExtracting": "Extraction de la mise à jour…",
"UpdaterDownloading": "Téléchargement de la mise à jour...",
- "Game": "Jeu",
"Docked": "Mode station d'accueil",
"Handheld": "Mode Portable",
"ConnectionError": "Erreur de connexion.",
diff --git a/src/Ryujinx/Assets/Locales/he_IL.json b/src/Ryujinx/Assets/Locales/he_IL.json
index dbacf5ea1..318068bf3 100644
--- a/src/Ryujinx/Assets/Locales/he_IL.json
+++ b/src/Ryujinx/Assets/Locales/he_IL.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "מוסיף קבצים חדשים...",
"UpdaterExtracting": "מחלץ עדכון...",
"UpdaterDownloading": "מוריד עדכון...",
- "Game": "משחק",
"Docked": "בתחנת עגינה",
"Handheld": "נייד",
"ConnectionError": "שגיאת חיבור",
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index 61ea2a355..5ca17bc2e 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "Aggiunta dei nuovi file...",
"UpdaterExtracting": "Estrazione dell'aggiornamento...",
"UpdaterDownloading": "Download dell'aggiornamento...",
- "Game": "Gioco",
"Docked": "TV",
"Handheld": "Portatile",
"ConnectionError": "Errore di connessione.",
diff --git a/src/Ryujinx/Assets/Locales/ja_JP.json b/src/Ryujinx/Assets/Locales/ja_JP.json
index 9acd1c486..ffa768c13 100644
--- a/src/Ryujinx/Assets/Locales/ja_JP.json
+++ b/src/Ryujinx/Assets/Locales/ja_JP.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "新規ファイルを追加中...",
"UpdaterExtracting": "アップデートを展開中...",
"UpdaterDownloading": "アップデートをダウンロード中...",
- "Game": "ゲーム",
"Docked": "ドッキング",
"Handheld": "携帯",
"ConnectionError": "接続エラー.",
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index 86592aa69..6b7140b3c 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "새 파일 추가...",
"UpdaterExtracting": "업데이트 추출...",
"UpdaterDownloading": "업데이트 내려받기 중...",
- "Game": "게임",
"Docked": "도킹",
"Handheld": "휴대",
"ConnectionError": "연결 오류가 발생했습니다.",
diff --git a/src/Ryujinx/Assets/Locales/pl_PL.json b/src/Ryujinx/Assets/Locales/pl_PL.json
index 1ed0988f9..d87453ef2 100644
--- a/src/Ryujinx/Assets/Locales/pl_PL.json
+++ b/src/Ryujinx/Assets/Locales/pl_PL.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "Dodawanie Nowych Plików...",
"UpdaterExtracting": "Wypakowywanie Aktualizacji...",
"UpdaterDownloading": "Pobieranie Aktualizacji...",
- "Game": "Gra",
"Docked": "Zadokowany",
"Handheld": "Przenośny",
"ConnectionError": "Błąd Połączenia.",
diff --git a/src/Ryujinx/Assets/Locales/pt_BR.json b/src/Ryujinx/Assets/Locales/pt_BR.json
index 676d89d96..c240bd804 100644
--- a/src/Ryujinx/Assets/Locales/pt_BR.json
+++ b/src/Ryujinx/Assets/Locales/pt_BR.json
@@ -717,7 +717,6 @@
"UpdaterAddingFiles": "Adicionando novos arquivos...",
"UpdaterExtracting": "Extraíndo atualização...",
"UpdaterDownloading": "Baixando atualização...",
- "Game": "Jogo",
"Docked": "TV",
"Handheld": "Portátil",
"ConnectionError": "Erro de conexão.",
diff --git a/src/Ryujinx/Assets/Locales/ru_RU.json b/src/Ryujinx/Assets/Locales/ru_RU.json
index ea4dcc8c8..1046208fb 100644
--- a/src/Ryujinx/Assets/Locales/ru_RU.json
+++ b/src/Ryujinx/Assets/Locales/ru_RU.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "Добавление новых файлов...",
"UpdaterExtracting": "Извлечение обновления...",
"UpdaterDownloading": "Загрузка обновления...",
- "Game": "Игра",
"Docked": "Стационарный режим",
"Handheld": "Портативный режим",
"ConnectionError": "Ошибка соединения",
diff --git a/src/Ryujinx/Assets/Locales/th_TH.json b/src/Ryujinx/Assets/Locales/th_TH.json
index fa4c1d334..e29004e10 100644
--- a/src/Ryujinx/Assets/Locales/th_TH.json
+++ b/src/Ryujinx/Assets/Locales/th_TH.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "กำลังเพิ่มไฟล์ใหม่...",
"UpdaterExtracting": "กำลังแยกการอัปเดต...",
"UpdaterDownloading": "กำลังดาวน์โหลดอัปเดต...",
- "Game": "เกมส์",
"Docked": "ด็อก",
"Handheld": "แฮนด์เฮลด์",
"ConnectionError": "การเชื่อมต่อล้มเหลว",
diff --git a/src/Ryujinx/Assets/Locales/tr_TR.json b/src/Ryujinx/Assets/Locales/tr_TR.json
index 475086e44..101206210 100644
--- a/src/Ryujinx/Assets/Locales/tr_TR.json
+++ b/src/Ryujinx/Assets/Locales/tr_TR.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "Yeni Dosyalar Ekleniyor...",
"UpdaterExtracting": "Güncelleme Ayrıştırılıyor...",
"UpdaterDownloading": "Güncelleme İndiriliyor...",
- "Game": "Oyun",
"Docked": "Docked",
"Handheld": "El tipi",
"ConnectionError": "Bağlantı Hatası.",
diff --git a/src/Ryujinx/Assets/Locales/uk_UA.json b/src/Ryujinx/Assets/Locales/uk_UA.json
index 68679a9b2..89e565bf3 100644
--- a/src/Ryujinx/Assets/Locales/uk_UA.json
+++ b/src/Ryujinx/Assets/Locales/uk_UA.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "Додавання нових файлів...",
"UpdaterExtracting": "Видобування оновлення...",
"UpdaterDownloading": "Завантаження оновлення...",
- "Game": "Гра",
"Docked": "Док-станція",
"Handheld": "Портативний",
"ConnectionError": "Помилка з'єднання.",
diff --git a/src/Ryujinx/Assets/Locales/zh_CN.json b/src/Ryujinx/Assets/Locales/zh_CN.json
index 741b5b370..66ac309de 100644
--- a/src/Ryujinx/Assets/Locales/zh_CN.json
+++ b/src/Ryujinx/Assets/Locales/zh_CN.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "安装更新中...",
"UpdaterExtracting": "正在提取更新...",
"UpdaterDownloading": "下载更新中...",
- "Game": "游戏",
"Docked": "主机模式",
"Handheld": "掌机模式",
"ConnectionError": "连接错误。",
diff --git a/src/Ryujinx/Assets/Locales/zh_TW.json b/src/Ryujinx/Assets/Locales/zh_TW.json
index aaf8170c0..792ced42b 100644
--- a/src/Ryujinx/Assets/Locales/zh_TW.json
+++ b/src/Ryujinx/Assets/Locales/zh_TW.json
@@ -718,7 +718,6 @@
"UpdaterAddingFiles": "正在加入新檔案...",
"UpdaterExtracting": "正在提取更新...",
"UpdaterDownloading": "正在下載更新...",
- "Game": "遊戲",
"Docked": "底座模式",
"Handheld": "手提模式",
"ConnectionError": "連線錯誤。",
diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
index 3672f8c71..1bfcd439b 100644
--- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
@@ -70,7 +70,7 @@ namespace Ryujinx.Ava.UI.ViewModels
private string _gpuStatusText;
private string _shaderCountText;
private bool _isAmiiboRequested;
- private bool _showRightmostSeparator;
+ private bool _showShaderCompilationHint;
private bool _isGameRunning;
private bool _isFullScreen;
private int _progressMaximum;
@@ -275,12 +275,12 @@ namespace Ryujinx.Ava.UI.ViewModels
public bool ShowFirmwareStatus => !ShowLoadProgress;
- public bool ShowRightmostSeparator
+ public bool ShowShaderCompilationHint
{
- get => _showRightmostSeparator;
+ get => _showShaderCompilationHint;
set
{
- _showRightmostSeparator = value;
+ _showShaderCompilationHint = value;
OnPropertyChanged();
}
@@ -1497,7 +1497,7 @@ namespace Ryujinx.Ava.UI.ViewModels
VolumeStatusText = args.VolumeStatus;
FifoStatusText = args.FifoStatus;
- ShaderCountText = (ShowRightmostSeparator = args.ShaderCount > 0)
+ ShaderCountText = (ShowShaderCompilationHint = args.ShaderCount > 0)
? $"{LocaleManager.Instance[LocaleKeys.CompilingShaders]}: {args.ShaderCount}"
: string.Empty;
diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
index 41b27e9c1..a3aa58f2c 100644
--- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
+++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
@@ -200,7 +200,6 @@ namespace Ryujinx.Ava.UI.Views.Main
await Dispatcher.UIThread.InvokeAsync(() =>
{
-
ViewModel.WindowState = WindowState.Normal;
Window.Arrange(new Rect(Window.Position.X, Window.Position.Y, windowWidthScaled, windowHeightScaled));
@@ -210,7 +209,7 @@ namespace Ryujinx.Ava.UI.Views.Main
public async void CheckForUpdates(object sender, RoutedEventArgs e)
{
if (Updater.CanUpdate(true))
- await Window.BeginUpdateAsync(true);
+ await Updater.BeginUpdateAsync(true);
}
public async void OpenXCITrimmerWindow(object sender, RoutedEventArgs e) => await XCITrimmerWindow.Show(ViewModel);
diff --git a/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml b/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml
index 597cf10e1..6e72a8b4b 100644
--- a/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml
+++ b/src/Ryujinx/UI/Views/Main/MainStatusBarView.axaml
@@ -23,7 +23,7 @@
Background="{DynamicResource ThemeContentBackgroundColor}"
DockPanel.Dock="Bottom"
IsVisible="{Binding ShowMenuAndStatusBar}"
- ColumnDefinitions="Auto,Auto,*,Auto">
+ ColumnDefinitions="Auto,Auto,*,Auto,Auto">
+
+
+
+ IsVisible="{Binding ShowShaderCompilationHint}" />
+
+
-
-
-
+ IsVisible="{Binding IsGameRunning}" />
diff --git a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
index 059f99a60..09c8b9448 100644
--- a/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
+++ b/src/Ryujinx/UI/Windows/MainWindow.axaml.cs
@@ -7,6 +7,7 @@ using Avalonia.Threading;
using DynamicData;
using FluentAvalonia.UI.Controls;
using FluentAvalonia.UI.Windowing;
+using Gommon;
using LibHac.Tools.FsSystem;
using Ryujinx.Ava.Common;
using Ryujinx.Ava.Common.Locale;
@@ -387,10 +388,8 @@ namespace Ryujinx.Ava.UI.Windows
if (ConfigurationState.Instance.CheckUpdatesOnStart && !CommandLineState.HideAvailableUpdates && Updater.CanUpdate())
{
- await this.BeginUpdateAsync()
- .ContinueWith(
- task => Logger.Error?.Print(LogClass.Application, $"Updater Error: {task.Exception}"),
- TaskContinuationOptions.OnlyOnFaulted);
+ await Updater.BeginUpdateAsync()
+ .Catch(task => Logger.Error?.Print(LogClass.Application, $"Updater Error: {task.Exception}"));
}
}
diff --git a/src/Ryujinx/Updater.cs b/src/Ryujinx/Updater.cs
index bdb44d668..6a1701208 100644
--- a/src/Ryujinx/Updater.cs
+++ b/src/Ryujinx/Updater.cs
@@ -1,4 +1,3 @@
-using Avalonia.Controls;
using Avalonia.Threading;
using FluentAvalonia.UI.Controls;
using Gommon;
@@ -51,7 +50,7 @@ namespace Ryujinx.Ava
private static readonly string[] _windowsDependencyDirs = [];
- public static async Task BeginUpdateAsync(this Window mainWindow, bool showVersionUpToDate = false)
+ public static async Task BeginUpdateAsync(bool showVersionUpToDate = false)
{
if (_running)
{
@@ -225,7 +224,7 @@ namespace Ryujinx.Ava
? $"Canary {currentVersion} -> Canary {newVersion}"
: $"{currentVersion} -> {newVersion}";
- RequestUserToUpdate:
+ RequestUserToUpdate:
// Show a message asking the user if they want to update
UserResult shouldUpdate = await ContentDialogHelper.CreateUpdaterChoiceDialog(
LocaleManager.Instance[LocaleKeys.RyujinxUpdater],
@@ -235,7 +234,7 @@ namespace Ryujinx.Ava
switch (shouldUpdate)
{
case UserResult.Yes:
- await UpdateRyujinx(mainWindow, _buildUrl);
+ await UpdateRyujinx(_buildUrl);
break;
// Secondary button maps to no, which in this case is the show changelog button.
case UserResult.No:
@@ -258,7 +257,7 @@ namespace Ryujinx.Ava
return result;
}
- private static async Task UpdateRyujinx(Window parent, string downloadUrl)
+ private static async Task UpdateRyujinx(string downloadUrl)
{
_updateSuccessful = false;
@@ -278,7 +277,7 @@ namespace Ryujinx.Ava
SubHeader = LocaleManager.Instance[LocaleKeys.UpdaterDownloading],
IconSource = new SymbolIconSource { Symbol = Symbol.Download },
ShowProgressBar = true,
- XamlRoot = parent,
+ XamlRoot = App.MainWindow,
};
taskDialog.Opened += (s, e) =>
--
2.47.1
From 000c1756de0851a2d4bd2f458e5e987c3cba66dd Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Fri, 6 Dec 2024 08:17:04 -0600
Subject: [PATCH 050/674] version 1.2 in Info.plist
---
distribution/macos/Info.plist | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/distribution/macos/Info.plist b/distribution/macos/Info.plist
index 53929f95e..2602f9905 100644
--- a/distribution/macos/Info.plist
+++ b/distribution/macos/Info.plist
@@ -40,11 +40,11 @@
CFBundlePackageTypeAPPLCFBundleShortVersionString
- 1.1
+ 1.2CFBundleSignature????CFBundleVersion
- 1.1.0
+ 1.2.0NSHighResolutionCapableCSResourcesFileMapped
--
2.47.1
From 3d168a8bfa7bd5a418b50ce7a82a7780d4c3b5f5 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Fri, 6 Dec 2024 08:18:24 -0600
Subject: [PATCH 051/674] direct errored updates to ryujinx.app
---
distribution/macos/updater.sh | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/distribution/macos/updater.sh b/distribution/macos/updater.sh
index 12e4c3aa1..0465d7c91 100755
--- a/distribution/macos/updater.sh
+++ b/distribution/macos/updater.sh
@@ -17,7 +17,7 @@ error_handler() {
set the button_pressed to the button returned of the result
if the button_pressed is \"Open Download Page\" then
- open location \"https://ryujinx.org/download\"
+ open location \"https://ryujinx.app/download\"
end if
"""
@@ -54,4 +54,4 @@ if [ "$#" -le 3 ]; then
open -a "$INSTALL_DIRECTORY"
else
open -a "$INSTALL_DIRECTORY" --args "${APP_ARGUMENTS[@]}"
-fi
\ No newline at end of file
+fi
--
2.47.1
From a1e6d11dcb0b125b1a953b5ba81d3b39aeecbff6 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Hack=E8=8C=B6=E3=82=93?=
<120134269+Hackjjang@users.noreply.github.com>
Date: Sat, 7 Dec 2024 00:18:09 +0900
Subject: [PATCH 052/674] Update Korean translation (#352)
---
src/Ryujinx/Assets/Locales/ko_KR.json | 14 +++++++-------
1 file changed, 7 insertions(+), 7 deletions(-)
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index 6b7140b3c..8731c8662 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -1,7 +1,7 @@
{
"Language": "한국어",
"MenuBarFileOpenApplet": "애플릿 열기",
- "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Mii 편집 애플릿",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "독립 실행형 모드로 Mii 편집기 애플릿 열기",
"SettingsTabInputDirectMouseAccess": "마우스 직접 접근",
"SettingsTabSystemMemoryManagerMode": "메모리 관리자 모드 :",
@@ -484,7 +484,7 @@
"DialogControllerAppletTitle": "컨트롤러 애플릿",
"DialogMessageDialogErrorExceptionMessage": "메시지 대화 상자 표시 오류 : {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "소프트웨어 키보드 표시 오류 : {0}",
- "DialogErrorAppletErrorExceptionMessage": "ErrorApplet 대화 상자 표시 오류 : {0}",
+ "DialogErrorAppletErrorExceptionMessage": "애플릿 오류류 대화 상자 표시 오류 : {0}",
"DialogUserErrorDialogMessage": "{0}: {1}",
"DialogUserErrorDialogInfoMessage": "\n이 오류를 해결하는 방법에 대한 자세한 내용은 설정 가이드를 참조하세요.",
"DialogUserErrorDialogTitle": "Ryujinx 오류 ({0})",
@@ -702,9 +702,9 @@
"Never": "절대 안 함",
"SwkbdMinCharacters": "{0}자 이상이어야 함",
"SwkbdMinRangeCharacters": "{0}-{1}자 길이여야 함",
- "CabinetTitle": "Cabinet Dialog",
- "CabinetDialog": "Enter your Amiibo's new name",
- "CabinetScanDialog": "Please scan your Amiibo now.",
+ "CabinetTitle": "캐비닛 대화 상자",
+ "CabinetDialog": "Amiibo의 새 이름 입력하기",
+ "CabinetScanDialog": "지금 Amiibo를 스캔하세요.",
"SoftwareKeyboard": "소프트웨어 키보드",
"SoftwareKeyboardModeNumeric": "0-9 또는 '.'만 가능",
"SoftwareKeyboardModeAlphabet": "CJK 문자가 아닌 문자만 가능",
@@ -781,8 +781,8 @@
"XCITrimmerDeselectDisplayed": "표시됨 선택 취소",
"XCITrimmerSortName": "타이틀",
"XCITrimmerSortSaved": "공간 절약s",
- "XCITrimmerTrim": "Trim",
- "XCITrimmerUntrim": "Untrim",
+ "XCITrimmerTrim": "트림",
+ "XCITrimmerUntrim": "언트림",
"UpdateWindowUpdateAddedMessage": "{0}개의 새 업데이트가 추가됨",
"UpdateWindowBundledContentNotice": "번들 업데이트는 제거할 수 없으며, 비활성화만 가능합니다.",
"CheatWindowHeading": "{0} [{1}]에 사용 가능한 치트",
--
2.47.1
From baad1e313f80bf53a20fc1ee04fdc716b1728bf1 Mon Sep 17 00:00:00 2001
From: Luke Warner <65521430+LukeWarnut@users.noreply.github.com>
Date: Fri, 6 Dec 2024 15:43:31 -0500
Subject: [PATCH 053/674] Stub Ldn.Lp2p.ISfService: 776 (DestroyGroup) (#353)
This prevents a crash in Mario Kart Live: Home Circuit that would occur
after exiting the kart pairing screen.
---
src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs
index d48a88978..8f9f0e3e4 100644
--- a/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs
+++ b/src/Ryujinx.HLE/HOS/Services/Ldn/Lp2p/ISfService.cs
@@ -24,6 +24,15 @@ namespace Ryujinx.HLE.HOS.Services.Ldn.Lp2p
return ResultCode.Success;
}
+ [CommandCmif(776)]
+ // DestroyGroup()
+ public ResultCode DestroyGroup(ServiceCtx context)
+ {
+ Logger.Stub?.PrintStub(LogClass.ServiceLdn);
+
+ return ResultCode.Success;
+ }
+
[CommandCmif(1536)]
// SendToOtherGroup(nn::lp2p::MacAddress, nn::lp2p::GroupId, s16, s16, u32, buffer)
public ResultCode SendToOtherGroup(ServiceCtx context)
--
2.47.1
From 0bc1eddaebc03d790fa0c16729382967f7f229dc Mon Sep 17 00:00:00 2001
From: maxdlpee <77379259+maxdlpee@users.noreply.github.com>
Date: Sat, 7 Dec 2024 00:57:35 -0300
Subject: [PATCH 054/674] Update Spanish translation (#332)
- Added translations for XCI trimmer
- Added translations for Cabinet applet
- Added translations for Keys installer
- Other miscellaneous translations added
---
src/Ryujinx/Assets/Locales/es_ES.json | 108 +++++++++++++-------------
1 file changed, 54 insertions(+), 54 deletions(-)
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index b473b1197..934031c72 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -1,7 +1,7 @@
{
"Language": "Español (ES)",
"MenuBarFileOpenApplet": "Abrir applet",
- "MenuBarFileOpenAppletOpenMiiApplet": "Mii Edit Applet",
+ "MenuBarFileOpenAppletOpenMiiApplet": "Applet Editor Mii",
"MenuBarFileOpenAppletOpenMiiAppletToolTip": "Abre el editor de Mii en modo autónomo",
"SettingsTabInputDirectMouseAccess": "Acceso directo al ratón",
"SettingsTabSystemMemoryManagerMode": "Modo del administrador de memoria:",
@@ -32,12 +32,12 @@
"MenuBarFileToolsInstallFirmwareFromFile": "Instalar firmware desde un archivo XCI o ZIP",
"MenuBarFileToolsInstallFirmwareFromDirectory": "Instalar firmware desde una carpeta",
"MenuBarToolsInstallKeys": "Install Keys",
- "MenuBarFileToolsInstallKeysFromFile": "Install keys from KEYS or ZIP",
- "MenuBarFileToolsInstallKeysFromFolder": "Install keys from a directory",
+ "MenuBarFileToolsInstallKeysFromFile": "Instalar keys de KEYS o ZIP",
+ "MenuBarFileToolsInstallKeysFromFolder": "Instalar keys de un directorio",
"MenuBarToolsManageFileTypes": "Administrar tipos de archivo",
"MenuBarToolsInstallFileTypes": "Instalar tipos de archivo",
"MenuBarToolsUninstallFileTypes": "Desinstalar tipos de archivo",
- "MenuBarToolsXCITrimmer": "Trim XCI Files",
+ "MenuBarToolsXCITrimmer": "Recortar archivos XCI",
"MenuBarView": "_View",
"MenuBarViewWindow": "Tamaño Ventana",
"MenuBarViewWindow720": "720p",
@@ -89,11 +89,11 @@
"GameListContextMenuOpenModsDirectoryToolTip": "Abre el directorio que contiene los Mods de la Aplicación.",
"GameListContextMenuOpenSdModsDirectory": "Abrir Directorio de Mods de Atmosphere\n\n\n\n\n\n",
"GameListContextMenuOpenSdModsDirectoryToolTip": "Abre el directorio alternativo de la tarjeta SD de Atmosphere que contiene los Mods de la Aplicación. Útil para los mods que están empaquetados para el hardware real.",
- "GameListContextMenuTrimXCI": "Check and Trim XCI File",
- "GameListContextMenuTrimXCIToolTip": "Check and Trim XCI File to Save Disk Space",
+ "GameListContextMenuTrimXCI": "Verificar y recortar archivo XCI",
+ "GameListContextMenuTrimXCIToolTip": "Verificar y recortar archivo XCI para ahorrar espacio en disco",
"StatusBarGamesLoaded": "{0}/{1} juegos cargados",
"StatusBarSystemVersion": "Versión del sistema: {0}",
- "StatusBarXCIFileTrimming": "Trimming XCI File '{0}'",
+ "StatusBarXCIFileTrimming": "Recortando el siguiente archivo XCI: '{0}'",
"LinuxVmMaxMapCountDialogTitle": "Límite inferior para mapeos de memoria detectado",
"LinuxVmMaxMapCountDialogTextPrimary": "¿Quieres aumentar el valor de vm.max_map_count a {0}?",
"LinuxVmMaxMapCountDialogTextSecondary": "Algunos juegos podrían intentar crear más mapeos de memoria de los permitidos. Ryujinx se bloqueará tan pronto como se supere este límite.",
@@ -480,7 +480,7 @@
"DialogUninstallFileTypesSuccessMessage": "¡Tipos de archivos desinstalados con éxito!",
"DialogUninstallFileTypesErrorMessage": "No se pudo desinstalar los tipos de archivo.",
"DialogOpenSettingsWindowLabel": "Abrir ventana de opciones",
- "DialogOpenXCITrimmerWindowLabel": "XCI Trimmer Window",
+ "DialogOpenXCITrimmerWindowLabel": "Ventana recortador XCI",
"DialogControllerAppletTitle": "Applet de mandos",
"DialogMessageDialogErrorExceptionMessage": "Error al mostrar cuadro de diálogo: {0}",
"DialogSoftwareKeyboardErrorExceptionMessage": "Error al mostrar teclado de software: {0}",
@@ -509,13 +509,13 @@
"DialogFirmwareInstallerFirmwareInstallConfirmMessage": "\n\n¿Continuar?",
"DialogFirmwareInstallerFirmwareInstallWaitMessage": "Instalando firmware...",
"DialogFirmwareInstallerFirmwareInstallSuccessMessage": "Versión de sistema {0} instalada con éxito.",
- "DialogKeysInstallerKeysNotFoundErrorMessage": "An invalid Keys file was found in {0}",
- "DialogKeysInstallerKeysInstallTitle": "Install Keys",
- "DialogKeysInstallerKeysInstallMessage": "New Keys file will be installed.",
- "DialogKeysInstallerKeysInstallSubMessage": "\n\nThis may replace some of the current installed Keys.",
- "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDo you want to continue?",
- "DialogKeysInstallerKeysInstallWaitMessage": "Installing Keys...",
- "DialogKeysInstallerKeysInstallSuccessMessage": "New Keys file successfully installed.",
+ "DialogKeysInstallerKeysNotFoundErrorMessage": "Se halló un archivo Keys inválido en {0}",
+ "DialogKeysInstallerKeysInstallTitle": "Instalar Keys",
+ "DialogKeysInstallerKeysInstallMessage": "Un nuevo archivo Keys será instalado.",
+ "DialogKeysInstallerKeysInstallSubMessage": "\n\nEsto puede reemplazar algunas de las Keys actualmente instaladas.",
+ "DialogKeysInstallerKeysInstallConfirmMessage": "\n\nDeseas continuar?",
+ "DialogKeysInstallerKeysInstallWaitMessage": "Instalando Keys...",
+ "DialogKeysInstallerKeysInstallSuccessMessage": "Nuevo archivo Keys instalado con éxito.",
"DialogUserProfileDeletionWarningMessage": "Si eliminas el perfil seleccionado no quedará ningún otro perfil",
"DialogUserProfileDeletionConfirmMessage": "¿Quieres eliminar el perfil seleccionado?",
"DialogUserProfileUnsavedChangesTitle": "Advertencia - Cambios sin guardar",
@@ -688,23 +688,23 @@
"OpenSetupGuideMessage": "Abrir la guía de instalación",
"NoUpdate": "No actualizado",
"TitleUpdateVersionLabel": "Versión {0} - {1}",
- "TitleBundledUpdateVersionLabel": "Bundled: Version {0}",
- "TitleBundledDlcLabel": "Bundled:",
- "TitleXCIStatusPartialLabel": "Partial",
- "TitleXCIStatusTrimmableLabel": "Untrimmed",
- "TitleXCIStatusUntrimmableLabel": "Trimmed",
- "TitleXCIStatusFailedLabel": "(Failed)",
- "TitleXCICanSaveLabel": "Save {0:n0} Mb",
- "TitleXCISavingLabel": "Saved {0:n0} Mb",
+ "TitleBundledUpdateVersionLabel": "Incorporado: Versión {0}",
+ "TitleBundledDlcLabel": "Incorporado:",
+ "TitleXCIStatusPartialLabel": "Parcial",
+ "TitleXCIStatusTrimmableLabel": "Sin recortar",
+ "TitleXCIStatusUntrimmableLabel": "Recortado",
+ "TitleXCIStatusFailedLabel": "(Fallido)",
+ "TitleXCICanSaveLabel": "Ahorra {0:n0} Mb",
+ "TitleXCISavingLabel": "{0:n0} Mb ahorrado(s)",
"RyujinxInfo": "Ryujinx - Info",
"RyujinxConfirm": "Ryujinx - Confirmación",
"FileDialogAllTypes": "Todos los tipos",
"Never": "Nunca",
"SwkbdMinCharacters": "Debe tener al menos {0} caracteres",
"SwkbdMinRangeCharacters": "Debe tener {0}-{1} caracteres",
- "CabinetTitle": "Cabinet Dialog",
- "CabinetDialog": "Enter your Amiibo's new name",
- "CabinetScanDialog": "Please scan your Amiibo now.",
+ "CabinetTitle": "Diálogo Gabinete",
+ "CabinetDialog": "Ingresa el nuevo nombre de tu Amiibo",
+ "CabinetScanDialog": "Escanea tu Amiibo ahora.",
"SoftwareKeyboard": "Teclado de software",
"SoftwareKeyboardModeNumeric": "Debe ser sólo 0-9 o '.'",
"SoftwareKeyboardModeAlphabet": "Solo deben ser caracteres no CJK",
@@ -750,39 +750,39 @@
"SelectDlcDialogTitle": "Selecciona archivo(s) de DLC",
"SelectUpdateDialogTitle": "Selecciona archivo(s) de actualización",
"SelectModDialogTitle": "Seleccionar un directorio de Mods",
- "TrimXCIFileDialogTitle": "Check and Trim XCI File",
- "TrimXCIFileDialogPrimaryText": "This function will first check the empty space and then trim the XCI File to save disk space.",
- "TrimXCIFileDialogSecondaryText": "Current File Size: {0:n} MB\nGame Data Size: {1:n} MB\nDisk Space Savings: {2:n} MB",
- "TrimXCIFileNoTrimNecessary": "XCI File does not need to be trimmed. Check logs for further details",
- "TrimXCIFileNoUntrimPossible": "XCI File cannot be untrimmed. Check logs for further details",
- "TrimXCIFileReadOnlyFileCannotFix": "XCI File is Read Only and could not be made writable. Check logs for further details",
- "TrimXCIFileFileSizeChanged": "XCI File has changed in size since it was scanned. Please check the file is not being written to and try again.",
- "TrimXCIFileFreeSpaceCheckFailed": "XCI File has data in the free space area, it is not safe to trim",
- "TrimXCIFileInvalidXCIFile": "XCI File contains invalid data. Check logs for further details",
- "TrimXCIFileFileIOWriteError": "XCI File could not be opened for writing. Check logs for further details",
- "TrimXCIFileFailedPrimaryText": "Trimming of the XCI file failed",
- "TrimXCIFileCancelled": "The operation was cancelled",
- "TrimXCIFileFileUndertermined": "No operation was performed",
+ "TrimXCIFileDialogTitle": "Verificar y recortar archivo XCI",
+ "TrimXCIFileDialogPrimaryText": "Esta función verificará el espacio vacío y después recortará el archivo XCI para ahorrar espacio en disco",
+ "TrimXCIFileDialogSecondaryText": "Tamaño de archivo actual: {0:n} MB\nTamaño de datos de juego: {1:n} MB\nAhorro de espacio en disco: {2:n} MB",
+ "TrimXCIFileNoTrimNecessary": "El archivo XCI no necesita ser recortado. Verifica los logs para más detalles.",
+ "TrimXCIFileNoUntrimPossible": "El recorte del archivo XCI no puede ser deshecho. Verifica los registros para más detalles.",
+ "TrimXCIFileReadOnlyFileCannotFix": "El archivo XCI es de solo Lectura y no se le puede escribir. Lee el registro para más información.",
+ "TrimXCIFileFileSizeChanged": "El archivo XCI ha cambiado de tamaño desde que fue escaneado. Verifica que no se esté escribiendo al archivo y vuelve a intentarlo.",
+ "TrimXCIFileFreeSpaceCheckFailed": "El archivo XCI tiene datos en el área de espacio libre, no es seguro recortar.",
+ "TrimXCIFileInvalidXCIFile": "El archivo XCI contiene datos inválidos. Lee el registro para más información.",
+ "TrimXCIFileFileIOWriteError": "El archivo XCI no se puede abrir para escribirlo. Lee el registro para más información.",
+ "TrimXCIFileFailedPrimaryText": "El recorte del archivo XCI falló",
+ "TrimXCIFileCancelled": "La operación fue cancelada",
+ "TrimXCIFileFileUndertermined": "No se realizó ninguna operación",
"UserProfileWindowTitle": "Administrar perfiles de usuario",
"CheatWindowTitle": "Administrar cheats",
"DlcWindowTitle": "Administrar contenido descargable",
"ModWindowTitle": "Administrar Mods para {0} ({1})",
"UpdateWindowTitle": "Administrar actualizaciones",
- "XCITrimmerWindowTitle": "XCI File Trimmer",
- "XCITrimmerTitleStatusCount": "{0} of {1} Title(s) Selected",
- "XCITrimmerTitleStatusCountWithFilter": "{0} of {1} Title(s) Selected ({2} displayed)",
- "XCITrimmerTitleStatusTrimming": "Trimming {0} Title(s)...",
- "XCITrimmerTitleStatusUntrimming": "Untrimming {0} Title(s)...",
- "XCITrimmerTitleStatusFailed": "Failed",
- "XCITrimmerPotentialSavings": "Potential Savings",
- "XCITrimmerActualSavings": "Actual Savings",
+ "XCITrimmerWindowTitle": "Recortador de archivos XCI",
+ "XCITrimmerTitleStatusCount": "{0} de {1} Título(s) seleccionado(s)",
+ "XCITrimmerTitleStatusCountWithFilter": "{0} de {1} Título(s) seleccionado(s) ({2} mostrado(s))",
+ "XCITrimmerTitleStatusTrimming": "Recortando {0} Título(s)...",
+ "XCITrimmerTitleStatusUntrimming": "Deshaciendo recorte de {0} Título(s)...",
+ "XCITrimmerTitleStatusFailed": "Fallido",
+ "XCITrimmerPotentialSavings": "Ahorro potencial",
+ "XCITrimmerActualSavings": "Ahorro real",
"XCITrimmerSavingsMb": "{0:n0} Mb",
- "XCITrimmerSelectDisplayed": "Select Shown",
- "XCITrimmerDeselectDisplayed": "Deselect Shown",
- "XCITrimmerSortName": "Title",
- "XCITrimmerSortSaved": "Space Savings",
- "XCITrimmerTrim": "Trim",
- "XCITrimmerUntrim": "Untrim",
+ "XCITrimmerSelectDisplayed": "Seleccionar mostrado(s)",
+ "XCITrimmerDeselectDisplayed": "Deseleccionar mostrado(s)",
+ "XCITrimmerSortName": "Título",
+ "XCITrimmerSortSaved": "Ahorro de espacio",
+ "XCITrimmerTrim": "Recortar",
+ "XCITrimmerUntrim": "Deshacer recorte",
"UpdateWindowUpdateAddedMessage": "{0} nueva(s) actualización(es) agregada(s)",
"UpdateWindowBundledContentNotice": "Las actualizaciones agrupadas no pueden ser eliminadas, solamente deshabilitadas.",
"CheatWindowHeading": "Cheats disponibles para {0} [{1}]",
@@ -795,7 +795,7 @@
"AutoloadUpdateRemovedMessage": "Se eliminaron {0} actualización(es) faltantes",
"ModWindowHeading": "{0} Mod(s)",
"UserProfilesEditProfile": "Editar selección",
- "Continue": "Continue",
+ "Continue": "Continuar",
"Cancel": "Cancelar",
"Save": "Guardar",
"Discard": "Descartar",
--
2.47.1
From d00754477eab8ec47ed3824d96b3a766dfe93bc2 Mon Sep 17 00:00:00 2001
From: WilliamWsyHK
Date: Sat, 7 Dec 2024 18:03:01 +0800
Subject: [PATCH 055/674] Add Firmware keyword in log if it is indeed firmware
(#343)
Co-authored-by: LotP1
---
.../Processes/Extensions/NcaExtensions.cs | 6 ++++-
.../Loaders/Processes/ProcessLoader.cs | 4 +--
.../Loaders/Processes/ProcessResult.cs | 13 ++++++---
src/Ryujinx.HLE/Switch.cs | 4 ++-
src/Ryujinx/AppHost.cs | 6 +++--
.../UI/ViewModels/MainWindowViewModel.cs | 5 ++--
.../UI/Views/Main/MainMenuBarView.axaml.cs | 27 ++++++++++++++++---
7 files changed, 50 insertions(+), 15 deletions(-)
diff --git a/src/Ryujinx.HLE/Loaders/Processes/Extensions/NcaExtensions.cs b/src/Ryujinx.HLE/Loaders/Processes/Extensions/NcaExtensions.cs
index 2928ac7fe..361a9159e 100644
--- a/src/Ryujinx.HLE/Loaders/Processes/Extensions/NcaExtensions.cs
+++ b/src/Ryujinx.HLE/Loaders/Processes/Extensions/NcaExtensions.cs
@@ -26,7 +26,7 @@ namespace Ryujinx.HLE.Loaders.Processes.Extensions
{
private static readonly TitleUpdateMetadataJsonSerializerContext _applicationSerializerContext = new(JsonHelper.GetDefaultSerializerOptions());
- public static ProcessResult Load(this Nca nca, Switch device, Nca patchNca, Nca controlNca)
+ public static ProcessResult Load(this Nca nca, Switch device, Nca patchNca, Nca controlNca, BlitStruct? customNacpData = null)
{
// Extract RomFs and ExeFs from NCA.
IStorage romFs = nca.GetRomFs(device, patchNca);
@@ -55,6 +55,10 @@ namespace Ryujinx.HLE.Loaders.Processes.Extensions
{
nacpData = controlNca.GetNacp(device);
}
+ else if (customNacpData != null) // if the Application doesn't provide a nacp file but the Application provides an override, use the provided nacp override
+ {
+ nacpData = (BlitStruct)customNacpData;
+ }
/* TODO: Rework this since it's wrong and doesn't work as it takes the DisplayVersion from a "potential" non-existent update.
diff --git a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs
index a0e7e0fa1..fe8360f04 100644
--- a/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs
+++ b/src/Ryujinx.HLE/Loaders/Processes/ProcessLoader.cs
@@ -98,12 +98,12 @@ namespace Ryujinx.HLE.Loaders.Processes
return false;
}
- public bool LoadNca(string path)
+ public bool LoadNca(string path, BlitStruct? customNacpData = null)
{
FileStream file = new(path, FileMode.Open, FileAccess.Read);
Nca nca = new(_device.Configuration.VirtualFileSystem.KeySet, file.AsStorage(false));
- ProcessResult processResult = nca.Load(_device, null, null);
+ ProcessResult processResult = nca.Load(_device, null, null, customNacpData);
if (processResult.ProcessId != 0 && _processesByPid.TryAdd(processResult.ProcessId, processResult))
{
diff --git a/src/Ryujinx.HLE/Loaders/Processes/ProcessResult.cs b/src/Ryujinx.HLE/Loaders/Processes/ProcessResult.cs
index e187b2360..3a7042670 100644
--- a/src/Ryujinx.HLE/Loaders/Processes/ProcessResult.cs
+++ b/src/Ryujinx.HLE/Loaders/Processes/ProcessResult.cs
@@ -84,12 +84,19 @@ namespace Ryujinx.HLE.Loaders.Processes
return false;
}
+ bool isFirmware = ProgramId is >= 0x0100000000000819 and <= 0x010000000000081C;
+ bool isFirmwareApplication = ProgramId <= 0x0100000000007FFF;
+
+ string name = !isFirmware
+ ? (isFirmwareApplication ? "Firmware Application " : "") + (!string.IsNullOrWhiteSpace(Name) ? Name : "")
+ : "Firmware";
+
// TODO: LibHac npdm currently doesn't support version field.
- string version = ProgramId > 0x0100000000007FFF
- ? DisplayVersion
+ string version = !isFirmware
+ ? (!string.IsNullOrWhiteSpace(DisplayVersion) ? DisplayVersion : "")
: device.System.ContentManager.GetCurrentFirmwareVersion()?.VersionString ?? "?";
- Logger.Info?.Print(LogClass.Loader, $"Application Loaded: {Name} v{version} [{ProgramIdText}] [{(Is64Bit ? "64-bit" : "32-bit")}]");
+ Logger.Info?.Print(LogClass.Loader, $"Application Loaded: {name} v{version} [{ProgramIdText}] [{(Is64Bit ? "64-bit" : "32-bit")}]");
return true;
}
diff --git a/src/Ryujinx.HLE/Switch.cs b/src/Ryujinx.HLE/Switch.cs
index 466352152..d0afdf173 100644
--- a/src/Ryujinx.HLE/Switch.cs
+++ b/src/Ryujinx.HLE/Switch.cs
@@ -1,3 +1,5 @@
+using LibHac.Common;
+using LibHac.Ns;
using Ryujinx.Audio.Backends.CompatLayer;
using Ryujinx.Audio.Integration;
using Ryujinx.Common.Configuration;
@@ -111,7 +113,7 @@ namespace Ryujinx.HLE
public bool LoadCart(string exeFsDir, string romFsFile = null) => Processes.LoadUnpackedNca(exeFsDir, romFsFile);
public bool LoadXci(string xciFile, ulong applicationId = 0) => Processes.LoadXci(xciFile, applicationId);
- public bool LoadNca(string ncaFile) => Processes.LoadNca(ncaFile);
+ public bool LoadNca(string ncaFile, BlitStruct? customNacpData = null) => Processes.LoadNca(ncaFile, customNacpData);
public bool LoadNsp(string nspFile, ulong applicationId = 0) => Processes.LoadNsp(nspFile, applicationId);
public bool LoadProgram(string fileName) => Processes.LoadNxo(fileName);
diff --git a/src/Ryujinx/AppHost.cs b/src/Ryujinx/AppHost.cs
index 9a7f82661..65c798ac2 100644
--- a/src/Ryujinx/AppHost.cs
+++ b/src/Ryujinx/AppHost.cs
@@ -3,6 +3,8 @@ using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
using Avalonia.Input;
using Avalonia.Threading;
+using LibHac.Common;
+using LibHac.Ns;
using LibHac.Tools.FsSystem;
using Ryujinx.Audio.Backends.Dummy;
using Ryujinx.Audio.Backends.OpenAL;
@@ -670,7 +672,7 @@ namespace Ryujinx.Ava
_cursorState = CursorStates.ForceChangeCursor;
}
- public async Task LoadGuestApplication()
+ public async Task LoadGuestApplication(BlitStruct? customNacpData = null)
{
InitializeSwitchInstance();
MainWindow.UpdateGraphicsConfig();
@@ -740,7 +742,7 @@ namespace Ryujinx.Ava
{
Logger.Info?.Print(LogClass.Application, "Loading as Firmware Title (NCA).");
- if (!Device.LoadNca(ApplicationPath))
+ if (!Device.LoadNca(ApplicationPath, customNacpData))
{
Device.Dispose();
diff --git a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
index 1bfcd439b..04db947b9 100644
--- a/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
+++ b/src/Ryujinx/UI/ViewModels/MainWindowViewModel.cs
@@ -10,6 +10,7 @@ using DynamicData;
using DynamicData.Binding;
using FluentAvalonia.UI.Controls;
using LibHac.Common;
+using LibHac.Ns;
using Ryujinx.Ava.Common;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.Input;
@@ -1897,7 +1898,7 @@ namespace Ryujinx.Ava.UI.ViewModels
}
}
- public async Task LoadApplication(ApplicationData application, bool startFullscreen = false)
+ public async Task LoadApplication(ApplicationData application, bool startFullscreen = false, BlitStruct? customNacpData = null)
{
if (AppHost != null)
{
@@ -1935,7 +1936,7 @@ namespace Ryujinx.Ava.UI.ViewModels
this,
TopLevel);
- if (!await AppHost.LoadGuestApplication())
+ if (!await AppHost.LoadGuestApplication(customNacpData))
{
AppHost.DisposeContext();
AppHost = null;
diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
index a3aa58f2c..94f5cf9d3 100644
--- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
+++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
@@ -3,7 +3,9 @@ using Avalonia.Controls;
using Avalonia.Interactivity;
using Avalonia.Threading;
using Gommon;
+using LibHac.Common;
using LibHac.Ncm;
+using LibHac.Ns;
using LibHac.Tools.FsSystem.NcaUtils;
using Ryujinx.Ava.Common.Locale;
using Ryujinx.Ava.UI.Helpers;
@@ -19,6 +21,7 @@ using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
+using System.Text;
namespace Ryujinx.Ava.UI.Views.Main
{
@@ -123,18 +126,34 @@ namespace Ryujinx.Ava.UI.Views.Main
public async void OpenMiiApplet(object sender, RoutedEventArgs e)
{
- string contentPath = ViewModel.ContentManager.GetInstalledContentPath(0x0100000000001009, StorageId.BuiltInSystem, NcaContentType.Program);
+ const string name = "miiEdit";
+ const ulong programId = 0x0100000000001009;
+ string contentPath = ViewModel.ContentManager.GetInstalledContentPath(programId, StorageId.BuiltInSystem, NcaContentType.Program);
if (!string.IsNullOrEmpty(contentPath))
{
ApplicationData applicationData = new()
{
- Name = "miiEdit",
- Id = 0x0100000000001009,
+ Name = name,
+ Id = programId,
Path = contentPath,
};
- await ViewModel.LoadApplication(applicationData, ViewModel.IsFullScreen || ViewModel.StartGamesInFullscreen);
+ string version = "1.0.0";
+ var nacpData = new BlitStruct(1);
+
+ //version buffer
+ Encoding.ASCII.GetBytes(version).AsSpan().CopyTo(nacpData.ByteSpan.Slice(0x3060));
+
+ //name and distributor buffer
+ //repeat once for each locale (the ApplicationControlProperty has 16 locales)
+ for (int i = 0; i < 0x10; i++)
+ {
+ Encoding.ASCII.GetBytes(name).AsSpan().CopyTo(nacpData.ByteSpan.Slice(i * 0x300));
+ "Ryujinx"u8.ToArray().AsSpan().CopyTo(nacpData.ByteSpan.Slice(i * 0x300 + 0x200));
+ }
+
+ await ViewModel.LoadApplication(applicationData, ViewModel.IsFullScreen || ViewModel.StartGamesInFullscreen, nacpData);
}
}
--
2.47.1
From 5fbcb1f3a7b7f18a120db350f6b1fb3bd6cb305d Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Sat, 7 Dec 2024 04:05:39 -0600
Subject: [PATCH 056/674] misc: chore: Cleanups & unused parameter removal
---
.../Controller/JoyconConfigControllerStick.cs | 4 +-
.../App/ApplicationLibrary.cs | 39 +++++++------------
.../Configuration/ConfigurationState.cs | 8 +---
.../Helper/DownloadableContentsHelper.cs | 2 +-
.../Helper/TitleUpdatesHelper.cs | 2 +-
5 files changed, 22 insertions(+), 33 deletions(-)
diff --git a/src/Ryujinx.Common/Configuration/Hid/Controller/JoyconConfigControllerStick.cs b/src/Ryujinx.Common/Configuration/Hid/Controller/JoyconConfigControllerStick.cs
index 608681551..076530744 100644
--- a/src/Ryujinx.Common/Configuration/Hid/Controller/JoyconConfigControllerStick.cs
+++ b/src/Ryujinx.Common/Configuration/Hid/Controller/JoyconConfigControllerStick.cs
@@ -1,6 +1,8 @@
namespace Ryujinx.Common.Configuration.Hid.Controller
{
- public class JoyconConfigControllerStick where TButton : unmanaged where TStick : unmanaged
+ public class JoyconConfigControllerStick
+ where TButton : unmanaged
+ where TStick : unmanaged
{
public TStick Joystick { get; set; }
public bool InvertStickX { get; set; }
diff --git a/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs b/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
index 174db51ad..cc5a63ab8 100644
--- a/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
+++ b/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
@@ -1,5 +1,4 @@
using DynamicData;
-using DynamicData.Kernel;
using Gommon;
using LibHac;
using LibHac.Common;
@@ -37,14 +36,13 @@ using System.Threading.Tasks;
using ContentType = LibHac.Ncm.ContentType;
using MissingKeyException = LibHac.Common.Keys.MissingKeyException;
using Path = System.IO.Path;
-using SpanHelpers = LibHac.Common.SpanHelpers;
using TimeSpan = System.TimeSpan;
namespace Ryujinx.UI.App.Common
{
public class ApplicationLibrary
{
- public static string DefaultLanPlayWebHost = "ryuldnweb.vudjun.com";
+ public const string DefaultLanPlayWebHost = "ryuldnweb.vudjun.com";
public Language DesiredLanguage { get; set; }
public event EventHandler ApplicationCountUpdated;
public event EventHandler LdnGameDataReceived;
@@ -191,12 +189,9 @@ namespace Ryujinx.UI.App.Common
}
}
- if (isExeFs)
- {
- return GetApplicationFromExeFs(pfs, filePath);
- }
-
- return null;
+ return isExeFs
+ ? GetApplicationFromExeFs(pfs, filePath)
+ : null;
}
/// The configured key set is missing a key.
@@ -512,10 +507,6 @@ namespace Ryujinx.UI.App.Common
case ".xci":
case ".nsp":
{
- IntegrityCheckLevel checkLevel = ConfigurationState.Instance.System.EnableFsIntegrityChecks
- ? IntegrityCheckLevel.ErrorOnInvalid
- : IntegrityCheckLevel.None;
-
using IFileSystem pfs = PartitionFileSystemUtils.OpenApplicationFileSystem(filePath, _virtualFileSystem);
foreach (DirectoryEntryEx fileEntry in pfs.EnumerateEntries("/", "*.nca"))
@@ -604,7 +595,7 @@ namespace Ryujinx.UI.App.Common
controlNca.OpenFileSystem(NcaSectionType.Data, IntegrityCheckLevel.None)
.OpenFile(ref nacpFile.Ref, "/control.nacp".ToU8Span(), OpenMode.Read)
.ThrowIfFailure();
- nacpFile.Get.Read(out _, 0, SpanHelpers.AsByteSpan(ref controlData),
+ nacpFile.Get.Read(out _, 0, LibHac.Common.SpanHelpers.AsByteSpan(ref controlData),
ReadOption.None).ThrowIfFailure();
var displayVersion = controlData.DisplayVersionString.ToString();
@@ -827,7 +818,7 @@ namespace Ryujinx.UI.App.Common
{
_downloadableContents.Edit(it =>
{
- DownloadableContentsHelper.SaveDownloadableContentsJson(_virtualFileSystem, application.IdBase, dlcs);
+ DownloadableContentsHelper.SaveDownloadableContentsJson(application.IdBase, dlcs);
it.Remove(it.Items.Where(item => item.Dlc.TitleIdBase == application.IdBase));
it.AddOrUpdate(dlcs);
@@ -839,7 +830,7 @@ namespace Ryujinx.UI.App.Common
{
_titleUpdates.Edit(it =>
{
- TitleUpdatesHelper.SaveTitleUpdatesJson(_virtualFileSystem, application.IdBase, updates);
+ TitleUpdatesHelper.SaveTitleUpdatesJson(application.IdBase, updates);
it.Remove(it.Items.Where(item => item.TitleUpdate.TitleIdBase == application.IdBase));
it.AddOrUpdate(updates);
@@ -1088,7 +1079,7 @@ namespace Ryujinx.UI.App.Common
private bool AddAndAutoSelectUpdate(TitleUpdateModel update)
{
- var currentlySelected = TitleUpdates.Items.FirstOrOptional(it =>
+ var currentlySelected = TitleUpdates.Items.FindFirst(it =>
it.TitleUpdate.TitleIdBase == update.TitleIdBase && it.IsSelected);
var shouldSelect = !currentlySelected.HasValue ||
@@ -1464,7 +1455,7 @@ namespace Ryujinx.UI.App.Common
if (addedNewDlc)
{
var gameDlcs = it.Items.Where(dlc => dlc.Dlc.TitleIdBase == application.IdBase).ToList();
- DownloadableContentsHelper.SaveDownloadableContentsJson(_virtualFileSystem, application.IdBase,
+ DownloadableContentsHelper.SaveDownloadableContentsJson(application.IdBase,
gameDlcs);
}
}
@@ -1483,7 +1474,7 @@ namespace Ryujinx.UI.App.Common
TitleUpdatesHelper.LoadTitleUpdatesJson(_virtualFileSystem, application.IdBase);
it.AddOrUpdate(savedUpdates);
- var selectedUpdate = savedUpdates.FirstOrOptional(update => update.IsSelected);
+ var selectedUpdate = savedUpdates.FindFirst(update => update.IsSelected);
if (TryGetTitleUpdatesFromFile(application.Path, out var bundledUpdates))
{
@@ -1498,9 +1489,9 @@ namespace Ryujinx.UI.App.Common
if (!selectedUpdate.HasValue || selectedUpdate.Value.Item1.Version < update.Version)
{
shouldSelect = true;
- if (selectedUpdate.HasValue)
+ if (selectedUpdate)
_titleUpdates.AddOrUpdate((selectedUpdate.Value.Item1, false));
- selectedUpdate = DynamicData.Kernel.Optional<(TitleUpdateModel, bool IsSelected)>.Create((update, true));
+ selectedUpdate = (update, true);
}
modifiedVersion = modifiedVersion || shouldSelect;
@@ -1513,7 +1504,7 @@ namespace Ryujinx.UI.App.Common
if (updatesChanged)
{
var gameUpdates = it.Items.Where(update => update.TitleUpdate.TitleIdBase == application.IdBase).ToList();
- TitleUpdatesHelper.SaveTitleUpdatesJson(_virtualFileSystem, application.IdBase, gameUpdates);
+ TitleUpdatesHelper.SaveTitleUpdatesJson(application.IdBase, gameUpdates);
}
}
});
@@ -1525,14 +1516,14 @@ namespace Ryujinx.UI.App.Common
private void SaveDownloadableContentsForGame(ulong titleIdBase)
{
var dlcs = DownloadableContents.Items.Where(dlc => dlc.Dlc.TitleIdBase == titleIdBase).ToList();
- DownloadableContentsHelper.SaveDownloadableContentsJson(_virtualFileSystem, titleIdBase, dlcs);
+ DownloadableContentsHelper.SaveDownloadableContentsJson(titleIdBase, dlcs);
}
// Save the _currently tracked_ update state for the game
private void SaveTitleUpdatesForGame(ulong titleIdBase)
{
var updates = TitleUpdates.Items.Where(update => update.TitleUpdate.TitleIdBase == titleIdBase).ToList();
- TitleUpdatesHelper.SaveTitleUpdatesJson(_virtualFileSystem, titleIdBase, updates);
+ TitleUpdatesHelper.SaveTitleUpdatesJson(titleIdBase, updates);
}
// ApplicationData isnt live-updating (e.g. when an update gets applied) and so this is meant to trigger a refresh
diff --git a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
index badb047df..04ddd442f 100644
--- a/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
+++ b/src/Ryujinx.UI.Common/Configuration/ConfigurationState.cs
@@ -1,16 +1,12 @@
-using ARMeilleure;
using Ryujinx.Common.Configuration;
using Ryujinx.Common.Configuration.Hid;
-using Ryujinx.Common.Configuration.Hid.Controller;
using Ryujinx.Common.Configuration.Hid.Keyboard;
using Ryujinx.Common.Configuration.Multiplayer;
-using Ryujinx.Common.Logging;
using Ryujinx.Graphics.Vulkan;
using Ryujinx.HLE;
using Ryujinx.UI.Common.Configuration.System;
using Ryujinx.UI.Common.Configuration.UI;
using System;
-using System.Collections.Generic;
namespace Ryujinx.UI.Common.Configuration
{
@@ -21,10 +17,10 @@ namespace Ryujinx.UI.Common.Configuration
if (Instance != null)
{
throw new InvalidOperationException("Configuration is already initialized");
- }
+ }
Instance = new ConfigurationState();
- }
+ }
public ConfigurationFileFormat ToFileFormat()
{
diff --git a/src/Ryujinx.UI.Common/Helper/DownloadableContentsHelper.cs b/src/Ryujinx.UI.Common/Helper/DownloadableContentsHelper.cs
index 3695c5c5c..020529b55 100644
--- a/src/Ryujinx.UI.Common/Helper/DownloadableContentsHelper.cs
+++ b/src/Ryujinx.UI.Common/Helper/DownloadableContentsHelper.cs
@@ -42,7 +42,7 @@ namespace Ryujinx.UI.Common.Helper
}
}
- public static void SaveDownloadableContentsJson(VirtualFileSystem vfs, ulong applicationIdBase, List<(DownloadableContentModel, bool IsEnabled)> dlcs)
+ public static void SaveDownloadableContentsJson(ulong applicationIdBase, List<(DownloadableContentModel, bool IsEnabled)> dlcs)
{
DownloadableContentContainer container = default;
List downloadableContentContainerList = new();
diff --git a/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs b/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs
index 18fbabd6d..c6bacfd91 100644
--- a/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs
+++ b/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs
@@ -49,7 +49,7 @@ namespace Ryujinx.UI.Common.Helper
}
}
- public static void SaveTitleUpdatesJson(VirtualFileSystem vfs, ulong applicationIdBase, List<(TitleUpdateModel, bool IsSelected)> updates)
+ public static void SaveTitleUpdatesJson(ulong applicationIdBase, List<(TitleUpdateModel, bool IsSelected)> updates)
{
var titleUpdateWindowData = new TitleUpdateMetadata
{
--
2.47.1
From eda4f4349bdde7809ccbea44364634901c3c8c7b Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Sat, 7 Dec 2024 04:06:07 -0600
Subject: [PATCH 057/674] headless: Actually log the command line errors
---
src/Ryujinx.Headless.SDL2/Program.cs | 14 ++++++++++----
1 file changed, 10 insertions(+), 4 deletions(-)
diff --git a/src/Ryujinx.Headless.SDL2/Program.cs b/src/Ryujinx.Headless.SDL2/Program.cs
index ff87a3845..12158176a 100644
--- a/src/Ryujinx.Headless.SDL2/Program.cs
+++ b/src/Ryujinx.Headless.SDL2/Program.cs
@@ -1,4 +1,5 @@
using CommandLine;
+using Gommon;
using LibHac.Tools.FsSystem;
using Ryujinx.Audio.Backends.SDL2;
using Ryujinx.Common;
@@ -96,8 +97,13 @@ namespace Ryujinx.Headless.SDL2
}
Parser.Default.ParseArguments(args)
- .WithParsed(Load)
- .WithNotParsed(errors => errors.Output());
+ .WithParsed(Load)
+ .WithNotParsed(errors =>
+ {
+ Logger.Error?.PrintMsg(LogClass.Application, "Error parsing command-line arguments:");
+
+ errors.ForEach(err => Logger.Error?.PrintMsg(LogClass.Application, $" - {err.Tag}"));
+ });
}
private static InputConfig HandlePlayerConfiguration(string inputProfileName, string inputId, PlayerIndex index)
@@ -579,8 +585,8 @@ namespace Ryujinx.Headless.SDL2
options.MultiplayerLanInterfaceId,
Common.Configuration.Multiplayer.MultiplayerMode.Disabled,
false,
- "",
- "",
+ string.Empty,
+ string.Empty,
options.CustomVSyncInterval);
return new Switch(configuration);
--
2.47.1
From 290a6ad5de02251604c9a85bb8a5b162fa01e0b7 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Sat, 7 Dec 2024 04:30:04 -0600
Subject: [PATCH 058/674] HLE: extract custom NACP data functionality into a
static helper for generic reuse elsewhere, and clarify magic numbers.
---
src/Ryujinx.HLE/StructHelpers.cs | 37 +++++++++++++++++++
.../UI/Views/Main/MainMenuBarView.axaml.cs | 31 ++++++----------
2 files changed, 48 insertions(+), 20 deletions(-)
create mode 100644 src/Ryujinx.HLE/StructHelpers.cs
diff --git a/src/Ryujinx.HLE/StructHelpers.cs b/src/Ryujinx.HLE/StructHelpers.cs
new file mode 100644
index 000000000..6e6af8cea
--- /dev/null
+++ b/src/Ryujinx.HLE/StructHelpers.cs
@@ -0,0 +1,37 @@
+using LibHac.Common;
+using LibHac.Ns;
+using System;
+using System.Text;
+
+namespace Ryujinx.HLE
+{
+ public static class StructHelpers
+ {
+ public static BlitStruct CreateCustomNacpData(string name, string version)
+ {
+ // https://switchbrew.org/wiki/NACP
+ const int OffsetOfDisplayVersion = 0x3060;
+
+ // https://switchbrew.org/wiki/NACP#ApplicationTitle
+ const int TotalApplicationTitles = 0x10;
+ const int SizeOfApplicationTitle = 0x300;
+ const int OffsetOfApplicationPublisherStrings = 0x200;
+
+
+ var nacpData = new BlitStruct(1);
+
+ // name and publisher buffer
+ // repeat once for each locale (the ApplicationControlProperty has 16 locales)
+ for (int i = 0; i < TotalApplicationTitles; i++)
+ {
+ Encoding.ASCII.GetBytes(name).AsSpan().CopyTo(nacpData.ByteSpan[(i * SizeOfApplicationTitle)..]);
+ "Ryujinx"u8.CopyTo(nacpData.ByteSpan[(i * SizeOfApplicationTitle + OffsetOfApplicationPublisherStrings)..]);
+ }
+
+ // version buffer
+ Encoding.ASCII.GetBytes(version).AsSpan().CopyTo(nacpData.ByteSpan[OffsetOfDisplayVersion..]);
+
+ return nacpData;
+ }
+ }
+}
diff --git a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
index 94f5cf9d3..ffe9b066c 100644
--- a/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
+++ b/src/Ryujinx/UI/Views/Main/MainMenuBarView.axaml.cs
@@ -13,6 +13,7 @@ using Ryujinx.Ava.UI.ViewModels;
using Ryujinx.Ava.UI.Windows;
using Ryujinx.Common;
using Ryujinx.Common.Utilities;
+using Ryujinx.HLE;
using Ryujinx.UI.App.Common;
using Ryujinx.UI.Common;
using Ryujinx.UI.Common.Configuration;
@@ -126,32 +127,22 @@ namespace Ryujinx.Ava.UI.Views.Main
public async void OpenMiiApplet(object sender, RoutedEventArgs e)
{
- const string name = "miiEdit";
- const ulong programId = 0x0100000000001009;
- string contentPath = ViewModel.ContentManager.GetInstalledContentPath(programId, StorageId.BuiltInSystem, NcaContentType.Program);
+ const string AppletName = "miiEdit";
+ const ulong AppletProgramId = 0x0100000000001009;
+ const string AppletVersion = "1.0.0";
+
+ string contentPath = ViewModel.ContentManager.GetInstalledContentPath(AppletProgramId, StorageId.BuiltInSystem, NcaContentType.Program);
if (!string.IsNullOrEmpty(contentPath))
{
ApplicationData applicationData = new()
{
- Name = name,
- Id = programId,
- Path = contentPath,
+ Name = AppletName,
+ Id = AppletProgramId,
+ Path = contentPath
};
-
- string version = "1.0.0";
- var nacpData = new BlitStruct(1);
-
- //version buffer
- Encoding.ASCII.GetBytes(version).AsSpan().CopyTo(nacpData.ByteSpan.Slice(0x3060));
-
- //name and distributor buffer
- //repeat once for each locale (the ApplicationControlProperty has 16 locales)
- for (int i = 0; i < 0x10; i++)
- {
- Encoding.ASCII.GetBytes(name).AsSpan().CopyTo(nacpData.ByteSpan.Slice(i * 0x300));
- "Ryujinx"u8.ToArray().AsSpan().CopyTo(nacpData.ByteSpan.Slice(i * 0x300 + 0x200));
- }
+
+ var nacpData = StructHelpers.CreateCustomNacpData(AppletName, AppletVersion);
await ViewModel.LoadApplication(applicationData, ViewModel.IsFullScreen || ViewModel.StartGamesInFullscreen, nacpData);
}
--
2.47.1
From 4ffb8aef129ac4b0469c862cc595aa97816d4808 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Sat, 7 Dec 2024 05:21:16 -0600
Subject: [PATCH 059/674] Try and fix nullref
---
src/Ryujinx.UI.Common/App/ApplicationLibrary.cs | 12 +++++-------
src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs | 4 ++--
2 files changed, 7 insertions(+), 9 deletions(-)
diff --git a/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs b/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
index cc5a63ab8..a750db997 100644
--- a/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
+++ b/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
@@ -1082,11 +1082,10 @@ namespace Ryujinx.UI.App.Common
var currentlySelected = TitleUpdates.Items.FindFirst(it =>
it.TitleUpdate.TitleIdBase == update.TitleIdBase && it.IsSelected);
- var shouldSelect = !currentlySelected.HasValue ||
- currentlySelected.Value.TitleUpdate.Version < update.Version;
+ var shouldSelect = currentlySelected.Check(curr => curr.TitleUpdate.Version < update.Version);
_titleUpdates.AddOrUpdate((update, shouldSelect));
-
+
if (currentlySelected.HasValue && shouldSelect)
{
_titleUpdates.AddOrUpdate((currentlySelected.Value.TitleUpdate, false));
@@ -1478,7 +1477,7 @@ namespace Ryujinx.UI.App.Common
if (TryGetTitleUpdatesFromFile(application.Path, out var bundledUpdates))
{
- var savedUpdateLookup = savedUpdates.Select(update => update.Item1).ToHashSet();
+ var savedUpdateLookup = savedUpdates.Select(update => update.Update).ToHashSet();
bool updatesChanged = false;
foreach (var update in bundledUpdates.OrderByDescending(bundled => bundled.Version))
@@ -1486,11 +1485,10 @@ namespace Ryujinx.UI.App.Common
if (!savedUpdateLookup.Contains(update))
{
bool shouldSelect = false;
- if (!selectedUpdate.HasValue || selectedUpdate.Value.Item1.Version < update.Version)
+ if (selectedUpdate.Check(su => su.Update.Version < update.Version))
{
shouldSelect = true;
- if (selectedUpdate)
- _titleUpdates.AddOrUpdate((selectedUpdate.Value.Item1, false));
+ _titleUpdates.AddOrUpdate((selectedUpdate.Value.Update, false));
selectedUpdate = (update, true);
}
diff --git a/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs b/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs
index c6bacfd91..36de8b31a 100644
--- a/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs
+++ b/src/Ryujinx.UI.Common/Helper/TitleUpdatesHelper.cs
@@ -28,7 +28,7 @@ namespace Ryujinx.UI.Common.Helper
{
private static readonly TitleUpdateMetadataJsonSerializerContext _serializerContext = new(JsonHelper.GetDefaultSerializerOptions());
- public static List<(TitleUpdateModel, bool IsSelected)> LoadTitleUpdatesJson(VirtualFileSystem vfs, ulong applicationIdBase)
+ public static List<(TitleUpdateModel Update, bool IsSelected)> LoadTitleUpdatesJson(VirtualFileSystem vfs, ulong applicationIdBase)
{
var titleUpdatesJsonPath = PathToGameUpdatesJson(applicationIdBase);
@@ -77,7 +77,7 @@ namespace Ryujinx.UI.Common.Helper
JsonHelper.SerializeToFile(titleUpdatesJsonPath, titleUpdateWindowData, _serializerContext.TitleUpdateMetadata);
}
- private static List<(TitleUpdateModel, bool IsSelected)> LoadTitleUpdates(VirtualFileSystem vfs, TitleUpdateMetadata titleUpdateMetadata, ulong applicationIdBase)
+ private static List<(TitleUpdateModel Update, bool IsSelected)> LoadTitleUpdates(VirtualFileSystem vfs, TitleUpdateMetadata titleUpdateMetadata, ulong applicationIdBase)
{
var result = new List<(TitleUpdateModel, bool IsSelected)>();
--
2.47.1
From 315a1819c0f85b6dea7ae971af59b6de64598d75 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Sat, 7 Dec 2024 05:31:37 -0600
Subject: [PATCH 060/674] Attempt #2
---
src/Ryujinx.UI.Common/App/ApplicationLibrary.cs | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)
diff --git a/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs b/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
index a750db997..cb6467f5e 100644
--- a/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
+++ b/src/Ryujinx.UI.Common/App/ApplicationLibrary.cs
@@ -1079,10 +1079,12 @@ namespace Ryujinx.UI.App.Common
private bool AddAndAutoSelectUpdate(TitleUpdateModel update)
{
+ if (update == null) return false;
+
var currentlySelected = TitleUpdates.Items.FindFirst(it =>
it.TitleUpdate.TitleIdBase == update.TitleIdBase && it.IsSelected);
- var shouldSelect = currentlySelected.Check(curr => curr.TitleUpdate.Version < update.Version);
+ var shouldSelect = currentlySelected.Check(curr => curr.TitleUpdate?.Version < update.Version);
_titleUpdates.AddOrUpdate((update, shouldSelect));
@@ -1485,7 +1487,7 @@ namespace Ryujinx.UI.App.Common
if (!savedUpdateLookup.Contains(update))
{
bool shouldSelect = false;
- if (selectedUpdate.Check(su => su.Update.Version < update.Version))
+ if (selectedUpdate.Check(su => su.Update?.Version < update.Version))
{
shouldSelect = true;
_titleUpdates.AddOrUpdate((selectedUpdate.Value.Update, false));
--
2.47.1
From de00a71690d482f14e54d1b1fd21a8d04de84929 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Sat, 7 Dec 2024 05:48:11 -0600
Subject: [PATCH 061/674] UI: Fix missing total DLC count. Fixes #347.
---
src/Ryujinx/Assets/Locales/ar_SA.json | 2 +-
src/Ryujinx/Assets/Locales/de_DE.json | 2 +-
src/Ryujinx/Assets/Locales/el_GR.json | 2 +-
src/Ryujinx/Assets/Locales/en_US.json | 2 +-
src/Ryujinx/Assets/Locales/es_ES.json | 2 +-
src/Ryujinx/Assets/Locales/fr_FR.json | 2 +-
src/Ryujinx/Assets/Locales/it_IT.json | 2 +-
src/Ryujinx/Assets/Locales/ja_JP.json | 2 +-
src/Ryujinx/Assets/Locales/ko_KR.json | 2 +-
src/Ryujinx/Assets/Locales/pl_PL.json | 2 +-
src/Ryujinx/Assets/Locales/pt_BR.json | 2 +-
src/Ryujinx/Assets/Locales/ru_RU.json | 2 +-
src/Ryujinx/Assets/Locales/th_TH.json | 2 +-
src/Ryujinx/Assets/Locales/tr_TR.json | 2 +-
src/Ryujinx/Assets/Locales/uk_UA.json | 2 +-
src/Ryujinx/Assets/Locales/zh_TW.json | 2 +-
.../DownloadableContentManagerWindow.axaml.cs | 14 ++++----------
17 files changed, 20 insertions(+), 26 deletions(-)
diff --git a/src/Ryujinx/Assets/Locales/ar_SA.json b/src/Ryujinx/Assets/Locales/ar_SA.json
index 412695af6..bdb6a92ec 100644
--- a/src/Ryujinx/Assets/Locales/ar_SA.json
+++ b/src/Ryujinx/Assets/Locales/ar_SA.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "الغش متوفر لـ {0} [{1}]",
"BuildId": "معرف البناء:",
"DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
- "DlcWindowHeading": "المحتويات القابلة للتنزيل {0}",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
diff --git a/src/Ryujinx/Assets/Locales/de_DE.json b/src/Ryujinx/Assets/Locales/de_DE.json
index 76e8dfadd..9f4b63a95 100644
--- a/src/Ryujinx/Assets/Locales/de_DE.json
+++ b/src/Ryujinx/Assets/Locales/de_DE.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "Cheats verfügbar für {0} [{1}]",
"DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
"BuildId": "BuildId:",
- "DlcWindowHeading": "DLC verfügbar für {0} [{1}]",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
diff --git a/src/Ryujinx/Assets/Locales/el_GR.json b/src/Ryujinx/Assets/Locales/el_GR.json
index 0409297ac..7979b9228 100644
--- a/src/Ryujinx/Assets/Locales/el_GR.json
+++ b/src/Ryujinx/Assets/Locales/el_GR.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "Διαθέσιμα Cheats για {0} [{1}]",
"BuildId": "BuildId:",
"DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
- "DlcWindowHeading": "{0} Downloadable Content(s) available for {1} ({2})",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
diff --git a/src/Ryujinx/Assets/Locales/en_US.json b/src/Ryujinx/Assets/Locales/en_US.json
index ba183c8bd..0598665fd 100644
--- a/src/Ryujinx/Assets/Locales/en_US.json
+++ b/src/Ryujinx/Assets/Locales/en_US.json
@@ -802,7 +802,7 @@
"CheatWindowHeading": "Cheats Available for {0} [{1}]",
"BuildId": "BuildId:",
"DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
- "DlcWindowHeading": "{0} Downloadable Content(s) available for {1} ({2})",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
diff --git a/src/Ryujinx/Assets/Locales/es_ES.json b/src/Ryujinx/Assets/Locales/es_ES.json
index 934031c72..3774605f6 100644
--- a/src/Ryujinx/Assets/Locales/es_ES.json
+++ b/src/Ryujinx/Assets/Locales/es_ES.json
@@ -787,7 +787,7 @@
"UpdateWindowBundledContentNotice": "Las actualizaciones agrupadas no pueden ser eliminadas, solamente deshabilitadas.",
"CheatWindowHeading": "Cheats disponibles para {0} [{1}]",
"BuildId": "Id de compilación:",
- "DlcWindowHeading": "Contenido descargable disponible para {0} [{1}]",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "Se agregaron {0} nuevo(s) contenido(s) descargable(s)",
"AutoloadDlcAddedMessage": "Se agregaron {0} nuevo(s) contenido(s) descargable(s)",
"AutoloadDlcRemovedMessage": "Se eliminaron {0} contenido(s) descargable(s) faltantes",
diff --git a/src/Ryujinx/Assets/Locales/fr_FR.json b/src/Ryujinx/Assets/Locales/fr_FR.json
index 0223e322e..c5a4bbeec 100644
--- a/src/Ryujinx/Assets/Locales/fr_FR.json
+++ b/src/Ryujinx/Assets/Locales/fr_FR.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "Cheats disponibles pour {0} [{1}]",
"BuildId": "BuildId :",
"DlcWindowBundledContentNotice": "Les DLC inclus avec le jeu ne peuvent pas être supprimés mais peuvent être désactivés.",
- "DlcWindowHeading": "{0} Contenu(s) téléchargeable(s)",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} nouveau(x) contenu(s) téléchargeable(s) ajouté(s)",
"AutoloadDlcAddedMessage": "{0} nouveau(x) contenu(s) téléchargeable(s) ajouté(s)",
"AutoloadDlcRemovedMessage": "{0} contenu(s) téléchargeable(s) manquant(s) supprimé(s)",
diff --git a/src/Ryujinx/Assets/Locales/it_IT.json b/src/Ryujinx/Assets/Locales/it_IT.json
index 5ca17bc2e..18e4ee04f 100644
--- a/src/Ryujinx/Assets/Locales/it_IT.json
+++ b/src/Ryujinx/Assets/Locales/it_IT.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "Trucchi disponibili per {0} [{1}]",
"BuildId": "ID Build",
"DlcWindowBundledContentNotice": "i DLC \"impacchettati\" non possono essere rimossi, ma solo disabilitati.",
- "DlcWindowHeading": "DLC disponibili per {0} [{1}]",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} nuovo/i contenuto/i scaricabile/i aggiunto/i",
"AutoloadDlcAddedMessage": "{0} contenuto/i scaricabile/i aggiunto/i",
"AutoloadDlcRemovedMessage": "{0} contenuto/i scaricabile/i mancante/i rimosso/i",
diff --git a/src/Ryujinx/Assets/Locales/ja_JP.json b/src/Ryujinx/Assets/Locales/ja_JP.json
index ffa768c13..6ecc74009 100644
--- a/src/Ryujinx/Assets/Locales/ja_JP.json
+++ b/src/Ryujinx/Assets/Locales/ja_JP.json
@@ -787,7 +787,7 @@
"UpdateWindowBundledContentNotice": "Bundled updates cannot be removed, only disabled.",
"CheatWindowHeading": "利用可能なチート {0} [{1}]",
"BuildId": "ビルドID:",
- "DlcWindowHeading": "利用可能な DLC {0} [{1}]",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
diff --git a/src/Ryujinx/Assets/Locales/ko_KR.json b/src/Ryujinx/Assets/Locales/ko_KR.json
index 8731c8662..71aaa41e8 100644
--- a/src/Ryujinx/Assets/Locales/ko_KR.json
+++ b/src/Ryujinx/Assets/Locales/ko_KR.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "{0} [{1}]에 사용 가능한 치트",
"BuildId": "빌드ID:",
"DlcWindowBundledContentNotice": "번들 DLC는 제거할 수 없으며 비활성화만 가능합니다.",
- "DlcWindowHeading": "{1} ({2})에 내려받기 가능한 콘텐츠 {0}개 사용 가능",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0}개의 새로운 내려받기 가능한 콘텐츠가 추가됨",
"AutoloadDlcAddedMessage": "{0}개의 새로운 내려받기 가능한 콘텐츠가 추가됨",
"AutoloadDlcRemovedMessage": "{0}개의 내려받기 가능한 콘텐츠가 제거됨",
diff --git a/src/Ryujinx/Assets/Locales/pl_PL.json b/src/Ryujinx/Assets/Locales/pl_PL.json
index d87453ef2..6a2fa08b1 100644
--- a/src/Ryujinx/Assets/Locales/pl_PL.json
+++ b/src/Ryujinx/Assets/Locales/pl_PL.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "Kody Dostępne dla {0} [{1}]",
"BuildId": "Identyfikator wersji:",
"DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
- "DlcWindowHeading": "{0} Zawartości do Pobrania dostępna dla {1} ({2})",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
diff --git a/src/Ryujinx/Assets/Locales/pt_BR.json b/src/Ryujinx/Assets/Locales/pt_BR.json
index c240bd804..90b78b732 100644
--- a/src/Ryujinx/Assets/Locales/pt_BR.json
+++ b/src/Ryujinx/Assets/Locales/pt_BR.json
@@ -787,7 +787,7 @@
"CheatWindowHeading": "Cheats disponíveis para {0} [{1}]",
"BuildId": "ID da Build:",
"DlcWindowBundledContentNotice": "DLCs incorporadas não podem ser removidas, apenas desativadas.",
- "DlcWindowHeading": "{0} DLCs disponíveis para {1} ({2})",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} novo(s) conteúdo(s) para download adicionado(s)",
"AutoloadDlcAddedMessage": "{0} novo(s) conteúdo(s) para download adicionado(s)",
"AutoloadDlcRemovedMessage": "{0} conteúdo(s) para download ausente(s) removido(s)",
diff --git a/src/Ryujinx/Assets/Locales/ru_RU.json b/src/Ryujinx/Assets/Locales/ru_RU.json
index 1046208fb..f058154e9 100644
--- a/src/Ryujinx/Assets/Locales/ru_RU.json
+++ b/src/Ryujinx/Assets/Locales/ru_RU.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "Доступные читы для {0} [{1}]",
"BuildId": "ID версии:",
"DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
- "DlcWindowHeading": "{0} DLC",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
diff --git a/src/Ryujinx/Assets/Locales/th_TH.json b/src/Ryujinx/Assets/Locales/th_TH.json
index e29004e10..33b2c4f30 100644
--- a/src/Ryujinx/Assets/Locales/th_TH.json
+++ b/src/Ryujinx/Assets/Locales/th_TH.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "สูตรโกงมีให้สำหรับ {0} [{1}]",
"BuildId": "รหัสการสร้าง:",
"DlcWindowBundledContentNotice": "แพ็ค DLC ไม่สามารถลบทิ้งได้ สามารถปิดใช้งานได้เท่านั้น",
- "DlcWindowHeading": "{0} DLC ที่สามารถดาวน์โหลดได้",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} DLC ใหม่ที่เพิ่มเข้ามา",
"AutoloadDlcAddedMessage": "{0} ใหม่ที่เพิ่มเข้ามา",
"AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
diff --git a/src/Ryujinx/Assets/Locales/tr_TR.json b/src/Ryujinx/Assets/Locales/tr_TR.json
index 101206210..72da205cb 100644
--- a/src/Ryujinx/Assets/Locales/tr_TR.json
+++ b/src/Ryujinx/Assets/Locales/tr_TR.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "{0} için Hile mevcut [{1}]",
"BuildId": "BuildId:",
"DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
- "DlcWindowHeading": "{0} Downloadable Content(s) available for {1} ({2})",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
diff --git a/src/Ryujinx/Assets/Locales/uk_UA.json b/src/Ryujinx/Assets/Locales/uk_UA.json
index 89e565bf3..06f658640 100644
--- a/src/Ryujinx/Assets/Locales/uk_UA.json
+++ b/src/Ryujinx/Assets/Locales/uk_UA.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "Коди доступні для {0} [{1}]",
"BuildId": "ID збірки:",
"DlcWindowBundledContentNotice": "Bundled DLC cannot be removed, only disabled.",
- "DlcWindowHeading": "Вміст для завантаження, доступний для {1} ({2}): {0}",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcAddedMessage": "{0} new downloadable content(s) added",
"AutoloadDlcRemovedMessage": "{0} missing downloadable content(s) removed",
diff --git a/src/Ryujinx/Assets/Locales/zh_TW.json b/src/Ryujinx/Assets/Locales/zh_TW.json
index 792ced42b..64f137885 100644
--- a/src/Ryujinx/Assets/Locales/zh_TW.json
+++ b/src/Ryujinx/Assets/Locales/zh_TW.json
@@ -788,7 +788,7 @@
"CheatWindowHeading": "可用於 {0} [{1}] 的密技",
"BuildId": "組建識別碼:",
"DlcWindowBundledContentNotice": "附帶的 DLC 只能被停用而無法被刪除。",
- "DlcWindowHeading": "{0} 個可下載內容",
+ "DlcWindowHeading": "{0} DLC(s) available",
"DlcWindowDlcAddedMessage": "已加入 {0} 個 DLC",
"AutoloadDlcAddedMessage": "已加入 {0} 個 DLC",
"AutoloadDlcRemovedMessage": "已刪除 {0} 個遺失的 DLC",
diff --git a/src/Ryujinx/UI/Windows/DownloadableContentManagerWindow.axaml.cs b/src/Ryujinx/UI/Windows/DownloadableContentManagerWindow.axaml.cs
index 340515a5b..2afa8b529 100644
--- a/src/Ryujinx/UI/Windows/DownloadableContentManagerWindow.axaml.cs
+++ b/src/Ryujinx/UI/Windows/DownloadableContentManagerWindow.axaml.cs
@@ -61,23 +61,17 @@ namespace Ryujinx.Ava.UI.Windows
private void RemoveDLC(object sender, RoutedEventArgs e)
{
- if (sender is Button button)
+ if (sender is Button { DataContext: DownloadableContentModel dlc })
{
- if (button.DataContext is DownloadableContentModel model)
- {
- ViewModel.Remove(model);
- }
+ ViewModel.Remove(dlc);
}
}
private void OpenLocation(object sender, RoutedEventArgs e)
{
- if (sender is Button button)
+ if (sender is Button { DataContext: DownloadableContentModel dlc })
{
- if (button.DataContext is DownloadableContentModel model)
- {
- OpenHelper.LocateFile(model.ContainerPath);
- }
+ OpenHelper.LocateFile(dlc.ContainerPath);
}
}
--
2.47.1
From 06abba25c1f63737e5bccbbabbc71a6ade33c366 Mon Sep 17 00:00:00 2001
From: Evan Husted
Date: Sat, 7 Dec 2024 06:22:46 -0600
Subject: [PATCH 062/674] UI: Adapt accent color to the user's system.
https://amwx.github.io/FluentAvaloniaDocs/pages/FATheme/Accents#using-the-systems-accent-color
---
src/Ryujinx/App.axaml | 2 +-
src/Ryujinx/Assets/Styles/Themes.xaml | 36 +------------------
.../Common/Markup/BasicMarkupExtension.cs | 4 +--
src/Ryujinx/Common/Markup/MarkupExtensions.cs | 6 ++--
.../UI/Controls/ApplicationGridView.axaml | 2 +-
.../UI/Controls/ApplicationListView.axaml | 2 +-
6 files changed, 9 insertions(+), 43 deletions(-)
diff --git a/src/Ryujinx/App.axaml b/src/Ryujinx/App.axaml
index 5a603509c..5c96f97f2 100644
--- a/src/Ryujinx/App.axaml
+++ b/src/Ryujinx/App.axaml
@@ -11,7 +11,7 @@
-
+
diff --git a/src/Ryujinx/Assets/Styles/Themes.xaml b/src/Ryujinx/Assets/Styles/Themes.xaml
index 056eba228..46e298035 100644
--- a/src/Ryujinx/Assets/Styles/Themes.xaml
+++ b/src/Ryujinx/Assets/Styles/Themes.xaml
@@ -4,18 +4,6 @@
-
-
- #FF00C3E3
- #FF00C3E3
- #FF00C3E3
- #FF00C3E3
- #FF00C3E3
- #FF00C3E3
- #FF00C3E3
- #FFe8e8e8#FF00FABB#FFF0F0F0#FFd6d6d6
@@ -26,6 +14,7 @@
#b3ffffff#80cccccc#A0000000
+ #fffcd12a#FF2EEAC9#FFFF4554#6483F5
@@ -33,18 +22,6 @@
-
-
- #FF00C3E3
- #FF00C3E3
- #FF00C3E3
- #FF00C3E3
- #FF00C3E3
- #FF00C3E3
- #FF00C3E3
- #FFe8e8e8#FF00FABB#FFF0F0F0#FFd6d6d6
@@ -59,18 +36,7 @@
-
- #008AA8
- #FF00C3E3
- #FF99b000
- #FF006d7d
- #FF00525E
- #FF00dbff
- #FF19dfff
- #FF33e3ff#FF00FABB#FF2D2D2D#FF505050
diff --git a/src/Ryujinx/Common/Markup/BasicMarkupExtension.cs b/src/Ryujinx/Common/Markup/BasicMarkupExtension.cs
index 67c016562..b1b7361a6 100644
--- a/src/Ryujinx/Common/Markup/BasicMarkupExtension.cs
+++ b/src/Ryujinx/Common/Markup/BasicMarkupExtension.cs
@@ -17,13 +17,13 @@ namespace Ryujinx.Ava.Common.Markup
public virtual string Name => "Item";
public virtual Action