diff --git a/assets/images/pic0.png b/assets/images/pic0.png new file mode 100644 index 00000000..cb4f4820 Binary files /dev/null and b/assets/images/pic0.png differ diff --git a/src/SharpEmu.GUI/Languages/ar.json b/src/SharpEmu.GUI/Languages/ar.json index a054a295..55101ce3 100644 --- a/src/SharpEmu.GUI/Languages/ar.json +++ b/src/SharpEmu.GUI/Languages/ar.json @@ -125,5 +125,48 @@ "Dialog.PsExecutables": "ملفات PS التنفيذية", "Dialog.SaveLogFile": "حدد مكان حفظ ملف السجل", "Dialog.PlainTextFiles": "ملفات نصية عادية", - "Dialog.LogFiles": "ملفات السجل" -} \ No newline at end of file + "Dialog.LogFiles": "ملفات السجل", + + "Library.Context.GameSettings": "إعدادات اللعبة…", + "Options.Env.Tab": "البيئة", + "Options.Section.Environment": "متغيرات البيئة", + "Options.Env.Desc": "خيارات تُمرر إلى المحاكي كمتغيرات بيئة عند التشغيل.", + "Options.Env.Bthid.Desc": "الإبلاغ عن أن Bluetooth HID غير متاح للألعاب التي تنتظر برمجيات عجلة القيادة/FFB فيها إلى ما لا نهاية.\nاتركه معطلاً عادةً. بعض الألعاب تتجمد عند فشل التهيئة.", + "Options.Env.LoopGuard.Desc": "عدم إجبار الألعاب التي تكرر النداء نفسه لفترة طويلة على الإغلاق.\nجرّب هذا عندما تُغلق لعبة نفسها أثناء التحميل.", + "Options.Env.WritableApp0.Desc": "السماح للألعاب بإنشاء الملفات والكتابة داخل مجلد التثبيت الخاص بها.\nمطلوب للنسخ غير المحزومة التي تكتب بيانات الحفظ أو الإعدادات تحت ‎/app0.", + "Options.Env.VkValidation.Desc": "تفعيل طبقات التحقق في Vulkan لتصحيح أخطاء وحدة معالجة الرسوميات.\nبطيء. يتطلب تثبيت Vulkan SDK.", + "Options.Env.DumpSpirv.Desc": "تفريغ شيدرات AGC وترجماتها إلى SPIR-V في مجلد shader-dumps.\nاستخدمه عند الإبلاغ عن أخطاء الشيدرات أو العرض.", + "Options.Env.LogDirectMemory.Desc": "تسجيل تخصيصات الذاكرة المباشرة وإخفاقاتها في وحدة التحكم.\nاستخدمه عندما تنهار لعبة أو تُغلق أثناء الإقلاع.", + "Options.Env.LogIo.Desc": "تسجيل فتح الملفات وقراءتها وحلّ المسارات في وحدة التحكم.\nاستخدمه عندما لا تجد لعبة ملفات بياناتها أثناء الإقلاع.", + "Options.Env.LogNp.Desc": "تسجيل نداءات مكتبة NP (شبكة PlayStation) في وحدة التحكم.", + "Common.Save": "حفظ", + "Common.Cancel": "إلغاء", + "PerGame.Title": "إعدادات خاصة باللعبة — {0} ({1})", + "PerGame.InheritNote": "الصفوف غير المحددة ترث الإعدادات الافتراضية العامة.", + "PerGame.EnvToggles.Label": "مفاتيح البيئة", + "PerGame.EnvToggles.Desc": "تجاوز المجموعة العامة من مفاتيح ‎SHARPEMU_*‎ لهذه اللعبة.", + "Options.About": "حول", + "About.Github.Label": "GitHub", + "About.Github.Desc": "الكود المصدري والمشكلات وتطوير المشروع.", + "About.Github.LatestCommitLabel": "أحدث Commit", + "About.Github.LatestCommitDescription": "أحدث commit على الفرع main", + "About.Discord.Label": "دسكورد", + "About.Discord.Desc": "انضم إلى المجتمع واحصل على الدعم وتابع التطوير.", + "About.GithubButton": "ساهم على GitHub!", + "About.DiscordButton": "انضم إلى دسكوردنا!", + "Updater.Auto.Label": "التحقق من التحديثات عند بدء التشغيل", + "Updater.Auto.Desc": "يتحقق من GitHub دون تأخير بدء التشغيل.", + "Updater.Label": "التحديثات", + "Updater.Check": "التحقق من التحديثات", + "Updater.DownloadRestart": "تنزيل وإعادة التشغيل", + "Updater.Status.Ready": "الإصدار الحالي: {0}", + "Updater.Status.Checking": "جارٍ التحقق من التحديثات…", + "Updater.Status.Current": "أنت على أحدث إصدار ({0}).", + "Updater.Status.Available": "يتوفر إصدار جديد: {0}", + "Updater.Status.Downloading": "جارٍ تنزيل التحديث… {0}%", + "Updater.Status.Installing": "جارٍ تثبيت التحديث…", + "Updater.Status.Timeout": "انتهت مهلة التحقق من التحديثات بعد 10 ثوانٍ.", + "Updater.Status.Failed": "تعذر التحقق من التحديثات.", + "Updater.Status.ChecksumFailed": "فشل التحديث المنزَّل في اجتياز تحقق SHA-256.", + "Updater.Status.Unsupported": "يتطلب التحديث التلقائي إصدار x64 لنظام Windows أو Linux أو macOS." +} diff --git a/src/SharpEmu.GUI/Languages/br.json b/src/SharpEmu.GUI/Languages/br.json index 28fbb79d..950ef746 100644 --- a/src/SharpEmu.GUI/Languages/br.json +++ b/src/SharpEmu.GUI/Languages/br.json @@ -142,5 +142,32 @@ "About.Discord.Label": "Discord", "About.Discord.Desc": "Participe da comunidade, obtenha suporte e acompanhe o desenvolvimento.", "About.GithubButton": "Contribua no GitHub!", - "About.DiscordButton": "Entre no nosso Discord!" + "About.DiscordButton": "Entre no nosso Discord!", + + "Library.Context.GameSettings": "Configurações do jogo…", + "Options.Env.WritableApp0.Desc": "Permite que os jogos criem e gravem arquivos dentro da própria pasta de instalação.\nNecessário para dumps não empacotados que gravam seus saves ou configurações em /app0.", + "Options.Env.LogIo.Desc": "Registra no console a abertura e leitura de arquivos e a resolução de caminhos.\nUse quando um jogo não encontrar seus arquivos de dados durante a inicialização.", + "Common.Save": "Salvar", + "Common.Cancel": "Cancelar", + "PerGame.Title": "Configurações por jogo — {0} ({1})", + "PerGame.InheritNote": "As linhas desmarcadas herdam os padrões globais.", + "PerGame.EnvToggles.Label": "Variáveis de ambiente", + "PerGame.EnvToggles.Desc": "Substitui o conjunto global de opções SHARPEMU_* para este jogo.", + "About.Github.LatestCommitLabel": "Último commit", + "About.Github.LatestCommitDescription": "Último commit na branch main", + "Updater.Auto.Label": "Verificar atualizações ao iniciar", + "Updater.Auto.Desc": "Consulta o GitHub sem atrasar a inicialização.", + "Updater.Label": "Atualizações", + "Updater.Check": "Verificar atualizações", + "Updater.DownloadRestart": "Baixar e reiniciar", + "Updater.Status.Ready": "Build atual: {0}", + "Updater.Status.Checking": "Verificando atualizações…", + "Updater.Status.Current": "Você está atualizado ({0}).", + "Updater.Status.Available": "Um novo build está disponível: {0}", + "Updater.Status.Downloading": "Baixando atualização… {0}%", + "Updater.Status.Installing": "Instalando atualização…", + "Updater.Status.Timeout": "A verificação de atualizações expirou após 10 segundos.", + "Updater.Status.Failed": "Não foi possível verificar as atualizações.", + "Updater.Status.ChecksumFailed": "A atualização baixada falhou na verificação SHA-256.", + "Updater.Status.Unsupported": "A atualização automática requer um build x64 para Windows, Linux ou macOS." } diff --git a/src/SharpEmu.GUI/Languages/de.json b/src/SharpEmu.GUI/Languages/de.json index 2e3df3df..55f42792 100644 --- a/src/SharpEmu.GUI/Languages/de.json +++ b/src/SharpEmu.GUI/Languages/de.json @@ -125,5 +125,48 @@ "Dialog.PsExecutables": "PS-Ausführbare Dateien", "Dialog.SaveLogFile": "Protokolldatei speichern unter", "Dialog.PlainTextFiles": "Textdateien", - "Dialog.LogFiles": "Protokolldateien" + "Dialog.LogFiles": "Protokolldateien", + + "Library.Context.GameSettings": "Spieleinstellungen…", + "Options.Env.Tab": "Umgebung", + "Options.Section.Environment": "UMGEBUNGSVARIABLEN", + "Options.Env.Desc": "Schalter, die dem Emulator beim Start als Umgebungsvariablen übergeben werden.", + "Options.Env.Bthid.Desc": "Bluetooth-HID als nicht verfügbar melden, wenn die Lenkrad-/FFB-Middleware eines Titels endlos wartet.\nNormalerweise ausgeschaltet lassen. Manche Titel frieren ein, wenn die Initialisierung fehlschlägt.", + "Options.Env.LoopGuard.Desc": "Titel nicht zwangsweise beenden, wenn sie denselben Aufruf zu lange wiederholen.\nAusprobieren, wenn ein Spiel sich beim Laden von selbst beendet.", + "Options.Env.WritableApp0.Desc": "Titeln erlauben, Dateien in ihrem Installationsordner anzulegen und zu schreiben.\nNötig für entpackte Dumps, die ihre Spielstände oder Konfiguration unter /app0 speichern.", + "Options.Env.VkValidation.Desc": "Vulkan-Validierungsschichten für GPU-Debugging aktivieren.\nLangsam. Erfordert ein installiertes Vulkan SDK.", + "Options.Env.DumpSpirv.Desc": "AGC-Shader und ihre SPIR-V-Übersetzungen im Ordner shader-dumps ablegen.\nBeim Melden von Shader- oder Grafikfehlern verwenden.", + "Options.Env.LogDirectMemory.Desc": "Direkte Speicherzuweisungen und Fehler in der Konsole protokollieren.\nVerwenden, wenn ein Spiel beim Start abbricht oder sich beendet.", + "Options.Env.LogIo.Desc": "Datei-Öffnen, -Lesen und Pfadauflösung in der Konsole protokollieren.\nVerwenden, wenn ein Spiel beim Start seine Datendateien nicht findet.", + "Options.Env.LogNp.Desc": "NP-Bibliotheksaufrufe (PlayStation Network) in der Konsole protokollieren.", + "Common.Save": "Speichern", + "Common.Cancel": "Abbrechen", + "PerGame.Title": "Spielspezifische Einstellungen — {0} ({1})", + "PerGame.InheritNote": "Nicht angehakte Zeilen übernehmen die globalen Standardwerte.", + "PerGame.EnvToggles.Label": "Umgebungsschalter", + "PerGame.EnvToggles.Desc": "Die globalen SHARPEMU_*-Schalter für dieses Spiel überschreiben.", + "Options.About": "Über", + "About.Github.Label": "GitHub", + "About.Github.Desc": "Quellcode, Issues und Projektentwicklung.", + "About.Github.LatestCommitLabel": "Neuester Commit", + "About.Github.LatestCommitDescription": "Neuester Commit auf dem main-Branch", + "About.Discord.Label": "Discord", + "About.Discord.Desc": "Tritt der Community bei, erhalte Support und verfolge die Entwicklung.", + "About.GithubButton": "Auf GitHub mitwirken!", + "About.DiscordButton": "Tritt unserem Discord bei!", + "Updater.Auto.Label": "Beim Start nach Updates suchen", + "Updater.Auto.Desc": "Fragt GitHub ab, ohne den Start zu verzögern.", + "Updater.Label": "Updates", + "Updater.Check": "Nach Updates suchen", + "Updater.DownloadRestart": "Herunterladen und neu starten", + "Updater.Status.Ready": "Aktueller Build: {0}", + "Updater.Status.Checking": "Suche nach Updates…", + "Updater.Status.Current": "Du bist auf dem neuesten Stand ({0}).", + "Updater.Status.Available": "Ein neuer Build ist verfügbar: {0}", + "Updater.Status.Downloading": "Update wird heruntergeladen… {0}%", + "Updater.Status.Installing": "Update wird installiert…", + "Updater.Status.Timeout": "Die Updateprüfung ist nach 10 Sekunden abgelaufen.", + "Updater.Status.Failed": "Updates konnten nicht geprüft werden.", + "Updater.Status.ChecksumFailed": "Das heruntergeladene Update hat die SHA-256-Prüfung nicht bestanden.", + "Updater.Status.Unsupported": "Automatische Updates erfordern einen x64-Build für Windows, Linux oder macOS." } diff --git a/src/SharpEmu.GUI/Languages/dk.json b/src/SharpEmu.GUI/Languages/dk.json index 69295033..5336f235 100644 --- a/src/SharpEmu.GUI/Languages/dk.json +++ b/src/SharpEmu.GUI/Languages/dk.json @@ -125,5 +125,48 @@ "Dialog.PsExecutables": "PS-programmer", "Dialog.SaveLogFile": "Vælg hvor logfilen skal gemmes", "Dialog.PlainTextFiles": "Almindelige tekstfiler", - "Dialog.LogFiles": "Logfiler" + "Dialog.LogFiles": "Logfiler", + + "Library.Context.GameSettings": "Spilindstillinger…", + "Options.Env.Tab": "Miljø", + "Options.Section.Environment": "MILJØVARIABLER", + "Options.Env.Desc": "Kontakter, der gives videre til emulatoren som miljøvariabler ved start.", + "Options.Env.Bthid.Desc": "Rapportér Bluetooth HID som utilgængelig for titler, hvis rat-/FFB-middleware venter i det uendelige.\nLad den normalt være slået fra. Nogle titler fryser, når initialiseringen fejler.", + "Options.Env.LoopGuard.Desc": "Tving ikke titler til at lukke, når de gentager det samme kald for længe.\nPrøv dette, når et spil lukker af sig selv under indlæsning.", + "Options.Env.WritableApp0.Desc": "Tillad titler at oprette og skrive filer i deres installationsmappe.\nKræves af upakkede dumps, der skriver deres gemte data eller konfiguration under /app0.", + "Options.Env.VkValidation.Desc": "Aktivér Vulkan-valideringslag til GPU-fejlfinding.\nLangsomt. Kræver at Vulkan SDK er installeret.", + "Options.Env.DumpSpirv.Desc": "Gem AGC-shadere og deres SPIR-V-oversættelser i mappen shader-dumps.\nBrug dette, når du rapporterer shader- eller grafikfejl.", + "Options.Env.LogDirectMemory.Desc": "Log direkte hukommelsestildelinger og fejl til konsollen.\nBrug dette, når et spil afbryder eller lukker under opstart.", + "Options.Env.LogIo.Desc": "Log åbning og læsning af filer samt stiopslag til konsollen.\nBrug dette, når et spil ikke kan finde sine datafiler under opstart.", + "Options.Env.LogNp.Desc": "Log NP-bibliotekskald (PlayStation Network) til konsollen.", + "Common.Save": "Gem", + "Common.Cancel": "Annuller", + "PerGame.Title": "Indstillinger pr. spil — {0} ({1})", + "PerGame.InheritNote": "Umarkerede rækker arver de globale standardværdier.", + "PerGame.EnvToggles.Label": "Miljøkontakter", + "PerGame.EnvToggles.Desc": "Tilsidesæt det globale sæt SHARPEMU_*-kontakter for dette spil.", + "Options.About": "Om", + "About.Github.Label": "GitHub", + "About.Github.Desc": "Kildekode, issues og projektudvikling.", + "About.Github.LatestCommitLabel": "Seneste commit", + "About.Github.LatestCommitDescription": "Seneste commit på main-branchen", + "About.Discord.Label": "Discord", + "About.Discord.Desc": "Bliv en del af fællesskabet, få hjælp og følg udviklingen.", + "About.GithubButton": "Bidrag på GitHub!", + "About.DiscordButton": "Bliv medlem af vores Discord!", + "Updater.Auto.Label": "Søg efter opdateringer ved start", + "Updater.Auto.Desc": "Tjekker GitHub uden at forsinke opstarten.", + "Updater.Label": "Opdateringer", + "Updater.Check": "Søg efter opdateringer", + "Updater.DownloadRestart": "Download og genstart", + "Updater.Status.Ready": "Nuværende build: {0}", + "Updater.Status.Checking": "Søger efter opdateringer…", + "Updater.Status.Current": "Du er opdateret ({0}).", + "Updater.Status.Available": "Et nyt build er tilgængeligt: {0}", + "Updater.Status.Downloading": "Downloader opdatering… {0}%", + "Updater.Status.Installing": "Installerer opdatering…", + "Updater.Status.Timeout": "Opdateringstjekket fik timeout efter 10 sekunder.", + "Updater.Status.Failed": "Kunne ikke søge efter opdateringer.", + "Updater.Status.ChecksumFailed": "Den downloadede opdatering bestod ikke SHA-256-verifikationen.", + "Updater.Status.Unsupported": "Automatisk opdatering kræver et x64-build til Windows, Linux eller macOS." } diff --git a/src/SharpEmu.GUI/Languages/es.json b/src/SharpEmu.GUI/Languages/es.json index a38a24c9..79f1d784 100644 --- a/src/SharpEmu.GUI/Languages/es.json +++ b/src/SharpEmu.GUI/Languages/es.json @@ -135,5 +135,39 @@ "About.Github.LatestCommitDescription": "Último commit en la rama main", "About.Discord.Desc": "Únete a la comunidad, recibe soporte y sigue el desarrollo.", "About.GithubButton": "Contribuye en GitHub!", - "About.DiscordButton": "Únete a nuestro Discord!" + "About.DiscordButton": "Únete a nuestro Discord!", + + "Library.Context.GameSettings": "Ajustes del juego…", + "Options.Env.Tab": "Entorno", + "Options.Section.Environment": "VARIABLES DE ENTORNO", + "Options.Env.Desc": "Opciones que se pasan al emulador como variables de entorno al iniciar.", + "Options.Env.Bthid.Desc": "Indicar que Bluetooth HID no está disponible para títulos cuyo middleware de volante/FFB espera indefinidamente.\nDéjalo desactivado normalmente. Algunos títulos se congelan cuando la inicialización falla.", + "Options.Env.LoopGuard.Desc": "No forzar el cierre de títulos que repiten la misma llamada durante demasiado tiempo.\nPruébalo cuando un juego se cierre solo durante la carga.", + "Options.Env.WritableApp0.Desc": "Permitir que los títulos creen y escriban archivos dentro de su carpeta de instalación.\nNecesario para dumps sin empaquetar que guardan sus datos o configuración en /app0.", + "Options.Env.VkValidation.Desc": "Activar las capas de validación de Vulkan para depurar la GPU.\nLento. Requiere tener instalado el SDK de Vulkan.", + "Options.Env.DumpSpirv.Desc": "Volcar los shaders AGC y sus traducciones SPIR-V a la carpeta shader-dumps.\nÚsalo al informar de errores de shaders o de renderizado.", + "Options.Env.LogDirectMemory.Desc": "Registrar en la consola las asignaciones de memoria directa y sus fallos.\nÚsalo cuando un juego se aborte o se cierre durante el arranque.", + "Options.Env.LogIo.Desc": "Registrar en la consola la apertura y lectura de archivos y la resolución de rutas.\nÚsalo cuando un juego no encuentre sus archivos de datos durante el arranque.", + "Options.Env.LogNp.Desc": "Registrar en la consola las llamadas a la biblioteca NP (PlayStation Network).", + "Common.Save": "Guardar", + "Common.Cancel": "Cancelar", + "PerGame.Title": "Ajustes por juego — {0} ({1})", + "PerGame.InheritNote": "Las filas sin marcar heredan los valores globales.", + "PerGame.EnvToggles.Label": "Variables de entorno", + "PerGame.EnvToggles.Desc": "Sustituir el conjunto global de opciones SHARPEMU_* para este juego.", + "Updater.Auto.Label": "Buscar actualizaciones al iniciar", + "Updater.Auto.Desc": "Consulta GitHub sin retrasar el arranque.", + "Updater.Label": "Actualizaciones", + "Updater.Check": "Buscar actualizaciones", + "Updater.DownloadRestart": "Descargar y reiniciar", + "Updater.Status.Ready": "Build actual: {0}", + "Updater.Status.Checking": "Buscando actualizaciones…", + "Updater.Status.Current": "Estás al día ({0}).", + "Updater.Status.Available": "Hay un nuevo build disponible: {0}", + "Updater.Status.Downloading": "Descargando actualización… {0}%", + "Updater.Status.Installing": "Instalando actualización…", + "Updater.Status.Timeout": "La comprobación de actualizaciones caducó tras 10 segundos.", + "Updater.Status.Failed": "No se pudieron comprobar las actualizaciones.", + "Updater.Status.ChecksumFailed": "La actualización descargada no superó la verificación SHA-256.", + "Updater.Status.Unsupported": "La actualización automática requiere un build x64 de Windows, Linux o macOS." } diff --git a/src/SharpEmu.GUI/Languages/fr.json b/src/SharpEmu.GUI/Languages/fr.json index 257cbf5c..da245776 100644 --- a/src/SharpEmu.GUI/Languages/fr.json +++ b/src/SharpEmu.GUI/Languages/fr.json @@ -142,5 +142,32 @@ "About.Discord.Label": "Discord", "About.Discord.Desc": "Rejoignez la communauté, obtenez de l’aide et suivez le développement.", "About.GithubButton": "Contribuer sur GitHub !", - "About.DiscordButton": "Rejoindre notre Discord !" + "About.DiscordButton": "Rejoindre notre Discord !", + + "Library.Context.GameSettings": "Paramètres du jeu…", + "Options.Env.WritableApp0.Desc": "Autoriser les jeux à créer et écrire des fichiers dans leur dossier d’installation.\nNécessaire pour les dumps non empaquetés qui écrivent leurs sauvegardes ou leur configuration sous /app0.", + "Options.Env.LogIo.Desc": "Journaliser l’ouverture et la lecture des fichiers ainsi que la résolution des chemins dans la console.\nÀ utiliser quand un jeu ne trouve pas ses fichiers de données au démarrage.", + "Common.Save": "Enregistrer", + "Common.Cancel": "Annuler", + "PerGame.Title": "Paramètres par jeu — {0} ({1})", + "PerGame.InheritNote": "Les lignes non cochées héritent des valeurs globales par défaut.", + "PerGame.EnvToggles.Label": "Variables d’environnement", + "PerGame.EnvToggles.Desc": "Remplacer l’ensemble global des options SHARPEMU_* pour ce jeu.", + "About.Github.LatestCommitLabel": "Dernier commit", + "About.Github.LatestCommitDescription": "Dernier commit sur la branche main", + "Updater.Auto.Label": "Vérifier les mises à jour au démarrage", + "Updater.Auto.Desc": "Interroge GitHub sans retarder le démarrage.", + "Updater.Label": "Mises à jour", + "Updater.Check": "Vérifier les mises à jour", + "Updater.DownloadRestart": "Télécharger et redémarrer", + "Updater.Status.Ready": "Build actuel : {0}", + "Updater.Status.Checking": "Recherche de mises à jour…", + "Updater.Status.Current": "Vous êtes à jour ({0}).", + "Updater.Status.Available": "Un nouveau build est disponible : {0}", + "Updater.Status.Downloading": "Téléchargement de la mise à jour… {0}%", + "Updater.Status.Installing": "Installation de la mise à jour…", + "Updater.Status.Timeout": "La vérification des mises à jour a expiré après 10 secondes.", + "Updater.Status.Failed": "Impossible de vérifier les mises à jour.", + "Updater.Status.ChecksumFailed": "La mise à jour téléchargée a échoué à la vérification SHA-256.", + "Updater.Status.Unsupported": "La mise à jour automatique nécessite un build x64 pour Windows, Linux ou macOS." } diff --git a/src/SharpEmu.GUI/Languages/hu.json b/src/SharpEmu.GUI/Languages/hu.json index 8eec54e8..7bcb8ac5 100644 --- a/src/SharpEmu.GUI/Languages/hu.json +++ b/src/SharpEmu.GUI/Languages/hu.json @@ -142,5 +142,32 @@ "About.Discord.Label": "Discord", "About.Discord.Desc": "Csatlakozz a közösséghe, kérj segítéget és kövesd nyomon a fejlesztést.", "About.GithubButton": "Járulj hozzá GitHubon!", - "About.DiscordButton": "Csatlakozz a Discordunhoz!" -} \ No newline at end of file + "About.DiscordButton": "Csatlakozz a Discordunhoz!", + + "Library.Context.GameSettings": "Játékbeállítások…", + "Options.Env.WritableApp0.Desc": "Engedélyezi, hogy a játékok fájlokat hozzanak létre és írjanak a telepítési mappájukban.\nA kicsomagolt dumpokhoz szükséges, amelyek a mentéseiket vagy beállításaikat az /app0 alá írják.", + "Options.Env.LogIo.Desc": "A fájlmegnyitások, olvasások és útvonal-feloldások naplózása a konzolra.\nAkkor használd, ha egy játék indításkor nem találja az adatfájljait.", + "Common.Save": "Mentés", + "Common.Cancel": "Mégse", + "PerGame.Title": "Játékonkénti beállítások — {0} ({1})", + "PerGame.InheritNote": "A be nem jelölt sorok a globális alapértelmezéseket öröklik.", + "PerGame.EnvToggles.Label": "Környezeti kapcsolók", + "PerGame.EnvToggles.Desc": "A globális SHARPEMU_* kapcsolókészlet felülírása ennél a játéknál.", + "About.Github.LatestCommitLabel": "Legutóbbi commit", + "About.Github.LatestCommitDescription": "A main ág legutóbbi commitja", + "Updater.Auto.Label": "Frissítések keresése indításkor", + "Updater.Auto.Desc": "A GitHubot az indítás késleltetése nélkül ellenőrzi.", + "Updater.Label": "Frissítések", + "Updater.Check": "Frissítések keresése", + "Updater.DownloadRestart": "Letöltés és újraindítás", + "Updater.Status.Ready": "Jelenlegi build: {0}", + "Updater.Status.Checking": "Frissítések keresése…", + "Updater.Status.Current": "Naprakész vagy ({0}).", + "Updater.Status.Available": "Új build érhető el: {0}", + "Updater.Status.Downloading": "Frissítés letöltése… {0}%", + "Updater.Status.Installing": "Frissítés telepítése…", + "Updater.Status.Timeout": "A frissítés-ellenőrzés 10 másodperc után túllépte az időkorlátot.", + "Updater.Status.Failed": "Nem sikerült frissítéseket keresni.", + "Updater.Status.ChecksumFailed": "A letöltött frissítés nem ment át az SHA-256-ellenőrzésen.", + "Updater.Status.Unsupported": "Az automatikus frissítéshez Windows, Linux vagy macOS x64 build szükséges." +} diff --git a/src/SharpEmu.GUI/Languages/it.json b/src/SharpEmu.GUI/Languages/it.json index 69e87858..7646ceb5 100644 --- a/src/SharpEmu.GUI/Languages/it.json +++ b/src/SharpEmu.GUI/Languages/it.json @@ -130,5 +130,48 @@ "Dialog.PsExecutables": "Eseguibili PS", "Dialog.SaveLogFile": "Scegli dove salvare il file di log", "Dialog.PlainTextFiles": "File di testo semplice", - "Dialog.LogFiles": "File di log" + "Dialog.LogFiles": "File di log", + + "Library.Context.GameSettings": "Impostazioni del gioco…", + "Options.Env.Tab": "Ambiente", + "Options.Section.Environment": "VARIABILI D'AMBIENTE", + "Options.Env.Desc": "Opzioni passate all'emulatore come variabili d'ambiente all'avvio.", + "Options.Env.Bthid.Desc": "Segnala il Bluetooth HID come non disponibile per i titoli il cui middleware volante/FFB attende all'infinito.\nNormalmente lascialo disattivato. Alcuni titoli si bloccano quando l'inizializzazione fallisce.", + "Options.Env.LoopGuard.Desc": "Non forzare la chiusura dei titoli che ripetono la stessa chiamata troppo a lungo.\nProvalo quando un gioco si chiude da solo durante il caricamento.", + "Options.Env.WritableApp0.Desc": "Consenti ai titoli di creare e scrivere file nella propria cartella di installazione.\nNecessario per i dump non pacchettizzati che scrivono salvataggi o configurazioni in /app0.", + "Options.Env.VkValidation.Desc": "Abilita i validation layer di Vulkan per il debug della GPU.\nLento. Richiede l'SDK di Vulkan installato.", + "Options.Env.DumpSpirv.Desc": "Esporta gli shader AGC e le loro traduzioni SPIR-V nella cartella shader-dumps.\nUsalo quando segnali bug di shader o di rendering.", + "Options.Env.LogDirectMemory.Desc": "Registra in console le allocazioni di memoria diretta e i relativi errori.\nUsalo quando un gioco si interrompe o si chiude durante l'avvio.", + "Options.Env.LogIo.Desc": "Registra in console l'apertura e la lettura dei file e la risoluzione dei percorsi.\nUsalo quando un gioco non trova i propri file di dati durante l'avvio.", + "Options.Env.LogNp.Desc": "Registra in console le chiamate alla libreria NP (PlayStation Network).", + "Common.Save": "Salva", + "Common.Cancel": "Annulla", + "PerGame.Title": "Impostazioni per gioco — {0} ({1})", + "PerGame.InheritNote": "Le righe non selezionate ereditano i valori globali.", + "PerGame.EnvToggles.Label": "Variabili d'ambiente", + "PerGame.EnvToggles.Desc": "Sovrascrivi l'insieme globale delle opzioni SHARPEMU_* per questo gioco.", + "Options.About": "Informazioni", + "About.Github.Label": "GitHub", + "About.Github.Desc": "Codice sorgente, issue e sviluppo del progetto.", + "About.Github.LatestCommitLabel": "Ultimo commit", + "About.Github.LatestCommitDescription": "Ultimo commit sul branch main", + "About.Discord.Label": "Discord", + "About.Discord.Desc": "Unisciti alla community, ricevi supporto e segui lo sviluppo.", + "About.GithubButton": "Contribuisci su GitHub!", + "About.DiscordButton": "Unisciti al nostro Discord!", + "Updater.Auto.Label": "Controlla aggiornamenti all'avvio", + "Updater.Auto.Desc": "Interroga GitHub senza rallentare l'avvio.", + "Updater.Label": "Aggiornamenti", + "Updater.Check": "Controlla aggiornamenti", + "Updater.DownloadRestart": "Scarica e riavvia", + "Updater.Status.Ready": "Build attuale: {0}", + "Updater.Status.Checking": "Ricerca aggiornamenti…", + "Updater.Status.Current": "Sei aggiornato ({0}).", + "Updater.Status.Available": "È disponibile un nuovo build: {0}", + "Updater.Status.Downloading": "Download dell'aggiornamento… {0}%", + "Updater.Status.Installing": "Installazione dell'aggiornamento…", + "Updater.Status.Timeout": "Il controllo degli aggiornamenti è scaduto dopo 10 secondi.", + "Updater.Status.Failed": "Impossibile controllare gli aggiornamenti.", + "Updater.Status.ChecksumFailed": "L'aggiornamento scaricato non ha superato la verifica SHA-256.", + "Updater.Status.Unsupported": "L'aggiornamento automatico richiede un build x64 per Windows, Linux o macOS." } diff --git a/src/SharpEmu.GUI/Languages/ja.json b/src/SharpEmu.GUI/Languages/ja.json index ea33a160..86decc7c 100644 --- a/src/SharpEmu.GUI/Languages/ja.json +++ b/src/SharpEmu.GUI/Languages/ja.json @@ -125,5 +125,48 @@ "Dialog.PsExecutables": "PlayStation 実行ファイル", "Dialog.SaveLogFile": "ログファイルの保存先を選択", "Dialog.PlainTextFiles": "プレーンテキストファイル", - "Dialog.LogFiles": "ログファイル" -} \ No newline at end of file + "Dialog.LogFiles": "ログファイル", + + "Library.Context.GameSettings": "ゲーム設定…", + "Options.Env.Tab": "環境", + "Options.Section.Environment": "環境変数", + "Options.Env.Desc": "起動時に環境変数としてエミュレータへ渡されるスイッチです。", + "Options.Env.Bthid.Desc": "ハンドル/FFBミドルウェアが永久に待機するタイトル向けに、Bluetooth HIDを利用不可として報告します。\n通常はオフのままにしてください。初期化に失敗するとフリーズするタイトルもあります。", + "Options.Env.LoopGuard.Desc": "同じ呼び出しを長時間繰り返すタイトルを強制終了しません。\nロード中にゲームが勝手に終了する場合に試してください。", + "Options.Env.WritableApp0.Desc": "タイトルがインストールフォルダー内にファイルを作成・書き込みできるようにします。\nセーブや設定データを/app0以下に書き込む未パッケージのダンプに必要です。", + "Options.Env.VkValidation.Desc": "GPUデバッグ用のVulkan検証レイヤーを有効にします。\n低速です。Vulkan SDKのインストールが必要です。", + "Options.Env.DumpSpirv.Desc": "AGCシェーダーとそのSPIR-V変換をshader-dumpsフォルダーに出力します。\nシェーダーや描画のバグを報告する際に使用してください。", + "Options.Env.LogDirectMemory.Desc": "ダイレクトメモリの割り当てと失敗をコンソールに記録します。\nゲームが起動中に中断・終了する場合に使用してください。", + "Options.Env.LogIo.Desc": "ファイルのオープン・読み込み・パス解決の動作をコンソールに記録します。\nゲームが起動中にデータファイルを見つけられない場合に使用してください。", + "Options.Env.LogNp.Desc": "NP(PlayStation Network)ライブラリの呼び出しをコンソールに記録します。", + "Common.Save": "保存", + "Common.Cancel": "キャンセル", + "PerGame.Title": "ゲームごとの設定 — {0} ({1})", + "PerGame.InheritNote": "チェックされていない行はグローバルの既定値を継承します。", + "PerGame.EnvToggles.Label": "環境スイッチ", + "PerGame.EnvToggles.Desc": "このゲームに対してグローバルのSHARPEMU_*スイッチを上書きします。", + "Options.About": "情報", + "About.Github.Label": "GitHub", + "About.Github.Desc": "ソースコード、Issue、プロジェクトの開発。", + "About.Github.LatestCommitLabel": "最新コミット", + "About.Github.LatestCommitDescription": "mainブランチの最新コミット", + "About.Discord.Label": "Discord", + "About.Discord.Desc": "コミュニティに参加して、サポートを受けたり開発を追いかけたりしましょう。", + "About.GithubButton": "GitHubで貢献しよう!", + "About.DiscordButton": "Discordに参加しよう!", + "Updater.Auto.Label": "起動時にアップデートを確認", + "Updater.Auto.Desc": "起動を遅らせずにGitHubへ確認します。", + "Updater.Label": "アップデート", + "Updater.Check": "アップデートを確認", + "Updater.DownloadRestart": "ダウンロードして再起動", + "Updater.Status.Ready": "現在のビルド: {0}", + "Updater.Status.Checking": "アップデートを確認しています…", + "Updater.Status.Current": "最新の状態です({0})。", + "Updater.Status.Available": "新しいビルドがあります: {0}", + "Updater.Status.Downloading": "アップデートをダウンロード中… {0}%", + "Updater.Status.Installing": "アップデートをインストール中…", + "Updater.Status.Timeout": "アップデートの確認が10秒でタイムアウトしました。", + "Updater.Status.Failed": "アップデートを確認できませんでした。", + "Updater.Status.ChecksumFailed": "ダウンロードしたアップデートはSHA-256検証に失敗しました。", + "Updater.Status.Unsupported": "自動アップデートにはWindows、Linux、またはmacOSのx64ビルドが必要です。" +} diff --git a/src/SharpEmu.GUI/Languages/ko.json b/src/SharpEmu.GUI/Languages/ko.json index 0f5e160b..03af4c71 100644 --- a/src/SharpEmu.GUI/Languages/ko.json +++ b/src/SharpEmu.GUI/Languages/ko.json @@ -125,5 +125,48 @@ "Dialog.PsExecutables": "PlayStation 실행 파일", "Dialog.SaveLogFile": "로그 파일 저장 위치 선택", "Dialog.PlainTextFiles": "일반 텍스트 파일", - "Dialog.LogFiles": "로그 파일" -} \ No newline at end of file + "Dialog.LogFiles": "로그 파일", + + "Library.Context.GameSettings": "게임 설정…", + "Options.Env.Tab": "환경", + "Options.Section.Environment": "환경 변수", + "Options.Env.Desc": "실행 시 환경 변수로 에뮬레이터에 전달되는 스위치입니다.", + "Options.Env.Bthid.Desc": "휠/FFB 미들웨어가 무한 대기하는 타이틀을 위해 블루투스 HID를 사용 불가로 보고합니다.\n평소에는 꺼 두세요. 초기화에 실패하면 멈추는 타이틀도 있습니다.", + "Options.Env.LoopGuard.Desc": "같은 호출을 너무 오래 반복하는 타이틀을 강제 종료하지 않습니다.\n게임이 로딩 중 저절로 종료될 때 시도해 보세요.", + "Options.Env.WritableApp0.Desc": "타이틀이 설치 폴더 안에 파일을 만들고 쓸 수 있도록 허용합니다.\n세이브나 설정 데이터를 /app0 아래에 쓰는 비패키지 덤프에 필요합니다.", + "Options.Env.VkValidation.Desc": "GPU 디버깅을 위한 Vulkan 검증 레이어를 활성화합니다.\n느립니다. Vulkan SDK가 설치되어 있어야 합니다.", + "Options.Env.DumpSpirv.Desc": "AGC 셰이더와 SPIR-V 변환 결과를 shader-dumps 폴더에 저장합니다.\n셰이더나 렌더링 버그를 보고할 때 사용하세요.", + "Options.Env.LogDirectMemory.Desc": "다이렉트 메모리 할당과 실패를 콘솔에 기록합니다.\n게임이 부팅 중 중단되거나 종료될 때 사용하세요.", + "Options.Env.LogIo.Desc": "파일 열기, 읽기, 경로 확인 동작을 콘솔에 기록합니다.\n게임이 부팅 중 데이터 파일을 찾지 못할 때 사용하세요.", + "Options.Env.LogNp.Desc": "NP(PlayStation Network) 라이브러리 호출을 콘솔에 기록합니다.", + "Common.Save": "저장", + "Common.Cancel": "취소", + "PerGame.Title": "게임별 설정 — {0} ({1})", + "PerGame.InheritNote": "선택하지 않은 항목은 전역 기본값을 따릅니다.", + "PerGame.EnvToggles.Label": "환경 스위치", + "PerGame.EnvToggles.Desc": "이 게임에 대해 전역 SHARPEMU_* 스위치 설정을 재정의합니다.", + "Options.About": "정보", + "About.Github.Label": "GitHub", + "About.Github.Desc": "소스 코드, 이슈, 프로젝트 개발.", + "About.Github.LatestCommitLabel": "최신 커밋", + "About.Github.LatestCommitDescription": "main 브랜치의 최신 커밋", + "About.Discord.Label": "디스코드", + "About.Discord.Desc": "커뮤니티에 참여해 지원을 받고 개발 소식을 확인하세요.", + "About.GithubButton": "GitHub에서 기여하기!", + "About.DiscordButton": "디스코드 참여하기!", + "Updater.Auto.Label": "시작 시 업데이트 확인", + "Updater.Auto.Desc": "시작을 지연시키지 않고 GitHub를 확인합니다.", + "Updater.Label": "업데이트", + "Updater.Check": "업데이트 확인", + "Updater.DownloadRestart": "다운로드 후 재시작", + "Updater.Status.Ready": "현재 빌드: {0}", + "Updater.Status.Checking": "업데이트 확인 중…", + "Updater.Status.Current": "최신 상태입니다 ({0}).", + "Updater.Status.Available": "새 빌드가 있습니다: {0}", + "Updater.Status.Downloading": "업데이트 다운로드 중… {0}%", + "Updater.Status.Installing": "업데이트 설치 중…", + "Updater.Status.Timeout": "업데이트 확인이 10초 후 시간 초과되었습니다.", + "Updater.Status.Failed": "업데이트를 확인할 수 없습니다.", + "Updater.Status.ChecksumFailed": "다운로드한 업데이트가 SHA-256 검증에 실패했습니다.", + "Updater.Status.Unsupported": "자동 업데이트에는 Windows, Linux 또는 macOS x64 빌드가 필요합니다." +} diff --git a/src/SharpEmu.GUI/Languages/nl.json b/src/SharpEmu.GUI/Languages/nl.json index 8269a3da..54df184f 100644 --- a/src/SharpEmu.GUI/Languages/nl.json +++ b/src/SharpEmu.GUI/Languages/nl.json @@ -125,5 +125,48 @@ "Dialog.PsExecutables": "PS-uitvoerbare bestanden", "Dialog.SaveLogFile": "Selecteer waar het logbestand moet worden opgeslagen", "Dialog.PlainTextFiles": "Platte tekstbestanden", - "Dialog.LogFiles": "Logbestanden" + "Dialog.LogFiles": "Logbestanden", + + "Library.Context.GameSettings": "Game-instellingen…", + "Options.Env.Tab": "Omgeving", + "Options.Section.Environment": "OMGEVINGSVARIABELEN", + "Options.Env.Desc": "Schakelaars die bij het starten als omgevingsvariabelen aan de emulator worden doorgegeven.", + "Options.Env.Bthid.Desc": "Meld Bluetooth HID als niet beschikbaar voor titels waarvan de stuur-/FFB-middleware eindeloos blijft wachten.\nLaat dit normaal uit. Sommige titels bevriezen wanneer de initialisatie mislukt.", + "Options.Env.LoopGuard.Desc": "Titels die dezelfde aanroep te lang herhalen niet geforceerd afsluiten.\nProbeer dit wanneer een game zichzelf tijdens het laden afsluit.", + "Options.Env.WritableApp0.Desc": "Sta titels toe bestanden aan te maken en te schrijven in hun installatiemap.\nNodig voor uitgepakte dumps die hun save- of configuratiegegevens onder /app0 wegschrijven.", + "Options.Env.VkValidation.Desc": "Schakel Vulkan-validatielagen in voor GPU-debugging.\nTraag. Vereist een geïnstalleerde Vulkan SDK.", + "Options.Env.DumpSpirv.Desc": "Sla AGC-shaders en hun SPIR-V-vertalingen op in de map shader-dumps.\nGebruik dit bij het melden van shader- of renderfouten.", + "Options.Env.LogDirectMemory.Desc": "Log directe geheugentoewijzingen en fouten naar de console.\nGebruik dit wanneer een game tijdens het opstarten afbreekt of afsluit.", + "Options.Env.LogIo.Desc": "Log het openen en lezen van bestanden en het oplossen van paden naar de console.\nGebruik dit wanneer een game zijn databestanden niet kan vinden tijdens het opstarten.", + "Options.Env.LogNp.Desc": "Log NP-bibliotheekaanroepen (PlayStation Network) naar de console.", + "Common.Save": "Opslaan", + "Common.Cancel": "Annuleren", + "PerGame.Title": "Instellingen per game — {0} ({1})", + "PerGame.InheritNote": "Niet-aangevinkte rijen erven de globale standaardwaarden.", + "PerGame.EnvToggles.Label": "Omgevingsschakelaars", + "PerGame.EnvToggles.Desc": "Overschrijf de globale set SHARPEMU_*-schakelaars voor deze game.", + "Options.About": "Over", + "About.Github.Label": "GitHub", + "About.Github.Desc": "Broncode, issues en projectontwikkeling.", + "About.Github.LatestCommitLabel": "Nieuwste commit", + "About.Github.LatestCommitDescription": "Nieuwste commit op de main-branch", + "About.Discord.Label": "Discord", + "About.Discord.Desc": "Word lid van de community, krijg ondersteuning en volg de ontwikkeling.", + "About.GithubButton": "Draag bij op GitHub!", + "About.DiscordButton": "Word lid van onze Discord!", + "Updater.Auto.Label": "Bij het opstarten controleren op updates", + "Updater.Auto.Desc": "Controleert GitHub zonder het opstarten te vertragen.", + "Updater.Label": "Updates", + "Updater.Check": "Controleren op updates", + "Updater.DownloadRestart": "Downloaden en opnieuw starten", + "Updater.Status.Ready": "Huidige build: {0}", + "Updater.Status.Checking": "Controleren op updates…", + "Updater.Status.Current": "Je bent up-to-date ({0}).", + "Updater.Status.Available": "Er is een nieuwe build beschikbaar: {0}", + "Updater.Status.Downloading": "Update downloaden… {0}%", + "Updater.Status.Installing": "Update installeren…", + "Updater.Status.Timeout": "De updatecontrole is na 10 seconden verlopen.", + "Updater.Status.Failed": "Kon niet controleren op updates.", + "Updater.Status.ChecksumFailed": "De gedownloade update is niet door de SHA-256-verificatie gekomen.", + "Updater.Status.Unsupported": "Automatisch updaten vereist een x64-build voor Windows, Linux of macOS." } diff --git a/src/SharpEmu.GUI/Languages/pt.json b/src/SharpEmu.GUI/Languages/pt.json index 31ea51e2..ba757fa5 100644 --- a/src/SharpEmu.GUI/Languages/pt.json +++ b/src/SharpEmu.GUI/Languages/pt.json @@ -142,5 +142,32 @@ "About.Discord.Label": "Discord", "About.Discord.Desc": "Junte-se à comunidade, obtenha suporte e acompanhe o desenvolvimento.", "About.GithubButton": "Contribua no GitHub!", - "About.DiscordButton": "Junte-se ao nosso Discord!" + "About.DiscordButton": "Junte-se ao nosso Discord!", + + "Library.Context.GameSettings": "Definições do jogo…", + "Options.Env.WritableApp0.Desc": "Permitir que os jogos criem e escrevam ficheiros dentro da sua pasta de instalação.\nNecessário para dumps não empacotados que escrevem os seus dados guardados ou configurações em /app0.", + "Options.Env.LogIo.Desc": "Registar na consola a abertura e leitura de ficheiros e a resolução de caminhos.\nUtilize quando um jogo não encontrar os seus ficheiros de dados durante o arranque.", + "Common.Save": "Guardar", + "Common.Cancel": "Cancelar", + "PerGame.Title": "Definições por jogo — {0} ({1})", + "PerGame.InheritNote": "As linhas não assinaladas herdam as predefinições globais.", + "PerGame.EnvToggles.Label": "Variáveis de ambiente", + "PerGame.EnvToggles.Desc": "Substituir o conjunto global de opções SHARPEMU_* para este jogo.", + "About.Github.LatestCommitLabel": "Último commit", + "About.Github.LatestCommitDescription": "Último commit no ramo main", + "Updater.Auto.Label": "Procurar atualizações no arranque", + "Updater.Auto.Desc": "Consulta o GitHub sem atrasar o arranque.", + "Updater.Label": "Atualizações", + "Updater.Check": "Procurar atualizações", + "Updater.DownloadRestart": "Transferir e reiniciar", + "Updater.Status.Ready": "Build atual: {0}", + "Updater.Status.Checking": "A procurar atualizações…", + "Updater.Status.Current": "Está atualizado ({0}).", + "Updater.Status.Available": "Está disponível um novo build: {0}", + "Updater.Status.Downloading": "A transferir a atualização… {0}%", + "Updater.Status.Installing": "A instalar a atualização…", + "Updater.Status.Timeout": "A verificação de atualizações expirou após 10 segundos.", + "Updater.Status.Failed": "Não foi possível procurar atualizações.", + "Updater.Status.ChecksumFailed": "A atualização transferida falhou a verificação SHA-256.", + "Updater.Status.Unsupported": "A atualização automática requer um build x64 para Windows, Linux ou macOS." } diff --git a/src/SharpEmu.GUI/Languages/ru.json b/src/SharpEmu.GUI/Languages/ru.json index a7022a8c..924a7f1b 100644 --- a/src/SharpEmu.GUI/Languages/ru.json +++ b/src/SharpEmu.GUI/Languages/ru.json @@ -169,5 +169,7 @@ "Updater.Status.Installing": "Установка обновления…", "Updater.Status.Timeout": "Проверка обновлений превысила лимит времени в 10 секунд.", "Updater.Status.Failed": "Не удалось проверить наличие обновлений.", - "Updater.Status.Unsupported": "Автоматическое обновление требует сборку Windows, Linux или macOS x64." + "Updater.Status.Unsupported": "Автоматическое обновление требует сборку Windows, Linux или macOS x64.", + + "Updater.Status.ChecksumFailed": "Скачанное обновление не прошло проверку SHA-256." } diff --git a/src/SharpEmu.GUI/Languages/tr.json b/src/SharpEmu.GUI/Languages/tr.json index 7c074f9f..89fa5ff7 100644 --- a/src/SharpEmu.GUI/Languages/tr.json +++ b/src/SharpEmu.GUI/Languages/tr.json @@ -141,5 +141,33 @@ "Updater.Status.Timeout": "Güncelleme denetimi 10 saniye sonra zaman aşımına uğradı.", "Updater.Status.Failed": "Güncellemeler denetlenemedi.", "Updater.Status.ChecksumFailed": "İndirilen güncelleme SHA-256 doğrulamasını geçemedi.", - "Updater.Status.Unsupported": "Otomatik güncelleme Windows, Linux veya macOS x64 build'i gerektirir." + "Updater.Status.Unsupported": "Otomatik güncelleme Windows, Linux veya macOS x64 build'i gerektirir.", + + "Library.Context.GameSettings": "Oyun ayarları…", + "Options.Env.Tab": "Ortam", + "Options.Section.Environment": "ORTAM DEĞİŞKENLERİ", + "Options.Env.Desc": "Başlatma sırasında emülatöre ortam değişkeni olarak geçirilen anahtarlar.", + "Options.Env.Bthid.Desc": "Direksiyon/FFB katmanı sonsuza kadar bekleyen oyunlar için Bluetooth HID'i kullanılamıyor olarak bildir.\nNormalde kapalı bırakın. Bazı oyunlar başlatma başarısız olduğunda donar.", + "Options.Env.LoopGuard.Desc": "Aynı çağrıyı uzun süre tekrarlayan oyunları zorla kapatma.\nBir oyun yükleme sırasında kendiliğinden kapanıyorsa bunu deneyin.", + "Options.Env.WritableApp0.Desc": "Oyunların kurulum klasörlerinde dosya oluşturup yazmasına izin ver.\nKayıt veya yapılandırma verisini /app0 altına yazan paketlenmemiş dump'lar için gereklidir.", + "Options.Env.VkValidation.Desc": "GPU hata ayıklaması için Vulkan doğrulama katmanlarını etkinleştir.\nYavaştır. Vulkan SDK'nın kurulu olması gerekir.", + "Options.Env.DumpSpirv.Desc": "AGC shader'larını ve SPIR-V çevirilerini shader-dumps klasörüne kaydet.\nShader veya görüntü hatalarını bildirirken kullanın.", + "Options.Env.LogDirectMemory.Desc": "Doğrudan bellek tahsislerini ve hatalarını konsola günlükle.\nBir oyun açılış sırasında çöküyor veya kapanıyorsa kullanın.", + "Options.Env.LogIo.Desc": "Dosya açma, okuma ve yol çözümleme etkinliğini konsola günlükle.\nBir oyun açılışta veri dosyalarını bulamıyorsa kullanın.", + "Options.Env.LogNp.Desc": "NP (PlayStation Network) kütüphane çağrılarını konsola günlükle.", + "Common.Save": "Kaydet", + "Common.Cancel": "İptal", + "PerGame.Title": "Oyuna özel ayarlar — {0} ({1})", + "PerGame.InheritNote": "İşaretlenmemiş satırlar genel varsayılanları kullanır.", + "PerGame.EnvToggles.Label": "Ortam anahtarları", + "PerGame.EnvToggles.Desc": "Bu oyun için genel SHARPEMU_* anahtar kümesini geçersiz kıl.", + "Options.About": "Hakkında", + "About.Github.Label": "GitHub", + "About.Github.Desc": "Kaynak kodu, hata kayıtları ve proje geliştirme.", + "About.Github.LatestCommitLabel": "Son Commit", + "About.Github.LatestCommitDescription": "main dalındaki son commit", + "About.Discord.Label": "Discord", + "About.Discord.Desc": "Topluluğa katılın, destek alın ve geliştirmeyi takip edin.", + "About.GithubButton": "GitHub'da katkıda bulun!", + "About.DiscordButton": "Discord'umuza katıl!" } diff --git a/src/SharpEmu.GUI/MainWindow.axaml b/src/SharpEmu.GUI/MainWindow.axaml index 8d6276a7..16baeec5 100644 --- a/src/SharpEmu.GUI/MainWindow.axaml +++ b/src/SharpEmu.GUI/MainWindow.axaml @@ -91,7 +91,7 @@ SPDX-License-Identifier: GPL-2.0-or-later - + + @@ -1631,8 +1647,20 @@ public partial class MainWindow : Window var generation = ++_backdropGeneration; BackdropImage.Opacity = 0; + // The bundled key art is the primary backdrop whenever the selection + // has no art of its own; the window color stays as the last fallback. + void ShowDefaultBackdrop() + { + if (generation == _backdropGeneration && _defaultBackdrop is not null) + { + BackdropImage.Source = _defaultBackdrop; + BackdropImage.Opacity = 1.0; + } + } + if (game?.BackgroundPath is null) { + ShowDefaultBackdrop(); return; } @@ -1649,7 +1677,8 @@ public partial class MainWindow : Window } catch (Exception) { - return; // undecodable key art: keep the plain background + ShowDefaultBackdrop(); // undecodable key art + return; } } @@ -1969,6 +1998,7 @@ public partial class MainWindow : Window _awaitingFirstFrame = false; ClearLibraryBlur(); MainContent.Margin = new Thickness(0); + RestoreGameViewToFull(); GameView.Background = Brushes.Black; GameView.IsHitTestVisible = true; _gameSurfaceHost?.SetPresentationVisible(true); @@ -2030,11 +2060,31 @@ public partial class MainWindow : Window } } + /// + /// The native host attachment is a real child window: it sits above every + /// Avalonia control it covers and swallows their mouse input regardless of + /// hit-test settings. While the library must stay interactive (loading, + /// closing), the surface is parked offscreen AT FULL SIZE via a negative + /// margin. It must not be shrunk instead: the emulator child polls the + /// HWND client size and its presenter defers swapchain creation while the + /// surface is 1px, which would deadlock the loading handshake. + /// + private void ParkGameViewOffscreen() + { + GameView.Margin = new Thickness(-20000, 0, 20000, 0); + } + + private void RestoreGameViewToFull() + { + GameView.Margin = new Thickness(0); + } + private void ShowGameView() { _isStopping = false; _awaitingFirstFrame = true; var host = EnsureGameSurfaceHost(); + ParkGameViewOffscreen(); GameView.IsVisible = true; GameView.Background = Brushes.Transparent; GameView.IsHitTestVisible = false; @@ -2068,16 +2118,15 @@ public partial class MainWindow : Window LibraryPage.IsVisible = _activePageIndex == 0; LibraryToolbar.IsVisible = _activePageIndex == 0; OptionsPage.IsVisible = _activePageIndex == 1; - if (GameList.SelectedItem is GameEntry game && game.Background is not null) - { - BackdropImage.Opacity = 1; - } + // Game art when the source still holds it, otherwise the bundled + // default; a bare color only when neither is available. + BackdropImage.Opacity = BackdropImage.Source is not null ? 1 : 0; } private void AnimateLibraryBlur(double targetRadius, bool clearWhenComplete = false) { _libraryBlur ??= new BlurEffect(); - MainContent.Effect = _libraryBlur; + PagesHost.Effect = _libraryBlur; _libraryBlurStartRadius = _libraryBlur.Radius; _libraryBlurTargetRadius = Math.Max(0, targetRadius); @@ -2126,7 +2175,7 @@ public partial class MainWindow : Window if (_clearLibraryBlurWhenComplete) { - MainContent.Effect = null; + PagesHost.Effect = null; _libraryBlur = null; _clearLibraryBlurWhenComplete = false; } @@ -2137,7 +2186,7 @@ public partial class MainWindow : Window _libraryBlurTimer.Stop(); _libraryBlur = null; _clearLibraryBlurWhenComplete = false; - MainContent.Effect = null; + PagesHost.Effect = null; } private void ShowSessionLoading(string title, string detail) @@ -2156,10 +2205,12 @@ public partial class MainWindow : Window // Keep the native child alive until the session exits, but hide it // immediately. Destroying it while Vulkan still owns the surface can - // crash the GUI; leaving it transparent lets the library recover - // while the native closing popup reports teardown progress. + // crash the GUI; parking it in the 1x1 corner lets the library + // recover — and stay clickable — while the native closing popup + // reports teardown progress. _gameSurfaceHost?.SetPresentationVisible(false); _awaitingFirstFrame = false; + ParkGameViewOffscreen(); GameView.Background = Brushes.Transparent; GameView.IsHitTestVisible = false; SessionBarPopup.IsOpen = false; @@ -2171,7 +2222,7 @@ public partial class MainWindow : Window LibraryPage.IsVisible = _activePageIndex == 0; LibraryToolbar.IsVisible = _activePageIndex == 0; OptionsPage.IsVisible = _activePageIndex == 1; - BackdropImage.Opacity = GameList.SelectedItem is GameEntry { Background: not null } ? 1 : 0; + BackdropImage.Opacity = BackdropImage.Source is not null ? 1 : 0; UpdateRunButtons(); Console.Error.WriteLine("[GUI][INFO] Library restored while embedded session is closing."); } diff --git a/src/SharpEmu.GUI/SharpEmu.GUI.csproj b/src/SharpEmu.GUI/SharpEmu.GUI.csproj index 0f53187a..8df6ccd6 100644 --- a/src/SharpEmu.GUI/SharpEmu.GUI.csproj +++ b/src/SharpEmu.GUI/SharpEmu.GUI.csproj @@ -38,6 +38,7 @@ SPDX-License-Identifier: GPL-2.0-or-later +