From ffec5aba5ee7baa47c44ba202cfae2dd07457b5f Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Fri, 30 Jun 2023 02:01:01 +0000 Subject: [PATCH 01/85] translations: transifex pull Signed-off-by: Rafael Kitover --- po/wxvbam/it_IT.po | 73 +++++++++++++++++++++++----------------------- 1 file changed, 37 insertions(+), 36 deletions(-) diff --git a/po/wxvbam/it_IT.po b/po/wxvbam/it_IT.po index 1c5611bad..863c23bc0 100644 --- a/po/wxvbam/it_IT.po +++ b/po/wxvbam/it_IT.po @@ -11,6 +11,7 @@ # Emanuele Baserga , 2019 # Picat , 2016 # Giulio Serroni, 2022 +# JustAnOrange, 2023 # Luca Bonello , 2016 # Michele Rebughini , 2020 # OTTO X , 2015 @@ -25,7 +26,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-05-23 14:26-0700\n" "PO-Revision-Date: 2011-12-03 19:42+0000\n" -"Last-Translator: Sergio Mari, 2022\n" +"Last-Translator: JustAnOrange, 2023\n" "Language-Team: Italian (Italy) (http://app.transifex.com/bgk/vba-m/language/it_IT/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -40,7 +41,7 @@ msgstr "visualboyadvance-m" #: wxvbam.cpp:380 wxvbam.cpp:397 #, c-format msgid "Invalid configuration file provided: %s" -msgstr "" +msgstr "Il file di configurazione \"%s\" è invalido." #: wxvbam.cpp:536 msgid "Could not create main window" @@ -84,14 +85,14 @@ msgstr "=" #: wxvbam.cpp:676 msgid "Configuration / build error: can't find built-in xrc" -msgstr "" +msgstr "C'è un problema con la configurazione/build:\\nImpossibile trovare xrc" #: wxvbam.cpp:684 #, c-format msgid "" "Wrote built-in configuration to %s.\n" "To override, remove all but changed root node(s). First found root node of correct name in any .xrc or .xrs files in following search path overrides built-in:" -msgstr "" +msgstr "Configurazione built-in salvata in %s. Per annullare, elimini tutti i nodi di radice non modificati.\\nIl primo nodo di radice con il nome corretto in qualunque file .xrc o .xrs nel seguente percorso di ricerca sovrascrive l'integrata:" #: wxvbam.cpp:698 msgid "Configuration is read from, in order:" @@ -102,7 +103,7 @@ msgstr "La configurazione è letta in quest'ordine da" msgid "" "Wrote built-in override file to %s\n" "To override, delete all but changed section. First found section is used from search path:" -msgstr "" +msgstr "File di override integrato scritto in %s.\nPer annullare, elimina tutte le sezioni non modificate. La prima sezione usata è trovata partendo dal seguente percorso di ricerca:" #: wxvbam.cpp:718 msgid "" @@ -202,11 +203,11 @@ msgstr "Rimozione trucchi" #: guiinit.cpp:776 dialogs/gb-rom-info.cpp:60 xrc/JoyPanel.xrc:364 msgid "Game Shark" -msgstr "" +msgstr "Game Shark" #: guiinit.cpp:777 dialogs/gb-rom-info.cpp:57 msgid "Game Genie" -msgstr "" +msgstr "Game Genie" #: guiinit.cpp:779 msgid "Generic Code" @@ -214,11 +215,11 @@ msgstr "Codice Generico" #: guiinit.cpp:780 msgid "Game Shark Advance" -msgstr "" +msgstr "Game Shark Advance" #: guiinit.cpp:781 msgid "Code Breaker Advance" -msgstr "" +msgstr "CodeBreaker Advance" #: guiinit.cpp:782 msgid "Flashcart CHT" @@ -334,7 +335,7 @@ msgstr "0x03000000 - IRAM" #: viewers.cpp:818 msgid "0x04000000 - I / O" -msgstr "" +msgstr "0x04000000 - I/O" #: viewers.cpp:819 msgid "0x05000000 - PALETTE" @@ -378,7 +379,7 @@ msgstr "0xD000 - WRAM" #: viewers.cpp:931 msgid "0xFF00 - I / O" -msgstr "" +msgstr "0xFF00 - I/O" #: viewers.cpp:932 msgid "0xFF80 - RAM" @@ -404,7 +405,7 @@ msgid "" "(*.agb;*.gba;*.bin;*.elf;*.mb;*.zip;*.7z;*.rar)|*.agb;*.gba;*.bin;*.elf;*.mb;*.agb.gz;*.gba.gz;*.bin.gz;*.elf.gz;*.mb.gz;*.agb.z;*.gba.z;*.bin.z;*.elf.z;*.mb.z;*.zip;*.7z;*.rar|Game" " Boy Files " "(*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" -msgstr "" +msgstr "File compatibili\n(*.agb;*.gba;*.bin;*.elf;*.mb;*.zip;*.7z;*.rar)|*.agb;*.gba;*.bin;*.elf;*.mb;*.agb.gz;*.gba.gz;*.bin.gz;*.elf.gz;*.mb.gz;*.agb.z;*.gba.z;*.bin.z;*.elf.z;*.mb.z;*.zip;*.7z;*.rar|Game Boy Files (*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" #: cmdevents.cpp:140 msgid "Open ROM file" @@ -414,7 +415,7 @@ msgstr "Apri file ROM" msgid "" "Game Boy Files " "(*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" -msgstr "" +msgstr "File compatibili\n(*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" #: cmdevents.cpp:167 msgid "Open GB ROM file" @@ -652,7 +653,7 @@ msgstr "" #: cmdevents.cpp:2316 msgid "Nintendo Game Boy / Color / Advance emulator." -msgstr "" +msgstr "Emulatore GB/GBC/GBA" #: cmdevents.cpp:2317 msgid "" @@ -675,15 +676,15 @@ msgid "" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see http://www.gnu.org/licenses ." -msgstr "" +msgstr "Questo programma è un software gratuito: puoi ridistribuirlo e/o modificarlo\nrispettando i termini della GNU General Public License pubblicata dalla\nFree Software Foundation, sia la versione 2 della licenza, o\n(a tua scelta) una qualunque versione successiva.\n\nQuesto programma è distribuito nella speranza che sia utile,\nma SENZA ALCUNA GARANZIA; senza neppure la garanzia di\nCOMMERCIABILITÀ o IDONEITÀ PER FINALITÀ PARTICOLARI.\nConsulta la GNU General Public License per maggiori dettagli.\n\nDovresti aver ricevuto una copia della GNU General Public License\nassieme a questo programma. Altrimenti, consulta http://www.gnu.org/licenses ." #: cmdevents.cpp:2504 msgid "Cannot use Game Boy BIOS when Colorizer Hack is enabled." -msgstr "" +msgstr "Impossibile usare il bios GameBoy quando la Colorizer Hack è attiva" #: cmdevents.cpp:2558 msgid "LAN link is already active. Disable link mode to disconnect." -msgstr "" +msgstr "LAN Link è gia attivo. DIsattiva la modalità link per disconnettere." #: cmdevents.cpp:2564 msgid "Network is not supported in local mode." @@ -691,37 +692,37 @@ msgstr "La rete non è supportata in modalità locale." #: extra-translations.cpp:12 msgid "&Apply" -msgstr "" +msgstr "&Applica" #: extra-translations.cpp:13 msgid "Artists" -msgstr "" +msgstr "Artisti" #: extra-translations.cpp:14 msgid "Cancel" -msgstr "" +msgstr "Cancella" #: extra-translations.cpp:15 msgid "Close" -msgstr "" +msgstr "Chiudi" #: extra-translations.cpp:16 msgid "Developers" -msgstr "" +msgstr "Sviluppatori" #: extra-translations.cpp:17 msgid "License" -msgstr "" +msgstr "Licenze" #: extra-translations.cpp:18 msgid "OK" -msgstr "" +msgstr "Ok" #: opts.cpp:290 msgid "" "The INI file was written for a more recent version of VBA-M. Some INI option" " values may have been reset." -msgstr "" +msgstr "Questo file di configurazione è stato creato per una versione più recente di VBA-M.\nAlcune impostazioni potrebbero essere state resettate." #: opts.cpp:457 opts.cpp:477 opts.cpp:662 #, c-format @@ -731,12 +732,12 @@ msgstr "Tasto obbligatorio non valido %s per %s" #: opts.cpp:598 opts.cpp:607 opts.cpp:616 opts.cpp:625 config/option.cpp:492 #, c-format msgid "Invalid value %s for option %s" -msgstr "" +msgstr "Il valore %s non è valido per l'opzione \"%s\"" #: opts.cpp:684 #, c-format msgid "Unknown option %s with value %s" -msgstr "" +msgstr "L'opzione \"%s\" con valore \"%s\", è invalida." #: sys.cpp:200 sys.cpp:261 msgid "No game in progress to record" @@ -771,12 +772,12 @@ msgstr "La riproduzione si è conclusa" #: sys.cpp:453 #, c-format msgid "%d %% (%d, %d fps)" -msgstr "" +msgstr "%d%%(%d, %d fps)" #: sys.cpp:461 #, c-format msgid "%d %%" -msgstr "" +msgstr "%d%%" #: sys.cpp:895 xrc/GBPrinter.xrc:65 msgid "&Discard" @@ -831,7 +832,7 @@ msgstr "Impossibile caricare la Game Boy ROM %s" msgid "" "Cannot use Game Boy BIOS file when Colorizer Hack is enabled, disabling Game" " Boy BIOS file." -msgstr "" +msgstr "Impossibile usare il bios GameBoy quando la Colorizer Hack è attiva" #: panel.cpp:286 panel.cpp:386 #, c-format @@ -870,17 +871,17 @@ msgstr "Errore nel salvare lo stato %s" #: panel.cpp:948 #, c-format msgid "Fullscreen mode %d x %d - %d @ %d not supported; looking for another" -msgstr "" +msgstr "La modalità \"%dx%d-%d %dhz\" non è supportata. Cercando modalità supportate..." #: panel.cpp:986 #, c-format msgid "Fullscreen mode %d x %d - %d @ %d not supported" -msgstr "" +msgstr "La modalità \"%dx%d-%d %dhz\" non è supportata. " #: panel.cpp:991 #, c-format msgid "Valid mode: %d x %d - %d @ %d" -msgstr "" +msgstr "RIsoluzione supportata: %dx%d-%d %dhz" #: panel.cpp:999 #, c-format @@ -894,7 +895,7 @@ msgstr "" #: panel.cpp:1094 msgid "Not a valid Game Boy Advance cartridge" -msgstr "" +msgstr "Cartuccia GBA non valida" #: panel.cpp:1257 msgid "No memory for rewinding" @@ -906,11 +907,11 @@ msgstr "Errore nel salvare lo stato" #: panel.cpp:2285 msgid "Enabling EGL VSync." -msgstr "" +msgstr "Abilitando il VSync EGL" #: panel.cpp:2287 msgid "Disabling EGL VSync." -msgstr "" +msgstr "Disabilitando il VSync Egl" #: panel.cpp:2294 msgid "Enabling GLX VSync." From 24b92462f90ba44a218daa5a4cc5db1b27446119 Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Mon, 3 Jul 2023 02:02:24 +0000 Subject: [PATCH 02/85] translations: transifex pull Signed-off-by: Rafael Kitover --- po/wxvbam/zh-Hans.po | 6 +++--- po/wxvbam/zh_CN.po | 6 +++--- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/po/wxvbam/zh-Hans.po b/po/wxvbam/zh-Hans.po index 90d8f983a..2bc904aa6 100644 --- a/po/wxvbam/zh-Hans.po +++ b/po/wxvbam/zh-Hans.po @@ -10,7 +10,7 @@ # Rythm Tse , 2016 # Xuntao Chi <1139954766@qq.com>, 2019 # 后海游泳大老爷 , 2015,2020 -# 天绝星 , 2016-2017,2019-2020,2022 +# 天绝星 , 2016-2017,2019-2020,2022-2023 # 威 诸 , 2020 # 智弘 王, 2022 # 沈舒超 , 2015 @@ -22,7 +22,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-05-23 14:26-0700\n" "PO-Revision-Date: 2011-12-03 19:42+0000\n" -"Last-Translator: 陈 依云 , 2023\n" +"Last-Translator: 天绝星 , 2016-2017,2019-2020,2022-2023\n" "Language-Team: Chinese Simplified (http://app.transifex.com/bgk/vba-m/language/zh-Hans/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1738,7 +1738,7 @@ msgstr " + 电池" #: dialogs/gb-rom-info.cpp:70 msgid " + Rumble" -msgstr " + 隆隆声" +msgstr " + 震动" #: dialogs/gb-rom-info.cpp:71 msgid " + Motion Sensor" diff --git a/po/wxvbam/zh_CN.po b/po/wxvbam/zh_CN.po index d766ce420..0b5035729 100644 --- a/po/wxvbam/zh_CN.po +++ b/po/wxvbam/zh_CN.po @@ -9,7 +9,7 @@ # wr superboy, 2023 # Xuntao Chi <1139954766@qq.com>, 2019 # 后海游泳大老爷 , 2015 -# 天绝星 , 2017,2019-2020,2022 +# 天绝星 , 2017,2019-2020,2022-2023 # 智弘 王, 2022 # 沈舒超 , 2015 # 王晨旭 , 2021 @@ -20,7 +20,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-05-23 14:26-0700\n" "PO-Revision-Date: 2011-12-03 19:42+0000\n" -"Last-Translator: 陈 依云 , 2023\n" +"Last-Translator: 天绝星 , 2017,2019-2020,2022-2023\n" "Language-Team: Chinese (China) (http://app.transifex.com/bgk/vba-m/language/zh_CN/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -1736,7 +1736,7 @@ msgstr " + 电池" #: dialogs/gb-rom-info.cpp:70 msgid " + Rumble" -msgstr " + 隆隆声" +msgstr " + 震动" #: dialogs/gb-rom-info.cpp:71 msgid " + Motion Sensor" From 7561ca97c12b4a1584eb45edb6dd4b507a7b6f06 Mon Sep 17 00:00:00 2001 From: Squall-Leonhart Date: Thu, 29 Jun 2023 09:25:37 +1000 Subject: [PATCH 03/85] Fix Discord streaming for OpenGL Check if the OpenGL context is valid on every operation, and if not re-initialize it. Also rebind the textures every time the frame is drawn. Also rename the SetCurrent method to SetContext, which is clearer. Fix #643 Fix #767 Fix #840 Fix #843 Signed-off-by: Rafael Kitover --- src/wx/drawing.h | 5 +++-- src/wx/panel.cpp | 46 ++++++++++++++++++++++++++++++++++------------ 2 files changed, 37 insertions(+), 14 deletions(-) diff --git a/src/wx/drawing.h b/src/wx/drawing.h index def47591a..2332a030d 100644 --- a/src/wx/drawing.h +++ b/src/wx/drawing.h @@ -38,10 +38,11 @@ class GLDrawingPanel : public DrawingPanelBase, public wxGLCanvas { void DrawArea(wxWindowDC& dc); void OnSize(wxSizeEvent& ev); void AdjustViewport(); + void RefreshGL(); #ifndef wxGL_IMPLICIT_CONTEXT - wxGLContext* ctx; + wxGLContext* ctx = nullptr; #endif - bool SetCurrent(); + bool SetContext(); void DrawingPanelInit(); GLuint texid, vlist; int texsize; diff --git a/src/wx/panel.cpp b/src/wx/panel.cpp index d27224677..93ad5f321 100644 --- a/src/wx/panel.cpp +++ b/src/wx/panel.cpp @@ -2183,9 +2183,26 @@ static int glopts[] = { WX_GL_RGBA, WX_GL_DOUBLEBUFFER, 0 }; -bool GLDrawingPanel::SetCurrent() +bool GLDrawingPanel::SetContext() { #ifndef wxGL_IMPLICIT_CONTEXT + // Check if the current context is valid + if (!ctx +#if wxCHECK_VERSION(3, 1, 0) + || !ctx->IsOK() +#endif + ) + { + // Delete the old context + if (ctx) { + delete ctx; + ctx = nullptr; + } + + // Create a new context + ctx = new wxGLContext(this); + DrawingPanelInit(); + } return wxGLCanvas::SetCurrent(*ctx); #else return wxGLContext::SetCurrent(*this); @@ -2198,11 +2215,7 @@ GLDrawingPanel::GLDrawingPanel(wxWindow* parent, int _width, int _height) wxFULL_REPAINT_ON_RESIZE | wxWANTS_CHARS) { widgets::RequestHighResolutionOpenGlSurfaceForWindow(this); -#ifndef wxGL_IMPLICIT_CONTEXT - ctx = new wxGLContext(this); -#endif - SetCurrent(); - if (!did_init) DrawingPanelInit(); + SetContext(); } GLDrawingPanel::~GLDrawingPanel() @@ -2211,7 +2224,7 @@ GLDrawingPanel::~GLDrawingPanel() // it's also unsafe if panel no longer displayed if (did_init) { - SetCurrent(); + SetContext(); glDeleteLists(vlist, 1); glDeleteTextures(1, &texid); } @@ -2223,7 +2236,7 @@ GLDrawingPanel::~GLDrawingPanel() void GLDrawingPanel::DrawingPanelInit() { - SetCurrent(); + SetContext(); DrawingPanelBase::DrawingPanelInit(); @@ -2361,7 +2374,6 @@ void GLDrawingPanel::DrawingPanelInit() void GLDrawingPanel::OnSize(wxSizeEvent& ev) { - SetCurrent(); AdjustViewport(); // Temporary hack to backport 800d6ed69b from wxWidgets until 3.2.2 is released. @@ -2373,7 +2385,7 @@ void GLDrawingPanel::OnSize(wxSizeEvent& ev) void GLDrawingPanel::AdjustViewport() { - SetCurrent(); + SetContext(); int x, y; widgets::GetRealPixelClientSize(this, &x, &y); @@ -2387,10 +2399,20 @@ void GLDrawingPanel::AdjustViewport() #endif } +void GLDrawingPanel::RefreshGL() +{ + SetContext(); + + // Rebind any textures or other OpenGL resources here + + glBindTexture(GL_TEXTURE_2D, texid); +} + void GLDrawingPanel::DrawArea(wxWindowDC& dc) { (void)dc; // unused params - SetCurrent(); + SetContext(); + RefreshGL(); if (!did_init) DrawingPanelInit(); @@ -2678,4 +2700,4 @@ void GameArea::UnsuspendScreenSaver() { xscreensaver_suspended = false; } #endif // HAVE_XSS -} +} \ No newline at end of file From d0194d9a75fed9372888c2d1112105c30ce29b60 Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Sun, 9 Jul 2023 15:18:49 +0000 Subject: [PATCH 04/85] release v2.1.6 Signed-off-by: Rafael Kitover --- CHANGELOG.md | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 6155b3e08..1eaae0b91 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,42 @@ All notable changes to this project will be documented in this file. The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0.html). +## [2.1.6] - 09.07.2023 + +========================= +* 7561ca97 - Fix Discord streaming for OpenGL [danialhorton] +* e26f8073 - [bios] Fix lz77 and add BIOS_SndDriverVsyncOn [steelskin] +* d1f65000 - Refactor accelerator / global shortcuts handling [steelskin] +* fda429fc - [GBA] Do not draw BG tiles from outside of BG VRAM [steelskin] +* 5aa3ea92 - Properly initialize wxAcceleratorTable [steelskin] +* 0e29be87 - Support multiple RAM sizes for MBC7 [steelskin] +* 75b79d91 - Change MBC7 reported RAM size to 512 bytes [steelskin] +* 36e88faf - Fix dsound looping when moving/resizing window [rkitover] +* 019fcda9 - Sanitize and improve the GB header parsing (#1109) [Steelskin] +* 7005b928 - Sanitize allocations in the Game Boy emulator (#1105) [Steelskin] +* 3cef52b7 - Fix pause/next-frame [rkitover] +* d3f8cc17 - Option to suspend the X11 screensaver when running [2306079+multiSnow] +* df819598 - builder: update macOS build to 10.10, Wx 3.2.2.1 [rkitover] +* 1ab46f70 - Update SIOCNT when the link driver is disconnected [steelskin] +* 1d7e8ae4 - build: fix build with new OpenAL [rkitover] +* a9284b3d - workaround for Stuart Little 2 crashing when set to none [danialhorton] +* 166299cd - Implements Read/Writes for HUC3 [danialhorton] +* 640ce453 - Change SOUND_CLOCK_TICKS to 280896 cycles - ~1074 samples per frame [reallibretroretroarch] +* f1d3f631 - Fix automatic dynamic frame skipping [steelskin] +* d756f671 - translations: fix some source strings [stanley.udr.kid] +* 91873254 - Add INI file versioning [steelskin] +* 7d9cb2b5 - Default GBA LCD filter to off. [rkitover] +* be1e5ca1 - Check for wx < 3.2.2 for EGL move fix backport [rkitover] +* 1fb18b32 - Rename appdata to metainfo [polynomial-c] +* ca7ae336 - Fix regression in bios, port DMA fix from libretro [danialhorton] +* b34448c9 - Fix record/play dialogs for native recordings [danialhorton] +* 6307348c - build: support MSVC arm64 cross build on x86 [rkitover] +* 87bdc93e - Revert "translations: use %% instead of percent" [rkitover] +* ab4ae96e - Clarify/set condition: wayland && !wayland_egl [rkitover] +* 8e4acfc9 - Fix build w/wxUSE_GLCANVAS_EGL=0, on Fedora [rkitover] +* 3c41b68d - Fix the Windows ARM64 build [steelskin] +* 22578d02 - Increase MAX_CART_SIZE from 32MiB to 128MiB [rkitover] + ## [2.1.5] - 2022-12-15 ======================= * ea2a929f - Backport 800d6ed69b from wx to fix Wayland EGL pos [rkitover] From bde372bc72ac72a6dc8a2ea9443b5424043c5c9a Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Mon, 10 Jul 2023 01:37:55 +0000 Subject: [PATCH 05/85] build: fix codesigning arm64 release binaries CMAKE_CROSSCOMPILING is true when building arm64 on an x64 host, so ignore this on MSVC. Eventually we want to run osslsigncode through wine when cross compiling for win32 on other platforms, or use the native signtool. Signed-off-by: Rafael Kitover --- src/wx/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/wx/CMakeLists.txt b/src/wx/CMakeLists.txt index a9f7f63ae..81bd5740c 100644 --- a/src/wx/CMakeLists.txt +++ b/src/wx/CMakeLists.txt @@ -1142,7 +1142,7 @@ if(NOT TRANSLATIONS_ONLY) if(UPSTREAM_RELEASE AND WIN32) set(home "$ENV{HOME}") - if(NOT CMAKE_CROSSCOMPILING AND NOT DEFINED ENV{MSYSTEM_PREFIX}) + if((MSVC OR NOT CMAKE_CROSSCOMPILING) AND NOT DEFINED ENV{MSYSTEM_PREFIX}) set(home "$ENV{USERPROFILE}") endif() From 00645906a5c08ca1de1c1ed2865d5836540b2f74 Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Tue, 11 Jul 2023 02:01:00 +0000 Subject: [PATCH 06/85] translations: transifex pull Signed-off-by: Rafael Kitover --- po/wxvbam/tr.po | 74 ++++++++++++++++++++++++------------------------- 1 file changed, 37 insertions(+), 37 deletions(-) diff --git a/po/wxvbam/tr.po b/po/wxvbam/tr.po index a40de53eb..e12caecbc 100644 --- a/po/wxvbam/tr.po +++ b/po/wxvbam/tr.po @@ -11,14 +11,14 @@ # Justice League , 2020 # Bone Cruncher (SilentChaos) , 2018 # Sinan H., 2016,2018,2022 -# Tmp341, 2016,2021 +# Tmp341, 2016,2021,2023 msgid "" msgstr "" "Project-Id-Version: VBA-M\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-05-23 14:26-0700\n" "PO-Revision-Date: 2011-12-03 19:42+0000\n" -"Last-Translator: Sinan H., 2016,2018,2022\n" +"Last-Translator: Tmp341, 2016,2021,2023\n" "Language-Team: Turkish (http://app.transifex.com/bgk/vba-m/language/tr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -33,7 +33,7 @@ msgstr "visualboyadvance-m" #: wxvbam.cpp:380 wxvbam.cpp:397 #, c-format msgid "Invalid configuration file provided: %s" -msgstr "" +msgstr "Geçersiz yapılandırma dosyası sağlandı: %s" #: wxvbam.cpp:536 msgid "Could not create main window" @@ -77,14 +77,14 @@ msgstr "=" #: wxvbam.cpp:676 msgid "Configuration / build error: can't find built-in xrc" -msgstr "" +msgstr "Yapılandırma / derleme hatası: dahili xrc bulunamıyor" #: wxvbam.cpp:684 #, c-format msgid "" "Wrote built-in configuration to %s.\n" "To override, remove all but changed root node(s). First found root node of correct name in any .xrc or .xrs files in following search path overrides built-in:" -msgstr "" +msgstr "Dahili yapılandırmanın yazıldığı yer %s.\nGeçersiz kılmak için, değiştirilmiş kök düğüm(ler) hariç tümünü kaldırın. Mevcut .xrc ya da .xrs dosyaları içinde bulunan ilk doğru isimdeki kök düğüm, takip eden arama yolunda dahilinin üzerine yazar:" #: wxvbam.cpp:698 msgid "Configuration is read from, in order:" @@ -95,7 +95,7 @@ msgstr "Ayar şu sıra ile, şuradan okunur:" msgid "" "Wrote built-in override file to %s\n" "To override, delete all but changed section. First found section is used from search path:" -msgstr "" +msgstr "Dahili geçersiz kılma dosyasının yazıldığı yer %s\nGeçersiz kılmak için, değiştirilmiş bölüm hariç tamamını silin. İlk bulunan bölüm, mevcut arama yolundan sağlandı:" #: wxvbam.cpp:718 msgid "" @@ -195,11 +195,11 @@ msgstr "Hileleri kaldır" #: guiinit.cpp:776 dialogs/gb-rom-info.cpp:60 xrc/JoyPanel.xrc:364 msgid "Game Shark" -msgstr "" +msgstr "Game Shark" #: guiinit.cpp:777 dialogs/gb-rom-info.cpp:57 msgid "Game Genie" -msgstr "" +msgstr "Game Genie" #: guiinit.cpp:779 msgid "Generic Code" @@ -207,11 +207,11 @@ msgstr "Genel Kod" #: guiinit.cpp:780 msgid "Game Shark Advance" -msgstr "" +msgstr "Game Shark Advance" #: guiinit.cpp:781 msgid "Code Breaker Advance" -msgstr "" +msgstr "Code Breaker Advance" #: guiinit.cpp:782 msgid "Flashcart CHT" @@ -327,7 +327,7 @@ msgstr "0x03000000 - IRAM" #: viewers.cpp:818 msgid "0x04000000 - I / O" -msgstr "" +msgstr "0x04000000 - I / O" #: viewers.cpp:819 msgid "0x05000000 - PALETTE" @@ -371,7 +371,7 @@ msgstr "0xD000 - WRAM" #: viewers.cpp:931 msgid "0xFF00 - I / O" -msgstr "" +msgstr "0xFF00 - I / O" #: viewers.cpp:932 msgid "0xFF80 - RAM" @@ -397,7 +397,7 @@ msgid "" "(*.agb;*.gba;*.bin;*.elf;*.mb;*.zip;*.7z;*.rar)|*.agb;*.gba;*.bin;*.elf;*.mb;*.agb.gz;*.gba.gz;*.bin.gz;*.elf.gz;*.mb.gz;*.agb.z;*.gba.z;*.bin.z;*.elf.z;*.mb.z;*.zip;*.7z;*.rar|Game" " Boy Files " "(*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" -msgstr "" +msgstr "Game Boy Advance Dosyaları (*.agb;*.gba;*.bin;*.elf;*.mb;*.zip;*.7z;*.rar)|*.agb;*.gba;*.bin;*.elf;*.mb;*.agb.gz;*.gba.gz;*.bin.gz;*.elf.gz;*.mb.gz;*.agb.z;*.gba.z;*.bin.z;*.elf.z;*.mb.z;*.zip;*.7z;*.rar|Game Boy Dosyaları (*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" #: cmdevents.cpp:140 msgid "Open ROM file" @@ -407,7 +407,7 @@ msgstr "ROM dosyası açın" msgid "" "Game Boy Files " "(*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" -msgstr "" +msgstr "Game Boy Dosyaları (*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" #: cmdevents.cpp:167 msgid "Open GB ROM file" @@ -417,7 +417,7 @@ msgstr "GB ROM dosyası açın" msgid "" "Game Boy Color Files " "(*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" -msgstr "" +msgstr "Game Boy Color Dosyaları (*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" #: cmdevents.cpp:194 msgid "Open GBC ROM file" @@ -443,7 +443,7 @@ msgstr "Kartuş dosyası (*.sav) *.sav/Bellek kaydı(*.dat)*.dat" msgid "" "Importing a battery file will erase any saved games (permanently after the " "next write). Do you want to continue?" -msgstr "" +msgstr "Bir batarya dosyasını içe aktarmak, kayıt dosyalarını (sonraki yazmadan sonra kalıcı olarak) siler. Devam etmek istiyor musunuz?" #: cmdevents.cpp:412 cmdevents.cpp:440 cmdevents.cpp:560 msgid "Confirm import" @@ -465,17 +465,17 @@ msgstr "Kod dosyası seçin" #: cmdevents.cpp:430 msgid "Game Shark Code File (*.spc;*.xpc)|*.spc;*.xpc" -msgstr "" +msgstr "Game Shark Kodu Dosyaları (*.spc;*.xpc)|*.spc;*.xpc" #: cmdevents.cpp:430 msgid "Game Shark Code File (*.gcf)|*.gcf" -msgstr "" +msgstr "Game Shark Kodu Dosyası (*.gcf)|*.gcf" #: cmdevents.cpp:439 msgid "" "Importing a code file will replace any loaded cheats. Do you want to " "continue?" -msgstr "" +msgstr "Kod dosyasını içeri aktarmak, yüklenmiş hileleri değiştirir. Devam etmek istiyor musunuz?" #: cmdevents.cpp:456 #, c-format @@ -505,17 +505,17 @@ msgstr "Hile kayıt dosyası seçiniz" msgid "" "Game Shark & PAC Snapshots (*.sps;*.xps)|*.sps;*.xps|Game Shark SP Snapshots" " (*.gsv)|*.gsv" -msgstr "" +msgstr "Game Shark & PAC Kayıtları (*.sps;*.xps)|*.sps;*.xps|Game Shark SP Kayıtları (*.gsv)|*.gsv" #: cmdevents.cpp:550 msgid "Game Boy Snapshot (*.gbs)|*.gbs" -msgstr "" +msgstr "Game Boy Kayıtları (*.gbs)|*.gbs" #: cmdevents.cpp:559 msgid "" "Importing a snapshot file will erase any saved games (permanently after the " "next write). Do you want to continue?" -msgstr "" +msgstr "Kayıt dosyasını içeri aktarmak, oyun kayıtlarını (sonraki yazmadan sonra kalıcı olarak) siler. Devam etmek istiyor musunuz?" #: cmdevents.cpp:584 #, c-format @@ -543,11 +543,11 @@ msgstr "EEPROM kayıtları dışa aktarılamaz" #: cmdevents.cpp:626 msgid "Game Shark Snapshot (*.sps)|*.sps" -msgstr "" +msgstr "Game Shark Kayıtları (*.sps)|*.sps" #: cmdevents.cpp:640 msgid "Exported from Visual Boy Advance-M" -msgstr "" +msgstr "Visual Boy Advance-M uygulamasından dışa aktarıldı" #: cmdevents.cpp:652 #, c-format @@ -578,7 +578,7 @@ msgstr "Durum dosyası seçin" #: cmdevents.cpp:1261 cmdevents.cpp:1354 msgid "Visual Boy Advance saved game files|*.sgm" -msgstr "" +msgstr "Visual Boy Advance oyun kayıt dosyaları|*.sgm" #: cmdevents.cpp:1384 cmdevents.cpp:1394 cmdevents.cpp:1405 #, c-format @@ -587,7 +587,7 @@ msgstr "Geçerli durum kaydı #%d" #: cmdevents.cpp:1470 msgid "Cannot use Colorizer Hack when Game Boy BIOS File is enabled." -msgstr "" +msgstr "Renklendirme Hilesi, Game Boy BIOS dosyası aktifken kullanılamaz." #: cmdevents.cpp:1681 msgid "Sound enabled" @@ -600,7 +600,7 @@ msgstr "Ses kapatıldı" #: cmdevents.cpp:1694 cmdevents.cpp:1708 #, c-format msgid "Volume: %d %%" -msgstr "" +msgstr "Ses Düzeyi: %d %%" #: cmdevents.cpp:1777 msgid "Set to 0 for pseudo tty" @@ -637,15 +637,15 @@ msgid "" "YOUR CONFIGURATION WILL BE DELETED!\n" "\n" "Are you sure?" -msgstr "" +msgstr "YAPILANDIRMANIZ SİLİNECEK!\n\nEmin misiniz?" #: cmdevents.cpp:2281 msgid "FACTORY RESET" -msgstr "" +msgstr "FABRİKA AYARLARINA SIFIRLAMA" #: cmdevents.cpp:2316 msgid "Nintendo Game Boy / Color / Advance emulator." -msgstr "" +msgstr "Nintendo Game Boy / Color / Advance emulatörü." #: cmdevents.cpp:2317 msgid "" @@ -684,31 +684,31 @@ msgstr "Yerel kipte ağ desteği yoktur." #: extra-translations.cpp:12 msgid "&Apply" -msgstr "" +msgstr "Uygul&a" #: extra-translations.cpp:13 msgid "Artists" -msgstr "" +msgstr "Çizerler" #: extra-translations.cpp:14 msgid "Cancel" -msgstr "" +msgstr "İptal" #: extra-translations.cpp:15 msgid "Close" -msgstr "" +msgstr "Kapat" #: extra-translations.cpp:16 msgid "Developers" -msgstr "" +msgstr "Geliştiriciler" #: extra-translations.cpp:17 msgid "License" -msgstr "" +msgstr "Lisans" #: extra-translations.cpp:18 msgid "OK" -msgstr "" +msgstr "Tamam" #: opts.cpp:290 msgid "" From 774fbab7ccd6588c08a1df9b88e7b370c521202d Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Wed, 12 Jul 2023 06:19:46 +0000 Subject: [PATCH 07/85] build: write version to macOS plist Separate writing the version into the Info.plist on macOS into a separate action from the online updates Sparkle framework into a separate POST_BUILD action because we are not using Sparkle for macOS builds right now due to codesigning issues. Also sort tags by reverse tag name in the cmake git version extractor because a tag was rewritten. Signed-off-by: Rafael Kitover --- cmake/GitTagVersion.cmake | 2 +- src/wx/CMakeLists.txt | 17 +++++++++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/cmake/GitTagVersion.cmake b/cmake/GitTagVersion.cmake index 6eb25b3a7..c59fb06b2 100644 --- a/cmake/GitTagVersion.cmake +++ b/cmake/GitTagVersion.cmake @@ -6,7 +6,7 @@ function(git_version version revision version_release) find_package(Git) if(GIT_FOUND AND EXISTS "${CMAKE_SOURCE_DIR}/.git") # get latest version from tag history - execute_process(COMMAND "${GIT_EXECUTABLE}" tag "--format=%(align:width=20)%(refname:short)%(end)%(if)%(*objectname)%(then)%(*objectname)%(else)%(objectname)%(end)" --sort=-creatordate OUTPUT_VARIABLE tags OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}") + execute_process(COMMAND "${GIT_EXECUTABLE}" tag "--format=%(align:width=20)%(refname:short)%(end)%(if)%(*objectname)%(then)%(*objectname)%(else)%(objectname)%(end)" --sort=-v:refname OUTPUT_VARIABLE tags OUTPUT_STRIP_TRAILING_WHITESPACE ERROR_QUIET WORKING_DIRECTORY "${CMAKE_SOURCE_DIR}") # if no tags (e.g. shallow clone) do nothing if(tags STREQUAL "") diff --git a/src/wx/CMakeLists.txt b/src/wx/CMakeLists.txt index 81bd5740c..bb3a0780c 100644 --- a/src/wx/CMakeLists.txt +++ b/src/wx/CMakeLists.txt @@ -990,8 +990,6 @@ if(NOT TRANSLATIONS_ONLY) # The following commands *should* be run to make sure Sparkle is not going # to bug randomly. set(CCS3 cp -a ${SPARKLE_FRAMEWORK} ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Frameworks/Sparkle.framework) - set(CCS4 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist CFBundleVersion -string "${VERSION}") - set(CCS5 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist CFBundleShortVersionString -string "${VERSION}") set(CCS6 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist SUEnableAutomaticChecks -bool YES) #set(CCS7 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist SUPublicEDKey -string "${PUBLIC_KEY}") set(CCS8 defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist SUFeedURL -string "${APPCAST_URL}") @@ -999,8 +997,6 @@ if(NOT TRANSLATIONS_ONLY) COMMAND ${CCS1} COMMAND ${CCS2} COMMAND ${CCS3} - COMMAND ${CCS4} - COMMAND ${CCS5} COMMAND ${CCS6} #COMMAND ${CCS7} COMMAND ${CCS8} @@ -1252,6 +1248,19 @@ if(NOT TRANSLATIONS_ONLY) COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/mac-translations.cmake WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) + + set(ver ${VERSION}) + + if(NOT VERSION_RELEASE) + set(ver "${ver}-${REVISION}") + endif() + + add_custom_command( + TARGET visualboyadvance-m POST_BUILD + COMMAND defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist CFBundleVersion -string "${ver}" + COMMAND defaults write ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist CFBundleShortVersionString -string "${ver}" + COMMAND plutil -convert xml1 ${CMAKE_BINARY_DIR}/visualboyadvance-m.app/Contents/Info.plist + ) endif() if(APPLE AND (UPSTREAM_RELEASE OR ENABLE_ONLINEUPDATES)) From 32d273ad78f29000e5f1f91931b1c4448ff54365 Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Sat, 22 Jul 2023 20:51:48 +0000 Subject: [PATCH 08/85] build: notarize mac release binary Notarize the mac release binary from cmake as described here: https://developer.apple.com/documentation/security/notarizing_macos_software_before_distribution/customizing_the_notarization_workflow?language=objc . This involves adding `--options runtime` when codesigning to enable the hardened build. Signed-off-by: Rafael Kitover --- src/wx/CMakeLists.txt | 66 ++++++++++++++++++++++++++++--------------- 1 file changed, 44 insertions(+), 22 deletions(-) diff --git a/src/wx/CMakeLists.txt b/src/wx/CMakeLists.txt index bb3a0780c..5d798f79a 100644 --- a/src/wx/CMakeLists.txt +++ b/src/wx/CMakeLists.txt @@ -1263,7 +1263,7 @@ if(NOT TRANSLATIONS_ONLY) ) endif() - if(APPLE AND (UPSTREAM_RELEASE OR ENABLE_ONLINEUPDATES)) + if(APPLE AND UPSTREAM_RELEASE) if(CMAKE_BUILD_TYPE MATCHES "^(Release|MinSizeRel)$") find_program(STRIP_PROGRAM strip) @@ -1280,7 +1280,7 @@ if(NOT TRANSLATIONS_ONLY) add_custom_command( TARGET visualboyadvance-m POST_BUILD - VERBATIM COMMAND sh -c [=[codesign --sign "Developer ID Application" --force --deep ./visualboyadvance-m.app || :]=] + VERBATIM COMMAND sh -c [=[codesign --sign "Developer ID Application" --options runtime --timestamp --force --deep ./visualboyadvance-m.app || :]=] WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) @@ -1292,37 +1292,59 @@ if(NOT TRANSLATIONS_ONLY) add_custom_command( TARGET visualboyadvance-m POST_BUILD - VERBATIM COMMAND sh -c "codesign --sign 'Developer ID Application' --force ${framework} || :" + VERBATIM COMMAND sh -c "codesign --sign 'Developer ID Application' --options runtime --timestamp --force --deep ${framework} || :" WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) endforeach() endif() - if(UPSTREAM_RELEASE) - if(CMAKE_BUILD_TYPE STREQUAL Debug) - set(appzip visualboyadvance-m-Mac-${ARCH_NAME}-debug${ZIP_SUFFIX}.zip) - else() - set(appzip visualboyadvance-m-Mac-${ARCH_NAME}${ZIP_SUFFIX}.zip) - endif() + # Zip, notarize, staple to the .app and zip again + if(CMAKE_BUILD_TYPE STREQUAL Debug) + set(appzip visualboyadvance-m-Mac-${ARCH_NAME}-debug${ZIP_SUFFIX}.zip) + else() + set(appzip visualboyadvance-m-Mac-${ARCH_NAME}${ZIP_SUFFIX}.zip) + endif() + + add_custom_command( + TARGET visualboyadvance-m + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E remove ${appzip} + COMMAND ${ZIP_PROGRAM} -9yr ${appzip} ./visualboyadvance-m.app + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + + add_custom_command( + TARGET visualboyadvance-m + POST_BUILD + COMMAND xcrun notarytool submit ${appzip} --keychain-profile AC_PASSWORD --wait + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + + add_custom_command( + TARGET visualboyadvance-m + POST_BUILD + COMMAND xcrun stapler staple ./visualboyadvance-m.app + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + + add_custom_command( + TARGET visualboyadvance-m + POST_BUILD + COMMAND ${CMAKE_COMMAND} -E remove ${appzip} + COMMAND ${ZIP_PROGRAM} -9yr ${appzip} ./visualboyadvance-m.app + WORKING_DIRECTORY ${CMAKE_BINARY_DIR} + ) + + if(GPG_KEYS) add_custom_command( TARGET visualboyadvance-m POST_BUILD - COMMAND ${CMAKE_COMMAND} -E remove ${appzip} - COMMAND ${ZIP_PROGRAM} -9yr ${appzip} ./visualboyadvance-m.app + COMMAND ${CMAKE_COMMAND} -E remove ${appzip}.asc +# COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/interactive-pause.cmake + COMMAND ${GPG_PROGRAM} --detach-sign -a ${appzip} WORKING_DIRECTORY ${CMAKE_BINARY_DIR} ) - - if(GPG_KEYS) - add_custom_command( - TARGET visualboyadvance-m - POST_BUILD - COMMAND ${CMAKE_COMMAND} -E remove ${appzip}.asc - # COMMAND ${CMAKE_COMMAND} -P ${CMAKE_CURRENT_SOURCE_DIR}/interactive-pause.cmake - COMMAND ${GPG_PROGRAM} --detach-sign -a ${appzip} - WORKING_DIRECTORY ${CMAKE_BINARY_DIR} - ) - endif() endif() endif() From 5f421b53c00c63a1d7323977dbce8e7dd0ab9020 Mon Sep 17 00:00:00 2001 From: Rafael Kitover Date: Tue, 8 Aug 2023 02:00:57 +0000 Subject: [PATCH 09/85] translations: transifex pull Signed-off-by: Rafael Kitover --- po/wxvbam/fr.po | 650 ++++++++++++++++++++++++------------------------ 1 file changed, 325 insertions(+), 325 deletions(-) diff --git a/po/wxvbam/fr.po b/po/wxvbam/fr.po index 6510839de..4c850a43a 100644 --- a/po/wxvbam/fr.po +++ b/po/wxvbam/fr.po @@ -3,7 +3,7 @@ # This file is distributed under the same license as the PACKAGE package. # # Translators: -# Benjamin Siskoo , 2015-2016,2020 +# Benjamin Siskoo , 2015-2016,2020,2023 # Boris Djekornom, 2022 # Cissou , 2015 # Eequiis Vásquez, 2022 @@ -25,7 +25,7 @@ msgstr "" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2023-05-23 14:26-0700\n" "PO-Revision-Date: 2011-12-03 19:42+0000\n" -"Last-Translator: Boris Djekornom, 2022\n" +"Last-Translator: Benjamin Siskoo , 2015-2016,2020,2023\n" "Language-Team: French (http://app.transifex.com/bgk/vba-m/language/fr/)\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" @@ -40,7 +40,7 @@ msgstr "visualboyadvance-m" #: wxvbam.cpp:380 wxvbam.cpp:397 #, c-format msgid "Invalid configuration file provided: %s" -msgstr "" +msgstr "Fichier de configuration invalide fourni : %s" #: wxvbam.cpp:536 msgid "Could not create main window" @@ -84,14 +84,14 @@ msgstr "=" #: wxvbam.cpp:676 msgid "Configuration / build error: can't find built-in xrc" -msgstr "" +msgstr "Erreur de configuration / build : ne trouve pas le xrc intégré" #: wxvbam.cpp:684 #, c-format msgid "" "Wrote built-in configuration to %s.\n" "To override, remove all but changed root node(s). First found root node of correct name in any .xrc or .xrs files in following search path overrides built-in:" -msgstr "" +msgstr "La configuration intégrée a été écrite à %s.Pour l'annuler, supprimez tous les nœud(s) racine sauf ceux qui ont été modifiés. Le premier nœud racine trouvé du nom correct dans tous les fichiers .xrc ou .xrs dans le chemin de recherche suivant remplace la configuration intégrée :" #: wxvbam.cpp:698 msgid "Configuration is read from, in order:" @@ -102,13 +102,13 @@ msgstr "la configuration est lue depuis, dans l'ordre :" msgid "" "Wrote built-in override file to %s\n" "To override, delete all but changed section. First found section is used from search path:" -msgstr "" +msgstr "Écriture d'un fichier de remplacement intégré à %s Pour remplacer, supprimer toutes les sections sauf celles qui ont été modifiées.La première section trouvée est utilisée à partir du chemin de recherche :" #: wxvbam.cpp:718 msgid "" "\n" "\tbuilt-in" -msgstr "\n\tbuilt-in" +msgstr "\n\tintégré" #: wxvbam.cpp:733 msgid "" @@ -202,11 +202,11 @@ msgstr "Suppression des codes de triche" #: guiinit.cpp:776 dialogs/gb-rom-info.cpp:60 xrc/JoyPanel.xrc:364 msgid "Game Shark" -msgstr "" +msgstr "Game Shark" #: guiinit.cpp:777 dialogs/gb-rom-info.cpp:57 msgid "Game Genie" -msgstr "" +msgstr "Game Génie" #: guiinit.cpp:779 msgid "Generic Code" @@ -214,11 +214,11 @@ msgstr "Code Générique" #: guiinit.cpp:780 msgid "Game Shark Advance" -msgstr "" +msgstr "Game Shark Advance" #: guiinit.cpp:781 msgid "Code Breaker Advance" -msgstr "" +msgstr "Code Breaker Advance" #: guiinit.cpp:782 msgid "Flashcart CHT" @@ -334,7 +334,7 @@ msgstr "0x03000000 - IRAM" #: viewers.cpp:818 msgid "0x04000000 - I / O" -msgstr "" +msgstr "0x04000000 - I / O" #: viewers.cpp:819 msgid "0x05000000 - PALETTE" @@ -378,7 +378,7 @@ msgstr "0xD000 - WRAM" #: viewers.cpp:931 msgid "0xFF00 - I / O" -msgstr "" +msgstr "0xFF00 - I / O" #: viewers.cpp:932 msgid "0xFF80 - RAM" @@ -404,7 +404,7 @@ msgid "" "(*.agb;*.gba;*.bin;*.elf;*.mb;*.zip;*.7z;*.rar)|*.agb;*.gba;*.bin;*.elf;*.mb;*.agb.gz;*.gba.gz;*.bin.gz;*.elf.gz;*.mb.gz;*.agb.z;*.gba.z;*.bin.z;*.elf.z;*.mb.z;*.zip;*.7z;*.rar|Game" " Boy Files " "(*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" -msgstr "" +msgstr "Fichiers Game Boy Advance (*.agb;*.gba;*.bin;*.elf;*.mb;*.zip;*.7z;*.rar)|*.agb;*.gba;*.bin;*.elf;*.mb;*.agb.gz;*.gba.gz;*.bin.gz;*.elf.gz;*.mb.gz;*.agb.z;*.gba.z;*.bin.z;*.elf.z;*.mb.z;*.zip;*.7z;*.rar|Game Boy Files (*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" #: cmdevents.cpp:140 msgid "Open ROM file" @@ -414,7 +414,7 @@ msgstr "Ouvrir un fichier ROM" msgid "" "Game Boy Files " "(*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" -msgstr "" +msgstr "Fichiers Game Boy (*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" #: cmdevents.cpp:167 msgid "Open GB ROM file" @@ -424,7 +424,7 @@ msgstr "Ouvrir un fichier ROM GB" msgid "" "Game Boy Color Files " "(*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" -msgstr "" +msgstr "Fichiers Game Boy Color (*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.zip;*.7z;*.rar)|*.dmg;*.gb;*.gbc;*.cgb;*.sgb;*.dmg.gz;*.gb.gz;*.gbc.gz;*.cgb.gz;*.sgb.gz;*.dmg.z;*.gb.z;*.gbc.z;*.cgb.z;*.sgb.z;*.zip;*.7z;*.rar|" #: cmdevents.cpp:194 msgid "Open GBC ROM file" @@ -450,7 +450,7 @@ msgstr "Sauvegarde native (*.sav)|*.sav|Sauvegarde Flash (*.dat)|*.dat" msgid "" "Importing a battery file will erase any saved games (permanently after the " "next write). Do you want to continue?" -msgstr "" +msgstr "L'importation d'un fichier de batterie effacera toutes les parties sauvegardées (de façon permanente après la prochaine écriture). Voulez-vous continuer ?" #: cmdevents.cpp:412 cmdevents.cpp:440 cmdevents.cpp:560 msgid "Confirm import" @@ -472,17 +472,17 @@ msgstr "Sélectionner le fichier de codes de triche" #: cmdevents.cpp:430 msgid "Game Shark Code File (*.spc;*.xpc)|*.spc;*.xpc" -msgstr "" +msgstr "Fichier de code Game Shark (*.spc;*.xpc)|*.spc;*.xpc" #: cmdevents.cpp:430 msgid "Game Shark Code File (*.gcf)|*.gcf" -msgstr "" +msgstr "Fichier de code Game Shark (*.gcf)|*.gcf" #: cmdevents.cpp:439 msgid "" "Importing a code file will replace any loaded cheats. Do you want to " "continue?" -msgstr "" +msgstr "L'importation d'un fichier de code remplacera tous les cheats chargés. Voulez-vous continuer ?" #: cmdevents.cpp:456 #, c-format @@ -512,17 +512,17 @@ msgstr "Sélectionner un fichier d'instantané" msgid "" "Game Shark & PAC Snapshots (*.sps;*.xps)|*.sps;*.xps|Game Shark SP Snapshots" " (*.gsv)|*.gsv" -msgstr "" +msgstr "Captures d'écrans Game Shark & PAC (*.sps;*.xps)|*.sps;*.xps|Captures d'écrans Game Shark SP (*.gsv)|*.gsv" #: cmdevents.cpp:550 msgid "Game Boy Snapshot (*.gbs)|*.gbs" -msgstr "" +msgstr "Captures d'écrans Game Boy (*.gbs)|*.gbs" #: cmdevents.cpp:559 msgid "" "Importing a snapshot file will erase any saved games (permanently after the " "next write). Do you want to continue?" -msgstr "" +msgstr "L'importation d'un fichier de capture d'écran effacera toutes les parties sauvegardées (de façon permanente après la prochaine écriture). Voulez-vous continuer ?" #: cmdevents.cpp:584 #, c-format @@ -550,11 +550,11 @@ msgstr "Les sauvegardes EEPROM ne peuvent pas être exportées" #: cmdevents.cpp:626 msgid "Game Shark Snapshot (*.sps)|*.sps" -msgstr "" +msgstr "Capture d'écran Game Shark (*.sps)|*.sps" #: cmdevents.cpp:640 msgid "Exported from Visual Boy Advance-M" -msgstr "" +msgstr "Exporté de Visual Boy Advance-M" #: cmdevents.cpp:652 #, c-format @@ -585,7 +585,7 @@ msgstr "Sélectionner le fichier d'état" #: cmdevents.cpp:1261 cmdevents.cpp:1354 msgid "Visual Boy Advance saved game files|*.sgm" -msgstr "" +msgstr "Fichiers de sauvegarde Visual Boy Advance|*.sgm" #: cmdevents.cpp:1384 cmdevents.cpp:1394 cmdevents.cpp:1405 #, c-format @@ -594,7 +594,7 @@ msgstr "État actuel de l'emplacement #%d" #: cmdevents.cpp:1470 msgid "Cannot use Colorizer Hack when Game Boy BIOS File is enabled." -msgstr "" +msgstr "Impossible d'utiliser le hack Colorizer lorsque le fichier BIOS Game Boy est activé." #: cmdevents.cpp:1681 msgid "Sound enabled" @@ -607,7 +607,7 @@ msgstr "Son désactivé" #: cmdevents.cpp:1694 cmdevents.cpp:1708 #, c-format msgid "Volume: %d %%" -msgstr "" +msgstr "Volume : 1%d %%" #: cmdevents.cpp:1777 msgid "Set to 0 for pseudo tty" @@ -644,22 +644,22 @@ msgid "" "YOUR CONFIGURATION WILL BE DELETED!\n" "\n" "Are you sure?" -msgstr "" +msgstr "VOTRE CONFIGURATION SERA SUPPRIMÉE !\n\nVous êtes sûr de vous ?" #: cmdevents.cpp:2281 msgid "FACTORY RESET" -msgstr "" +msgstr "RÉINITIALISATION D'USINE" #: cmdevents.cpp:2316 msgid "Nintendo Game Boy / Color / Advance emulator." -msgstr "" +msgstr "Emulateur Nintendo Game Boy / Color / Advance." #: cmdevents.cpp:2317 msgid "" "Copyright (C) 1999-2003 Forgotten\n" "Copyright (C) 2004-2006 VBA development team\n" "Copyright (C) 2007-2020 VBA-M development team" -msgstr "Copyright (C) 1999-2003 Oublié\nCopyright (C) 2004-2006 Équipe de développement VBA\nCopyright (C) 2007-2020 Équipe de développement VBA-M" +msgstr "Copyright (C) 1999-2003 Forgotten\nCopyright (C) 2004-2006 Équipe de développement VBA\nCopyright (C) 2007-2020 Équipe de développement VBA-M" #: cmdevents.cpp:2319 msgid "" @@ -675,15 +675,15 @@ msgid "" "\n" "You should have received a copy of the GNU General Public License\n" "along with this program. If not, see http://www.gnu.org/licenses ." -msgstr "" +msgstr "Ce programme est un logiciel libre : vous pouvez le redistribuer et/ou le modifier selon les termes de la sous les termes de la Licence Publique Générale GNU telle que publiée par la Free Software Foundation, soit la version 2 de la licence, soit (à votre choix) toute version ultérieure.\n\nCe programme est distribué dans l'espoir qu'il sera utile,\nmais SANS AUCUNE GARANTIE ; sans même la garantie implicite de\nMERCHANTABILITÉ ou d'ADAPTATION À UN USAGE PARTICULIER. Voir la\nLicence publique générale GNU pour plus de détails.\n\nVous devriez avoir reçu une copie de la licence publique générale GNU\navec ce programme. Si ce n'est pas le cas, consultez http://www.gnu.org/licenses ." #: cmdevents.cpp:2504 msgid "Cannot use Game Boy BIOS when Colorizer Hack is enabled." -msgstr "" +msgstr "Impossible d'utiliser le BIOS du Game Boy lorsque le Hack Colorizer est activé." #: cmdevents.cpp:2558 msgid "LAN link is already active. Disable link mode to disconnect." -msgstr "" +msgstr "La liaison LAN est déjà active. Désactiver le mode de liaison pour se déconnecter." #: cmdevents.cpp:2564 msgid "Network is not supported in local mode." @@ -691,37 +691,37 @@ msgstr "Réseau non supporté en mode local." #: extra-translations.cpp:12 msgid "&Apply" -msgstr "" +msgstr "&Appliquer" #: extra-translations.cpp:13 msgid "Artists" -msgstr "" +msgstr "Artistes" #: extra-translations.cpp:14 msgid "Cancel" -msgstr "" +msgstr "Annuler" #: extra-translations.cpp:15 msgid "Close" -msgstr "" +msgstr "Fermer" #: extra-translations.cpp:16 msgid "Developers" -msgstr "" +msgstr "Développeurs" #: extra-translations.cpp:17 msgid "License" -msgstr "" +msgstr "Licence" #: extra-translations.cpp:18 msgid "OK" -msgstr "" +msgstr "OK" #: opts.cpp:290 msgid "" "The INI file was written for a more recent version of VBA-M. Some INI option" " values may have been reset." -msgstr "" +msgstr "Le fichier INI a été écrit pour une version plus récente de VBA-M. Certaines valeurs d'options INI peuvent avoir été réinitialisées." #: opts.cpp:457 opts.cpp:477 opts.cpp:662 #, c-format @@ -731,12 +731,12 @@ msgstr "Combinaison de touches %s non valide pour %s" #: opts.cpp:598 opts.cpp:607 opts.cpp:616 opts.cpp:625 config/option.cpp:492 #, c-format msgid "Invalid value %s for option %s" -msgstr "" +msgstr "Valeur invalide %s pour l'option %s" #: opts.cpp:684 #, c-format msgid "Unknown option %s with value %s" -msgstr "" +msgstr "Option inconnu %s avec la valeur %s" #: sys.cpp:200 sys.cpp:261 msgid "No game in progress to record" @@ -771,12 +771,12 @@ msgstr "Playback terminée" #: sys.cpp:453 #, c-format msgid "%d %% (%d, %d fps)" -msgstr "" +msgstr "%d %% (%d, %d fps)" #: sys.cpp:461 #, c-format msgid "%d %%" -msgstr "" +msgstr "%d %%" #: sys.cpp:895 xrc/GBPrinter.xrc:65 msgid "&Discard" @@ -831,7 +831,7 @@ msgstr "Impossible de charger la ROM Game Boy %s" msgid "" "Cannot use Game Boy BIOS file when Colorizer Hack is enabled, disabling Game" " Boy BIOS file." -msgstr "" +msgstr "Impossible d'utiliser le fichier BIOS Game Boy lorsque le Hack Colorizer est activé, désactivation du fichier BIOS Game Boy." #: panel.cpp:286 panel.cpp:386 #, c-format @@ -870,31 +870,31 @@ msgstr "Erreur durant la sauvegarde de l'état %s" #: panel.cpp:948 #, c-format msgid "Fullscreen mode %d x %d - %d @ %d not supported; looking for another" -msgstr "" +msgstr "Mode plein écran %d x %d - %d @ %d non pris en charge ; recherche d'un autre mode" #: panel.cpp:986 #, c-format msgid "Fullscreen mode %d x %d - %d @ %d not supported" -msgstr "" +msgstr "Mode plein écran %d x %d - %d @ %d non pris en charge" #: panel.cpp:991 #, c-format msgid "Valid mode: %d x %d - %d @ %d" -msgstr "" +msgstr "Mode valide : %d x %d - %d @ %d" #: panel.cpp:999 #, c-format msgid "Chose mode %d x %d - %d @ %d" -msgstr "" +msgstr "Choisir le mode %d x %d - %d @ %d" #: panel.cpp:1003 #, c-format msgid "Failed to change mode to %d x %d - %d @ %d" -msgstr "" +msgstr "Échec du changement de mode en %d x %d - %d @ %d" #: panel.cpp:1094 msgid "Not a valid Game Boy Advance cartridge" -msgstr "" +msgstr "Cartouche Game Boy Advance non valide" #: panel.cpp:1257 msgid "No memory for rewinding" @@ -906,19 +906,19 @@ msgstr "Erreur durant l'écriture de l'état du rembobinage" #: panel.cpp:2285 msgid "Enabling EGL VSync." -msgstr "" +msgstr "Activation de la Synchro Vertical EGL." #: panel.cpp:2287 msgid "Disabling EGL VSync." -msgstr "" +msgstr "Désactivation de la Synchro Vertical EGL." #: panel.cpp:2294 msgid "Enabling GLX VSync." -msgstr "" +msgstr "Activation de la Synchro Vertical GLX." #: panel.cpp:2296 msgid "Disabling GLX VSync." -msgstr "" +msgstr "Désactivation de la Synchro Vertical GLX." #: panel.cpp:2314 msgid "Failed to set glXSwapIntervalEXT" @@ -976,7 +976,7 @@ msgstr "Impossible de démarrer l'enregistrement à %s (%s)" #: panel.cpp:2540 #, c-format msgid "Error in audio / video recording (%s); aborting" -msgstr "" +msgstr "Erreur dans l'enregistrement audio/vidéo (%s) ; interruption" #: panel.cpp:2546 #, c-format @@ -1002,170 +1002,170 @@ msgstr "B :" #: config/internal/option-internal.cpp:376 msgid "Use bilinear filter with 3d renderer" -msgstr "" +msgstr "Utiliser le filtre bilinéaire avec le moteur de rendu 3D" #: config/internal/option-internal.cpp:377 msgid "Full-screen filter to apply" -msgstr "" +msgstr "Filtre en Plein Ecran à appliquer" #: config/internal/option-internal.cpp:378 msgid "Filter plugin library" -msgstr "" +msgstr "Bibliothèque de plugin de filtre" #: config/internal/option-internal.cpp:379 msgid "Interframe blending function" -msgstr "" +msgstr "Fonction de mélange inter-images" #: config/internal/option-internal.cpp:380 msgid "Keep window on top" -msgstr "" +msgstr "Garder la fenêtre dessus" #: config/internal/option-internal.cpp:382 msgid "Maximum number of threads to run filters in" -msgstr "" +msgstr "Nombre maximal de processus pour l'exécution des filtres" #: config/internal/option-internal.cpp:384 msgid "Render method; if unsupported, simple method will be used" -msgstr "" +msgstr "Méthode de rendu ; si elle n'est pas prise en charge, la méthode simple sera utilisée." #: config/internal/option-internal.cpp:385 msgid "Default scale factor" -msgstr "" +msgstr "Facteur d'échelle par défaut" #: config/internal/option-internal.cpp:387 msgid "Retain aspect ratio when resizing" -msgstr "" +msgstr "Conserver le rapport hauteur/largeur lors du redimensionnement" #: config/internal/option-internal.cpp:391 msgid "BIOS file to use for Game Boy, if enabled" -msgstr "" +msgstr "Fichier BIOS à utiliser pour la Game Boy, si activé" #: config/internal/option-internal.cpp:393 msgid "Game Boy color enhancement, if enabled" -msgstr "" +msgstr "Amélioration des couleurs de la Game Boy, si activée" #: config/internal/option-internal.cpp:395 msgid "Enable DX Colorization Hacks" -msgstr "" +msgstr "Activer les hacks de colorisation DX" #: config/internal/option-internal.cpp:397 #: config/internal/option-internal.cpp:423 msgid "Apply LCD filter, if enabled" -msgstr "" +msgstr "Appliquer le filtre LCD, s'il est activé" #: config/internal/option-internal.cpp:399 msgid "BIOS file to use for Game Boy Color, if enabled" -msgstr "" +msgstr "Fichier BIOS à utiliser pour la Game Boy Color, si activé" #: config/internal/option-internal.cpp:401 msgid "" "The default palette, as 8 comma-separated 4-digit hex integers (rgb555)." -msgstr "" +msgstr "La palette par défaut, sous forme de 8 nombres entiers hexadécimaleà 4 chiffres séparés par des virgules (rgb555)." #: config/internal/option-internal.cpp:404 msgid "" "The first user palette, as 8 comma-separated 4-digit hex integers (rgb555)." -msgstr "" +msgstr "La première palette d'utilisateurs, sous la forme de 8 entiers hexadécimale de 4 chiffres séparés par des virgules (rgb555)." #: config/internal/option-internal.cpp:407 msgid "" "The second user palette, as 8 comma-separated 4-digit hex integers (rgb555)." -msgstr "" +msgstr "La deuxième palette de l'utilisateur, sous forme de 8 entiers hexadécimale à 4 chiffres séparés par des virgules (rgb555)." #: config/internal/option-internal.cpp:410 msgid "Automatically gather a full page before printing" -msgstr "" +msgstr "Rassembler automatiquement une page entière avant l'impression" #: config/internal/option-internal.cpp:412 msgid "Automatically save printouts as screen captures with -print suffix" -msgstr "" +msgstr "Enregistrer automatiquement les impressions en tant que captures d'écran avec le suffixe -print" #: config/internal/option-internal.cpp:414 #: config/internal/option-internal.cpp:444 msgid "Directory to look for ROM files" -msgstr "" +msgstr "Répertoire où rechercher les fichiers ROM" #: config/internal/option-internal.cpp:416 msgid "Directory to look for Game Boy Color ROM files" -msgstr "" +msgstr "Répertoire de recherche des fichiers ROM du Game Boy Color" #: config/internal/option-internal.cpp:419 msgid "BIOS file to use, if enabled" -msgstr "" +msgstr "Fichier BIOS à utiliser, si activé" #: config/internal/option-internal.cpp:429 msgid "Enable link at boot" -msgstr "" +msgstr "Activer le link au démarrage" #: config/internal/option-internal.cpp:434 msgid "Enable faster network protocol by default" -msgstr "" +msgstr "Activer le protocole réseau le plus rapide par défaut" #: config/internal/option-internal.cpp:436 msgid "Default network link client host" -msgstr "" +msgstr "Client Hôte du réseau link par défaut" #: config/internal/option-internal.cpp:437 msgid "Default network link server IP to bind" -msgstr "" +msgstr "IP du serveur de link réseau par défaut à lier" #: config/internal/option-internal.cpp:439 msgid "Default network link port (server and client)" -msgstr "" +msgstr "Port de liaison réseau par défaut (serveur et client)" #: config/internal/option-internal.cpp:440 msgid "Default network protocol" -msgstr "" +msgstr "Protocole réseau par défaut" #: config/internal/option-internal.cpp:441 msgid "Link timeout (ms)" -msgstr "" +msgstr "Délai de liaison (ms)" #: config/internal/option-internal.cpp:442 msgid "Link cable type" -msgstr "" +msgstr "Type de câble de link" #: config/internal/option-internal.cpp:448 msgid "Automatically load last saved state" -msgstr "" +msgstr "Chargement automatique de la dernière sauvegarde d'état" #: config/internal/option-internal.cpp:450 msgid "" "Directory to store game save files (relative paths are relative to ROM; " "blank is config dir)" -msgstr "" +msgstr "Répertoire pour stocker les fichiers de sauvegarde du jeu (les chemins relatifs sont relatifs à la ROM ; le répertoire vide est le répertoire de configuration)" #: config/internal/option-internal.cpp:452 msgid "Freeze recent load list" -msgstr "" +msgstr "Gel de la liste des chargements récents" #: config/internal/option-internal.cpp:454 msgid "" "Directory to store A / V and game recordings (relative paths are relative to" " ROM)" -msgstr "" +msgstr "Répertoire pour stocker les enregistrements des jeux A / V (les chemins relatifs sont relatifs à la ROM)" #: config/internal/option-internal.cpp:457 msgid "Number of seconds between rewind snapshots (0 to disable)" -msgstr "" +msgstr "Nombre de secondes entre les captures d'écrans de rembobinage (0 pour désactiver)" #: config/internal/option-internal.cpp:459 msgid "Directory to store screenshots (relative paths are relative to ROM)" -msgstr "" +msgstr "Répertoire pour stocker les captures d'écran (les chemins relatifs sont relatifs à la ROM)" #: config/internal/option-internal.cpp:462 msgid "" "Directory to store saved state files (relative paths are relative to " "BatteryDir)" -msgstr "" +msgstr "Répertoire dans lequel sont stockés les fichiers d'état sauvegardés (les chemins relatifs sont relatifs à BatteryDir)" #: config/internal/option-internal.cpp:464 msgid "Enable status bar" -msgstr "" +msgstr "Activer la barre d'état" #: config/internal/option-internal.cpp:465 msgid "INI file version (DO NOT MODIFY)" -msgstr "" +msgstr "Version du fichier INI (NE PAS MODIFIER)" #: config/internal/option-internal.cpp:469 msgid "" @@ -1173,250 +1173,250 @@ msgid "" "names which map to joypad # button